
Dear Roman,
In message 40a670230809250104h7b21926x7d4e3b2370d5f6d8@mail.gmail.com you wrote:
Reading u-boot's README paper and trying to figure out a few aspects:
(1) as I know the bootloader sets up memory area for argument passing, initializes it with data structures and fill up with the values. Is this the structure defined in $(UBOOT)/include/asm-arm/global_data.h, named 'global_data' ?
If by "argument passing" you mean argument passing to the Linux kernel, then no.
The "global data" structure is just ameans to work around the limitations of early start up, i. e. befor relocation to RAM when no stack is available yet and the data segment is not writable yet either.
(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.
How is the address of boot parameters determined ("bd->bi_boot_params"). If speaking about Linux, it is defined in $(LINUX)/arch/arm/mach-xxx/Makefile.boot -- but how is it defined to be what it is?
It's decided when you define the memory map for your Linux port.
(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
Best regards,
Wolfgang Denk