mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2026-04-13 14:21:40 +01:00
lib: utils/irqchip: Add unique_id to plic, aplic, and imsic data
Add a 32-bit unique ID to plic, aplic, and imsic data which can be used to differentiate multiple irqchip devices. Signed-off-by: Anup Patel <anup.patel@oss.qualcomm.com> Link: https://lore.kernel.org/r/20260213055342.3124872-7-anup.patel@oss.qualcomm.com Signed-off-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
@@ -673,6 +673,7 @@ int fdt_parse_aplic_node(const void *fdt, int nodeoff, struct aplic_data *aplic)
|
||||
rc = fdt_get_node_addr_size(fdt, nodeoff, 0, ®_addr, ®_size);
|
||||
if (rc < 0 || !reg_size)
|
||||
return SBI_ENODEV;
|
||||
aplic->unique_id = nodeoff;
|
||||
aplic->addr = reg_addr;
|
||||
aplic->size = reg_size;
|
||||
|
||||
@@ -805,6 +806,7 @@ int fdt_parse_imsic_node(const void *fdt, int nodeoff, struct imsic_data *imsic)
|
||||
if (nodeoff < 0 || !imsic || !fdt)
|
||||
return SBI_ENODEV;
|
||||
|
||||
imsic->unique_id = nodeoff;
|
||||
imsic->targets_mmode = false;
|
||||
val = fdt_getprop(fdt, nodeoff, "interrupts-extended", &len);
|
||||
if (val && len > sizeof(fdt32_t)) {
|
||||
@@ -887,6 +889,7 @@ int fdt_parse_plic_node(const void *fdt, int nodeoffset, struct plic_data *plic)
|
||||
®_addr, ®_size);
|
||||
if (rc < 0 || !reg_size)
|
||||
return SBI_ENODEV;
|
||||
plic->unique_id = nodeoffset;
|
||||
plic->addr = reg_addr;
|
||||
plic->size = reg_size;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user