Panic codes: Difference between revisions

Created page with "All elements in the Switch's boot chain up to the kernel have the ability to issue a system panic. Panics are handled by writing a panic code in the '''PMC_SCRATCH200''' regi..."
 
 
(15 intermediate revisions by 3 users not shown)
Line 11: Line 11:
! Bits || Field
! Bits || Field
|-
|-
| 31-28 || Red value
| 31-28 || Blue value
|-
|-
| 27-24 || Green value
| 27-24 || Green value
|-
|-
| 23-20 || Blue value
| 23-20 || Red value
|-
|-
| 19-0 || Description
| 19-0 || Description
|}
|}


The red, green and blue values are nibbles which represent the color that will fill the panic screen.
The blue, green and red values are nibbles which represent the color that will fill the panic screen.
Each nibble is duplicated to form a full byte before writing the final color to the display's MMIO.
Each nibble is duplicated to form a full byte before writing the final color to the display's MMIO.


== Panic colors ==
== Panic colors ==
Different colors are used to represent panic events coming from different execution levels within the system.
{| class=wikitable
{| class=wikitable
! Color || Value || Domain
! Color || Value || Level
|-
| <div style="width: 60px; height: 20px; background:#000000;"></div> || 0x000000 || Default
|-
| <div style="width: 60px; height: 20px; background:#0000FF;"></div> || 0x0000FF || Kernel
|-
|-
| 0xFF0000 || Kernel
| <div style="width: 60px; height: 20px; background:#FF7700;"></div> || 0xFF7700 || Secure Monitor (exception vectors)
|-
|-
| 0xFFFF00 || Secure Monitor
| <div style="width: 60px; height: 20px; background:#00FFFF;"></div> || 0x00FFFF || Secure Monitor (general errors)
|-
|-
| 0xFFAA00 || Hardware?
| <div style="width: 60px; height: 20px; background:#00AAFF;"></div> || 0x00AAFF || Secure Monitor (deep sleep) [1.0.0+]
|-
|-
| 0xFF00AA || Bootloader (general errors)
| <div style="width: 60px; height: 20px; background:#FF77FF;"></div> || 0xFF77FF || Secure Monitor (deep sleep) [4.0.0+]
|-
|-
| 0xAAFFFF || Bootloader (wrong bootloader)
| <div style="width: 60px; height: 20px; background:#AA00FF;"></div> || 0xAA00FF || Bootloader (general errors)
|-
| <div style="width: 60px; height: 20px; background:#FFFFAA;"></div> || 0xFFFFAA || Bootloader (booting SafeMode) [1.0.0-3.0.2]
|}
|}


== Panic codes ==
== Panic codes ==
While any combination of panic colors and codes is possible, several panic codes are specifically tied to a certain color.
{| class=wikitable
{| class=wikitable
! Value || Description
! Value || Color || Description
|-
| 0x0 || Any || No information
|-
| 0x1 || <div style="width: 60px; height: 20px; background:#0000FF;"></div> || Package2 signature verification failed
|-
|-
| 0x0 || No information
| 0x2 || <div style="width: 60px; height: 20px; background:#0000FF;"></div> || Package2 meta verification failed
|-
|-
| 0x1 || Package2 signature verification failed
| 0x3 || <div style="width: 60px; height: 20px; background:#0000FF;"></div> || Package2 version check failed
|-
|-
| 0x2 || Package2 meta verification failed
| 0x4 || <div style="width: 60px; height: 20px; background:#0000FF;"></div> || Package2 payload verification failed
|-
|-
| 0x3 || Package2 version check failed
| 0x5 || <div style="width: 60px; height: 20px; background:#00FFFF;"></div> || Unknown SMC
|-
|-
| 0x4 || Package2 payload verification failed
| 0x6 || <div style="width: 60px; height: 20px; background:#00FFFF;"></div> || Unknown Abort
|-
|-
| 0x5 || Unknown SMC
| 0x7 || <div style="width: 60px; height: 20px; background:#FF77FF;"></div> || Invalid CPU context
|-
|-
| 0x6 || Unknown Abort
| 0x8 || <div style="width: 60px; height: 20px; background:#FF77FF;"></div> || Invalid SE state
|-
|-
| 0x7 ||  
| 0x9 || <div style="width: 60px; height: 20px; background:#FF77FF;"></div> || CPU is already awake [2.0.0+]
|-
|-
| 0x8 ||  
| 0x10 || <div style="width: 60px; height: 20px; background:#FF7700;"></div> || Unknown exception
|-
|-
| 0x10 || Unknown exception
| 0x20 || <div style="width: 60px; height: 20px; background:#000000;"></div> || Rebooting into SafeMode
|-
|-
| 0x20 || Rebooting into SafeMode
| 0x21 || <div style="width: 60px; height: 20px; background:#000000;"></div> || Rebooting for anti-downgrade
|-
|-
| 0x21 || Rebooting for anti-downgrade
| 0x30 || <div style="width: 60px; height: 20px; background:#AA00FF;"></div> || General bootloader error
|-
|-
| 0x30 || General bootloader error
| 0x31 || <div style="width: 60px; height: 20px; background:#AA00FF;"></div> || Invalid DRAM ID
|-
|-
| 0x31 || Invalid DRAM ID
| 0x32 || <div style="width: 60px; height: 20px; background:#AA00FF;"></div> || Invalid size
|-
|-
| 0x32 || Invalid size
| 0x33 || <div style="width: 60px; height: 20px; background:#AA00FF;"></div> || Invalid argument
|-
|-
| 0x33 || Invalid argument
| 0x34 || <div style="width: 60px; height: 20px; background:#AA00FF;"></div> || Bad GPT
|-
|-
| 0x34 || Bad GPT
| 0x35 || <div style="width: 60px; height: 20px; background:#AA00FF;"></div> || Failed to boot SafeMode
|-
|-
| 0x35 || Failed to boot SafeMode
| 0x36 || <div style="width: 60px; height: 20px; background:#AA00FF;"></div> || Activity Monitor fired [4.0.0+]
|-
|-
| 0x40 || Show error called (kernel panic)
| 0x40 || <div style="width: 60px; height: 20px; background:#0000FF;"></div> || Show error called (kernel panic)
|}
|}