7315 - MACHXO3: Why I cannot perform SPI programming after enable dual boot to configure from external SPI flash

7315 - MACHXO3: Why I cannot perform SPI programming after enable dual boot to configure from external SPI flash

Description:
  1. MACHXO3 device share the same SPI SysConfig ports for both SSPI and MSPI configuration mode.
  2. The Configuration(CFG) MSPI is designed to be bus friendly, i.e. when it's not actively booting, all MSPI pins are tri-stated.
  3. It's possible to allow another SPI host co-exist on the same bus. As long the another SPI host is bus friendly as well, i.e. external SPI host pins need to be to be tri-stated while MACHXO3 CFG MSPI is actively booting.
  4. Typically Lattice use DIP switch on the Evaluation board to select between SPI Masters.
Diamond Device Constraint Editor Software bundle both NV feature row setting and SRAM volatile fuse(User mode persistent) together in a single JEDEC file for MachXO3. 
If you program the device internal flash with a JEDEC file which enabled both SSPI and MSPI port, it will enabled both hardware CFG MSPI/SSPI and user mode MSPI/SPI persistent bit where SPI ports will be unusable after entering user mode.