On Wed, Jul 24, 2019 at 09:11:54AM +0200, Cédric Le Goater wrote: > On 24/07/2019 05:23, David Gibson wrote: > > On Tue, Jul 23, 2019 at 11:01:38AM +0200, Cédric Le Goater wrote: > >> Devices such as the BT or serial devices require a valid > >> "interrupt-parent" phandle in the device tree and it is currently > >> empty (0x0). It was not a problem until now but since OpenFirmare > >> started using a recent libdft (>= 1.4.7), petitboot fails to boot the > >> system image with error : > >> > >> dtc_resize: fdt_open_into returned FDT_ERR_BADMAGIC > >> > >> Provide a phandle for the LPC bus. > >> > >> Suggested-by: Greg Kurz <gr...@kaod.org> > >> Signed-off-by: Cédric Le Goater <c...@kaod.org> > > > > I've applied this, since it looks to be correct. > > > > But.. can you connect the dots for me in how this being missing > > results in a BADMAGIC error?? > > Some binary called by petitboot segfaults when trying to kexec an image on > a system with a bogus DT (generated by QEMU). I don't know exactly which one > as I only see the error message above and the segv message in dmesg
Ok, I'm still not seeing how that gets you to a BADMAGIC error. > > I didn't notice before because I was using an old open-power-v2.1 image. I > have > switched to more recent ones now : > > > https://openpower.xyz/job/openpower/job/openpower-op-build/label=slave,target=witherspoon/lastSuccessfulBuild/ > > https://openpower.xyz/job/openpower/job/openpower-op-build/label=slave,target=palmetto/lastSuccessfulBuild/ > > Btw, where could we keep some images of reference ? I have a couple of > patches > which enables the QEMU PowerNV machine to boot directly from the PNOR using : > > -drive file=./witherspoon.pnor,format=raw,if=mtd > > Thanks, > > C. > > > > >> --- > >> hw/ppc/pnv.c | 5 +++++ > >> 1 file changed, 5 insertions(+) > >> > >> diff --git a/hw/ppc/pnv.c b/hw/ppc/pnv.c > >> index 36f57479a1f5..2deceecdccb5 100644 > >> --- a/hw/ppc/pnv.c > >> +++ b/hw/ppc/pnv.c > >> @@ -431,9 +431,14 @@ static void pnv_dt_isa(PnvMachineState *pnv, void > >> *fdt) > >> .fdt = fdt, > >> .offset = isa_offset, > >> }; > >> + uint32_t phandle; > >> > >> _FDT((fdt_setprop(fdt, isa_offset, "primary", NULL, 0))); > >> > >> + phandle = qemu_fdt_alloc_phandle(fdt); > >> + assert(phandle > 0); > >> + _FDT((fdt_setprop_cell(fdt, isa_offset, "phandle", phandle))); > >> + > >> /* ISA devices are not necessarily parented to the ISA bus so we > >> * can not use object_child_foreach() */ > >> qbus_walk_children(BUS(pnv->isa_bus), pnv_dt_isa_device, NULL, NULL, > >> NULL, > > > -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
signature.asc
Description: PGP signature