FPGA TN 02145 2 2 MultiBoot User Guide For Nexus Platform
FPGA TN 02145 2 2 MultiBoot User Guide For Nexus Platform
Technical Note
FPGA-TN-02145-2.2
December 2024
Multi-Boot User Guide for Nexus Platform
Technical Note
Disclaimers
Lattice makes no warranty, representation, or guarantee regarding the accuracy of information contained in this document or the suitability of its
products for any particular purpose. All information herein is provided AS IS, with all faults, and all associated risk is the responsibility entirely of the
Buyer. The information provided herein is for informational purposes only and may contain technical inaccuracies or omissions, and may be otherwise
rendered inaccurate for many reasons, and Lattice assumes no obligation to update or otherwise correct or revise this information. Products sold by
Lattice have been subject to limited testing and it is the Buyer's responsibility to independently determine the suitability of any products and to test
and verify the same. LATTICE PRODUCTS AND SERVICES ARE NOT DESIGNED, MANUFACTURED, OR TESTED FOR USE IN LIFE OR SAFETY CRITICAL
SYSTEMS, HAZARDOUS ENVIRONMENTS, OR ANY OTHER ENVIRONMENTS REQUIRING FAIL-SAFE PERFORMANCE, INCLUDING ANY APPLICATION IN
WHICH THE FAILURE OF THE PRODUCT OR SERVICE COULD LEAD TO DEATH, PERSONAL INJURY, SEVERE PROPERTY DAMAGE OR ENVIRONMENTAL
HARM (COLLECTIVELY, "HIGH-RISK USES"). FURTHER, BUYER MUST TAKE PRUDENT STEPS TO PROTECT AGAINST PRODUCT AND SERVICE FAILURES,
INCLUDING PROVIDING APPROPRIATE REDUNDANCIES, FAIL-SAFE FEATURES, AND/OR SHUT-DOWN MECHANISMS. LATTICE EXPRESSLY DISCLAIMS
ANY EXPRESS OR IMPLIED WARRANTY OF FITNESS OF THE PRODUCTS OR SERVICES FOR HIGH-RISK USES. The information provided in this document
is proprietary to Lattice Semiconductor, and Lattice reserves the right to make any changes to the information in this document or to any products at
any time without notice.
Inclusive Language
This document was created consistent with Lattice Semiconductor’s inclusive language policy. In some cases, the language in underlying tools and
other items may not yet have been updated. Please refer to Lattice’s inclusive language FAQ 6878 for a cross reference of terms. Note in some cases
such as register names and state names it has been necessary to continue to utilize older terminology for compatibility.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 2
Multi-Boot User Guide for Nexus Platform
Technical Note
Contents
Contents ............................................................................................................................................................................... 3
Glossary ................................................................................................................................................................................ 5
1. Introduction .............................................................................................................................................................. 6
2. Resources.................................................................................................................................................................. 7
3. Dual Boot Mode ...................................................................................................................................................... 11
3.1. Description of the Nexus Device Dual Boot Flow Diagram ............................................................................... 12
4. Ping-Pong Boot Mode ............................................................................................................................................. 13
4.1. Description of the Ping-Pong Boot Flow Diagram ............................................................................................. 14
5. Multi-Boot Mode .................................................................................................................................................... 15
5.1. MULTIBOOT Primitive ....................................................................................................................................... 15
5.2. Booting Flow without MULTIBOOT Primitive .................................................................................................... 16
5.2.1. Drawback .................................................................................................................................................... 16
5.3. Booting Flow with MULTIBOOT Primitive ......................................................................................................... 16
5.3.1. Advantage ................................................................................................................................................... 16
5.3.2. Implementation of Multi-Boot Feature Using MULTIBOOT Primitive ........................................................ 17
6. Creating a PROM File .............................................................................................................................................. 21
6.1. Using Radiant Deployment Tool to Create a Dual Boot PROM Hex File ........................................................... 21
6.2. Using Radiant Deployment Tool to Create a Ping-Pong Boot PROM Hex File................................................... 26
6.3. Using Radiant Deployment Tool to Create a Multi-Boot PROM Hex File .......................................................... 31
7. Programming the Dual Boot, Ping-Pong Boot, or Multi-Boot Pattern into the External SPI Flash Device ............. 38
8. Programming the Dual Boot, Ping-Pong Boot, or Multi-Boot Pattern into the Internal Flash ............................... 41
9. Corrupting Primary Image to Test Dual Boot, Ping-pong Boot, or Multi-Boot ....................................................... 44
9.1. Corrupting Generated .mcs File using Deployment Tool .................................................................................. 44
9.2. Example of Corrupting Preamble of Primary Image in Dual Boot ..................................................................... 45
10. Use Case Restrictions .............................................................................................................................................. 47
10.1. Ping-pong Boot Limitation ................................................................................................................................ 47
10.2. Soft Error Detection and Correction (SEDC) Use Case ...................................................................................... 47
References .......................................................................................................................................................................... 48
Technical Support Assistance ............................................................................................................................................. 49
Revision History .................................................................................................................................................................. 50
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 3
Multi-Boot User Guide for Nexus Platform
Technical Note
Figures
Figure 3.1. Nexus Device Dual Boot Flow Diagram .............................................................................................................11
Figure 4.1. Ping-Pong Boot Flow Diagram ..........................................................................................................................13
Figure 5.1. MULTIBOOT Primitive, OSC IP, CONFIG_LMMI Primitive and Lmmi Host Connection .....................................17
Figure 5.2. Implementation of Multi-Boot Feature Using MULTIBOOT Primitive Flow ......................................................18
Figure 5.3. Launching the Programming File Utility Tool ....................................................................................................19
Figure 5.4. Opening the Control Register 0 Editor Window ...............................................................................................19
Figure 5.5. Control Register 0 Window ...............................................................................................................................19
Figure 5.6. Default SPIM Bit Setting ....................................................................................................................................20
Figure 5.7. Saving Control Register 0 Bit Settings ...............................................................................................................20
Figure 6.1. Creating New Deployment for Dual Boot PROM Hex File.................................................................................21
Figure 6.2. Select Input Files Window.................................................................................................................................22
Figure 6.3. Dual Boot Options Window ..............................................................................................................................23
Figure 6.4. Select Output File Window ...............................................................................................................................24
Figure 6.5. Generate Deployment Window ........................................................................................................................25
Figure 6.6. Creating New Deployment for Ping-Pong Boot PROM Hex File........................................................................26
Figure 6.7. Select Input Files Window.................................................................................................................................27
Figure 6.8. Ping-Pong Boot Options Window .....................................................................................................................28
Figure 6.9. Select Output File Window ...............................................................................................................................29
Figure 6.10. Generate Deployment Window ......................................................................................................................30
Figure 6.11. Creating New Deployment for Multi-Boot......................................................................................................31
Figure 6.12. Select Input File Window ................................................................................................................................32
Figure 6.13. Advanced SPI Flash Options – Options Tab Window ......................................................................................34
Figure 6.14. Advanced SPI Flash Options – Multiple Boot Tab Window.............................................................................35
Figure 6.15. Select Output File Window .............................................................................................................................36
Figure 6.16. Generate Deployment Window ......................................................................................................................37
Figure 7.1. Radiant Programmer – Getting Started Window ..............................................................................................39
Figure 7.2. Radiant Programmer – Device Properties Window ..........................................................................................40
Figure 8.1. Radiant Programmer – Device Properties Window ..........................................................................................43
Figure 9.1. Reading Device Status Register using Radiant Programmer .............................................................................45
Figure 9.2. Device Status Register Value after Fall Back to Golden Image .........................................................................46
Tables
Table 1.1. Supported Device Families and Parts ...................................................................................................................6
Table 2.1. Maximum Configuration Bitstream Size – Single Bitstream Boot Mode .............................................................7
Table 2.2. Maximum Configuration Bitstream Size – Dual Boot Mode/Ping-Pong Mode ....................................................8
Table 2.3. Maximum Configuration Bitstream Size – Multi-Boot Mode...............................................................................9
Table 3.1. Control Register 1 [3:2] – Master Preamble Timer Retry Value.........................................................................12
Table 4.1. Control Register 1 [3:2] – Master Preamble Timer Retry Value.........................................................................14
Table 8.1. Programming Options for Direct FLASH Programming Mode in Radiant Programmer .....................................41
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 4
Multi-Boot User Guide for Nexus Platform
Technical Note
Glossary
A glossary of terms used in this document.
Acronym Definition
After the FPGA device has been configured, this pattern is loaded when the PROGRAMN pin is toggled
Alternative Boot
or the Refresh instruction is issued. Up to four Alternative Boot patterns are possible.
Binary Hex Data File The data image of the Hex data file in binary format. All Hex data files are converted into this format
(.bin File) prior to consumption. This type of file is not printable.
The configuration data file, for a single FPGA device, in the format that can be loaded directly into the
Bitstream Data File (.bit
FPGA device to configure the SRAM cells. The file is expressed in binary Hex format. The file is not
File)
printable.
Configure Write the pattern into the SRAM fuses of the FPGA device and wake up.
Dual Boot The device has two patterns, a Primary pattern and a Golden pattern, to choose to load.
EBR Embedded Block RAM
FD-SOI (Fully Depleted
A process that uses an ultra-thin buried oxide layer.
Silicon On Insulator)
The feature provides protection to the Flash fuses against accidental erase or corruption. Most of the
SPI Flash devices support Soft Lock. Lock choices include:
• Whole device
Flash Lock • Bottom half
• Bottom quarter
• Last sector
Details can be found in the SPI Flash device data sheet.
The guaranteed good pattern loaded into the FPGA device when booting failure occurs. It is also
Golden Boot
known as the root boot. Only one Golden Boot pattern is allowed.
The data record files that are in the format commonly known as Intel Hex, Motorola Hex or Extended
Hex Data File (.exo, Tektronix Hex. They are also known as addressed record files. The advantages include its small size
.mcs, .xtek Files) and it is printable, and thus good for record keeping. This type of file is not directly consumable by the
utilities supporting it.
LRAM Large RAM
Multi-Boot The device has more than two patterns, a Primary pattern, a Golden pattern and some Alternative
Multiple Boot patterns, to choose to load.
Primary Boot Upon power cycling, the FPGA device loads this pattern in first. Only one Primary pattern is allowed.
Program Writes into the selected Flash cells state a logical zero (0) (close fuse).
RAM Random Access Memory
Refresh The action loads the pattern from a non-volatile source to configure the FPGA device.
Sector (Block) The smallest number of bytes of Flash fuses can be erased at the same time by the erase command.
SPI Stands for the Serial Peripheral Interface defined originally by Motorola.
SRAM Static Random Access Memory
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 5
Multi-Boot User Guide for Nexus Platform
Technical Note
1. Introduction
CrossLink™-NX, Certus™-NX, CertusPro™-NX, and MachXO5™-NX families of low-power FPGAs can be used in a wide
range of applications and are optimized for the bridging and processing needs in the Embedded Vision space. It is built
on Lattice Nexus FPGA platform, using low-power 28-nm FD-SOI technology. For the subsequent part of this document,
the Nexus devices refer to all CrossLink-NX, Certus-NX, CertusPro-NX, and MachXO5-NX device families.
The Nexus devices support various booting options for loading the configuration SRAM from a non-volatile memory for
configuration flexibility and fail-safe configuration. CrossLink-NX, Certus-NX and CertusPro-NX families use an external
memory while MachXO5-NX families only support internal flash memory for storage of configuration bitstreams. See
Table 1.1 for details of the supported device families and parts.
Table 1.1. Supported Device Families and Parts
Device Family Parts included in the Device Family
CrossLink-NX LIFCL-17, LIFCL-33, LIFCL-33U, and LIFCL-40
Certus-NX LFD2NX-9, LFD2NX-17, LFD2NX-28 and LFD2NX-40
CertusPro-NX LFCPNX-100
MachXO5-NX LFMXO5-15D, LFMXO5-25, LFMXO5-55T, LFMXO5-55TD and LFMXO5-100T
The Nexus devices support various configuration boot modes to mitigate risk during the field upgrade process and to
allow flexibility of executing different patterns. Field upgrade disruptions may occur due to power disruption,
communication interruption or bitstream pattern corruption. The Nexus devices support the following boot modes:
• Dual Boot mode – Switches to load from the second known good (Golden) pattern when the first pattern becomes
corrupted.
• Ping-Pong Boot mode – Switches between two bitstream patterns based on your choice. If the system fails to boot
from one of the bitstreams, it automatically boots from the second bitstream.
• Multi-Boot mode – Allows the system to dynamically switch between two to five bitstream patterns while still
being protected with a Golden (sixth) pattern. Note that the MachXO5-NX family supports up to 3 bitstream
patterns only inclusive of the Golden pattern.
The Nexus devices support these boot modes by combining all the bitstream patterns into a single boot image and
storing it in a single external SPI Flash device (internal flash for MachXO5-NX families). This solution decreases cost,
reduces board space, and simplifies field upgrades.
Important Note: To enable the Transparent Field Reconfiguration (TransFR™) feature with any of the supported boot
modes, the Master SPI port must be persisted or enabled as configuration port after the device entering user mode.
These settings can be set in Lattice Radiant Device Constraint Editor, the Global tab.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 6
Multi-Boot User Guide for Nexus Platform
Technical Note
2. Resources
The Nexus devices are SRAM-based FPGAs. The volatile SRAM configuration memory must be loaded from a non-
volatile memory that can store all the configuration data. The size of the configuration data is based on the amount of
logic available in the FPGA, number of pre-initialized Embedded Block RAM (EBR) components and number of pre-
initialized Large RAM (LRAM) Block components. A design using the largest device, with every EBR and LRAM
pre-initialized with unique data values and generated without compression requires the largest amount of storage. The
minimum SPI Flash densities required to support the different configuration boot modes are listed in Table 2.1,
Table 2.2, and Table 2.3.
Table 2.1. Maximum Configuration Bitstream Size – Single Bitstream Boot Mode
Uncompressed1 SPI Mode
Device Configuration
Single Bitstream Size (Mb) Minimum SPI Flash Size (Mb)
No LRAM, No EBR 2.817 4
LIFCL-17,
No LRAM, MAX EBR 3.273 4
LFD2NX-9,
MAX LRAM, No EBR 5.517 8
LFD2NX-17
MAX LRAM, MAX EBR 5.873 8
No LRAM, No EBR 6.232 8
LIFCL-40,
No LRAM, MAX EBR 7.758 8
LFD2NX-28,
MAX LRAM, No EBR 7.281 8
LFD2NX-40
MAX LRAM, MAX EBR 8.807 16
No LRAM, No EBR 14.310 16
No LRAM, MAX EBR 17.966 32
LFCPNX-100
MAX LRAM, No EBR 17.810 32
MAX LRAM, MAX EBR 21.466 32
No LRAM, No EBR 4.451 NA2
No LRAM, MAX EBR 5.077 NA2
LFMXO5-25
MAX LRAM, No EBR 6.028 NA2
MAX LRAM, MAX EBR 6.653 NA2
No LRAM, No EBR 4.494 NA2
No LRAM, MAX EBR 5.12 NA2
LFMXO5-15D
MAX LRAM, no EBR 6.071 NA2
MAX LRAM, MAX EBR 6.696 NA2
No LRAM, No EBR 14.310 NA2
LFMXO5-55T, No LRAM, MAX EBR 17.966 NA2
LFMXO5-100T MAX LRAM, No EBR 17.810 NA2
MAX LRAM, MAX EBR 21.466 NA2
No LRAM, No EBR 14.353 NA2
No LRAM, MAX EBR 18.009 NA2
LFMXO5-55TD
MAX LRAM, No EBR 17.853 NA2
MAX LRAM, MAX EBR 21.509 NA2
No LRAM, No EBR 4.453 8
LIFCL-33, No LRAM, MAX EBR 5.967 8
LIFCL-33U MAX LRAM, No EBR 7.150 8
MAX LRAM, MAX EBR 8.667 16
Notes:
1. Nexus devices support bitstream compression. Compression ratio depends on the bitstream. Therefore, Table 2.1 only provides
uncompressed bitstream data.
2. MachXO5-NX family of devices boot from internal flash memory.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 7
Multi-Boot User Guide for Nexus Platform
Technical Note
Table 2.2. Maximum Configuration Bitstream Size – Dual Boot Mode/Ping-Pong Mode
Uncompressed1 SPI Mode
Device Configuration Single Bitstream 2-Bitstream Minimum SPI Flash
Size (Mb) Size (Mb) Size (Mb)
No LRAM, No EBR 2.817 5.634 8
LIFCL-17,
No LRAM, MAX EBR 3.273 6.546 8
LFD2NX-9
MAX LRAM, No EBR 5.517 11.034 16
LFD2NX-17
MAX LRAM, MAX EBR 5.873 11.746 16
No LRAM, No EBR 6.232 12.464 16
LIFCL-40,
No LRAM, MAX EBR 7.758 15.516 16
LFD2NX-28
MAX LRAM, No EBR 7.281 14.562 16
LFD2NX-40
MAX LRAM, MAX EBR 8.807 17.614 32
No LRAM, No EBR 14.310 28.620 32
No LRAM, MAX EBR 17.966 35.933 64
LFCPNX-100
MAX LRAM, No EBR 17.810 35.620 64
MAX LRAM, MAX EBR 21.466 42.933 64
No LRAM, No EBR 4.451 8.902 NA2
No LRAM, MAX EBR 5.077 10.154 NA2
LFMXO5-25 MAX LRAM, No EBR 6.028 12.056 NA2
MAX LRAM, MAX EBR 6.653 13.306 NA2
MAX LRAM, MAX EBR 6.696 13.392 NA2
No LRAM, No EBR 4.494 8.988 NA2
No LRAM, MAX EBR 5.120 10.240 NA2
LFMXO5-15D
MAX LRAM, No EBR 6.071 12.142 NA2
MAX LRAM, MAX EBR 6.696 13.392 NA2
MAX LRAM, MAX EBR 14.310 28.620 NA2
LFMXO5-55T, No LRAM, MAX EBR 17.966 35.932 NA2
LFMXO5-100T MAX LRAM, No EBR 17.810 35.620 NA2
MAX LRAM, MAX EBR 21.466 42.932 NA2
MAX LRAM, MAX EBR 14.353 28.706 NA2
No LRAM, MAX EBR 18.009 36.018 NA2
LFMXO5-55TD
MAX LRAM, No EBR 17.853 35.706 NA2
MAX LRAM, MAX EBR 21.509 43.018 NA2
No LRAM, No EBR 14.353 8.906 16
LIFCL-33, No LRAM, MAX EBR 18.009 11.934 16
LIFCL-33U MAX LRAM, No EBR 17.853 14.300 16
MAX LRAM, MAX EBR 21.509 17.334 32
Notes:
1. Nexus devices support bitstream compression. Compression ratio depends on the bitstream. Therefore, Table 2.2 only provides
uncompressed bitstream data.
2. MachXO5-NX family of devices boot from internal flash memory.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 8
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 9
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 10
Multi-Boot User Guide for Nexus Platform
Technical Note
FPGA
POR
Internal/Exte rnal Flash
Addre ss 0
Set Count = 0
Primary Pattern Load Primary Pattern Send Read Opcod e
Send Address 0
Addre ss X
Start Reading SPI
Load
Lo adGolden
Go ldenPattern
D ata
Addre ss X
Golden P attern
No
Preamble
Pream ble
Detect?
Detected?
Yes
JUMP No
Co mmand?
No
Continue Reading
SPI
Count = Count + 1
No Yes
Co
Coun
untt > 1? Drive INITN Low
FAIL
FAIL
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 11
Multi-Boot User Guide for Nexus Platform
Technical Note
If the Primary pattern fails one of the two checks above, the device knows that the Primary pattern is not valid. It drives
the INITN pin LOW briefly to indicate an error and resets the configuration engine. After clearing all the SRAM fuses, it
drives the INITN pin HIGH, and reads the JUMP command that directs it to the location of the Golden pattern in the
Flash.
If the JUMP command is corrupted, it also causes a configuration failure. It is important to note that a corrupted
Golden pattern is not the only possible cause for Dual Boot configuration failure.
If the JUMP command is valid, the device stops the SPI clock, drives the INITN pin LOW, resets the configuration engine,
and performs a Clear All operation. The device then drives the INITN pin HIGH after the completion of the Clear All
action, restarts the SPI clock, and reads the Golden pattern from the Flash address designated in the JUMP command.
The device performs the same time-out check and CRC check when searching for the preamble code from the Golden
pattern. If the Golden pattern is also corrupted, configuration fails. The device stops driving the SPI clock, and the INITN
pin is driven LOW.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 12
Multi-Boot User Guide for Nexus Platform
Technical Note
FPGA
POR
Set Count = 0
Send Read Opcode
Send Address 0
Internal/External Flash
Address 0
JUMP Table Read JUMP Table
Address 0
Address X
JUMP to Address X1
Primary Pattern Load Primary Pattern
Start reading S PI
Address Y Preamble No
Detected?
Secondary Pattern Load Secondary Pattern
Yes
Yes
Retry
Yes
0x003F_FF00 JUMP No
Ba cku p JUM P In str uctio n Command?
No
Continue Reading
SPI
Count = Count + 1
Notes: No Yes
Count > 1? Drive INITN Low
1. Assumes Primary Pattern selected
as First Boot option.
2. Secondary Pattern becomes the
Golden Pattern in this configuration.
3. 0x003F_FF00 is for 32 Mb size Flash.
See last 256 bytes of the SPI F lash FAIL
FAIL
Memory for other F lash sizes.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 13
Multi-Boot User Guide for Nexus Platform
Technical Note
If the “First Boot” pattern fails one of the two checks above, the device knows that the pattern is not valid. It drives the
INITN pin LOW briefly to indicate an error and resets the configuration engine. After clearing all the SRAM fuses, it
drives the INITN pin HIGH, and reads the JUMP command that directs it to the location of the other pattern, acting as
the Golden pattern, in the Flash.
If the JUMP command is corrupted, it also causes a configuration failure. It is important to note that a corrupted
Golden pattern is not the only possible cause for Ping-ping mode configuration failure.
If the JUMP command is valid, the device stops the SPI clock, drives the INITN pin LOW, resets the configuration engine,
and performs a Clear All operation. The device then drives the INITN pin HIGH after the completion of the Clear All
action, restarts the SPI clock, and reads the Golden pattern from the Flash address designated in the JUMP command.
The device performs the same time-out check and the CRC check when searching for the preamble code from the
Golden Pattern. If the Golden Pattern is also corrupted, configuration fails, stops driving the SPI clock, and the INITN pin
is driven LOW.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 14
Multi-Boot User Guide for Nexus Platform
Technical Note
5. Multi-Boot Mode
The Nexus device Multi-Boot supports booting from up to six patterns that reside in an external SPI Flash device (up to
three patterns for MachXO5-NX internal flash memory). The patterns include a Primary pattern, a Golden pattern, and
up to four Alternate patterns, designated as Alternate pattern 1 to Alternate pattern 4.
The device boots by loading the Primary pattern from the internal or external Flash, depending on the device family. If
loading of the Primary pattern fails, the device attempts to load the Golden pattern. In static mode, when a
reprogramming of the bitstream is triggered through the toggling of the PROGRAMN pin or receiving a REFRESH
command, always Alternate pattern 1 is loaded. Subsequent PROGRAMN/REFRESH event loads the next pattern
defined in the Multi-Boot configuration. The bitstream pattern sequence, target address of the Golden pattern, and
target addresses of the Alternate patterns are defined during the Multi-Boot configuration process in the Lattice
Radiant™ Deployment Tool. The Multi-Boot flow is similar to the Dual Boot flow (Figure 3.1). Each
PROGRAMN/REFRESH event becomes a Dual Boot event with the addresses being different depending on the pattern
being loaded.
By using MULTIBOOT primitive, it allows the device to operate in dynamic mode. It allows the system to dynamically
switch to any of the alternate pattern after the device boots up from the Primary pattern while still being protected by
a Golden pattern.
Multi-Boot
AUTOREBOOT
MSPIMADDR[31:0]
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 15
Multi-Boot User Guide for Nexus Platform
Technical Note
Notes:
• The AutoReboot port is an unused input port and is recommended to tie it to 0.
• Once this primitive is instantiated, the use model of loading the next pattern defined in the multi-boot
configuration using Radiant Deployment Tool does not work.
• MSPIMADDR is a 32-bit wide input for you to supply the boot address.
. Subsequent
. PROGRAMN/REFRESH event,
load next pattern defined in
. Radiant Deployment Tool
Alternate Pattern N
Golden Pattern
Supports booting up to six patterns (up to
three patterns for MachXO5-NX device)
Backup JUMP Instruction
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 16
Multi-Boot User Guide for Nexus Platform
Technical Note
Alternate Pattern N
Golden Pattern
Lmmi Host
Micro Controller or FSM
lmmi_rdata_valid
lmmi_wdata[7:0]
lmmi_offset[7:0]
lmmi_rdata[7:0]
mspimaddr
lmmi_request
lmmi_wr_rdn
lmmi_ready
MultiBoot
sys_clk
lmmiwdata lmmiready
OSC IP
lmmiwrrd_n
Config_Lmmi
Figure 5.1. MULTIBOOT Primitive, OSC IP, CONFIG_LMMI Primitive and Lmmi Host Connection
• MULTIBOOT primitive: This primitive is a wrapper for the interface to perform the multi-boot functionality. It
enables the booting to load the desired Alternate pattern through sending the Refresh command to CONFIG_LMMI
block.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 17
Multi-Boot User Guide for Nexus Platform
Technical Note
• OSC IP: This IP is an oscillator module. It generates clock sources, sys_clk and lmmi_clk, to the Lmmi host controller
and CONFIG_LMMI primitive. Refer to the OSC Module - Lattice Radiant Software User Guide for more
information.
• CONFIG_LMMI: Lattice Memory Mapped Interface (LMMI) interfaces to the configuration block. Refer to the
Config_Lmmi page in Lattice Radiant Software User Guide for more information.
• Lmmi host controller: This controller implements a state machine controller to send the necessary commands to
the CONFIG_LMMI block, and sends the boot address to the MULTIBOOT primitive to boot the desired Alternate
pattern stored in the internal or external SPI flash. The controller performs the following sequences. Refer to flow
diagram below (Figure 5.2) for more details.
• Start sending 32-bit boot address to MULTIBOOT primitive.
• Execute ISC_ENABLE_X – Similar to ISC_ENABLE, this command puts the device into the transparent mode.
Executing this command is essential to enable the device to execute the next command, the
LSC_PROG_CNTRL0 command.
• Execute LSC_PROG_CNTRL0 – Set the SPIM bit in Control Register 0 to 1. When this bit is set to 1, and once the
REFRESH command is executed, it enables the device to boot from the image stored in the external SPI flash
according to the boot address sent to MULTIBOOT primitive. Else, the device boots from address zero.
Note: An alternative method to set the SPIM bit is by modifying the .bit file. Refer to the Setting SPIM Bit Using
Programming File Utility Tool section for more information. Use this method only if you encounter difficulties
implementing the LSC_PROG_CNTRL0 command to set the SPIM bit. Otherwise, setting the SPIM bit through
the LMMI host is recommended to avoid relying on setting the SPIM bit in the .bit file.
• Execute ISC_DISABLE – Exit Transparent mode.
• Execute LSC_REFRESH – Equivalent to toggling the PROGRAMN pin. Once this command is executed, the
device starts to load the desired alternate pattern from the external SPI flash according to the boot address
sent to MULTIBOOT primitive. If loading image fails, the device falls back to load the Golden pattern.
Send
Start 32-bit MSPIADDR Ready=1 ISC_Enable_X Ready=1
(Boot Address)
LSC_Prog_Cntrl0
Refer to the Lattice Nexus Device Multi-Boot Reference Design (FPGA-RD-02294) for details of the reference design.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 18
Multi-Boot User Guide for Nexus Platform
Technical Note
2. In the Programming File Utility, select Tools > Control Register0 Editor….
3. In the Control Register 0 window, click the … button, navigate to and select the .bit file, then click Open.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 19
Multi-Boot User Guide for Nexus Platform
Technical Note
4. Click Read to read the Control Register 0 bit settings. By default, the SPIM bit is set to 0 as shown in the following
figure.
5. Click the chip value associated with the SPIM bit and set it to 1.
6. Click Save to save the settings in the selected .bit file or Save As to save the settings in a new .bit file. The write to
file successful dialog box appears.
7. Click OK to continue.
8. Read the modified .bit file to confirm that the SPIM bit is set to 1.
9. Proceed to program the configuration memory with the modified .bit file to update the alternate pattern.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 20
Multi-Boot User Guide for Nexus Platform
Technical Note
6.1. Using Radiant Deployment Tool to Create a Dual Boot PROM Hex File
The following steps provide the procedure for generating a Dual Boot PROM hex file using the Radiant Deployment
Tool.
1. Generate the Golden and Primary bitstream files in Lattice Radiant Software.
• Primary bitstream file MCCLK_FREQ (SPI Master Clock Frequency) setting should not exceed the external Flash
device normal/standard read speed. This is not applicable to MachXO5-NX device that uses internal flash
memory.
• For LFMXO5-55T and LFMXO5-100T parts, the maximum supported FLASH_CLK_FREQ of the primary bitstream
file is 56.2 MHz. This limitation is not applicable to the single boot feature.
• MCCLK_FREQ and FLASH_CLK_FREQ can be configured using the Global tab of the Device Constraint Editor in
Lattice Radiant software.
2. Invoke Lattice Radiant Deployment Tool from Start > Lattice Radiant Programmer > Deployment Tool.
3. In the Radiant Deployment Tool window, select External Memory as the Function Type and select Dual Boot as
the Output File Type (Figure 6.1).
• Note that the External Memory selection is also applicable to MachXO5-NX device that uses internal flash
memory.
4. Select OK.
Figure 6.1. Creating New Deployment for Dual Boot PROM Hex File
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 21
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 22
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 23
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 24
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 25
Multi-Boot User Guide for Nexus Platform
Technical Note
6.2. Using Radiant Deployment Tool to Create a Ping-Pong Boot PROM Hex File
The following steps provide the procedure for generating a Ping-Pong boot PROM hex file using the Radiant
Deployment Tool.
1. Generate the Primary and Secondary bitstream files in Lattice Radiant software.
• When the Primary or Secondary bitstream is the second boot option, it by default becomes the Golden
bitstream.
• Primary bitstream file MCCLK_FREQ (SPI Master Clock Frequency) setting should not exceed the external Flash
device normal/standard read speed. This is not applicable to MachXO5-NX device that uses internal flash
memory.
• For LFMXO5-55T and LFMXO5-100T parts, the maximum supported FLASH_CLK_FREQ of the primary bitstream
file is 56.2 MHz. This limitation is not applicable to the single boot feature.
• MCCLK_FREQ and FLASH_CLK_FREQ can be configured using the Global tab of the Device Constraint Editor in
Lattice Radiant software.
2. Invoke Lattice Radiant Deployment Tool from Start > Lattice Radiant Programmer > Deployment Tool.
3. In the Radiant Deployment Tool window, select External Memory as the Function Type and select Ping-Pong Boot
as the Output File Type (Figure 6.6).
• Note that the External Memory selection is also applicable to MachXO5-NX device that uses internal flash
memory.
4. Select OK.
Figure 6.6. Creating New Deployment for Ping-Pong Boot PROM Hex File
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 26
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 27
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 28
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 29
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 30
Multi-Boot User Guide for Nexus Platform
Technical Note
6.3. Using Radiant Deployment Tool to Create a Multi-Boot PROM Hex File
The following steps provide the procedure for generating a Multi-Boot PROM hex file using the Radiant Deployment
Tool. This procedure is an example for four total bitstreams, Primary Pattern, Golden Pattern, Alternate Pattern 1, and
Alternate Pattern 2.
1. Generate all the bitstream files needed in Lattice Radiant Software.
• Primary bitstream file MCCLK_FREQ (SPI Master Clock Frequency) setting should not exceed the external Flash
device normal/standard read speed. This is not applicable to MachXO5-NX device that uses internal flash
memory.
• For LFMXO5-55T and LFMXO5-100T parts, the maximum supported FLASH_CLK_FREQ of the primary bitstream
file is 56.2 MHz. This limitation is not applicable to the single boot feature.
• MCCLK_FREQ and FLASH_CLK_FREQ can be configured using the Global tab of the Device Constraint Editor in
Lattice Radiant software.
2. Invoke Lattice Radiant Deployment Tool from Start > Lattice Radiant Programmer > Deployment Tool.
3. In the Radiant Deployment Tool window, select External Memory as the Function Type and select Advanced SPI
Flash as the Output File Type (Figure 6.11).
• Note that the External Memory selection is also applicable to MachXO5-NX device that uses internal flash
memory.
4. Select OK.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 31
Multi-Boot User Guide for Nexus Platform
Technical Note
Note: Figure 6.12 shows the step to select the Primary pattern.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 32
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 33
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 34
Multi-Boot User Guide for Nexus Platform
Technical Note
Figure 6.14. Advanced SPI Flash Options – Multiple Boot Tab Window
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 35
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 36
Multi-Boot User Guide for Nexus Platform
Technical Note
Refer to Lattice Nexus Multi-Boot Reference Design (FPGA-RD-02294) for more details of the reference design.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 37
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 38
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 39
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 40
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 41
Multi-Boot User Guide for Nexus Platform
Technical Note
The following procedure is for programming various programming files into the MachXO5-NX device internal flash
using Radiant Programmer:
1. Connect power to the board and connect a download cable from the board to the PC.
2. Invoke Radiant Programmer using one of the following methods:
• In Radiant Software window, select Tools > Programmer;
• In Radiant Software window, select the Programmer icon ( ) in the Radiant toolbar;
• In the Windows Start menu, select Start > Lattice Radiant Programmer > Radiant Programmer;
• In the Windows Start menu, select Start > Lattice Radiant Software > Radiant Programmer.
3. Radiant Programmer – Getting Started window opens (Figure 7.1).
• Select Create a New Project from a Scan, or Create a new blank project, or Select Open an existing
programmer project.
• Select Detect Cable to scan the PC to determine what cable is connected. Or, manually select the type of Cable
and Port.
• Click OK.
4. Select the Operation field by moving the cursor over it and double clicking the left mouse button.
5. The Device Properties window opens (Figure 8.1).
• For Target Memory, select Flash Configuration Memory.
• For Port Interface, select JTAG.
• For Access Mode, select Direct FLASH Programming.
• For Operation, select Erase, Program, Verify.
• For Other Programming Options, select the appropriate files according to Table 8.1.
• Click the OK button.
• Refer to MachXO5-NX Programming and Configuration User Guide (FPGA-TN-02271) for designation of
primary boot and secondary boot.
6. Program the internal Flash device with one of the following methods:
• In the Radiant Programmer window, select Run > Program Device.
• In the Radiant Programmer window, click on the Program Device icon ( ) in the toolbar.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 42
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 43
Multi-Boot User Guide for Nexus Platform
Technical Note
:NNAAAATT[DDDDDDDDDD]CC
where,
: Start of a line marker
NN Number of data bytes on the line
2. Identify the address location that you want to corrupt in the .mcs file and modify it. For example, below line is the
16 bytes at location 0x01A0, with the checksum 0x88. You can modify any data bytes in the line and recalculate the
checksum after the modification.
:1001A000000000FFFFFFFF4700000080F00EC24488 → Original line in .mcs file.
For example, if you corrupt the location 0x01AF from 0x44 to 0xFF, the checksum is calculated by:
a. Summing up every byte except checksum:
b. 0x10 + 0x01 + 0xA0 + 0xFF + 0xFF + 0xFF + 0xFF + 0x47 + 0x80 + 0xF0 + 0x0E + 0xC2 + 0xFF (corrupted value) =
0x833, omit the carry bit, the balance become 0x33.
c. Invert all the bit of 0x33, the value is 0xCC.
d. Adding 1 to 0xCC = 0xCD, this is the new calculated checksum.
3. Replace the original line with the new line that has the corrupted byte.
:1001A000000000FFFFFFFF4700000080F00EC2FFCD → New line to replace the original line in .mcs file.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 44
Multi-Boot User Guide for Nexus Platform
Technical Note
4. Then, you can proceed to program the corrupted .mcs file to the external or internal flash by following the
instructions in Programming the Dual Boot, Ping-Pong Boot, or Multi-Boot Pattern into the External SPI Flash
Device and Programming the Dual Boot, Ping-Pong Boot, or Multi-Boot Pattern into the Internal Flash sections.
5. After the programming is successful, reconfigure or power cycle the FPGA. You should be able to observe the FPGA
is now loading the Golden image instead of the Primary image. You can identify which image is loaded to the FPGA
by observing the functionality of the design or using the Radiant Programmer to read the Status Register as shown
in Figure 9.1.
1. Program the corrupted .mcs file to the device as described in Programming the Dual Boot, Ping-Pong Boot, or
Multi-Boot Pattern into the External SPI Flash Device and Programming the Dual Boot, Ping-Pong Boot, or Multi-
Boot Pattern into the Internal Flash sections.
2. Reconfigure or power cycle the FPGA.
3. Read the Status Register using Programmer as shown in Figure 9.1.
Figure 9.2 shows the Status Register value after the device falls back to Golden image. The INITN and DONE set to 1
indicate that the device is in user mode. The BSE Error 1 Code is b0100, which indicates the preamble error in previous
bitstream execution. The SPIm Fail set to 1 indicates the failure to load the Primary image from the SPI flash due to the
corruption.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 45
Multi-Boot User Guide for Nexus Platform
Technical Note
Figure 9.2. Device Status Register Value after Fall Back to Golden Image
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 46
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 47
Multi-Boot User Guide for Nexus Platform
Technical Note
References
For more information, refer to:
• CrossLink-NX Family Devices Web Page
• Certus-NX Family Devices Web Page
• CertusPro-NX Family Devices Web Page
• MachXO5-NX Family Devices Web Page
• Lattice Nexus Platform Web Page
• MachXO5-NX Programming and Configuration User Guide (FPGA-TN-02271)
• SED/SEC User Guide for Nexus Platform (FPGA-TN-02076)
For Boards, Demos, IP Cores, and Reference Designs for Lattice Nexus Devices, refer to:
• Boards, Demos, IP Cores, and Reference Designs for CrossLink-NX Devices
• Boards, Demos, IP Cores, and Reference Designs for Certus-NX Devices
• Boards, Demos, IP Cores, and Reference Designs for CertusPro-NX Devices
• Boards, Demos, IP Cores, and Reference Designs for MachXO5-NX Devices
Other References:
• Lattice Insights for Training Series and Learning Plans
• Lattice Radiant Software Web Page
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 48
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 49
Multi-Boot User Guide for Nexus Platform
Technical Note
Revision History
Revision 2.2, December 2024
Section Change Summary
Multi-Boot Mode In the Implementation of Multi-Boot Feature Using MULTIBOOT Primitive section:
• Added note on alternative method for setting the SPIM bit.
• Added the Setting SPIM Bit Using Programming File Utility Tool section.
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 50
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 51
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 52
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 53
Multi-Boot User Guide for Nexus Platform
Technical Note
© 2024 Lattice Semiconductor Corp. All Lattice trademarks, registered trademarks, patents, and disclaimers are as listed at www.latticesemi.com/legal.
All other brand or product names are trademarks or registered trademarks of their respective holders. The specifications and information herein are subject to change without notice.
FPGA-TN-02145-2.2 54
www.latticesemi.com