diff -rup memtest86+-4.20.orig/dmi.c memtest86+-4.20/dmi.c --- memtest86+-4.20.orig/dmi.c 2011-01-23 20:11:04.000000000 +0200 +++ memtest86+-4.20/dmi.c 2011-11-16 23:17:07.409478894 +0200 @@ -263,12 +263,16 @@ void print_dmi_info(void){ cprint(yof+1, POP2_X+17+of, ","); of++; } - hprint3(yof+1, POP2_X+17+of, md_maps[j]->start<<10, 12); - of += 12; + hprint3(yof+1, POP2_X+17+of, md_maps[j]->start>>22, 4); + of += 4; + hprint3(yof+1, POP2_X+17+of, md_maps[j]->start<<10, 8); + of += 8; cprint(yof+1, POP2_X+17+of, "-"); of++; - hprint3(yof+1, POP2_X+17+of, md_maps[j]->end<<10, 12); - of += 12; + hprint3(yof+1, POP2_X+17+of, md_maps[j]->end>>22, 4); + of += 4; + hprint3(yof+1, POP2_X+17+of, ((md_maps[j]->end+1)<<10) - 1, 8); + of += 8; } if (!mapped) cprint(yof+1, POP2_X+17, "No mapping (Interleaved Device)"); diff -rup memtest86+-4.20.orig/main.c memtest86+-4.20/main.c --- memtest86+-4.20.orig/main.c 2011-01-23 20:11:04.000000000 +0200 +++ memtest86+-4.20/main.c 2011-11-17 00:47:14.552480190 +0200 @@ -112,7 +112,8 @@ static void __run_at(unsigned long addr) memmove((void *)addr, &_start, _end - _start); /* Jump to the start address */ p = (ulong *)(addr + startup_32 - _start); - goto *p; + + asm __volatile__ ("jmp *%%eax" : : "a" (p)); } static unsigned long run_at_addr = 0xffffffff; diff -rup memtest86+-4.20.orig/spd.c memtest86+-4.20/spd.c --- 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} }; @@ -472,4 +481,4 @@ char* convert_hex_to_char(unsigned hex_o } return buf; -} \ No newline at end of file +} Only in memtest86+-4.20: update.php?VHNJbWM2MzFVMVVBQVIyTGVLbzo2NzA2ODIz