arm64: initialize PCI interrupts from FDT

see:
https://www.devicetree.org/open-firmware/practice/imap/imap0_9d.pdf

Change-Id: I4158b022fd4404e3126f92ee844743e39a9b6646
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5560
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: David Karoly <[email protected]>
This commit is contained in:
David Karoly
2022-08-24 09:41:35 +00:00
parent 7b233926e2
commit 226dd60a57
4 changed files with 248 additions and 17 deletions
+4
View File
@@ -11,6 +11,7 @@
struct fdt_bus;
struct fdt_device;
struct fdt_interrupt_map;
typedef struct fdt_bus_module_info {
driver_module_info info;
@@ -25,6 +26,9 @@ typedef struct fdt_device_module_info {
bool (*get_reg)(struct fdt_device* dev, uint32 ord, uint64* regs, uint64* len);
bool (*get_interrupt)(struct fdt_device* dev, uint32 ord,
device_node** interruptController, uint64* interrupt);
struct fdt_interrupt_map* (*get_interrupt_map)(struct fdt_device* dev);
void (*print_interrupt_map)(struct fdt_interrupt_map* interruptMap);
uint32 (*lookup_interrupt_map)(struct fdt_interrupt_map* interruptMap, uint32 childAddr, uint32 childIrq);
} fdt_device_module_info;