From 51245a15fef173307ba5e5a2a801b089f56ab4ad Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Mon, 16 Mar 2020 12:24:06 +1100 Subject: 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 Signed-off-by: Alexey Kardashevskiy --- 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 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; -- cgit v1.1