
Wolfgang Denk wrote:
In message 46500875.6060706@grandegger.com you wrote:
CFG_FDT_ADDR_FLASH: If defined, "fdt" is set to that address at compile time. The FDT can be used from the early beginning of the boot.
Just nitpicking: maybe we should call this CFG_FDT_ADDR_STATIC or CFG_FDT_ADDR_DEFAULT or CFG_FDT_ADDR_INIT or something like that. Rationale: flash is just one of the possible storage devies - it could be ROM instead, or even RAM in certain configurations.
Also, while we are defining this, please keep in mind that sooner or later someone will come up with the idea of storing the FDT in EEPROM, so we might want to reserve such identifiers.
Then something similar to the ENV could be chosen:
CFG_FDT_ADDR CFG_FDT_IS_IN_FLASH CFG_FDT_IS_IN_xxx ...
CFG_FDT_ADDR_BY_ENV: If defined, the env variable "fdtaddr" is looked up early in the boot and "fdt" is set accordingly. This allows to hold more than one blob in FLASH and select one via env setting. This would allow for _one_ combination of images of U-Boot + Linux + Blobs for a _set_ of boards.
Traditionally, that should be named CFG_FDT_ADDR_IN_ENV
OK for me.
CFG_FDT_ADDR_RAM: If defined, the blob is moved to RAM after relocation for further preparation or for performance reasons. "fdt" is re-set accordingly. The blob is then ready and in place for booting Linux. If CFG_FDT_ADDR_RAM is set to 0, the blob will be copied to a default location, e.g. before the initrd location.
I'm not sure I understand this - will CFG_FDT_ADDR_RAM hold the *address* in RAM where the FDT gets copied to? That sounds pretty static to me.
Well, yes, this address must be suitable for Linux and should be treated similar to the initial ramdisk. Therefore a proper default address seems sufficient.
A board-specific checkboad function is called as early as possible to verify the FDT.
"checkboard()" is a name that can mean anything. If the function is to check or to verify the FDT, the function name should represent this, i. e. please callit checkfdt() or verifyfdt() of probably fdtcheck() / fdtverify() or fdt_check() / fdt_verify().
Then checkfdt(). In principle, this could be done in the already existing board-specific checkboard function, but a dedicated function for verifying the FDT makes sense, I think.
Wolfgang.