background image

6

AMD Geode™ LX Processor DDR2 BIOS Porting Guide

46959A - March 2009

Application Note

the CPLD are typically 0. Set SW_EN# high and
BA[1:0] to 01b.

Next, in MC_CF07_DATA register, set MSR_BA=01b
and PROG_DRAM=1. Then clear PROG_DRAM.

6)

Issue a LOAD MODE command to MR to reset the
DLL. Regardless of whether the DLL is running, AMD
does not recommend omitting this step.

Some memory devices require A[8]=1 and all other
A[n]=0 during this step. The JEDEC spec does not
indicate zeroing all other address pins. Therefore, it is
up to the BIOS to decide how to proceed during this
step.   The other fields in the MR may be constructed
from existing settings in the MC.

Similar to the other LOAD MODE commands, set
SW_EN#=1 and BA[1:0]=00b. In the memory control-
ler, set MSR_BA=00b and PROG_DRAM=1. Then
clear PROG_DRAM.

7)

Wait 200 clock cycles, then issue a PRECHARGE ALL
command. As before, set the CPLD registers so that
A[10] will be high and all other A[n] signals are incon-
sequential. Keep SW_EN# high. Set the FORCE_PRE
bit in the MC_CFCLK_DBUG register to insert the
command before the subsequent step.

8)

Generate two REFRESH commands by twice setting
then clearing the REF_TST bit in the CM_CF07_DATA
register. Clear the FORCE_PRE bit between the two
REFRESH commands to avoid an extra PRECHARGE
ALL command.

9)

Issue a LOAD MODE command to MR to bring the
DLL out of reset. In the CPLD, set A[8]=0. Other A[n]
settings may need to be calculated.

– The burst length is in the MC_CF8F_DATA register 

as TRUNC_DIS. Of course, 4 is the only common 
setting, so this part may be abbreviated.

– The CAS# Latency may also be retrieved from the 

MC_CF8F_DATA register. Due to the memory 
controller restriction, this may be otherwise hard-
coded to 2.

– The Write Recovery for Autoprecharge field is 

calculated using information in SPD[36], which is 
new for DDR2.

Set SW_EN#=1 and BA[1:0]=00b. In the memory con-
troller, set MSR_BA=00b and PROG_DRAM=1. Then
clear PROG_DRAM.

10) Issue a LOAD MODE command to EMR(1) with OCD

set to Default. A[1:0] (driver strength and DLL enable)
are retrieved from MC_CF07_DATA. Set A[9:7]=111b
for OCD default. Set SW_EN#=1 and BA[1:0]=01b. In
MC_CF07_DATA set MSR_BA=01b and PROG_DRAM
=1. Then clear PROG_DRAM.

11) Issue a LOAD MODE command to EMR(1) to exit

OCD programming. A[1:0] (driver strength and DLL
enable) are retrieved from MC_CF07_DATA. Set
A[9:7]=000b for OCD default. Set SW_EN#=1 and
BA[1:0]=01b. In MC_CF07_DATA set MSR_BA=01b
and PROG_DRAM=1. Then clear PROG_DRAM.

12) Now the BIOS is finished with the CPLD and should

give control of the A[12:0] and BA[1:0] signals to the
memory controller. Write any value to REG_B with
SW_EN#=0.

13) Program the refresh rate in the REF_INT field of

MC_CF07_DATA. This process is identical to that used
with DDR technology. Each DIMM indicates its sup-
ported rate in SPD[12]. The BIOS determines an inter-
val that is sufficiently short for both DIMMs.

Note, however, that the location for this step has
moved for DDR2. The reason is that I2C accesses to
an On-DIMM CPLD are very slow. If REF_INT is pro-
grammed earlier, the memory controller generates
REFRESH commands during the initialization
sequence. This disrupts initialization and prevents the
DRAM from operating properly.

There are some additional settings recommended by AMD.

Typically the GLCP_DELAY_CONTROLS register is set 
up very early in POST, and usually with hardcoded 
values. AMD recommends an initial setting of 
F2F100FF_56960304 in this register.

If there is no DIMM1, the SDCLK[5,3,1] should be 
disabled in the GLCP_DELAY_CONTROLS register. Set 
b[55] to do this.

Program the PMode Sensitivity Counter values in the 
MC_CF_PMCTR register. Typical values are PMode0 
counter set to 0 for most aggressive, and PMode1 
counter set to 200h.

Program the PMode1 Up Delay field of 
MC_CF1017_DATA to 209 clocks.

Summary of Contents for Geode LX CS5536

Page 1: ...attern presented on A 15 0 when the command is initiated Note however that A 15 13 0 and BA 2 0 in all cases Software on the LX processor issues LOAD MODE com mands by writing the MC_CF07_DATA registe...

Page 2: ...equired is a lower memory volt age Because the CPLD is contained on the DIMM assembly the only bus available for communication is I2C The CPLD s I2C address is A0 A1 i e the same as DIMM0 The CPLD als...

Page 3: ...command by setting and then clearing the PROG_DRAM bit in the MC_CF07_DATA register AMD also recommends setting the MSR_BA field same register to the desired BA 1 0 levels same procedure as initializi...

Page 4: ...upports 2 or 4 banks but DDR2 devices may support 4 or 8 The Dn_CB fields should be programmed with a 1 to indi cate 4 banks The BIOS should not allow configura tions indicating 8 banks Calculate the...

Page 5: ...CE_PRE bit in the MC_CFCLK_DBUG register to insert the PRE CHARGE ALL Additionally the PRECHARGE ALL command requires that A 10 be set high This presents a minor architectural problem The BIOS will no...

Page 6: ...n in SPD 36 which is new for DDR2 Set SW_EN 1 and BA 1 0 00b In the memory con troller set MSR_BA 00b and PROG_DRAM 1 Then clear PROG_DRAM 10 Issue a LOAD MODE command to EMR 1 with OCD set to Default...

Page 7: ...e memory i e cycle time multiplied by the normal CAS Latency The reason for this restriction is that the LX processor s mem ory controller must operate with a Write Latency of 1 clock DDR2 defines CAS...

Page 8: ...antability fitness for a particular purpose or infringement of any intellectual property right AMD s products are not designed intended authorized or warranted for use as components in systems intende...

Reviews: