I am currently evaluating lx2160ardb for a future product.
I have 2 main goals:
- Support more than 1 software version banks (preferably 2: current + previous/new)
- Avoid U-Boot upgrade in deployed units at all costs - dangerous step that may render a unit dead if something went wrong.
My main idea is to have 3 copies of U-Boot in FLASH:
- "Golden" U-Boot, residing in the default position, never upgraded, totally agnostic to version specific details - only needs to load and run one of the other copies based on some info in environment variables.
- Copy 1 - Also residing in flash, may be upgraded, related to the SW version in bank 1, needs to be aware of version specific information like root file system type and special kernel parameters.
- Copy 2 - Also residing in flash, may be upgraded, related to the SW version in bank 2, needs to be aware of version specific information like root file system type and special kernel parameters.
I have seen the same thing work in another NXP product that was powerpc based (t2081).
I got some pointers from our FAE, but they are also related to other powerpc based boards.
Is it possible in arm64 environment to have the first U-Boot load another copy of U-Boot to RAM and execute it there?
How do I go about implementing such a feature?
Thanks in advance,