Memorymapping of ICnova SAM9G45 SODIMM
Equipped memories and mappings
The ICnova SAM9G45 SODIMM consists of Atmel AT91SAM9G45 together with 128MiB of DDR2-SDRAM, 8MiB of NOR-Flash and 256MiB of NAND-Flash. The SDRAM is mapped into the virtual memorymap at address 0x70000000, the norflash at address 0x10000000. The NAND-Flash can be accessed only via the AT91SAM9G45s NAND-Controllogic. The address used to boot images from, should always be in RAM; 0x70400000 is a good choice.
The NOR-Flash has 135 Erase-Sectors. The first 8 have a size of 8 kiB, the rest of 64kiB each. Different programs should use different eraseblocks, to ease the possible updating of these programs.
After Production, the NOR-Flash consists of a 1st stage Bootloader AT91Bootstrap at offset 0. This is needed to set up the MCU and start the 2nd stage Bootloader U-boot. U-Boot is saved at offset 0x00020000 within the norflash. The linux-kernel is saved at offset 0x00100000. The last eraseblock at offset 0x007E0000 is used to save the environment-variables of U-Boot.
OpenOCD Commands for flashing bootloaders
To use OpenOCD to flash the bootloaders, the following commands have to be passed to that software:
flash erase_sector 0 0 12 flash write_image norflash_icnova_arm9.bin 0x10000000 flash write_image u-boot.bin 0x10020000
This will first erase the flash and the write the first- and second-stage bootloader as generated by Buildroot.