Fix the issue introduced by commit 067e0294806e
("board: xilinx: Remove conditional check for Microblaze").
The scriptaddr should be physical location not really offset
from start of DDR. When U-Boot is not found boot.scr script
address in device tree, then it is assigned  based on script
address  and ram base address for Microblaze and i.e exceeding
DDR memory. To fix this, the script address is assigned
initially with offset instead of address. Later it is added
with ram base address and gets the physical address.

Signed-off-by: Padmarao Begari <padmarao.beg...@amd.com>
---
Changes in v2:
- Update commit subject line
- Update commit message
- Change only for scriptaddr
---
 board/xilinx/microblaze-generic/microblaze-generic.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/board/xilinx/microblaze-generic/microblaze-generic.c 
b/board/xilinx/microblaze-generic/microblaze-generic.c
index 2b035d5358..696484a012 100644
--- a/board/xilinx/microblaze-generic/microblaze-generic.c
+++ b/board/xilinx/microblaze-generic/microblaze-generic.c
@@ -57,7 +57,7 @@ int board_late_init(void)
        max_size = gd->start_addr_sp - CONFIG_STACK_SIZE;
        max_size = round_down(max_size, SZ_16M);
 
-       status |= env_set_hex("scriptaddr", max_size + SZ_2M);
+       status |= env_set_hex("scriptaddr", (max_size - gd->ram_base) + SZ_2M);
 
        status |= env_set_hex("pxefile_addr_r", max_size + SZ_1M);
 
-- 
2.25.1

Reply via email to