On 28 August 2014 18:00, Rafał Miłecki <zajec5@xxxxxxxxx> wrote: > On 28 August 2014 17:32, Arnd Bergmann <arnd@xxxxxxxx> wrote: >> On Thursday 28 August 2014 14:37:54 Rafał Miłecki wrote: >>> To make booting possible, flash content is mapped to the memory. We're >>> talking about read only access. This mapping allows CPU to get code >>> (bootloader) and execute it as well as it allows CFE to get NVRAM >>> content easily. You don't need flash driver (with erasing & writing >>> support) to read NVRAM. >> >> Ok. Just out of curiosity, how does the system manage to map NAND >> flash into physical address space? Is this a feature of the SoC >> of the flash chip? > > I don't know exactly. Many (all?) device with BCM4706 SoC have two > flashes. Serial flash (~2 MiB) with bootloader + nvram and NAND flash > with the firmware. However Netgear WNR3500Lv2 (based on BCM47186B0) > has only a NAND flash. Btw. since NAND flashes tend to be huhe, they can't be fully mapped into memory. This is where Broadcom's "nfl_boot_size" comes in. This is a function saying how much of NAND content it mapped into memory. It returns NFL_BOOT_SIZE (0x200000) or NFL_BIG_BOOT_SIZE (0x800000) depending on the block size.