blob: 7d93b1dd2dee6247bfab72ea41ffe75b9e0eba4d [file] [log] [blame]
Stefan Reinauer3c0bfaf2010-12-27 11:34:57 +00001#include <console/console.h>
2#include <arch/io.h>
Stefan Reinauer3c0bfaf2010-12-27 11:34:57 +00003#include <spd.h>
Uwe Hermann115c5b92010-10-09 17:00:18 +00004#include "raminit.h"
5
6void dump_spd_registers(void)
Richard Smith924f92f2006-07-29 17:40:36 +00007{
8 int i;
Keith Hui09f5a742010-12-23 17:12:03 +00009 printk(BIOS_DEBUG, "\n");
Elyes HAOUAS12df9502016-08-23 21:29:48 +020010 for (i = 0; i < DIMM_SOCKETS; i++) {
Richard Smith924f92f2006-07-29 17:40:36 +000011 unsigned device;
Uwe Hermannd773fd32010-11-20 20:23:08 +000012 device = DIMM0 + i;
Richard Smith924f92f2006-07-29 17:40:36 +000013 if (device) {
14 int j;
Keith Hui09f5a742010-12-23 17:12:03 +000015 printk(BIOS_DEBUG, "DIMM %d: %02x", i, device);
Elyes HAOUAS12df9502016-08-23 21:29:48 +020016 for (j = 0; j < 256; j++) {
Richard Smith924f92f2006-07-29 17:40:36 +000017 int status;
18 unsigned char byte;
19 if ((j & 0xf) == 0) {
Keith Hui09f5a742010-12-23 17:12:03 +000020 printk(BIOS_DEBUG, "\n%02x: ", j);
Richard Smith924f92f2006-07-29 17:40:36 +000021 }
22 status = spd_read_byte(device, j);
23 if (status < 0) {
Keith Hui09f5a742010-12-23 17:12:03 +000024 printk(BIOS_DEBUG, "bad device\n");
Richard Smith924f92f2006-07-29 17:40:36 +000025 break;
26 }
27 byte = status & 0xff;
Keith Hui09f5a742010-12-23 17:12:03 +000028 printk(BIOS_DEBUG, "%02x ", byte);
Richard Smith924f92f2006-07-29 17:40:36 +000029 }
Keith Hui09f5a742010-12-23 17:12:03 +000030 printk(BIOS_DEBUG, "\n");
Richard Smith924f92f2006-07-29 17:40:36 +000031 }
Richard Smith924f92f2006-07-29 17:40:36 +000032 }
33}
Stefan Reinauer3c0bfaf2010-12-27 11:34:57 +000034
Stefan Reinauer3c0bfaf2010-12-27 11:34:57 +000035void dump_pci_device(unsigned dev)
36{
37 int i;
Stefan Reinauer65b72ab2015-01-05 12:59:54 -080038 printk(BIOS_DEBUG, "PCI: %02x:%02x.%02x\n", (dev >> 20) & 0xff, (dev >> 15) & 0x1f, (dev >> 12) & 7);
Stefan Reinauer3c0bfaf2010-12-27 11:34:57 +000039
40 for (i = 0; i <= 255; i++) {
41 unsigned char val;
Stefan Reinauer3c0bfaf2010-12-27 11:34:57 +000042 val = pci_read_config8(dev, i);
Stefan Reinauer65b72ab2015-01-05 12:59:54 -080043 if ((i & 0x0f) == 0)
Keith Huif516dd82017-08-25 12:51:14 -040044 printk(BIOS_DEBUG, "%02x:", i);
45 printk(BIOS_DEBUG, " %02x", val);
Stefan Reinauer65b72ab2015-01-05 12:59:54 -080046 if ((i & 0x0f) == 0x0f)
47 printk(BIOS_DEBUG, "\n");
Stefan Reinauer3c0bfaf2010-12-27 11:34:57 +000048 }
49}