soc/amd/*/memmap.c: Report FCH MMIO regions as reserved
The following error is observed in Linux: [ 30.255680] ACPI Error: Aborting method \_SB.FUR4.AOAC._OFF due to previous error (AE_AML_LOOP_TIMEOUT) It caused a boot delay issue in the virtualization case above due to some mmio regions not being passed through and the acpi interpreter waiting. reserve MMIO regions which are used by ACPI code in order to fix this issue. source: "Address Space Mapping" Table in relevant PPRs. Signed-off-by: Maximilian Brune <maximilian.brune@9elements.com> Change-Id: Ia12a3dea0e24ae24fa1f7db7c7f2bd9f7dd6a591 Reviewed-on: https://review.coreboot.org/c/coreboot/+/90212 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
This commit is contained in:
parent
5078d32ccc
commit
02342b31df
5 changed files with 25 additions and 0 deletions
|
|
@ -1,9 +1,11 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <amdblocks/acpimmio_map.h>
|
||||
#include <amdblocks/iomap.h>
|
||||
#include <amdblocks/memmap.h>
|
||||
#include <amdblocks/root_complex.h>
|
||||
#include <device/device.h>
|
||||
#include <soc/iomap.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
|
|
@ -65,5 +67,8 @@ void read_soc_memmap_resources(struct device *dev, unsigned long *idx)
|
|||
/* Reserve fixed IOMMU MMIO region */
|
||||
mmio_range(dev, (*idx)++, IOMMU_RESERVED_MMIO_BASE, IOMMU_RESERVED_MMIO_SIZE);
|
||||
|
||||
mmio_range(dev, (*idx)++, AMD_SB_ACPI_MMIO_ADDR, 0x2000);
|
||||
mmio_range(dev, (*idx)++, ALINK_AHB_ADDRESS, 0x20000);
|
||||
|
||||
read_fsp_resources(dev, idx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <amdblocks/acpimmio_map.h>
|
||||
#include <amdblocks/iomap.h>
|
||||
#include <amdblocks/memmap.h>
|
||||
#include <amdblocks/root_complex.h>
|
||||
#include <device/device.h>
|
||||
#include <soc/iomap.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
|
|
@ -65,5 +67,8 @@ void read_soc_memmap_resources(struct device *dev, unsigned long *idx)
|
|||
/* Reserve fixed IOMMU MMIO region */
|
||||
mmio_range(dev, (*idx)++, IOMMU_RESERVED_MMIO_BASE, IOMMU_RESERVED_MMIO_SIZE);
|
||||
|
||||
mmio_range(dev, (*idx)++, AMD_SB_ACPI_MMIO_ADDR, 0x2000);
|
||||
mmio_range(dev, (*idx)++, ALINK_AHB_ADDRESS, 0x20000);
|
||||
|
||||
read_fsp_resources(dev, idx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <amdblocks/acpimmio_map.h>
|
||||
#include <amdblocks/iomap.h>
|
||||
#include <amdblocks/memmap.h>
|
||||
#include <amdblocks/root_complex.h>
|
||||
#include <device/device.h>
|
||||
#include <soc/iomap.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
|
|
@ -65,5 +67,8 @@ void read_soc_memmap_resources(struct device *dev, unsigned long *idx)
|
|||
/* Reserve fixed IOMMU MMIO region */
|
||||
mmio_range(dev, (*idx)++, IOMMU_RESERVED_MMIO_BASE, IOMMU_RESERVED_MMIO_SIZE);
|
||||
|
||||
mmio_range(dev, (*idx)++, AMD_SB_ACPI_MMIO_ADDR, 0x2000);
|
||||
mmio_range(dev, (*idx)++, ALINK_AHB_ADDRESS, 0x20000);
|
||||
|
||||
read_fsp_resources(dev, idx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,12 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <amdblocks/acpimmio_map.h>
|
||||
#include <amdblocks/iomap.h>
|
||||
#include <amdblocks/memmap.h>
|
||||
#include <amdblocks/root_complex.h>
|
||||
#include <device/device.h>
|
||||
#include <drivers/amd/opensil/opensil.h>
|
||||
#include <soc/iomap.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
|
|
@ -66,6 +68,9 @@ void read_soc_memmap_resources(struct device *dev, unsigned long *idx)
|
|||
/* Reserve fixed IOMMU MMIO region */
|
||||
mmio_range(dev, (*idx)++, IOMMU_RESERVED_MMIO_BASE, IOMMU_RESERVED_MMIO_SIZE);
|
||||
|
||||
mmio_range(dev, (*idx)++, AMD_SB_ACPI_MMIO_ADDR, 0x2000);
|
||||
mmio_range(dev, (*idx)++, ALINK_AHB_ADDRESS, 0x20000);
|
||||
|
||||
if (CONFIG(PLATFORM_USES_FSP2_0))
|
||||
read_fsp_resources(dev, idx);
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
|
||||
#include <amdblocks/acpimmio_map.h>
|
||||
#include <amdblocks/memmap.h>
|
||||
#include <amdblocks/iomap.h>
|
||||
#include <amdblocks/root_complex.h>
|
||||
#include <device/device.h>
|
||||
#include <soc/iomap.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/*
|
||||
|
|
@ -65,5 +67,8 @@ void read_soc_memmap_resources(struct device *dev, unsigned long *idx)
|
|||
/* Reserve fixed IOMMU MMIO region */
|
||||
mmio_range(dev, (*idx)++, IOMMU_RESERVED_MMIO_BASE, IOMMU_RESERVED_MMIO_SIZE);
|
||||
|
||||
mmio_range(dev, (*idx)++, AMD_SB_ACPI_MMIO_ADDR, 0x2000);
|
||||
mmio_range(dev, (*idx)++, ALINK_AHB_ADDRESS, 0x20000);
|
||||
|
||||
read_fsp_resources(dev, idx);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue