diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/mainboard/google/lars/pei_data.c | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/src/mainboard/google/lars/pei_data.c b/src/mainboard/google/lars/pei_data.c index deb488ef4c..67d8644e23 100644 --- a/src/mainboard/google/lars/pei_data.c +++ b/src/mainboard/google/lars/pei_data.c @@ -22,6 +22,7 @@ /* PCH_MEM_CFG[3:0] */ #define MAX_MEMORY_CONFIG 0x10 +#define K4E6E304EB_MEM_ID 0x5 #define RCOMP_TARGET_PARAMS 0x5 void mainboard_fill_pei_data(struct pei_data *pei_data) @@ -41,19 +42,28 @@ void mainboard_fill_pei_data(struct pei_data *pei_data) const u16 RcompResistor[3] = { 200, 81, 162 }; /* Rcomp target */ - static const u16 RcompTarget[MAX_MEMORY_CONFIG][RCOMP_TARGET_PARAMS] = { - { 100, 40, 40, 23, 40 }, - { 100, 40, 40, 23, 40 }, - { 100, 40, 40, 23, 40 }, - /*Strengthen the Rcomp Target Ctrl for 8GB K4E6E304EE -EGCF*/ - { 100, 40, 40, 21, 40 }, }; + static const u16 RcompTarget[RCOMP_TARGET_PARAMS] = { + 100, 40, 40, 23, 40 + }; + /*Strengthen the Rcomp Target Ctrl for 8GB K4E6E304EB -EGCF*/ + static const u16 StrengthendRcompTarget[RCOMP_TARGET_PARAMS] = { + 100, 40, 40, 21, 40 + }; + + /* Default Rcomp Target assignment */ + const u16 *targeted_rcomp = RcompTarget; 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[pei_data->mem_cfg_id][0], - sizeof(RcompTarget[pei_data->mem_cfg_id])); + + /* Override Rcomp Target assignment for specific SKU(s) */ + if (pei_data->mem_cfg_id == K4E6E304EB_MEM_ID) + targeted_rcomp = StrengthendRcompTarget; + + memcpy(pei_data->RcompTarget, targeted_rcomp, + sizeof(pei_data->RcompTarget)); } |