View Issue Details

IDProjectCategoryView StatusLast Update
0004877UBootU-Bootpublic2021-10-05 10:48
Reporterderksen Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status resolvedResolutionfixed 
Target Versionfsimx8mm-Y2021.04Fixed in Versionfsimx8mm-Y2021.04 
Summary0004877: Change SPL on fsimx8mm to use F&S NBoot images to boot
DescriptionChange SPL on fsimx8mm to use F&S NBoot images to boot

F&S uses an own image format called NBoot to boot the system. Change
board/F+S/fsimx8mm/spl.c to use the fs_image library to load
an NBoot image (or part thereof) for initialization. The format of
the NBoot image and the boot process in general is already explained
in the commit to the fs_image library.
    
The board configuration BOARD-CFG is only installed once during
production into NAND or eMMC and stays there forever. So we can refer
to it later, no matter from what device we actually boot the system.
This is why we always load the BOARD-CFG from the device set in the
fuses, which is NAND or eMMC on F&S boards. This may differ from
the current boot device, that can also be USB.
    
However it may be necessary to override this board configuration. For
example if a wrong configuration was stored, or if newer NBoot/SPL
versions need a slightly different format. So the configuration
is only loaded from NAND or eMMC to OCRAM, but it is not activated
right away. If there is another BOARD-CFG in the file streamed from
USB, the USB version will be used instead. This means a bad
configuration can not "brick" the board.
    
Also add a comment to fsimx8mm.h that shows the layout of OCRAM,
TCM, NAND and eMMC.
    
Set 0x7000 as CONFIG_SPL_SYS_MALLOC_F_LEN, we need a lot of memory
because of the bad NAND driver that allocates large buffers and an
additional buffer with NAND page size for each single read access.
Remove CONFIG_SPL_SYS_MALLOC_F_LEN from fsimx8mm.h, this is set by
Kconfig now.
    
Change nboot-args generation to use settings from BOARD-CFG.

Add function basic_init() that is called as a callback from
fs_image.c when the final configuration is known and loaded.
    
Move NAND pad settings from board/F+S/fsimx8mm/fsimx8mm.c to
board/F+S/fsimx8mm/spl.c; in U-Boot, these settings are still
active.
    
Add picocoremx8mm and picocoremx8mx as device trees to U-Boot.
Forum Link

Activities

There are no notes attached to this issue.