MSS ISP (SmartFusion2 Only)
UG0451 User Guide Revision 7.0 27
The following figure illustrates the flow of the MSS ISP update.
Figure 14 • MSS ISP Update Flow
The Cortex-M3 processor executes the user application. The user application provides the bitstream
through the communication interface required to authenticate, program, and verify the operations.
During the execution of the ISP service, the system controller receives the entire bitstream as a
continuous stream of bytes through the COMM_BLK. If the Cortex-M3 processor is executing code from
the eNVM, the system controller firmware must avoid a deadlock scenario, if it attempts to program a
region of the eNVM that is used. This is achieved by releasing the eNVM HMASTLOCK between atomic
eNVM operations. If the bitstream reprograms the code region that is used, the Cortex-M3 processor
must copy its code to eSRAM and execute from there. For more information about HMASTLOCK, see
the SmartFusion2 Microcontroller Subsystem User Guide.
Upon completion of programming, the system controller resets the device to ensure that the newly
programmed configuration takes effect and the device operates with the new design. However, the user
application must execute another system reset in addition to system controller reset as soon as the ISP
system service is completed, otherwise the LSRAM block might not be accessible. System reset can be
generated using the tamper macro, which can be instantiated from the Libero SoC Catalog. Immediately
after ISP, user logic (that is, an FSM module) can check LSRAM access. If the access is denied, then the
user logic generates a reset signal that can trigger the tamper macro to execute the system-level reset.
The RESET function in the tamper macro configuration window must be enabled. For detailed
implementation along with a reference design, see the SmartFusion2 SoC FPGA In-System
Start
Pass?
Cortex-M3 calls ISP system service call
“Program” to start programming
Yes
Cortex-M3 call ISP system
service with Verify mode
bits set (Optional)
User application call
fabric digest check
System Controller executes
ISP system service call
End
Cortex-M3 calls ISP system service call
“Authenticate” to authenticate the bitstream
Check if bitstream is corrupted;
regenerate if necessary
No
No
Yes
Programming
pass?
User application execute
system-level reset
Debug