pseries: Move /event-sources construction to spapr_build_fdt()
The /event-sources device tree node is built from spapr_create_fdt_skel(). As part of consolidating device tree construction to reset time, this moves it to spapr_build_fdt(). Signed-off-by: David Gibson <david@gibson.dropbear.id.au> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>
This commit is contained in:
parent
3f5dabceba
commit
ffb1e275a6
|
@ -328,9 +328,6 @@ static void *spapr_create_fdt_skel(sPAPRMachineState *spapr)
|
||||||
|
|
||||||
_FDT((fdt_end_node(fdt)));
|
_FDT((fdt_end_node(fdt)));
|
||||||
|
|
||||||
/* event-sources */
|
|
||||||
spapr_events_fdt_skel(fdt, spapr->check_exception_irq);
|
|
||||||
|
|
||||||
/* /hypervisor node */
|
/* /hypervisor node */
|
||||||
if (kvm_enabled()) {
|
if (kvm_enabled()) {
|
||||||
uint8_t hypercall[16];
|
uint8_t hypercall[16];
|
||||||
|
@ -983,6 +980,9 @@ static void *spapr_build_fdt(sPAPRMachineState *spapr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* /event-sources */
|
||||||
|
spapr_dt_events(fdt, spapr->check_exception_irq);
|
||||||
|
|
||||||
/* /rtas */
|
/* /rtas */
|
||||||
spapr_dt_rtas(spapr, fdt);
|
spapr_dt_rtas(spapr, fdt);
|
||||||
|
|
||||||
|
|
|
@ -211,23 +211,22 @@ struct hp_log_full {
|
||||||
#define EVENT_MASK_HOTPLUG 0x10000000
|
#define EVENT_MASK_HOTPLUG 0x10000000
|
||||||
#define EVENT_MASK_IO 0x08000000
|
#define EVENT_MASK_IO 0x08000000
|
||||||
|
|
||||||
void spapr_events_fdt_skel(void *fdt, uint32_t check_exception_irq)
|
void spapr_dt_events(void *fdt, uint32_t check_exception_irq)
|
||||||
{
|
{
|
||||||
|
int event_sources, epow_events;
|
||||||
uint32_t irq_ranges[] = {cpu_to_be32(check_exception_irq), cpu_to_be32(1)};
|
uint32_t irq_ranges[] = {cpu_to_be32(check_exception_irq), cpu_to_be32(1)};
|
||||||
uint32_t interrupts[] = {cpu_to_be32(check_exception_irq), 0};
|
uint32_t interrupts[] = {cpu_to_be32(check_exception_irq), 0};
|
||||||
|
|
||||||
_FDT((fdt_begin_node(fdt, "event-sources")));
|
_FDT(event_sources = fdt_add_subnode(fdt, 0, "event-sources"));
|
||||||
|
|
||||||
_FDT((fdt_property(fdt, "interrupt-controller", NULL, 0)));
|
_FDT(fdt_setprop(fdt, event_sources, "interrupt-controller", NULL, 0));
|
||||||
_FDT((fdt_property_cell(fdt, "#interrupt-cells", 2)));
|
_FDT(fdt_setprop_cell(fdt, event_sources, "#interrupt-cells", 2));
|
||||||
_FDT((fdt_property(fdt, "interrupt-ranges",
|
_FDT(fdt_setprop(fdt, event_sources, "interrupt-ranges",
|
||||||
irq_ranges, sizeof(irq_ranges))));
|
irq_ranges, sizeof(irq_ranges)));
|
||||||
|
|
||||||
_FDT((fdt_begin_node(fdt, "epow-events")));
|
_FDT(epow_events = fdt_add_subnode(fdt, event_sources, "epow-events"));
|
||||||
_FDT((fdt_property(fdt, "interrupts", interrupts, sizeof(interrupts))));
|
_FDT(fdt_setprop(fdt, epow_events, "interrupts",
|
||||||
_FDT((fdt_end_node(fdt)));
|
interrupts, sizeof(interrupts)));
|
||||||
|
|
||||||
_FDT((fdt_end_node(fdt)));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtas_event_log_queue(int log_type, void *data, bool exception)
|
static void rtas_event_log_queue(int log_type, void *data, bool exception)
|
||||||
|
|
|
@ -581,7 +581,7 @@ struct sPAPREventLogEntry {
|
||||||
};
|
};
|
||||||
|
|
||||||
void spapr_events_init(sPAPRMachineState *sm);
|
void spapr_events_init(sPAPRMachineState *sm);
|
||||||
void spapr_events_fdt_skel(void *fdt, uint32_t epow_irq);
|
void spapr_dt_events(void *fdt, uint32_t check_exception_irq);
|
||||||
int spapr_h_cas_compose_response(sPAPRMachineState *sm,
|
int spapr_h_cas_compose_response(sPAPRMachineState *sm,
|
||||||
target_ulong addr, target_ulong size,
|
target_ulong addr, target_ulong size,
|
||||||
bool cpu_update, bool memory_update);
|
bool cpu_update, bool memory_update);
|
||||||
|
|
Loading…
Reference in New Issue