View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0004877 | UBoot | U-Boot | public | 2021-10-04 16:16 | 2021-10-05 10:48 |
Reporter | derksen | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | resolved | Resolution | fixed | ||
Target Version | fsimx8mm-Y2021.04 | Fixed in Version | fsimx8mm-Y2021.04 | ||
Summary | 0004877: Change SPL on fsimx8mm to use F&S NBoot images to boot | ||||
Description | Change 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 | |||||