bbef4bde2e
Modify Dqs Byte Swizzling for channel 0 to honor chell's memory routing BUG=chrome-os-partner:48986 BRANCH=glados TEST=verified on chell system Signed-off-by: Mike Hsieh <mike.m.hsieh@intel.com> Change-Id: Ic0485526bc1378e329c5eb0eeb57ff67a9501e86 Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: b60241e63381974655f5df5afcd913e95c17682b Original-Change-Id: I641502e8d303fa59e0f668d581745379e1ef4853 Original-Reviewed-on: https://chromium-review.googlesource.com/321524 Original-Commit-Ready: Duncan Laurie <dlaurie@chromium.org> Original-Tested-by: Duncan Laurie <dlaurie@chromium.org> Original-Reviewed-by: Duncan Laurie <dlaurie@chromium.org> Reviewed-on: https://review.coreboot.org/13012 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
47 lines
1.4 KiB
C
47 lines
1.4 KiB
C
/*
|
|
* This file is part of the coreboot project.
|
|
*
|
|
* Copyright (C) 2015 Google Inc.
|
|
* Copyright (C) 2015 Intel Corporation
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*/
|
|
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
#include <soc/pei_data.h>
|
|
#include <soc/pei_wrapper.h>
|
|
|
|
void mainboard_fill_pei_data(struct pei_data *pei_data)
|
|
{
|
|
/* DQ byte map */
|
|
const u8 dq_map[2][12] = {
|
|
{ 0x0F, 0xF0, 0x00, 0xF0, 0x0F, 0xF0,
|
|
0x0F, 0x00, 0xFF, 0x00, 0xFF, 0x00 },
|
|
{ 0x33, 0xCC, 0x00, 0xCC, 0x33, 0xCC,
|
|
0x33, 0x00, 0xFF, 0x00, 0xFF, 0x00 } };
|
|
/* DQS CPU<>DRAM map */
|
|
const u8 dqs_map[2][8] = {
|
|
{ 0, 3, 1, 2, 4, 5, 6, 7 },
|
|
{ 1, 0, 4, 5, 2, 3, 6, 7 } };
|
|
|
|
/* Rcomp resistor */
|
|
const u16 RcompResistor[3] = { 200, 81, 162 };
|
|
|
|
/* Rcomp target */
|
|
const u16 RcompTarget[5] = { 100, 40, 40, 23, 40 };
|
|
|
|
memcpy(pei_data->dq_map, dq_map, sizeof(dq_map));
|
|
memcpy(pei_data->dqs_map, dqs_map, sizeof(dqs_map));
|
|
memcpy(pei_data->RcompResistor, RcompResistor,
|
|
sizeof(RcompResistor));
|
|
memcpy(pei_data->RcompTarget, RcompTarget,
|
|
sizeof(RcompTarget));
|
|
}
|