diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/config/Options.lb | 20 | ||||
-rw-r--r-- | src/sdram/generic_dump_spd.c | 68 |
2 files changed, 68 insertions, 20 deletions
diff --git a/src/config/Options.lb b/src/config/Options.lb index cfc8670d69..98d9e8a3bd 100644 --- a/src/config/Options.lb +++ b/src/config/Options.lb @@ -515,26 +515,6 @@ define IDE_OFFSET end ############################################### -# SMBUS options -############################################### - -define SMBUS_MEM_DEVICE_START - default (0xa << 3) - export always - comment "Start address of SMBUS device" -end -define SMBUS_MEM_DEVICE_END - default {SMBUS_MEM_DEVICE_START +1} - export always - comment "End address of SMBUS device" -end -define SMBUS_MEM_DEVICE_INC - default 1 - export always - comment "Increment value SMBUS" -end - -############################################### # Misc options ############################################### diff --git a/src/sdram/generic_dump_spd.c b/src/sdram/generic_dump_spd.c index 27f1844d3c..2a71353b60 100644 --- a/src/sdram/generic_dump_spd.c +++ b/src/sdram/generic_dump_spd.c @@ -1,3 +1,70 @@ +/* + * This code is derived from the Opteron boards' debug.c. + * It should go away either there or here, depending what fits better. + */ + +static void dump_spd_registers(const struct mem_controller *ctrl) +{ + int i; + print_debug("\r\n"); + for(i = 0; i < 4; i++) { + unsigned device; + device = ctrl->channel0[i]; + if (device) { + int j; + print_debug("dimm: "); + print_debug_hex8(i); + print_debug(".0: "); + print_debug_hex8(device); + for(j = 0; j < 256; j++) { + int status; + unsigned char byte; + if ((j & 0xf) == 0) { + print_debug("\r\n"); + print_debug_hex8(j); + print_debug(": "); + } + status = spd_read_byte(device, j); + if (status < 0) { + print_debug("bad device\r\n"); + break; + } + byte = status & 0xff; + print_debug_hex8(byte); + print_debug_char(' '); + } + print_debug("\r\n"); + } + device = ctrl->channel1[i]; + if (device) { + int j; + print_debug("dimm: "); + print_debug_hex8(i); + print_debug(".1: "); + print_debug_hex8(device); + for(j = 0; j < 256; j++) { + int status; + unsigned char byte; + if ((j & 0xf) == 0) { + print_debug("\r\n"); + print_debug_hex8(j); + print_debug(": "); + } + status = spd_read_byte(device, j); + if (status < 0) { + print_debug("bad device\r\n"); + break; + } + byte = status & 0xff; + print_debug_hex8(byte); + print_debug_char(' '); + } + print_debug("\r\n"); + } + } +} + +#if 0 void dump_spd_registers(void) { unsigned device; @@ -23,3 +90,4 @@ void dump_spd_registers(void) printk_debug("\n"); } } +#endif |