Secure Monitor

From Nintendo Switch Brew
Revision as of 11:26, 11 July 2017 by Nwert (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Secure Monitor Calls

The secure monitor provides two top level handlers of which each provides a range of sub handlers.

Secure Monitor Calls follow the ARM SMC calling convention:

Bit number Bit mask Description
31 0x80000000 Set to 0 means Yielding Call; Set to 1 means Fast Call.
30 0x40000000 Set to 0 means SMC32 convention; Set to 1 means SMC64.
29-24 0x3F000000 Service Call ranges.
23-16 0x00FF0000 Must be zero.
15-0 0x0000FFFF Function number within the range call type.

Id 0

Cryptography related functions.

Sub-Id Name In Out
0xC3000401 SetConfig
0xC3000002 GetConfig (Same as Id 1 Sub-Id 4.)
0xC3000003 CheckStatus_5_9_F_10
0xC3000404 GetResult_5_9_F_10
0xC3000E05 ExpMod
0xC3000006 PrngX931 (Same as Id 1 Sub-Id 5.)
0xC3000007 Keygen7
0xC3000008 SetKeyslotFromXY
0xC3000009 SymmetricCrypto
0xC300000A KeygenA
0xC300040B CMAC
0xC300100C ImportParamsFor10
0xC300100D DecryptExpModParams
0xC300100E ImportParamsForF
0xC300060F ExpMod
0xC3000610 ExpMod
0xC3000011 SetKeyslotFromX
0xC3000012 Keygen12

Id 1

General and power related functions.

Sub-Id Name In Out
0xC4000001 CPU_SUSPEND (oyasumi)
0x84000002 CPU_OFF
0xC4000003 CPU_ON
0xC3000004 GetConfig (Same as Id 0 Sub-Id 2.)
0xC3000005 PrngX931 (Same as Id 0 Sub-Id 6.)
0xC3000006 Panic
0xC3000007
0xC3000008 ReadWriteRegister