qemu-ppc
[Top][All Lists]
Advanced

[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: Greg Kurz
Subject: Re: [PATCH qemu] spapr/rtas: Reserve space for RTAS blob and log
Date: Mon, 16 Mar 2020 17:10:56 +0100

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 ?

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




reply via email to

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