Hi,
I am using ARM cortex A-57 processor and I build image with my own startup code and ld script. The image is loaded with u-boot. When I tried booting the image, it is aborting with following message:
## Booting kernel from Legacy Image at 48080000 ... Image Name: Test_App Image Type: AArch64 Linux Kernel Image (uncompressed) Data Size: 2432 Bytes = 2.4 KiB Load Address: 48080000 Entry Point: 48080000 Verifying Checksum ... OK## Flattened Device Tree blob at 48000000 Booting using the fdt blob at 0x48000000 Loading Kernel Image ... OK Using Device Tree in place at 0000000048000000, end 000000004801153fStarting kernel ..."Synchronous Abort" handler, esr 0x02000000ELR: 48080000LR: 4900193cx0 : 0000000048000000 x1 : 0000000000000000x2 : 0000000000000000 x3 : 0000000000000000x4 : 0000000048080000 x5 : 0000000000000040x6 : 000000000000000a x7 : 000000000000000ax8 : 0000000000000000 x9 : 0000000001008000x10: 000000004800f000 x11: 0000000000000000x12: 00000000bfe6b776 x13: 00000000ffffffffx14: 00000000ffffffff x15: 000000004801153fx16: 0000000000000188 x17: 0000000000000023x18: 00000000bfe6be40 x19: 0000000000000400x20: 0000000049049f98 x21: 0000000000000400x22: 0000000000000000 x23: 00000000bfe6bb30x24: 0000000000000000 x25: 00000000490410e0x26: 0000000048080040 x27: 00000000490018f8x28: 0000000048080000 x29: 00000000bfe6b950Resetting CPU ...resetting ...
I have followed the example proovided in http://www.freertos.org/RTOS-Xilinx-UltraScale_MPSoC_64-bit.html. I have attached the startup code and ld script which I am using.
0257.TestApp.zip
I am new to armv8, please help me in finding the issue?
Regards,
Gokul
Thank you @42Bastian Schick..
I have changed the entry point to 0xE630 0000 and tried building the u-boot image with following command:
mkimage -A arm64 -O linux -T kernel -C none -a 0x48080000 -e 0xE6300000 -n Test_App -d obj/Test_App.bin obj/uTest_App.bin
and tried loading from sd card with command
ext4load mmc 0:1 0x48080000 boot/uTest_App.bin; ext4load mmc 0:1 0x48000000 boot/board.dtb; bootm 0xE6300000 - 48000000
But still the issue exists. Is this correct?
-a <address> is the load address? If so, you cannot start at 0xe6300000 if the code is loaded at 0x48080000. Why don`t you link your code for 0x48080000?