[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