arch/x86: Write ACPI DBG2 table only if the device has been enabled
The commit 93bbd41e
(soc/intel: Enable ACPI DBG2 table generation)
causes a crash on the mainboard mc_apl1. On this mainboard all internal
SOC UARTs in the devicetree are switched off. As a result, no resources
are allocated to the UARTs. The function find_resource() expects an
existing resource. Otherwise, the CPU will stop. It should therefore not
only be queried whether a device is present, but also whether it is
enabled.
Change-Id: I56ce44ae0cf77916fcb640f79fb8944fe33177cd
Signed-off-by: Mario Scheithauer <mario.scheithauer@siemens.com>
Reviewed-on: https://review.coreboot.org/22552
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
This commit is contained in:
parent
ece69f2123
commit
f1eb0ea537
|
@ -8,7 +8,7 @@
|
|||
* Copyright (C) 2005-2009 coresystems GmbH
|
||||
* Copyright (C) 2015 Timothy Pearson <tpearson@raptorengineeringinc.com>,
|
||||
* Raptor Engineering
|
||||
* Copyright (C) 2016 Siemens AG
|
||||
* Copyright (C) 2016-2017 Siemens AG
|
||||
*
|
||||
* ACPI FADT, FACS, and DSDT table support added by
|
||||
* Nick Barker <nick.barker9@btinternet.com>, and those portions
|
||||
|
@ -734,6 +734,10 @@ unsigned long acpi_write_dbg2_pci_uart(acpi_rsdp_t *rsdp, unsigned long current,
|
|||
printk(BIOS_ERR, "%s: Device not found\n", __func__);
|
||||
return current;
|
||||
}
|
||||
if (!dev->enabled) {
|
||||
printk(BIOS_INFO, "%s: Device not enabled\n", __func__);
|
||||
return current;
|
||||
}
|
||||
res = find_resource(dev, PCI_BASE_ADDRESS_0);
|
||||
if (!res) {
|
||||
printk(BIOS_ERR, "%s: Unable to find resource for %s\n",
|
||||
|
|
Loading…
Reference in New Issue