<DIV>Scott:<BR> Thanks for your  help,I'll try run coreboot on F2A85-MLE again .</DIV>
<DIV> </DIV>
<DIV>陈军根</DIV>
<DIV><includetail>
<DIV> </DIV>
<DIV> </DIV>
<DIV style="COLOR: #000">
<DIV style="PADDING-BOTTOM: 2px; PADDING-LEFT: 0px; PADDING-RIGHT: 0px; FONT-FAMILY: Arial Narrow; FONT-SIZE: 12px; PADDING-TOP: 2px">------------------ Original ------------------</DIV>
<DIV style="PADDING-BOTTOM: 8px; PADDING-LEFT: 8px; PADDING-RIGHT: 8px; BACKGROUND: #efefef; FONT-SIZE: 12px; PADDING-TOP: 8px">
<DIV id=menu_sender><B>From: </B> "Scott Duplichan"<scott@notabs.org>;</DIV>
<DIV><B>Date: </B> Fri, Mar 7, 2014 12:08 PM</DIV>
<DIV><B>To: </B> "'陈军根'"<cjg@bolod.net>; "'Rudolf Marek'"<r.marek@assembler.cz>; <WBR></DIV>
<DIV><B>Cc: </B> "'coreboot'"<coreboot@coreboot.org>; <WBR></DIV>
<DIV><B>Subject: </B> RE: [coreboot] coreboot on amd A85 can't work</DIV></DIV>
<DIV> </DIV>陈军根 [mailto:cjg@bolod.net]  wrote:<BR><BR>]Hello Rudolf:<BR>]<BR>]Because coreboot can't work in F2A85-MLE, I buy a new mainboard<BR>]f2a85-M,and coreboot can run ok in my f2a85-m, also can boot<BR>]ubuntu.But I find a strange question: when I plug my DIMM in<BR>]DIMM_A1 or DIMM_B1, coreboot can't work, and get the error messages<BR>]"assertion Failed:file<BR>]'src/vendorcode/amd/agesa/f15tn/proc/mem/main/mmexcludedimm.c',line 236".<BR>]but when I plug my DIMM in DIMM_A2 or DIMM_B2, coreboot work well;<BR>]Did coreboot only support DIMM_A2 or DIMM_B2 in F2A85-M?<BR><BR>From my reading of the F2A85-M manual, the preferred slot for<BR>a single DIMM is DIMM_A2. So this coreboot behavior doesn't seem<BR>bad. A few years ago, AMD changed the DIMM population order from<BR>a recommendation to a requirement. It may be that Asus reversed<BR>that change for their ROMs.<BR><BR>]I think this is also the reason why coreboot can't work in F2A85-MLE.<BR>]Because F2A85-MLE only have DIMM_A1 and DIMM_B1.<BR><BR>You are probably correct. Because F2A85-MLE has only one DIMM<BR>per channel, you need this change:<BR><BR>diff --git a/src/mainboard/asus/f2a85-m/buildOpts.c b/src/mainboard/asus/f2a85-m/buildOpts.c<BR>index 0091cd9..73a0a8c 100644<BR>--- a/src/mainboard/asus/f2a85-m/buildOpts.c<BR>+++ b/src/mainboard/asus/f2a85-m/buildOpts.c<BR>@@ -439,7 +439,7 @@ CONST PSO_ENTRY ROMDATA DefaultPlatformMemoryConfiguration[] = {<BR>   //      Speicifes the HW RXEN training seed for a channel of a socket<BR>   //<BR> <BR>-  NUMBER_OF_DIMMS_SUPPORTED (ANY_SOCKET, ANY_CHANNEL, 2),<BR>+  NUMBER_OF_DIMMS_SUPPORTED (ANY_SOCKET, ANY_CHANNEL, 1),<BR>   NUMBER_OF_CHANNELS_SUPPORTED (ANY_SOCKET, 2),<BR> /*<BR>   TODO: is this OK for DDR3 socket FM2?<BR><BR><BR><BR>For completeness, the F2A85-MLE code should also have this change:<BR>diff --git a/src/mainboard/asus/f2a85-m/devicetree.cb b/src/mainboard/asus/f2a85-m/devicetree.cb<BR>index 0014381..97316d6 100644<BR>--- a/src/mainboard/asus/f2a85-m/devicetree.cb<BR>+++ b/src/mainboard/asus/f2a85-m/devicetree.cb<BR>@@ -122,7 +122,7 @@ chip northbridge/amd/agesa/family15tn/root_complex<BR> <BR>  register "spdAddrLookup" = "<BR>  {<BR>- { {0xA0, 0xA4}, {0xA2, 0xA6}, }, // socket 0 - Channel 0 & 1 - 8-bit SPD addresses<BR>+ { {0xA0, 0x00}, {0xA2, 0x00}, }, // socket 0 - Channel 0 & 1 - 8-bit SPD addresses<BR>  { {0x00, 0x00}, {0x00, 0x00}, }, // socket 1 - Channel 0 & 1 - 8-bit SPD addresses<BR>  }"<BR><BR>This should work, assuming F2A85-MLE uses SPD addresses A0 and A2.<BR>If not, adjust as needed.<BR>Thanks,<BR>Scott<BR> <BR>]thanks <BR>]陈军根<BR> <BR> <BR> <BR> <BR></DIV></includetail></DIV>