mb/pcengines/apu2/romstage.c: disable SVI2 wait completion
On some platforms SVI command completion is not reported by voltage regulator. Because of that CPU got stuck in invalid P-State, which resulted in lower frequency and inability to reboot platform without performing cold reset. Change-Id: I260c997f3a0f4547041785a3b9de78e34d22812a Signed-off-by: Krystian Hebel <krystian.hebel@3mdeb.com> Reviewed-on: https://review.coreboot.org/c/30367 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com> Reviewed-by: Piotr Król <piotr.krol@3mdeb.com> Reviewed-by: Patrick Georgi <pgeorgi@google.com>
This commit is contained in:
parent
69b6c56909
commit
fba0320842
|
@ -105,6 +105,16 @@ void cache_as_ram_main(unsigned long bist, unsigned long cpu_init_detectedx)
|
|||
post_code(0x39);
|
||||
AGESAWRAPPER(amdinitearly);
|
||||
|
||||
/* Disable SVI2 controller to wait for command completion */
|
||||
val = pci_read_config32(PCI_DEV(0, 0x18, 5), 0x12C);
|
||||
if (val & (1 << 30)) {
|
||||
printk(BIOS_DEBUG, "SVI2 Wait completion disabled\n");
|
||||
} else {
|
||||
printk(BIOS_DEBUG, "Disabling SVI2 Wait completion\n");
|
||||
val |= (1 << 30);
|
||||
pci_write_config32(PCI_DEV(0, 0x18, 5), 0x12C, val);
|
||||
}
|
||||
|
||||
timestamp_add_now(TS_BEFORE_INITRAM);
|
||||
|
||||
post_code(0x40);
|
||||
|
|
Loading…
Reference in New Issue