u-boot 1.1.6
/ board / aesop6410 / config.mk 분석자료입니다.
이것도 카페자료 참고하였습니다.
/board/aesop6410/config.mk
TEXT_BASE = 0xc7e0 0000
/include/configs/aesop6410.h
/* base address for uboot */
#ifdef CONFIG_ENABLE_MMU
#define CFG_UBOOT_BASE 0xc7e00000
#else
#define CFG_UBOOT_BASE 0x57e00000
#endif
#define CFG_PHY_UBOOT_BASE MEMORY_BASE_ADDRESS + 0x7e00000
u-boot가 실제로 ram에서 run되는 위치
코드에서는 relocation 되는 위치로
/cpu/start.S에서 cpu가 세팅된 이후에
u-boot를 NOR 또는 NAND에서 읽어 이 위치로 복사한다.
실제 물리주소로는 0x57e00000입니다.
원래 u-boot는 physical만 사용하는데, 삼성의 64x0 시리즈에서는 MMU를 살려 놓았더군요.
아마도 여러 칩에 포팅을 하다보니 그렇게 했다고 생각되어 집니다.