The hardware uses Nandflash,nandflash as a 8-bit data width without dataflash and norflash.
Nandflash space allocation is bootstrap + U-boot + env + Linux.
|
| Bootstrap | | U-boot | env | | Linux |
|______________________________________________________________________________
0x0 0x1000 0x20000 0x60000 0x80000 0x200000
0 4K 128K 384K 512K 2M
The Uboot's startup parameters define the location of the Linux kernel image in Nandflash.
The Uboot cfg_nand_base defines the NAND start address. (Starting address is 0x40000000, end address 0x4fffffff, Total 256M)
The Uboot cfg_nand_dbw_8 defines the data width.
Memory space allocation (start address 0x2000 0000, end address 0x2400 0000, total 64M)
|
| | env | | Linux | | U-boot |
|
0x2000 0000 0x100 0x2040 0000 0x23f0 0000
0 63M
Uboot CFG_LOAD_ADDR defines the LOAD address of Linux in RAM.
Cfg_env_offset defines the start address of Env at Nandflash, Cfg_env_offset_redund defines env at the end address of Nandflash, cfg_env_size defines the space size of env in Nandflash.
BOARD/ATMEL/AT91SAM9260EK/CONFIG.MK defines text_base, which is the starting address of u-boot in memory.
To be resolved: env in memory location????
(Board/atmel/at91sam9260ek/at91sam9260ek.c--àboot_params)
A: Env's in-memory space is allocated by malloc (Env_relocate () in env_common.c), so its position in memory is always changing. Each time the system starts, Env may not be in the same location in memory.
k9f2g08u0b size is 256mb,2048 block (0-2047), each block size is 128KB.
Uboot memory and Nandflash storage space when Nandflash storage