nb/intel/x4x/raminit: Change reset type on incomplete raminit reset

The checkreset() function checks if raminit previously
succeeded (pmcon2 bit7 == 0). If this is not the case it will issue a
hot reset (writing 0x6 to 0xcf9). On the next attempt to boot the
system BOOT_PATH_RESET path will be taken. This boot path can only
successfully initialize memory if the system was reset from a state
where raminit succeeded, which is not the case here.

This can be fixed by issuing a cold reset instead of a hot reset.

Change-Id: Idbcf034c3777a64cc3fb92dc603d10470a6c8cb6
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Reviewed-on: https://review.coreboot.org/19506
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
Arthur Heymans 2017-04-30 17:36:31 +02:00
parent eae521f913
commit 8565c03caf
1 changed files with 1 additions and 1 deletions

View File

@ -330,7 +330,7 @@ static void checkreset_ddr2(int boot_path)
pci_write_config8(PCI_DEV(0, 0, 0), 0xf0, reg8 | (1 << 2));
printk(BIOS_DEBUG, "Reset...\n");
outb(0x6, 0xcf9);
outb(0xe, 0xcf9);
asm ("hlt");
}
pmcon2 |= 0x80;