嗯,我的想法是直接修改 makefile.inc 或者 spd hex 文件
最终修改 SPD.bin 文件的 hex 文件顺序或者内容
因为 SPD.bin 实际上就是由三种内存颗粒的 SPD Hex 文件按顺序合并生成的
这样的话即便索引号没有变,CBFS 也应指向更换后的新的 SPD 信息。
不知道这样是否可行?
coreboot 关于移植的文档有介绍对于 SPD 的配置,解释了板载内存没有真正的 SPD ,而是使用存储在固件中的 SPD
https://github.com/coreboot/coreboot/blo.../readme.md
stackoverflow 上有人详细介绍了 intel 构架 Bios 内存初始化流程,从这篇文章来看 intel 有关内存控制器的的寄存器的确是通过 SPD 设置的
https://stackoverflow.com/questions/6315...alize-dram
还有一篇关于 coreboot 移植的笔记,也有提及 SPD 在内存初始化之前就被传递给 FSP
https://github.com/hardenedlinux/embedde...5%85%B3.md
从以上文档来看,我觉得 SPD 应该是对颗粒识别起决定性作用的
另外我觉得还可以做一点简单的测试来检验 SPD 修改是否有效,比如修改 SPD 的供应商或者型号代码,这些并不涉及时序和频率,不会对运行造成影响,但足以通过软件检验出修改是否有效
甚至可以尝试给颗粒降频,降低容量。不过手头没有编程器,怕成砖了救不回来,不敢轻易尝试
比较奇怪的是用 AIDA64 是读不出 Chromebook Pro 的 SPD 的,可能 AIDA64 是通过串口读 EEPROM, 而这个是板载内存所以读不出来
换颗粒是要寄过去换,当然就目前情况来看最坏的情况就是只识别 4GB 内存,当然乐观一点,只要颗粒在板子上总有办法可以让它识别
最终修改 SPD.bin 文件的 hex 文件顺序或者内容
因为 SPD.bin 实际上就是由三种内存颗粒的 SPD Hex 文件按顺序合并生成的
这样的话即便索引号没有变,CBFS 也应指向更换后的新的 SPD 信息。
不知道这样是否可行?
coreboot 关于移植的文档有介绍对于 SPD 的配置,解释了板载内存没有真正的 SPD ,而是使用存储在固件中的 SPD
https://github.com/coreboot/coreboot/blo.../readme.md
stackoverflow 上有人详细介绍了 intel 构架 Bios 内存初始化流程,从这篇文章来看 intel 有关内存控制器的的寄存器的确是通过 SPD 设置的
https://stackoverflow.com/questions/6315...alize-dram
还有一篇关于 coreboot 移植的笔记,也有提及 SPD 在内存初始化之前就被传递给 FSP
https://github.com/hardenedlinux/embedde...5%85%B3.md
从以上文档来看,我觉得 SPD 应该是对颗粒识别起决定性作用的
另外我觉得还可以做一点简单的测试来检验 SPD 修改是否有效,比如修改 SPD 的供应商或者型号代码,这些并不涉及时序和频率,不会对运行造成影响,但足以通过软件检验出修改是否有效
甚至可以尝试给颗粒降频,降低容量。不过手头没有编程器,怕成砖了救不回来,不敢轻易尝试
比较奇怪的是用 AIDA64 是读不出 Chromebook Pro 的 SPD 的,可能 AIDA64 是通过串口读 EEPROM, 而这个是板载内存所以读不出来
换颗粒是要寄过去换,当然就目前情况来看最坏的情况就是只识别 4GB 内存,当然乐观一点,只要颗粒在板子上总有办法可以让它识别