Hello,
We know the config.mk defines TI_LOAD_ADDR = 0x40300000, and Makefile defines TEXT_BASE = 0x80700000.
So when we power on the board, the boot code will cope the uboot mini(nand boot) to the 0x40300000.And the uboot -mini starts from 0x40300000.
In file start.S,there is a code about relocate uboot,as following :
#ifndef CONFIG_SKIP_RELOCATE_UBOOT
relocate: @ relocate U-Boot to RAM
adr r0, _start @ r0 <- current position of code
ldr r1, _TEXT_BASE @ test if we run from flash or RAM
cmp r0, r1 @ don't reloc during debug
beq stack_setup
copy_loop:
.................................
.................................
#endif /* CONFIG_SKIP_RELOCATE_UBOOT */
Here I think "_start" equals 0x40300000, and "_TEXT_BASE" equals 0x80700000.
_start is not equal _TEXT_BASE ,so the code will execute the coop_loop.----->This is what I cannot understard,because now the uboot-mini is running
in the ram , and donnot need to use this "relocate"code (because in uboot-mini ,it will use cmd "bootcmd=nand read 0x81000000 0x20000 0x40000; go 0x81000000" to copy the secondary uboot to the DDR).
So please tell me where I misunderstood.
My platform is EVM 8148 and the ezsdk version is 5.05.02
Thank you !