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>