RISC-V: Place DTB at 3GB boundary instead of 4GB
commit1a475d39ef5467ca432c91beb67e9009304bb0bc
authorAtish Patra <atish.patra@wdc.com>
Thu, 7 Jan 2021 09:11:27 +0000 (7 01:11 -0800)
committerAlistair Francis <alistair.francis@wdc.com>
Sat, 16 Jan 2021 18:57:21 +0000 (16 10:57 -0800)
tree10cadfc1cf0310604aaf91914d92caf658fce93f
parentedf647864bdab84ed4b1a4f47ea05be6bb075c69
RISC-V: Place DTB at 3GB boundary instead of 4GB

Currently, we place the DTB at 2MB from 4GB or end of DRAM which ever is
lesser. However, Linux kernel can address only 1GB of memory for RV32.
Thus, it can not map anything beyond 3GB (assuming 2GB is the starting address).
As a result, it can not process DT and panic if opensbi dynamic firmware
is used. While at it, place the DTB further away to avoid in memory placement
issues in future.

Fix this by placing the DTB at 16MB from 3GB or end of DRAM whichever is lower.

Fixes: 66b1205bc5ab ("RISC-V: Copy the fdt in dram instead of ROM")

Reviewed-by: Bin Meng <bin.meng@windriver.com>
Tested-by: Bin Meng <bin.meng@windriver.com>
Signed-off-by: Atish Patra <atish.patra@wdc.com>
Message-id: 20210107091127.3407870-1-atish.patra@wdc.com
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
hw/riscv/boot.c