Naresh Solanki has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/79526?usp=email )
Change subject: mb/arm/rdn2: Add ACPI support for GIC table ......................................................................
mb/arm/rdn2: Add ACPI support for GIC table
Add ACPI support for generating: GIC table UART in dsdt.asl
TEST=Make sure the mainboard build is success.
Change-Id: I55ba7c380e0986d9f146ef4c90c9034dd610f750 Signed-off-by: Naresh Solanki naresh.solanki@9elements.com --- M src/mainboard/arm/rdn2/Kconfig M src/mainboard/arm/rdn2/Makefile.inc A src/mainboard/arm/rdn2/acpi.c A src/mainboard/arm/rdn2/dsdt.asl M src/mainboard/arm/rdn2/include/mainboard/addressmap.h 5 files changed, 62 insertions(+), 0 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/26/79526/1
diff --git a/src/mainboard/arm/rdn2/Kconfig b/src/mainboard/arm/rdn2/Kconfig index 2143673..168273d 100644 --- a/src/mainboard/arm/rdn2/Kconfig +++ b/src/mainboard/arm/rdn2/Kconfig @@ -11,6 +11,8 @@ select ARM64_USE_ARCH_TIMER select BOARD_ROMSIZE_KB_65536 select DRIVERS_UART_PL011 + select HAVE_ACPI_TABLES + select ACPI_COMMON_MADT_GICC_V3 select MISSING_BOARD_RESET select PCI select PROBE_RAM diff --git a/src/mainboard/arm/rdn2/Makefile.inc b/src/mainboard/arm/rdn2/Makefile.inc index 370e8ff..d54987d 100644 --- a/src/mainboard/arm/rdn2/Makefile.inc +++ b/src/mainboard/arm/rdn2/Makefile.inc @@ -11,6 +11,7 @@ bootblock-y += mmio.c romstage-y += mmio.c ramstage-y += mmio.c +ramstage-y += acpi.c
CPPFLAGS_common += -mcmodel=large -I$(src)/mainboard/$(MAINBOARDDIR)/include CPPFLAGS_common += -mstrict-align diff --git a/src/mainboard/arm/rdn2/acpi.c b/src/mainboard/arm/rdn2/acpi.c new file mode 100644 index 0000000..95d9f92 --- /dev/null +++ b/src/mainboard/arm/rdn2/acpi.c @@ -0,0 +1,40 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <acpi/acpi.h> +#include <acpi/acpi_iort.h> +#include <console/console.h> +#include <mainboard/addressmap.h> + +void acpi_fill_fadt(acpi_fadt_t *fadt) +{ +} + +unsigned long acpi_fill_madt(unsigned long current) +{ + return current; +} + +uintptr_t platform_get_gicd_base(void) +{ + return RDN2_GIC_DIST; +} + +uintptr_t platform_get_gicr_base(void) +{ + return RDN2_GIC_REDIST; +} + +static uintptr_t gic_its[] = { + RDN2_GIC_ITS(0), + RDN2_GIC_ITS(1), + RDN2_GIC_ITS(2), + RDN2_GIC_ITS(3), + RDN2_GIC_ITS(4), + RDN2_GIC_ITS(5) +}; + +int platform_get_gic_its(uintptr_t **base) +{ + *base = gic_its; + return ARRAY_SIZE(gic_its); +} diff --git a/src/mainboard/arm/rdn2/dsdt.asl b/src/mainboard/arm/rdn2/dsdt.asl new file mode 100644 index 0000000..c926ac9 --- /dev/null +++ b/src/mainboard/arm/rdn2/dsdt.asl @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ + +#include <acpi/acpi.h> +#include <mainboard/addressmap.h> +DefinitionBlock( + "dsdt.aml", + "DSDT", + ACPI_DSDT_REV_2, + OEM_ID, + ACPI_TABLE_CREATOR, + 0x20230621 // OEM revision +) +{ + #include <acpi/dsdt_top.asl> +} diff --git a/src/mainboard/arm/rdn2/include/mainboard/addressmap.h b/src/mainboard/arm/rdn2/include/mainboard/addressmap.h index 592565e..05fdaf5 100644 --- a/src/mainboard/arm/rdn2/include/mainboard/addressmap.h +++ b/src/mainboard/arm/rdn2/include/mainboard/addressmap.h @@ -21,6 +21,10 @@ #define RDN2_GIC_DIST 0x30000000 #define RDN2_GIC_REDIST 0x301C0000
+#define RDN2_GIC_ITS_BASE 0x30040000 +#define RDN2_GIC_ITS_SIZE 0x40000 +#define RDN2_GIC_ITS(i) (RDN2_GIC_ITS_BASE + i * RDN2_GIC_ITS_SIZE) + #define SEC_EL1_TIMER_GISV 29 #define NONSEC_EL1_TIMER_GSIV 30 #define VIRTUAL_TIMER_GSIV 27