Secure Monitor
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 up to a small change:
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-8 | 0x0000FF00 | Argument type. This is different from the ARM SMC calling convention. |
7-0 | 0x000000FF | Function number within the range call type. |
If bit n is set in the argument type then parameter Xn is treated as a pointer and the kernel will setup address translation for it in svcCallSecureMonitor.
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 | KeygenAndSealX | ||
0xC3000008 | SetKeyslotFromXY | ||
0xC3000009 | SymmetricCrypto | ||
0xC300000A | KeygenA | ||
0xC300040B | CMAC | ||
0xC300100C | ImportParamsFor10 | ||
0xC300100D | DecryptExpModParams | ||
0xC300100E | ImportParamsForF | ||
0xC300060F | ExpMod | ||
0xC3000610 | ExpMod | ||
0xC3000011 | SetKeyslotFromZ | ||
0xC3000012 | KeygenAndSealZ |
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 |