--- memtest86+-4.20.orig/spd.c 2011-01-23 20:11:04.000000000 +0200 +++ memtest86+-4.20/spd.c 2011-11-17 00:51:05.861481582 +0200 @@ -32,6 +32,14 @@ unsigned short smbusbase; unsigned char spd[256]; char s[] = {'/', 0, '-', 0, '\\', 0, '|', 0}; +static void piix4_get_smb(void) +{ + unsigned long x; + int result; + result = pci_conf_read(0, smbdev, smbfun, 0x90, 2, &x); + if (result == 0) smbusbase = (unsigned short) x & 0xFFFE; +} + static void ich5_get_smb(void) { unsigned long x; @@ -133,10 +141,11 @@ static struct pci_smbus_controller smbco {0x8086, 0x266A, "Intel ICH6", ich5_get_smb, ich5_read_spd}, {0x8086, 0x24D3, "Intel ICH5", ich5_get_smb, ich5_read_spd}, {0x8086, 0x24C3, "Intel ICH4", ich5_get_smb, ich5_read_spd}, -{0x8086, 0x25A4, "Intel 6300ESB", ich5_get_smb, ich5_read_spd}, +{0x8086, 0x25A4, "Intel 6300ESB", ich5_get_smb, ich5_read_spd}, {0x8086, 0x269B, "Intel ESB2", ich5_get_smb, ich5_read_spd}, {0x8086, 0x8119, "Intel US15W", us15w_get_smb, us15w_read_spd}, -{0x8086, 0x5032, "Intel EP80579", ich5_get_smb, ich5_read_spd}, +{0x8086, 0x5032, "Intel EP80579", ich5_get_smb, ich5_read_spd}, +{0x1002, 0x4385, "AMD SB600/7x0", piix4_get_smb, ich5_read_spd}, {0, 0, "", NULL, NULL} };