View Issue Details

IDProjectCategoryView StatusLast Update
0004887UBootU-Bootpublic2021-10-05 10:55
Reporterderksen Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Versionfsimx8mm-Y2021.04Fixed in Versionfsimx8mm-Y2021.04 
Summary0004887: fsimx8mm: Add nboot-info for BOARD-CFGs, use .*.tmp files in Makefile
Descriptionfsimx8mm: Add nboot-info for BOARD-CFGs, use .*.tmp files in Makefile

When NBoot information (FIRMWARE, BOARD-CFG) is stored by U-Boot, having
compiled in offsets for NAND and eMMC may be dangerous. Assume that a
new NBoot needs these images at different places, then an old U-Boot
will still store them at the old places and the board will not boot.
    
Therefore add an nboot-info node to each BOARD-CFG that holds this
information. U-Boot can read this information from the new NBoot image
and can store everything at the right places. So U-Boot just needs one
fix information: where it can find the BOARD-CFG in OCRAM, e.g. it needs
CONFIG_FUS_BOARDCFG_ADDR. All other values are only necessary in SPL and
can be renamed to CONFIG_SPL_*. Remove the previous CONFIG_FUS_* names
from scripts/config_whitelist.txt again.
    
In fact this nboot-info node is the same for all BOARD-CFGs. So add
a separate file nboot-info.dtsi and include it in all configurations.
There are some values in nand-info that are defined in fsimx8mm.h.
So only add kind of variables (strings that start and end with three
hashmarks) and let NBoot's Makefile replace them with the according
values from fsimx8mm.h. There is easy access to these values by
including spl/include/autoconf.mk. In the same manner also replace
similar variables in dram-timings.lds.
    
Also add an NBOOT_VERSION to the NBoot Makefile. This is now part of
the name of the generated nboot file and it is also included in the
nboot-info for runtime reference.
    
Instead of using .bin and other intermediate filenames when building
NBoot, use names of the form .*.tmp. These files are automatically
removed when calling make clean. Remove the clean target in the NBoot
Makefile, this never worked anyway. There is also an extra copy step
of the NBoot file at the end of the build process that can be dropped.
  
Move CONFIG_FUS_BOARDCFG_ADDR to the front of the OCRAM. If nothing is
before it, it does not need to be moved around if areas grow or shrink
in the future. This means CONFIG_SPL_BSS_START_ADDR is now behind it.
  
There is enough room for the DRAM timings in TCM, so move them to
0x81C000. Then the whole ATF area stays empty and it is more similar
to the original NXP code, where the timings are part of the SPL code
and thus also in TCM.
Forum Link

Activities

There are no notes attached to this issue.