diff options
author | Furquan Shaikh <furquan@google.com> | 2020-11-25 14:30:15 -0800 |
---|---|---|
committer | Furquan Shaikh <furquan@google.com> | 2020-12-08 22:55:55 +0000 |
commit | b53280ab53e19746be04b67f73f9ce230038b1ee (patch) | |
tree | a45a9374bb028a11f462cd5c735c710825b8480b | |
parent | 886f4e862a0b064d1055aeff8f621f3c5d1ce3ac (diff) | |
download | coreboot-b53280ab53e19746be04b67f73f9ce230038b1ee.tar.xz |
soc/intel/common/systemagent: Reserve window used for extended BIOS decoding
This change reserves the window used for extended BIOS decoding as a
fixed MMIO resource using read_resources callback in systemagent
driver. This ensures that the resource allocator does not allocate
from this window.
Additionally, this window is also marked as fixed memory region in
_CRS for PNP0C02 device.
BUG=b:171534504
Signed-off-by: Furquan Shaikh <furquan@google.com>
Change-Id: I42b5a0ebda2627f72b825551c566cd22dbc5cca7
Reviewed-on: https://review.coreboot.org/c/coreboot/+/48184
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
-rw-r--r-- | src/soc/intel/common/block/acpi/acpi/northbridge.asl | 5 | ||||
-rw-r--r-- | src/soc/intel/common/block/systemagent/systemagent.c | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/soc/intel/common/block/acpi/acpi/northbridge.asl b/src/soc/intel/common/block/acpi/acpi/northbridge.asl index b4b746542e..5780f4c799 100644 --- a/src/soc/intel/common/block/acpi/acpi/northbridge.asl +++ b/src/soc/intel/common/block/acpi/acpi/northbridge.asl @@ -276,6 +276,11 @@ Device (PDRC) /* FLASH range */ Memory32Fixed (ReadOnly, 0, CONFIG_ROM_SIZE, FIOH) +#if CONFIG(FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW) + /* Extended BIOS window */ + Memory32Fixed (ReadOnly, CONFIG_EXT_BIOS_WIN_BASE, CONFIG_EXT_BIOS_WIN_SIZE) +#endif + /* Local APIC range(0xFEE0_0000 to 0xFEEF_FFFF) */ Memory32Fixed (ReadOnly, 0xFEE00000, 0x100000) diff --git a/src/soc/intel/common/block/systemagent/systemagent.c b/src/soc/intel/common/block/systemagent/systemagent.c index 4c5731f9ca..6b039e1c01 100644 --- a/src/soc/intel/common/block/systemagent/systemagent.c +++ b/src/soc/intel/common/block/systemagent/systemagent.c @@ -287,6 +287,11 @@ static void systemagent_read_resources(struct device *dev) if (CONFIG(SA_ENABLE_IMR)) /* Add the isolated memory ranges (IMRs). */ sa_add_imr_resources(dev, &index); + + /* Reserve the window used for extended BIOS decoding. */ + if (CONFIG(FAST_SPI_SUPPORTS_EXT_BIOS_WINDOW)) + mmio_resource(dev, index++, CONFIG_EXT_BIOS_WIN_BASE / KiB, + CONFIG_EXT_BIOS_WIN_SIZE / KiB); } void enable_power_aware_intr(void) |