sb/amd/sb[6|7|8]00: Initialize PIC
The PIC was not initialized, leading to hangs when booting Linux as a payload. This error was hidden by both SeaBIOS and GRUB due to both payloads initializing the PIC as a matter of routine. Change-Id: I9a3b9bd831d4dafdd0bb82ea023026a10fe7efca Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com> Reviewed-on: https://review.coreboot.org/16018 Tested-by: build bot (Jenkins) Reviewed-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-by: Patrick Georgi <pgeorgi@google.com> Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
This commit is contained in:
parent
9e561f8e80
commit
d6319e8cc0
|
@ -20,6 +20,8 @@
|
||||||
#include <device/pci_ids.h>
|
#include <device/pci_ids.h>
|
||||||
#include <device/pci_ops.h>
|
#include <device/pci_ops.h>
|
||||||
#include <pc80/mc146818rtc.h>
|
#include <pc80/mc146818rtc.h>
|
||||||
|
#include <pc80/i8254.h>
|
||||||
|
#include <pc80/i8259.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
#include <arch/acpigen.h>
|
#include <arch/acpigen.h>
|
||||||
#include <pc80/isa-dma.h>
|
#include <pc80/isa-dma.h>
|
||||||
|
@ -60,6 +62,9 @@ static void lpc_init(device_t dev)
|
||||||
pci_write_config8(dev, 0x78, byte);
|
pci_write_config8(dev, 0x78, byte);
|
||||||
|
|
||||||
cmos_check_update_date();
|
cmos_check_update_date();
|
||||||
|
|
||||||
|
setup_i8259(); /* Initialize i8259 pic */
|
||||||
|
setup_i8254(); /* Initialize i8254 timers */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sb600_lpc_read_resources(device_t dev)
|
static void sb600_lpc_read_resources(device_t dev)
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
#include <device/pci_ids.h>
|
#include <device/pci_ids.h>
|
||||||
#include <device/pci_ops.h>
|
#include <device/pci_ops.h>
|
||||||
#include <pc80/mc146818rtc.h>
|
#include <pc80/mc146818rtc.h>
|
||||||
|
#include <pc80/i8254.h>
|
||||||
|
#include <pc80/i8259.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
#include <arch/acpigen.h>
|
#include <arch/acpigen.h>
|
||||||
#include <pc80/isa-dma.h>
|
#include <pc80/isa-dma.h>
|
||||||
|
@ -75,6 +77,9 @@ static void lpc_init(device_t dev)
|
||||||
pci_write_config8(dev, 0x78, byte);
|
pci_write_config8(dev, 0x78, byte);
|
||||||
|
|
||||||
cmos_check_update_date();
|
cmos_check_update_date();
|
||||||
|
|
||||||
|
setup_i8259(); /* Initialize i8259 pic */
|
||||||
|
setup_i8254(); /* Initialize i8254 timers */
|
||||||
}
|
}
|
||||||
|
|
||||||
#if IS_ENABLED(CONFIG_LATE_CBMEM_INIT)
|
#if IS_ENABLED(CONFIG_LATE_CBMEM_INIT)
|
||||||
|
|
|
@ -21,6 +21,8 @@
|
||||||
#include <device/pci_ids.h>
|
#include <device/pci_ids.h>
|
||||||
#include <device/pci_ops.h>
|
#include <device/pci_ops.h>
|
||||||
#include <pc80/mc146818rtc.h>
|
#include <pc80/mc146818rtc.h>
|
||||||
|
#include <pc80/i8254.h>
|
||||||
|
#include <pc80/i8259.h>
|
||||||
#include <pc80/isa-dma.h>
|
#include <pc80/isa-dma.h>
|
||||||
#include <arch/io.h>
|
#include <arch/io.h>
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
|
@ -66,6 +68,9 @@ static void lpc_init(device_t dev)
|
||||||
pci_write_config8(dev, 0xBB, byte);
|
pci_write_config8(dev, 0xBB, byte);
|
||||||
|
|
||||||
cmos_check_update_date();
|
cmos_check_update_date();
|
||||||
|
|
||||||
|
setup_i8259(); /* Initialize i8259 pic */
|
||||||
|
setup_i8254(); /* Initialize i8254 timers */
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sb800_lpc_read_resources(device_t dev)
|
static void sb800_lpc_read_resources(device_t dev)
|
||||||
|
|
Loading…
Reference in New Issue