== Introduction ==
The blue and red [[LEDs and buttons on STM32 MPU boards|LEDs on STM32 MPU boards]] are used to notify the user in case of boot failure during the [[Boot chain overview|boot chain]] execution and at runtime.<br />
== Description and debug ==
The statuses of blue and red LEDs allow to see at which stage the execution failed: the diagram below shows how each boot component uses these LEDs while the table gives more information on the way to interpret the LED statuses when the boot fails. Among the boot components, the FSBL is TF-A and the SSBL is U-Boot, as explained in the [[Boot chain overview|boot chain overview]].<br /><br />
[[File:How_to_diagnose_a_boot_failure.png|center]]<br />
{|
! Blue LED
! Red LED
! System state
! Action
|-
| Off
| Blinking
| The execution failed during [[STM32 MPU ROM code overview|ROM code]] execution
| Check that:<br />
* your microSD card is properly inserted in the board
* the [[STM32 MPU ROM code overview#Boot device selection via the boot pins and OTP|boot pins]] configuration selects the boot device
* your boot memory was well programmed with [[STM32CubeProgrammer]]
|-
| On
| Blinking
| The execution failed during the second stage bootloader (SSBL)
| See [[U-Boot - How to debug]] to investigate the failure
|-
| Off
| Off
| The execution may have failed:<br />
# In FSBL execution
# After the SSBL execution but before the heartbeat (blue LED) started
| <br />
# See [[How to debug TF-A BL2]] to investigate the failure
# See [[U-Boot - How to debug]] and [[:Category:How_to_trace_and_debug|how to trace and debug]] to investigate the failure
|-
| Off or on
| Off
| The execution may have failed during Linux<sup>®</sup> kernel execution between two heartbeat pulses (blue LED): a fatal error leading to a kernel panic might have occurred...
| See [[Dmesg and Linux kernel log]] to investigate the failure
|-
| Blinking
| Off
| Your platform is alive
| Enjoy !
|}
<noinclude>
[[Category:How to trace and debug]]
{{PublicationRequestId | 8902 | 2018-09-21 | AnneJ}}</noinclude>