Does someone experience problem to run u-boot relocated code from DRAM in non SPL mode on LS2088A device (ARM64). On my custom target based on LS2088A SoC U-Boot version 2016.09 works fine. However, the newest U-Boot 2017-11 from LSDK git causes "Synchronous Abort" exception right after an attempt to return from relocation function and run just relocated code. Interesting that it works fine if I compile u-boot with I-Cache disabled. Relocation function in relocate_64.S does its work fine and put u-boot part in RAM perfect. After return from this function PC (program counter) is set correctly on the instruction in the DRAM that should be executed next after "relocate_code" assembler routine but step in goes to exception. Any idea how to overcome the issue?
DRAM:
DDR 15.9 GiB (DDR4, 64-bit, CL=11, ECC on)
DDR Controller Interleaving Mode: 256B
DPDDR 1 GiB (DDR4, 32-bit, CL=11, ECC off)
initcall: 000000002001e14c
New Stack Pointer is: fbb13d60
initcall: 000000002001e0ac
initcall: 000000002001e07c
initcall: 000000002001e084
initcall: 000000002001e268
Relocation Offset is: dbd14000
Relocating to fbd15000, new gd at fbb13d78, sp at fbb13d60
"Synchronous Abort" handler, esr 0x8600000d
ELR: fbd1ab84
LR: fbd1ab84
x0 : 00000000fbdadf80 x1 : 00000000fbdadf50
x2 : 0000000000000040 x3 : 000000000000003f
x4 : 00000000dbd14403 x5 : 0000000000000007
x6 : 0000000000000001 x7 : 000000000000000f
x8 : 00000000000000cd x9 : 00000000dbd14000
x10: 0000000000000000 x11: 0000000020001228
x12: 000000000000000d x13: 0000000000000006
x14: 00000000000000c8 x15: 0000000020004d48
x16: 0000000000000000 x17: 0000000000000000
x18: 00000000fbb13d78 x19: 0000000000000000
x20: 0000000000000000 x21: 0000000000000000
x22: 0000000000000000 x23: 0000000000000000
x24: 0000000000000000 x25: 0000000000000000
x26: 0000000800000000 x27: 0000000000000000
x28: 0000000000000000 x29: 00000000200010b8
Resetting CPU ...
### ERROR ### Please RESET the board ###
Hello Alexy Rozen,
According to the error log, it seems that the u-boot source code lacking the patch to support memory >2GB, however this fix has already been applied in both SDK 2.0 and LSDK 1803.
Please check whether you used u-boot source code from LSDK 1803, the commit ID is as the following.
00cde476c84275124a51cb55a53a253cd75fba6c
Please check whether CONFIG_NR_DRAM_BANKS is configured correctly in u-boot header file include/configs/ls2080a_common.h(ls2080ardb.h).
Have a great day,
TIC
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------