Le 02/11/2010 07:29, Heiko Schocher a écrit : > - preloader copies first page of nand (nand_spl code) to > 0xbb000000 (some cpu internal mem) and jumps to this address > - nand_spl does lowlevelinit, relocate itself to TEXT_BASE (nand_spl code) > - from there, it copies u-boot code from nand to CONFIG_SYS_NAND_U_BOOT_DST > and jumps to CONFIG_SYS_NAND_U_BOOT_START > - u-boot run into board_init_f, calculates new relocation address > and relocates ... > > But there is a possibility to prevent one copy, if TEXT_BASE = > relocation address = CONFIG_SYS_NAND_U_BOOT_DST > > In this case nand_spl code copies u-boot from nand to > CONFIG_SYS_NAND_U_BOOT_DST. As this is equal to the relocation address, > no need to copy code in relocate_code(). > > But as codesize changes (and with it relocation address) this > is not a perfect solution. > > bye, > Heiko
Heiko, Since SPL is loaded in internal RAM, and since U-BOOT itself is loaded only in DRAM, why does SPL need to relocate itself? Can it not run entirely from IRAM and then jump to U-BOOT? If SPL needs to relocate, then why does it run only the copy loop but not the fixups loop? Amicalement, -- Albert. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot