2010/12/21 Keith Hui <<a href="mailto:buurin@gmail.com">buurin@gmail.com</a>>:<br>> As promised. Attached is my fix:<br><br>Copy/paste:<br><br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">
Index: src/northbridge/intel/i440bx/raminit.c<br>===================================================================<br>--- src/northbridge/intel/i440bx/raminit.c (revision 6205)<br>+++ src/northbridge/intel/i440bx/raminit.c (working copy)<br>
@@ -38,13 +38,14 @@<br><br> /* Debugging macros. */<br> #if CONFIG_DEBUG_RAM_SETUP<br>-#define PRINT_DEBUG(x) print_debug(x)<br>-#define PRINT_DEBUG_HEX8(x) print_debug_hex8(x)<br>-#define PRINT_DEBUG_HEX16(x) print_debug_hex16(x)<br>
-#define PRINT_DEBUG_HEX32(x) print_debug_hex32(x)<br>+#include "lib/debug.c"<br>+#define PRINT_DEBUG(x...) printk(BIOS_DEBUG, x)<br>+#define PRINT_DEBUG_HEX8(x) PRINT_DEBUG("%02x", x)<br>+#define PRINT_DEBUG_HEX16(x) PRINT_DEBUG("%04x", x)<br>
+#define PRINT_DEBUG_HEX32(x) PRINT_DEBUG("%08x", x)<br> #define DUMPNORTH() dump_pci_device(NB)<br> #else<br>-#define PRINT_DEBUG(x)<br>+#define PRINT_DEBUG(x...)<br> #define PRINT_DEBUG_HEX8(x)<br> #define PRINT_DEBUG_HEX16(x)<br>
#define PRINT_DEBUG_HEX32(x)<br>@@ -621,11 +622,7 @@<br> continue;<br> reg = (reg & 0xf8) | refresh_rate_map[(value & 0x7f)];<br><br>- PRINT_DEBUG(" Enabling refresh (DRAMC = 0x");<br>- PRINT_DEBUG_HEX8(reg);<br>
- PRINT_DEBUG(") for DIMM ");<br>- PRINT_DEBUG_HEX8(i);<br>- PRINT_DEBUG("\n");<br>+ PRINT_DEBUG(" Enabling refresh (DRAMC = 0x%02x) for DIMM %02x\n", reg, i);<br> }<br><br> pci_write_config8(NB, DRAMC, reg);<br>
@@ -662,8 +659,8 @@<br> }<br><br> struct dimm_size {<br>- unsigned long side1;<br>- unsigned long side2;<br>+ u32 side1;<br>+ u32 side2;<br> };<br><br> static struct dimm_size spd_get_dimm_size(unsigned int device)<br>@@ -718,15 +715,13 @@<br>
* modules by setting them to a supported size.<br> */<br> if(sz.side1 > 128) {<br>- PRINT_DEBUG("Side1 was 0x");<br>- PRINT_DEBUG_HEX16(sz.side1);<br>- PRINT_DEBUG(" but only 128MB will be used.\n");<br>
+ PRINT_DEBUG("Side1 was %dMB but only 128MB will be used.\n",<br>+ sz.side1);<br> sz.side1 = 128;<br><br> if(sz.side2 > 128) {<br>- PRINT_DEBUG("Side2 was 0x");<br>- PRINT_DEBUG_HEX16(sz.side2);<br>
- PRINT_DEBUG(" but only 128MB will be used.\n");<br>+ PRINT_DEBUG("Side2 was %dMB but only 128MB will be used.\n",<br>+ sz.side2);<br> sz.side2 = 128;<br> }<br> }<br>@@ -759,15 +754,12 @@<br>
if (value == SPD_MEMORY_TYPE_EDO<br> || value == SPD_MEMORY_TYPE_SDRAM) {<br><br>- PRINT_DEBUG("Found ");<br> if (value == SPD_MEMORY_TYPE_EDO) {<br> edosd |= 0x02;<br> } else if (value == SPD_MEMORY_TYPE_SDRAM) {<br>
edosd |= 0x04;<br> }<br>- PRINT_DEBUG("DIMM in slot ");<br>- PRINT_DEBUG_HEX8(i);<br>- PRINT_DEBUG("\n");<br>+ PRINT_DEBUG("Found DIMM in slot %d\n", i);<br><br> if (edosd == 0x06) {<br>
print_err("Mixing EDO/SDRAM unsupported!\n");<br>@@ -925,21 +917,15 @@<br><br> /* Set paging policy register. */<br> pci_write_config8(NB, PGPOL + 1, bpr);<br>- PRINT_DEBUG("PGPOL[BPR] has been set to 0x");<br>
- PRINT_DEBUG_HEX8(bpr);<br>- PRINT_DEBUG("\n");<br>+ PRINT_DEBUG("PGPOL[BPR] has been set to 0x%02x\n", bpr);<br><br> /* Set DRAM row page size register. */<br> pci_write_config16(NB, RPS, rps);<br>
- PRINT_DEBUG("RPS has been set to 0x");<br>- PRINT_DEBUG_HEX16(rps);<br>- PRINT_DEBUG("\n");<br>+ PRINT_DEBUG("RPS has been set to 0x%04x\n", rps);<br><br> /* ### ECC */<br> pci_write_config8(NB, NBXCFG + 3, nbxecc);<br>
- PRINT_DEBUG("NBXECC[31:24] has been set to 0x");<br>- PRINT_DEBUG_HEX8(nbxecc);<br>- PRINT_DEBUG("\n");<br>+ PRINT_DEBUG("NBXECC[31:24] has been set to 0x%02x\n", nbxecc);<br><br> /* Set DRAMC[4:3] to proper memory type (EDO/SDRAM).<br>
* TODO: Registered SDRAM support.<br>@@ -956,9 +942,7 @@<br> value = pci_read_config8(NB, DRAMC) & 0xe7;<br> value |= edosd;<br> pci_write_config8(NB, DRAMC, value);<br>- PRINT_DEBUG("DRAMC has been set to 0x");<br>
- PRINT_DEBUG_HEX8(value);<br>- PRINT_DEBUG("\n");<br>+ PRINT_DEBUG("DRAMC has been set to 0x%02x\n", value);<br> }<br><br> void sdram_set_spd_registers(void)<br>Index: src/northbridge/intel/i440bx/debug.c<br>
===================================================================<br>--- src/northbridge/intel/i440bx/debug.c (revision 6205)<br>+++ src/northbridge/intel/i440bx/debug.c (working copy)<br>@@ -1,66 +1,35 @@<br> #include "raminit.h"<br>
+#include <spd.h><br>+#include <console/console.h><br><br> void dump_spd_registers(void)<br> {<br> #if CONFIG_DEBUG_RAM_SETUP<br> int i;<br>- print_debug("\n");<br>+ printk(BIOS_DEBUG, "\n");<br>
for(i = 0; i < DIMM_SOCKETS; i++) {<br> unsigned device;<br> device = DIMM0 + i;<br> if (device) {<br> int j;<br>- print_debug("dimm: ");<br>- print_debug_hex8(i);<br>- print_debug(".0: ");<br>
- print_debug_hex8(device);<br>+ printk(BIOS_DEBUG, "dimm: %d", i);<br>+ printk(BIOS_DEBUG, ".0: %02x", device);<br></blockquote><div><br>dimm --> DIMM:<br>+printk(BIOS_DEBUG, "DIMM: %d.0: %02x", i, device);<br>
</div><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote"> for(j = 0; j < 256; j++) {<br> int status;<br> unsigned char byte;<br>
if ((j & 0xf) == 0) {<br>- print_debug("\n");<br>- print_debug_hex8(j);<br>- print_debug(": ");<br>+ printk(BIOS_DEBUG, "\n%02x: ", j);<br> }<br> status = spd_read_byte(device, j);<br>
if (status < 0) {<br>- print_debug("bad device\n");<br>+ printk(BIOS_DEBUG, "bad device\n");<br> break;<br> }<br> byte = status & 0xff;<br>- print_debug_hex8(byte);<br>
- print_debug_char(' ');<br>+ printk(BIOS_DEBUG, "%02x ", byte);<br> }<br>- print_debug("\n");<br>+ printk(BIOS_DEBUG, "\n");<br> }<br> }<br> #endif<br> }<br>-<br>-#if 0<br>
-void dump_spd_registers(void)<br>-{<br>- unsigned device;<br>- device = SMBUS_MEM_DEVICE_START;<br>- printk(BIOS_DEBUG, "\n");<br>- while(device <= SMBUS_MEM_DEVICE_END) {<br>- int status = 0;<br>- int i;<br>
- printk(BIOS_DEBUG, "dimm %02x", device);<br>- for(i = 0; (i < 256) && (status == 0); i++) {<br>- unsigned char byte;<br>- if ((i % 20) == 0) {<br>- printk(BIOS_DEBUG, "\n%3d: ", i);<br>
- }<br>- status = smbus_read_byte(device, i, &byte);<br>- if (status != 0) {<br>- printk(BIOS_DEBUG, "bad device\n");<br>- continue;<br>- }<br>- printk(BIOS_DEBUG, "%02x ", byte);<br>
- }<br>- device += SMBUS_MEM_DEVICE_INC;<br>- printk(BIOS_DEBUG, "\n");<br>- }<br>-}<br>-#endif<br></blockquote>