I want to implement a system based on ATSAMD51J19 or ATSAMD51J20 with 2 QSPI Flash and have a dual XIP application architecture (like the BIOS of a motherboard) one active and one inactive so I can have redundancy in case one for them fails at hardware or software level.
The following things I want to have:
- Launch the application from active flash module that was previous set as "boot drive",
- Ability to remotely (for example - over Etehrnet or UART or USB) update the inactive flash module with new firmware while the active one is in use.
Based on that I have a few questions:
- Connecting the flash modules on the same QSPI interface with different CS lines is doable or I have to add 2 mux chips, one mux for connecting the active flash to QSPI and the second mux to connect the inactive flash to another SPI bus ?
- Can the specified MCU be used like this with a bootloader that can run the application from the active flash module and inside the application have the update routines implemented so I can upload a new application on the inactive flash and set a variable (bit) in non volatile area of MCU telling to boot from the inactive flash and reboot it in case it fails to launch the new firmware using the old one ?
Thank you for your time and best regards