Tool/software: Linux
Hi,
I am using sdk 3.3.0.4. in board/u-boot/include/configs/ti_armv7_common.h, there is description as following.
"
/*
* Our DDR memory always starts at 0x80000000 and U-Boot shall have
* relocated itself to higher in memory by the time this value is used.
* However, set this to a 32MB offset to allow for easier Linux kernel
* booting as the default is often used as the kernel load address.
*/
#define CONFIG_SYS_LOAD_ADDR 0x82000000
What's the reason for 32MB offset? Since we only has 64MB memory total, loading at 32MB seems dumb. My question is, what the “constraints” are, and is there a more appropriate place to load linux? For example, it would seem to me that linux should be loaded as low as possible in memory, such as 8KB above the base, to allow for IRQ handlers in the first 8K. Is that any problem with this approach?
Further questions : the EVM loads the FDT file at 128MB offset (obviously impossible for our 64MB memory), and the ramdisk at 128MB+512KB. So, what does the kernel do with the FDT after it has booted? Would it make more sense to load it (before) the kernel, in the (so-called) empty space? Also, what is the ramdisk for? I suspect it may be a pre-created image of the linux filesystem, stored in SPI-flash. Is it correct?
Thanks.