qemu-ppc
[Top][All Lists]
Advanced

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

Re: [PATCH] hw/ppc/ppc400_bamboo: Set dcr-base correctly when creating U


From: Peter Maydell
Subject: Re: [PATCH] hw/ppc/ppc400_bamboo: Set dcr-base correctly when creating UIC
Date: Mon, 11 Jan 2021 21:10:20 +0000

On Mon, 11 Jan 2021 at 19:19, BALATON Zoltan <balaton@eik.bme.hu> wrote:
>
> On Mon, 11 Jan 2021, Peter Maydell wrote:
> > In commit 0270d74ef8862350 we switched from ppcuic_init() to directly
> > creating the UIC device, but I missed that the Bamboo's UIC has a
> > non-standard DCR base register value (0xc0 rather than the default
> > of 0x30). This made Linux panic early in the boot process.
> >
> > Specify the correct dcr-base property value when creating the UIC.
> >
> > Fixes: 0270d74ef8862350
> > Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
>
> Reported-by?

Yes, sorry --

Reported-by: Nathan Chancellor <natechancellor@gmail.com>

> > diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c
> > index b156bcb9990..2c7a578ba73 100644
> > --- a/hw/ppc/ppc440_bamboo.c
> > +++ b/hw/ppc/ppc440_bamboo.c
> > @@ -198,6 +198,7 @@ static void bamboo_init(MachineState *machine)
> >     uicdev = qdev_new(TYPE_PPC_UIC);
> >     uicsbd = SYS_BUS_DEVICE(uicdev);
> >
> > +    qdev_prop_set_uint32(uicdev, "dcr-base", 0xc0);
>
> This fixes Bamboo but not virtex and 405 which seem to have same problem
> as I've just shown in replies to those patches. So maybe this is better
> fixed by changing default value in ppc-uic.c to 0xc0 then. You say in
> commit message that 0xc0 is non-standard but most boards seem to use that
> than the default you have now. I don't know if there's a standard by the
> way or every CPU implementation just puts DCRs where they want.

My intention when I wrote the code was just to set the default value of
the property on the device to the value that most of the users seemed to
need -- I don't know if there's any actual standard. It sounds
like the actual bug is that I put in the wrong default value by
accident.

For the QEMU boards we have with UICs, they all use 0xc0 --
the only special case is sam460ex because it has four UICs,
so they go at 0xc0, 0xd0, 0xe0, 0xf0.

New patch coming up that fixes the default property value.

thanks
-- PMM



reply via email to

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