diff options
author | Alexey Kardashevskiy <aik@ozlabs.ru> | 2020-03-16 12:24:06 +1100 |
---|---|---|
committer | Alexey Kardashevskiy <aik@ozlabs.ru> | 2020-03-17 09:42:50 +1100 |
commit | 51245a15fef173307ba5e5a2a801b089f56ab4ad (patch) | |
tree | 89300d12cb3c29c55835749b1ad5f094d2426136 | |
parent | 8d4033d0d2e5b434fe14a81d5192cdb1911469e4 (diff) | |
download | SLOF-51245a15fef173307ba5e5a2a801b089f56ab4ad.zip SLOF-51245a15fef173307ba5e5a2a801b089f56ab4ad.tar.gz SLOF-51245a15fef173307ba5e5a2a801b089f56ab4ad.tar.bz2 |
rtas: Move FWNMI log space reservation to QEMU
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.
While we are here, replace 's" /rtas" find-node' with 'rtas-node' which
we just set above.
Reviewed-by: Greg Kurz <groug@kaod.org>
Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
-rw-r--r-- | board-qemu/slof/rtas.fs | 9 | ||||
-rw-r--r-- | 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 90efe60..6d8090f 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 9f23624..b19f6db 100644 --- a/lib/libhvcall/hvcall.S +++ b/lib/libhvcall/hvcall.S @@ -134,13 +134,6 @@ ENTRY(hv_rtas) ori r3,r3,KVMPPC_H_RTAS@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@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; |