BIOS实战之Memory配置

目前有SPD和SMIP两种,现在主要配置SMIP,soft:BMP;需要修改的相关文件smip.c

BGA:贴片式,Dimm:插槽,MemoryDown:贴片必须要用到的:

 ch0 RankEnable-->ch0 Option,这些选项的配置看Memory Spec和Gen,其中Ch0_RankEnable:only for memorydown 这个和CS以及channel有关

RMT mode 运行边缘检验模式,这个如果有问题说明很有可能是电路问题,这个功能打开是给硬件做Debug用的,在宏定义中,Set的值是不变的,option的值为0或者1,config可以是数字,字符,字符串

smip.c的增删改查:(待定)

DQ Mapping for CHO to CH3:

bit0~31对应的ch0、ch2为DQ 8~15,0~7,24~31,16~23

bit0~31对应的ch1、ch3为DQ 0~31

另外有关project.h这个文件,一些基础的信息被收集在了project.h文件中,其中有setup界面中main选项中的众多子选项,其中包括bios vendor,bios version, build time等相关信息,但是这个project.h这个文件是在Build后生成的。

 

#ifdef CONFIG_ODM_PROJECT_ID

Status = GetMemSkuId (&MemSkuId);

if (EFI_ERROR (Status)) {

MemSkuId = 0x00;

}

DEBUG ((EFI_D_INFO, "=====================================================\n"));

// Bit3 Bit2========Bit1 Bit0

// ID3 ID2========ID1 ID0

//2G 0 0 Hynix----: 0 0

//4G 1 0 Samsung-: 1 0

//8G 0 1 Micron---: 0 1

// ID4,Bit4 0 DDR3L,1 LP4

MemSkuId &=0x0F;//now only for LP4

#if (CONFIG_ODM_PROJECT_ID == 0)

MemSkuId = 0x10;//DDR3L

#endif

DEBUG ((EFI_D_INFO, "Memory ID: 0x%2X\n", MemSkuId));

DEBUG ((EFI_D_INFO, "Memory Type: %s %s\n",MemMfg[MemSkuId&0x03],MemSize[((MemSkuId>>2)&0x03)]));

switch ((MemSkuId>>4)&0x01) {

case 0://for LP4

//Bit[4,3]=00 2G(Single Channel), 10 4G(Dual Channel), 01 8G(Dual Channel),11 4G(Single Channel)

switch ((MemSkuId>>2)&0x03) {//Memory Size

case 0x00://2G(Single Channel)8Gb

case 0x02://4G(Dual Channel)8Gb

DramConfig = &(DramConfigData->PlatformDram0);//8Gb Profile

DEBUG ((EFI_D_INFO, "Profile set to 0\n"));

break;

case 0x01://8G(Dual Channel)16Gb

case 0x03://4G(Single Channel)16Gb

DramConfig = &(DramConfigData->PlatformDram1);//16Gb Profile

DEBUG ((EFI_D_INFO, "Profile set to 1\n"));

break;

}

break;

case 1://For DDR3L

DramConfig = &(DramConfigData->PlatformDram5);

DEBUG ((EFI_D_INFO, "Profile set to 5, DDR3L\n"));

break;

}

Memory中channel,DIMM,rank,bank,cs,chip之间的联系:

 

一个channel对应一组内存控制器
————————————————
版权声明:本文为CSDN博主「潇洒Anthony」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011397314/article/details/111122452

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值