Currently, only the device tree method is available to locate and perform
pre-initialization steps for the interrupt controller (at the moment, only
one interrupt controller is going to be supported). When `acpi_disabled`
is true, the system will scan for a node with the "interrupt-controller"
property and then call `device_init()` to validate if it is an expected
interrupt controller and if yes then save this node for further usage.
If `acpi_disabled` is false, the system will panic, as ACPI support is not
yet implemented for RISC-V.
Signed-off-by: Oleksii Kurochko <oleksii.kurochko@gmail.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
obj-y += cpufeature.o
obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
obj-y += entry.o
+obj-y += intc.o
obj-y += mm.o
obj-y += pt.o
obj-$(CONFIG_RISCV_64) += riscv64/
const struct dt_device_node *node;
};
+void intc_preinit(void);
+
#endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
--- /dev/null
+/* SPDX-License-Identifier: GPL-2.0-only */
+
+#include <xen/acpi.h>
+#include <xen/device_tree.h>
+#include <xen/init.h>
+#include <xen/lib.h>
+
+void __init intc_preinit(void)
+{
+ if ( acpi_disabled )
+ intc_dt_preinit();
+ else
+ panic("ACPI interrupt controller preinit() isn't implemented\n");
+}
#include <asm/cpufeature.h>
#include <asm/early_printk.h>
#include <asm/fixmap.h>
+#include <asm/intc.h>
#include <asm/sbi.h>
#include <asm/setup.h>
#include <asm/smp.h>
preinit_xen_time();
+ intc_preinit();
+
printk("All set up\n");
machine_halt();