qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-ppc] [PATCH] ppc/pnv: Generate phandle for the "interrupt-pare


From: Cédric Le Goater
Subject: Re: [Qemu-ppc] [PATCH] ppc/pnv: Generate phandle for the "interrupt-parent" property
Date: Wed, 24 Jul 2019 09:11:54 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0

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 <address@hidden>
>> Signed-off-by: Cédric Le Goater <address@hidden>
> 
> 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

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,
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]