acpi: Add functions to declare ARM GIC V3 hardware

For GICD and GICR a SOC needs to implement 2 callbacks to get the base
of those interrupt controllers.

For all the cpu GIC the code loops over all the DEVICE_PATH_GICC_V3
devices in a similar fashion to how x86 lapics are added. It's up to the
SOC to add those devices to the tree.

Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
Change-Id: I5074d0a76316e854b7801e14b3241f88e805b02f
Reviewed-on: https://review.coreboot.org/c/coreboot/+/76132
Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Arthur Heymans
2023-06-27 16:44:59 +02:00
committed by Lean Sheng Tan
parent fca612497d
commit 3df6cc9de6
5 changed files with 106 additions and 0 deletions

View File

@@ -23,6 +23,7 @@ enum device_path_type {
DEVICE_PATH_MMIO,
DEVICE_PATH_GPIO,
DEVICE_PATH_MDIO,
DEVICE_PATH_GICC_V3,
/*
* When adding path types to this table, please also update the
@@ -48,6 +49,7 @@ enum device_path_type {
"DEVICE_PATH_MMIO", \
"DEVICE_PATH_GPIO", \
"DEVICE_PATH_MDIO", \
"DEVICE_PATH_GICC_V3", \
}
struct domain_path {
@@ -120,6 +122,12 @@ struct mdio_path {
unsigned int addr;
};
struct gicc_v3_path {
unsigned long long mpidr;
unsigned int vgic_mi;
unsigned int pi_gsiv;
};
struct device_path {
enum device_path_type type;
union {
@@ -138,6 +146,7 @@ struct device_path {
struct mmio_path mmio;
struct gpio_path gpio;
struct mdio_path mdio;
struct gicc_v3_path gicc_v3;
};
};