忽然发现自己菜到家了,
既然src/mainboard/google/glados/romstage.c 有这样的代码
那为什么不能直接用一个宏定义 把这个常量改成自己要的值呢?在 glados 的另一个设备(lars)分支中,就有这样的代码:
这段代码是为了配置不同 SKU 的 RcompTarget
但既然 Caroline 没这样的代码 16GB 版本还能正常使用,姑且认为它不需要修改 RcompTarget
同样的,为了加载所需的 K4EBE304EB-EGCG 内存的 SPD 信息,因为其已包含在 spd.bin 文件中,根据 makefile.inc,只需要在src/mainboard/google/glados/romstage.c 加入类似的宏定义
这样无论 GPIO 读出怎样的电平,SPD 都只会加载 K4EBE304EB_EGCG 的 SPD 信息
既然src/mainboard/google/glados/romstage.c 有这样的代码
代码:
const int spd_idx = gpio_base2_value(spd_gpios, ARRAY_SIZE(spd_gpios));
那为什么不能直接用一个宏定义 把这个常量改成自己要的值呢?在 glados 的另一个设备(lars)分支中,就有这样的代码:
代码:
#define K4E6E304EB_MEM_ID 0x5
代码:
/*Strengthen the Rcomp Target Ctrl for 8GB K4E6E304EB -EGCF*/
const u16 StrengthendRcompTarget[5] = { 100, 40, 40, 21, 40 };
/* Default Rcomp Target assignment */
const u16 *targeted_rcomp = RcompTarget;
/* Override Rcomp Target assignment for specific SKU(s) */
if (spd_index == K4E6E304EB_MEM_ID)
targeted_rcomp = StrengthendRcompTarget;
这段代码是为了配置不同 SKU 的 RcompTarget
但既然 Caroline 没这样的代码 16GB 版本还能正常使用,姑且认为它不需要修改 RcompTarget
同样的,为了加载所需的 K4EBE304EB-EGCG 内存的 SPD 信息,因为其已包含在 spd.bin 文件中,根据 makefile.inc,只需要在src/mainboard/google/glados/romstage.c 加入类似的宏定义
代码:
#define K4EBE304EB_MEM_ID 0x2
代码:
const int spd_idx = K4EBE304EB_MEM_ID;
这样无论 GPIO 读出怎样的电平,SPD 都只会加载 K4EBE304EB_EGCG 的 SPD 信息