Re: [PATCH] riscv: qemu: spl: Fix booting Linux kernel with OpenSBI 1.0+

2022-10-16 Thread Rick Chen
> From: Bin Meng 
> Sent: Monday, October 17, 2022 12:42 AM
> To: Rick Jian-Zhi Chen(陳建志) ; Leo Yu-Chi Liang(梁育齊) 
> ; u-boot@lists.denx.de
> Cc: fal...@tinylab.org; Yangjie Zhang 
> Subject: [PATCH] riscv: qemu: spl: Fix booting Linux kernel with OpenSBI 1.0+
>
> Since OpenSBI commit bf3ef53bb7f5 ("firmware: Enable FW_PIC by default"), 
> OpenSBI runs directly at the load address without any code movement.
> This causes the SPL version of QEMU 'virt' U-Boot does not boot Linux kernel 
> anymore. In that case, OpenSBI is loaded and runs at 0x8100, and it 
> creates a 512KiB PMP window from that address. When booting the Linux kernel, 
> moving kernel to its linking address 0x8020 overlaps the PMP window, and 
> a PMP access failure is raised.
>
> Update SPL_OPENSBI_LOAD_ADDR to load OpenSBI to a safe address.
>
> Reported-by: Yangjie Zhang 
> Signed-off-by: Bin Meng 
> Tested-by: Yangjie Zhang 
>
> ---
>
>  board/emulation/qemu-riscv/Kconfig | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Rick Chen 


[PATCH] riscv: qemu: spl: Fix booting Linux kernel with OpenSBI 1.0+

2022-10-16 Thread Bin Meng
Since OpenSBI commit bf3ef53bb7f5 ("firmware: Enable FW_PIC by default"),
OpenSBI runs directly at the load address without any code movement.
This causes the SPL version of QEMU 'virt' U-Boot does not boot Linux
kernel anymore. In that case, OpenSBI is loaded and runs at 0x8100,
and it creates a 512KiB PMP window from that address. When booting
the Linux kernel, moving kernel to its linking address 0x8020
overlaps the PMP window, and a PMP access failure is raised.

Update SPL_OPENSBI_LOAD_ADDR to load OpenSBI to a safe address.

Reported-by: Yangjie Zhang 
Signed-off-by: Bin Meng 
Tested-by: Yangjie Zhang 

---

 board/emulation/qemu-riscv/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/emulation/qemu-riscv/Kconfig 
b/board/emulation/qemu-riscv/Kconfig
index d8c57e6bb0..f9883f18b0 100644
--- a/board/emulation/qemu-riscv/Kconfig
+++ b/board/emulation/qemu-riscv/Kconfig
@@ -23,7 +23,7 @@ config SPL_TEXT_BASE
 
 config SPL_OPENSBI_LOAD_ADDR
hex
-   default 0x8100
+   default 0x8010
 
 config BOARD_SPECIFIC_OPTIONS # dummy
def_bool y
-- 
2.34.1