Dear Jean-Christophe, 2009/7/8 Jean-Christophe PLAGNIOL-VILLARD <plagn...@jcrosoft.com>: >> +.globl lowlevel_init >> +lowlevel_init: >> + mov r11, lr >> + >> + led 0x0 >> + >> + /* if REMAP bit is set -> memory had been initialzed */ >> + >> + ldr r0, =CONFIG_SYS_AHBC_BASE >> + ldr r1, [r0, #FTAHBC020_OFFSET_ICR] >> + tst r1, #FTAHBC020_ICR_REMAP @ test REMAP bit >> + bne skip_remap >> + >> + led 0x1 >> + >> + bl init_sdmc >> + >> + led 0x2 >> + >> + /* >> + * copy U-Boot to RAM >> + */ >> +copy_code: >> + ldr r0, =ROM_DEFAULT_BASE /* r0 <- source address */ >> + ldr r1, =SDRAM_DEFAULT_BASE /* r1 <- target address */ >> + >> + ldr r2, .LC5 >> + ldr r3, .LC6 >> + sub r2, r3, r2 /* r2 <- size of armboot */ >> + add r2, r0, r2 /* r2 <- source end address */ >> + >> + led 0x3 >> + >> +copy_loop: >> + ldmia r0!, {r3-r10} /* copy from source address [r0] */ >> + stmia r1!, {r3-r10} /* copy to target address [r1] */ >> + cmp r0, r2 /* until source end addreee [r2] */ >> + ble copy_loop >> + > I do not like to do this twice we need to find an otherway > do we really need to run in SDRAM before remap?
I am afraid so. u-boot needs to be copied to SDRAM first to do the remap (swap ROM and SDRAM bank) to make SDRAM base becomes 0x0. cpu/arm920t/start.S then relocates u-boot to the end of SDRAM. Anyway, I have an idea now. I can submit a version that do not do the bank swap (SDRAM stays at 0x10000000). The the mainline keeps beautiful as you wish. Then I create another patch to do the bank swap for our internal use. This should be a win-win. :-) best regards, Po-Yu Chuang _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot