
Hello,
2008/9/25 Wolfgang Denk wd@denx.de:
(2) this question is a consequence of the first. 'struct bd_info' from $(UBOOT)/include/asm-arm/u-boot.h is a structure holding board's specific information, am I right?
Not really. bd_info is passing boot information ot old (arch/ppc) PowerPC Linux kernels.
On the other hand this structure is used on many other platforms -- for example, in 'board_init()' functions presenting in $(UBOOT)/board/board_name/... Is this for compatibility or this structure was later enhanced to support other target as well?
(3) can't yet figure out how CONFIG_BOOTARGS is pulled in. Somwhow it should get into board's information structure?
No, not at all. It becomes part of the default U-Boot environment. See common/env_common.c
Alright -- 'default_environment' is populated with environment variables and values. Environment is stored either in FLASH, NAND, EEPROM etc. (depending on CFG_ENV_IS_IN_*).
'env_relocate()' is invoked from lib_<arch>/board.c. For instance, for ARM it will be start_armboot() right after initialization gets done (i.e. CPU, board, memory are ready) => therefore possible to put environment in RAM.
The process also involves CRC checking and if it's faulty, then restore configuration.
Well, something like that :) Correct me if I'm wrong.