mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/riscv: introduce intc_preinit()
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>
This commit is contained in:
1 parent
e4ab69031f
commit
0e9bda67af
4 files changed
+20
No files matched your search
@@ -2,6 +2,7 @@ obj-y += aplic.o
|
||||
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/
|
||||
|
||||
@@ -17,4 +17,6 @@ struct intc_info {
|
||||
const struct dt_device_node *node;
|
||||
};
|
||||
|
||||
void intc_preinit(void);
|
||||
|
||||
#endif /* ASM__RISCV__INTERRUPT_CONTOLLER_H */
|
||||
@@ -0,0 +1,14 @@
|
||||
/* 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");
|
||||
}
|
||||
@@ -16,6 +16,7 @@
|
||||
#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>
|
||||
@@ -128,6 +129,8 @@ void __init noreturn start_xen(unsigned long bootcpu_id,
|
||||
|
||||
preinit_xen_time();
|
||||
|
||||
intc_preinit();
|
||||
|
||||
printk("All set up\n");
|
||||
|
||||
machine_halt();
|
||||
|
||||