[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH qemu] spapr/rtas: Reserve space for RTAS blob and log
From: |
David Gibson |
Subject: |
Re: [PATCH qemu] spapr/rtas: Reserve space for RTAS blob and log |
Date: |
Tue, 17 Mar 2020 09:41:50 +1100 |
On Mon, Mar 16, 2020 at 05:10:56PM +0100, Greg Kurz wrote:
> On Mon, 16 Mar 2020 12:18:41 +1100
> Alexey Kardashevskiy <address@hidden> wrote:
>
> > At the moment SLOF reserves space for RTAS and instantiates the RTAS blob
> > which is 20 bytes binary blob calling an hypercall. The rest of the RTAS
> > area is a log which SLOF has no idea about but QEMU does.
> >
> > This moves RTAS sizing to QEMU and this overrides the size from SLOF.
> > The only remaining problem is that SLOF copies the number of bytes it
> > reserved (2KB for now) so QEMU needs to reserve at least this much;
> > SLOF will be fixed separately to check that rtas-size from QEMU is
> > enough for those 20 bytes the H_RTAS hcall.
>
> 20 bytes >for< the H_RTAS hcall ?
Adjusted in my tree, thanks.
>
> Reviewed-by: Greg Kurz <address@hidden>
>
> >
> > Signed-off-by: Alexey Kardashevskiy <address@hidden>
> > ---
> > include/hw/ppc/spapr.h | 1 +
> > hw/ppc/spapr.c | 1 +
> > 2 files changed, 2 insertions(+)
> >
> > diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h
> > index 2015e37ac5c8..35b489a54929 100644
> > --- a/include/hw/ppc/spapr.h
> > +++ b/include/hw/ppc/spapr.h
> > @@ -736,6 +736,7 @@ void spapr_load_rtas(SpaprMachineState *spapr, void
> > *fdt, hwaddr addr);
> > #define SPAPR_IS_PCI_LIOBN(liobn) (!!((liobn) & 0x80000000))
> > #define SPAPR_PCI_DMA_WINDOW_NUM(liobn) ((liobn) & 0xff)
> >
> > +#define RTAS_SIZE 2048
> > #define RTAS_ERROR_LOG_MAX 2048
> >
> > /* Offset from rtas-base where error log is placed */
> > diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> > index 64bc8b83e91e..d3db3ec56e9c 100644
> > --- a/hw/ppc/spapr.c
> > +++ b/hw/ppc/spapr.c
> > @@ -967,6 +967,7 @@ static void spapr_dt_rtas(SpaprMachineState *spapr,
> > void *fdt)
> > _FDT(fdt_setprop(fdt, rtas, "ibm,max-associativity-domains",
> > maxdomains, sizeof(maxdomains)));
> >
> > + _FDT(fdt_setprop_cell(fdt, rtas, "rtas-size", RTAS_SIZE));
> > _FDT(fdt_setprop_cell(fdt, rtas, "rtas-error-log-max",
> > RTAS_ERROR_LOG_MAX));
> > _FDT(fdt_setprop_cell(fdt, rtas, "rtas-event-scan-rate",
>
--
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