[SLOF] [PATCH slof] rtas: Move FWNMI log space reservation to QEMU

Greg Kurz groug at kaod.org
Tue Mar 17 03:04:43 AEDT 2020


On Mon, 16 Mar 2020 13:29:02 +1100
Alexey Kardashevskiy <aik at ozlabs.ru> wrote:

> This reverts commit 674d0d0cf66d4 ("rtas: Reserve space for FWNMI log")
> which expanded the RTAS blob size to match the QEMU expectation about
> the RTAS area available for FWNMI logs.
> 
> Instead, it relies on QEMU passing the "rtas-size" property and passes it
> through untouched. This adds a check that QEMU allocated enough for
> RTAS blob. This adds a fallback to the default 20 bytes "rtas-size" if
> none specified by QEMU.
> 
> Signed-off-by: Alexey Kardashevskiy <aik at ozlabs.ru>
> ---

LGTM

Reviewed-by: Greg Kurz <groug at kaod.org>

>  board-qemu/slof/rtas.fs | 9 ++++++++-
>  lib/libhvcall/hvcall.S  | 9 ---------
>  2 files changed, 8 insertions(+), 10 deletions(-)
> 
> diff --git a/board-qemu/slof/rtas.fs b/board-qemu/slof/rtas.fs
> index 90efe602f5d7..6d8090fe6f9f 100644
> --- a/board-qemu/slof/rtas.fs
> +++ b/board-qemu/slof/rtas.fs
> @@ -153,7 +153,14 @@ rtas-node set-node
>  ;
>  
>  hv-rtas-get
> -dup encode-int s" rtas-size" s" /rtas" find-node set-property
> +s" rtas-size" rtas-node get-property
> +IF
> +    dup encode-int s" rtas-size" rtas-node set-property
> +ELSE
> +    decode-int nip nip
> +    over 2dup < IF ." No enough space for RTAS: " . . cr abort THEN
> +    2drop
> +THEN
>  to rtas-size
>  to rtas-base
>  
> diff --git a/lib/libhvcall/hvcall.S b/lib/libhvcall/hvcall.S
> index 9f23624d3add..b19f6dbeff2c 100644
> --- a/lib/libhvcall/hvcall.S
> +++ b/lib/libhvcall/hvcall.S
> @@ -134,13 +134,6 @@ ENTRY(hv_rtas)
>  	ori	r3,r3,KVMPPC_H_RTAS at l
>  	HVCALL
>  	blr
> -	/*
> -	 * A space reserved for a RTAS log from Firmware Assisted
> -	 * Non-Maskable Interrupts Option (FWNMI) feature.
> -	 *
> -	 * The QEMU implementation uses 0x30..0x800 for the log.
> -	 */
> -	.space 2048 - (. - hv_rtas)
>  	.globl hv_rtas_size
>  hv_rtas_size:
>  	.long . - hv_rtas;
> @@ -151,8 +144,6 @@ ENTRY(hv_rtas_broken_sc1)
>  	ori	r3,r3,KVMPPC_H_RTAS at l
>  	.long	0x7c000268
>  	blr
> -	/* See the FWNMI note above */
> -	.space 2048 - (. - hv_rtas_broken_sc1)
>  	.globl hv_rtas_broken_sc1_size
>  hv_rtas_broken_sc1_size:
>  	.long . - hv_rtas_broken_sc1;



More information about the SLOF mailing list