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

Alexey Kardashevskiy aik at ozlabs.ru
Mon Mar 16 13:29:02 AEDT 2020


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>
---
 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;
-- 
2.17.1



More information about the SLOF mailing list