How to maintain a NIOS based product with field upgrade for 10-20 years, I.e. across several generations of configuration flash chips?
This is a specific problem for NIOS SOC users doing field upgrades and encountering End-Of-Life on configuration flash chips.
How to build a NIOS SOC system that can support multiple configuration flash types. I.e. once the FPGA loads and starts NIOS the Boot code either uses a generic Flash driver or selects a suitable Flash driver to use?
This is necessary to support a large system that allows:
- providing regular firmware updates over the lifetime (20 years) of the product
- maintaining backward compatibility of HW and firmware I.e. a customer may choose to remain on an older firmware version, and continue to order new HW.
- network management to use a single field update file for a single product type.
E.g. HW version 2.1 which uses NIOS SOC on CycloneV with Micron M25Q128A, can boot on the same image as HW version 3.0 which uses NIOS SOC on CycloneV with Micron M25Q256.
Currently it seems the Quartus tools produce separate images for different configuration flash chips. Any developers know how to modify the library files to support multiple Configuration flash types in the same image?