Hi Alexey,
For memory down configuration ensure below are enabled/filled in FSP
When a DIMM is having its SPD, the smbus reads the SPD and configures the DIMM channels
For Memory down below changes are expected
1. UpdData->MemoryDownEnable is enabled
2) MEMORY_DOWN_DATA PcdMemoryParameters; /* Offset 0x00F0 */ UINT16 PcdRegionTerminator; /* Offset 0x0100 */ } UPD_DATA_REGION
You can check this function below
romstage_fsp_rt_buffer_callback(FSP_INIT_RT_BUFFER *FspRtBuffer) { UPD_DATA_REGION *UpdData = FspRtBuffer->Common.UpdDataRgnPtr;
/* Memory Down overriding */ UpdData->PcdMemoryParameters.EnableMemoryDown = 1; UpdData->PcdMemoryParameters.DRAMSpeed = 1; /* DRAM Speed */ UpdData->PcdMemoryParameters.DRAMType = 1; /* DRAM Type */ UpdData->PcdMemoryParameters.DIMM0Enable = 1; /* DIMM 0 Enable */ UpdData->PcdMemoryParameters.DIMM1Enable = 0; /* DIMM 1 Enable */ UpdData->PcdMemoryParameters.DIMMDWidth = 1; /* DRAM device data width */ #if CONFIG_MINNOWMAX_2GB_SKU UpdData->PcdMemoryParameters.DIMMDensity = 2; /* DRAM device data density 2GB */ #else UpdData->PcdMemoryParameters.DIMMDensity = 1; /* DRAM device data density 1GB */ #endif UpdData->PcdMemoryParameters.DIMMDensity = 2; /* DRAM device data density */ UpdData->PcdMemoryParameters.DIMMBusWidth = 3; /* DIMM Bus Width */ UpdData->PcdMemoryParameters.DIMMSides = 0; /* Ranks Per DIMM */ UpdData->PcdMemoryParameters.DIMMtCL = 7; /* tCL */ UpdData->PcdMemoryParameters.DIMMtRPtRCD = 7; /* tRP and tRCD in DRAM clk - 5:12.5ns, 6:15ns, etc. */ UpdData->PcdMemoryParameters.DIMMtWR = 8; /* tWR in DRAM clk */ UpdData->PcdMemoryParameters.DIMMtWTR = 4; /* tWTR in DRAM clk */ UpdData->PcdMemoryParameters.DIMMtRRD = 6; /* tRRD in DRAM clk */ UpdData->PcdMemoryParameters.DIMMtRTP = 4; /* tRTP in DRAM clk */ UpdData->PcdMemoryParameters.DIMMtFAW = 14; /* tFAW in DRAM clk */
Regards Ranga
From: Alexey Borovikov realman.bau@gmail.com Sent: 02 May 2019 09:20 To: coreboot@coreboot.org Subject: [coreboot] FSP 1.0: How to configure soldered memory with spd
There are two boards Intel Atom E3825 with soldered memory. One board with spd, the other without spd. For a board where there is no spd, after configure the correct memory settings in the fsp, I get a working memory controller. For a board with spd, the fsp configurator does not allow to select soldered memory with spd.
How to configure the board with soldered memory where spd? Is there any difference when using a memory controller with soldered memory with spd and DIMM? FSP 1.0 is working with a chip spd on a smbus?