ppc/pegasos2: Allow setprop in VOF

Linux needs setprop to fix up the device tree, otherwise it's not
finding devices and cannot boot. Since recent VOF change now we need
to add a callback to allow this which is what this patch does.

Signed-off-by: BALATON Zoltan <balaton@eik.bme.hu>
Message-Id: <20210709132920.6544E7457EF@zero.eik.bme.hu>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
BALATON Zoltan 2021-07-09 15:19:13 +02:00 committed by David Gibson
parent 57e28d34c0
commit a312aaeb4d

View File

@ -443,10 +443,17 @@ static target_ulong vhyp_encode_hpt_for_kvm_pr(PPCVirtualHypervisor *vhyp)
return POWERPC_CPU(current_cpu)->env.spr[SPR_SDR1]; return POWERPC_CPU(current_cpu)->env.spr[SPR_SDR1];
} }
static bool pegasos2_setprop(MachineState *ms, const char *path,
const char *propname, void *val, int vallen)
{
return true;
}
static void pegasos2_machine_class_init(ObjectClass *oc, void *data) static void pegasos2_machine_class_init(ObjectClass *oc, void *data)
{ {
MachineClass *mc = MACHINE_CLASS(oc); MachineClass *mc = MACHINE_CLASS(oc);
PPCVirtualHypervisorClass *vhc = PPC_VIRTUAL_HYPERVISOR_CLASS(oc); PPCVirtualHypervisorClass *vhc = PPC_VIRTUAL_HYPERVISOR_CLASS(oc);
VofMachineIfClass *vmc = VOF_MACHINE_CLASS(oc);
mc->desc = "Genesi/bPlan Pegasos II"; mc->desc = "Genesi/bPlan Pegasos II";
mc->init = pegasos2_init; mc->init = pegasos2_init;
@ -462,6 +469,8 @@ static void pegasos2_machine_class_init(ObjectClass *oc, void *data)
vhc->cpu_exec_enter = vhyp_nop; vhc->cpu_exec_enter = vhyp_nop;
vhc->cpu_exec_exit = vhyp_nop; vhc->cpu_exec_exit = vhyp_nop;
vhc->encode_hpt_for_kvm_pr = vhyp_encode_hpt_for_kvm_pr; vhc->encode_hpt_for_kvm_pr = vhyp_encode_hpt_for_kvm_pr;
vmc->setprop = pegasos2_setprop;
} }
static const TypeInfo pegasos2_machine_info = { static const TypeInfo pegasos2_machine_info = {
@ -471,6 +480,7 @@ static const TypeInfo pegasos2_machine_info = {
.instance_size = sizeof(Pegasos2MachineState), .instance_size = sizeof(Pegasos2MachineState),
.interfaces = (InterfaceInfo[]) { .interfaces = (InterfaceInfo[]) {
{ TYPE_PPC_VIRTUAL_HYPERVISOR }, { TYPE_PPC_VIRTUAL_HYPERVISOR },
{ TYPE_VOF_MACHINE_IF },
{ } { }
}, },
}; };