PCV services
bpc
This is "nn::bpc::IBoardPowerControlManager".
Cmd | Name |
---|---|
0 | #ShutdownSystem |
1 | #RebootSystem |
2 | #GetWakeupReason |
3 | #GetShutdownReason |
4 | #GetAcOk |
5 | #GetBoardPowerControlEvent |
6 | [2.0.0+] #GetSleepButtonState |
7 | [2.0.0+] #GetPowerEvent |
8 | [2.0.0-9.2.0] #CreateWakeupTimer |
9 | [2.0.0-9.2.0] #CancelWakeupTimer |
10 | [2.0.0-9.2.0] #EnableWakeupTimerOnDevice |
11 | [3.0.0-9.2.0] #CreateWakeupTimerEx |
12 | [3.0.0-9.2.0] #GetLastEnabledWakeupTimerType |
13 | [3.0.0-9.2.0] #CleanAllWakeupTimers |
14 | [6.0.0+] #GetPowerButton |
15 | [10.0.0+] #SetEnableWakeupTimer |
ShutdownSystem
No input/output.
RebootSystem
No input/output.
GetWakeupReason
No input. Returns an output u32.
GetShutdownReason
No input. Returns an output u32.
GetAcOk
No input. Returns an output bool.
GetBoardPowerControlEvent
Takes an input BoardPowerControlEventTarget. Returns an output Event handle.
GetSleepButtonState
No input. Returns an output SleepButtonState.
GetPowerEvent
Takes an input EventTarget. Returns an output Event handle.
CreateWakeupTimer
Takes an input u64. Returns an output u32.
CancelWakeupTimer
Takes an input u32. No output.
EnableWakeupTimerOnDevice
No input. Returns an output bool IsEnabled and an output u64 Interval.
[3.0.0+] Now returns an u32 and an u64.
CreateWakeupTimerEx
Takes two input u64s. Returns an output u32.
GetLastEnabledWakeupTimerType
No input. Returns an output u32.
CleanAllWakeupTimers
Takes an input u32. No output.
GetPowerButton
No input. Returns an output bool IsPushed.
SetEnableWakeupTimer
Unofficial name.
No input/output. Enables an internal wakeup timer when calling ShutdownSystem or RebootSystem.
bpc:r
This is "nn::bpc::IRtcManager".
Cmd | Name |
---|---|
0 | #GetRtcTime |
1 | #SetRtcTime |
2 | #GetRtcResetDetected |
3 | [2.0.0+] #ClearRtcResetDetected |
4 | [3.0.0+] #SetUpRtcResetOnShutdown |
GetRtcTime
No input. Returns an output u64.
SetRtcTime
Takes an input u64. No output.
GetRtcResetDetected
No input. Returns an output bool.
ClearRtcResetDetected
No input/output.
SetUpRtcResetOnShutdown
No input/output.
bpc:c
This is "nn::bpc::IBoardPowerControlManager".
[2.0.0+] This service was replaced by bpc.
Cmd | Name |
---|---|
0 | #ShutdownSystem |
1 | #RebootSystem |
2 | #GetWakeupReason |
3 | #GetShutdownReason |
4 | #GetAcOk |
5 | #GetBoardPowerControlEvent |
bpc:b
This is "nn::bpc::IPowerButtonManager".
[2.0.0+] This service was merged into bpc.
Cmd | Name |
---|---|
0 | #GetSleepButtonState |
1 | #GetPowerEvent |
bpc:w
This is "nn::bpc::IWakeupConfigManager".
[2.0.0+] This service was merged into bpc.
Cmd | Name |
---|---|
0 | #CreateWakeupTimer |
1 | #CancelWakeupTimer |
2 | #EnableWakeupTimerOnDevice |
pcv
This is "nn::pcv::detail::IPcvService".
Cmd | Name |
---|---|
[1.0.0-7.0.1] 0 | #SetPowerEnabled |
[1.0.0-7.0.1] 1 | #SetClockEnabled |
[1.0.0-7.0.1] 2 | #SetClockRate |
[1.0.0-7.0.1] 3 | #GetClockRate |
[1.0.0-7.0.1] 4 | #GetState |
[1.0.0-7.0.1] 5 | #GetPossibleClockRates |
[1.0.0-7.0.1] 6 | #SetMinVClockRate |
[1.0.0-7.0.1] 7 | #SetReset |
[1.0.0-7.0.1] 8 | #SetVoltageEnabled |
[1.0.0-7.0.1] 9 | #GetVoltageEnabled |
[1.0.0-7.0.1] 10 | #GetVoltageRange |
[1.0.0-7.0.1] 11 | #SetVoltageValue |
[1.0.0-7.0.1] 12 | #GetVoltageValue |
[1.0.0-7.0.1] 13 | #GetTemperatureThresholds |
[1.0.0-7.0.1] 14 | #SetTemperature |
[1.0.0-5.1.0] 15 | #Initialize |
[1.0.0-5.1.0] 16 | #IsInitialized |
[1.0.0-5.1.0] 17 | #Finalize |
[3.0.0-7.0.1] 18 | #PowerOn |
[3.0.0-7.0.1] 19 | #PowerOff |
[3.0.0-7.0.1] 20 | #ChangeVoltage |
[3.0.0-7.0.1] 21 | #GetPowerClockInfoEvent |
[3.0.0-7.0.1] 22 | #GetOscillatorClock |
[3.0.0-7.0.1] 23 | #GetDvfsTable |
[3.0.0-7.0.1] 24 | #GetModuleStateTable |
[3.0.0-7.0.1] 25 | #GetPowerDomainStateTable |
26 | [3.0.0+] #GetFuseInfo |
27 | [5.0.0+] #GetDramId |
[6.0.0-7.0.1] 28 | #IsPoweredOn |
[6.0.0-7.0.1] 29 | #GetVoltage |
SetPowerEnabled
Takes an input ModuleId and an input bool Enabled. No output.
SetClockEnabled
Takes an input ModuleId and an input bool Enabled. No output.
SetClockRate
Takes an input ModuleId and an input u32 ClockRateHz. No output.
GetClockRate
Takes an input ModuleId. Returns an output u32 ClockRateHz.
GetState
Takes an input ModuleId. Returns an output ModuleState.
GetPossibleClockRates
Takes a type-0xA output buffer of ClockRatesListType, an input ModuleId and an input s32 MaxCount. Returns an output s32 OutCount and an output u32 OutRates.
SetMinVClockRate
Takes an input ModuleId and an input u32 ClockRateHz. No output.
SetReset
Takes an input ModuleId and an input bool Asserted. No output.
SetVoltageEnabled
Takes an input PowerDomain and an input bool Enabled. No output.
GetVoltageEnabled
Takes an input PowerDomain. Returns an output bool Enabled.
GetVoltageRange
Takes an input PowerDomain. Returns three output s32s MinVolt, MaxVolt and StepVolt.
SetVoltageValue
Takes an input PowerDomain and an input s32 MicroVolt. No output.
GetVoltageValue
Takes an input PowerDomain. Returns an output s32 MicroVolt.
GetTemperatureThresholds
Takes a type-0xA output buffer of TemperatureThreshold and an input s32 MaxCount. Returns an output s32 OutCount.
SetTemperature
Takes an input s32 TemperatureMilliC. No output.
Initialize
No input/output.
IsInitialized
No input. Returns an output bool.
Finalize
No input/output.
PowerOn
Takes an input PowerControlTarget and an input s32 MicroVolt. No output.
PowerOff
Takes an input PowerControlTarget. No output.
ChangeVoltage
Takes an input PowerControlTarget and an input s32 MicroVolt. No output.
GetPowerClockInfoEvent
No input. Returns an output Event handle.
GetOscillatorClock
No input. Returns an output u32.
GetDvfsTable
Takes two type-0xA output buffers and two input s32s. Returns an output s32 OutCount.
[7.0.0+] The type-0xA output buffers were replaced with type-0x22 output buffers.
GetModuleStateTable
Takes a type-0xA output buffer of ModuleState and an input s32 MaxCount. Returns an output s32 OutCount.
[7.0.0+] The type-0xA output buffer was replaced with a type-0x22 output buffer.
GetPowerDomainStateTable
Takes a type-0xA output buffer of PowerDomainState and an input s32 MaxCount. Returns an output s32 OutCount.
[7.0.0+] The type-0xA output buffer was replaced with a type-0x22 output buffer.
GetFuseInfo
Takes a type-0xA output buffer and an input s32 MaxCount. Returns an output s32 OutCount.
GetDramId
No input. Returns an u32.
IsPoweredOn
Takes an input PowerControlTarget. Returns an output bool.
GetVoltage
Takes an input PowerControlTarget. Returns an output s32.
pcv:arb
This is "nn::pcv::IArbitrationManager".
This service no longer exists in [8.0.0+].
Cmd | Name |
---|---|
0 | #ReleaseControl |
ReleaseControl
Takes an input ModuleId. No output.
pcv:imm
This is "nn::pcv::IImmediateManager".
This service no longer exists in [8.0.0+].
Cmd | Name |
---|---|
0 | #SetClockRate |
clkrst, clkrst:i
These are "nn::clkrst::IClkrstManager" and "nn::clkrst::IImmediateManager".
These were added with [8.0.0+].
Cmd | Name |
---|---|
0 | #OpenSession |
1 | GetTemperatureThresholds |
2 | SetTemperature |
3 | |
4 | |
5 | #GetClockModuleNumLimit |
OpenSession
Takes an input DeviceCode and an input u32. Returns an #IClkrstSession.
GetClockModuleNumLimit
Returns 0x1A.
IClkrstSession
This is "nn::clkrst::IClkrstSession".
Cmd | Name |
---|---|
0 | SetClockEnabled |
1 | SetClockDisabled |
2 | SetResetAsserted |
3 | SetResetDeasserted |
4 | SetPowerEnabled |
5 | SetPowerDisabled |
6 | GetState |
7 | SetClockRate |
8 | GetClockRate |
9 | SetMinVClockRate |
10 | GetPossibleClockRates |
11 | GetDvfsTable |
clkrst:a
This is "nn::clkrst::IArbitrationManager".
This was added with [8.0.0+].
Cmd | Name |
---|---|
0 | ReleaseControl |
ReleaseControl
Takes an input DeviceCode. No output.
rgltr
This is "nn::regulator::IRegulatorManager".
This was added with [8.0.0+].
Cmd | Name |
---|---|
0 | #OpenSession |
1 | |
2 | |
3 | #GetPowerModuleNumLimit |
OpenSession
Takes an input DeviceCode and returns an #IRegulatorSession.
GetPowerModuleNumLimit
Returns 0x3.
IRegulatorSession
This is "nn::regulator::IRegulatorSession".
Cmd | Name |
---|---|
0 | SetVoltageEnabled |
1 | |
2 | GetVoltageEnabled |
3 | GetVoltageRange |
4 | GetVoltageValue |
5 | SetVoltageValue |
6 | ChangeVoltage |
rtc
This was added with [8.0.0+].
Cmd | Name |
---|---|
0 | GetRtcTime |
1 | SetRtcTime |
2 | SetUpRtcResetOnShutdown |
3 | GetRtcResetDetected |
4 | ClearRtcResetDetected |
10 | [10.0.0+] |
11 | [10.0.0+] |
GetRtcTime
Same as GetRtcTime, but takes an input DeviceCode (bpc:r uses hardcoded value 0x3B000001).
SetRtcTime
Same as SetRtcTime, but takes an input DeviceCode (bpc:r uses hardcoded value 0x3B000001).
SetUpRtcResetOnShutdown
Takes an input bool DoReset and an input DeviceCode. Similar to SetUpRtcResetOnShutdown, but this version assigns the provided boolean value on a per-client basis (instead of a global variable) and checks it when the current power state is ReadyShutdown.
GetRtcResetDetected
Same as GetRtcResetDetected, but takes an input DeviceCode (bpc:r uses hardcoded value 0x3B000001).
ClearRtcResetDetected
Same as ClearRtcResetDetected, but takes an input DeviceCode (bpc:r uses hardcoded value 0x3B000001).
time:u, time:a, time:s
This is "nn::timesrv::detail::service::IStaticService".
[9.0.0+] These services were moved to Glue and PSC.
Cmd | Name |
---|---|
0 | #GetStandardUserSystemClock |
1 | #GetStandardNetworkSystemClock |
2 | #GetStandardSteadyClock |
3 | #GetTimeZoneService |
4 | #GetStandardLocalSystemClock |
5 | [4.0.0+] #GetEphemeralNetworkSystemClock |
20 | [6.0.0+] GetSharedMemoryNativeHandle |
30 | [6.0.0+] GetStandardNetworkClockOperationEventReadableHandle |
31 | [6.0.0+] GetEphemeralNetworkClockOperationEventReadableHandle |
50 | [4.0.0+] SetStandardSteadyClockInternalOffset |
100 | IsStandardUserSystemClockAutomaticCorrectionEnabled |
101 | SetStandardUserSystemClockAutomaticCorrectionEnabled |
102 | [5.0.0+] GetStandardUserSystemClockInitialYear |
200 | [3.0.0+] IsStandardNetworkSystemClockAccuracySufficient |
201 | [6.0.0+] GetStandardUserSystemClockAutomaticCorrectionUpdatedTime |
300 | [4.0.0+] CalculateMonotonicSystemClockBaseTimePoint |
400 | [4.0.0+] GetClockSnapshot |
401 | [4.0.0+] GetClockSnapshotFromSystemClockContext |
500 | [4.0.0+] CalculateStandardUserSystemClockDifferenceByUser |
501 | [4.0.0+] CalculateSpanBetween |
GetStandardUserSystemClock
No input. Returns an #ISystemClock.
GetStandardNetworkSystemClock
No input. Returns an #ISystemClock.
GetStandardSteadyClock
No input. Returns an #ISteadyClock.
GetTimeZoneService
No input. Returns an #ITimeZoneService.
GetStandardLocalSystemClock
No input. Returns an #ISystemClock.
GetEphemeralNetworkSystemClock
No input. Returns an #ISystemClock.
ISteadyClock
This is "nn::timesrv::detail::service::ISteadyClock".
Cmd | Name |
---|---|
0 | #GetCurrentTimePoint |
2 | #GetTestOffset |
3 | #SetTestOffset |
100 | [2.0.0+] #GetRtcValue |
101 | [2.0.0+] #IsRtcResetDetected |
102 | [2.0.0+] #GetSetupResultValue |
200 | [3.0.0+] #GetInternalOffset |
201 | [3.0.0-3.0.2] #SetInternalOffset |
GetCurrentTimePoint
No input. Returns an output #SteadyClockTimePoint.
GetTestOffset
No input. Returns an output #TimeSpanType.
SetTestOffset
Takes an input #TimeSpanType. No output.
GetRtcValue
No input. Returns an output s64.
IsRtcResetDetected
No input. Returns an output u8 bool.
GetSetupResultValue
No input. Returns an output u32.
GetInternalOffset
No input. Returns an output #TimeSpanType.
SetInternalOffset
Takes an input #TimeSpanType. No output.
ISystemClock
This is "nn::timesrv::detail::service::ISystemClock".
Cmd | Name |
---|---|
0 | #GetCurrentTime |
1 | #SetCurrentTime |
2 | #GetSystemClockContext |
3 | #SetSystemClockContext |
4 | [9.0.0+] GetOperationEventReadableHandle |
GetCurrentTime
No input. Returns an output #PosixTime.
SetCurrentTime
Takes an input #PosixTime. No output.
GetSystemClockContext
No input. Returns an output #SystemClockContext.
SetSystemClockContext
Takes an input #SystemClockContext. No output.
ITimeZoneService
This is "nn::timesrv::detail::service::ITimeZoneService".
Cmd | Name |
---|---|
0 | #GetDeviceLocationName |
1 | #SetDeviceLocationName |
2 | #GetTotalLocationNameCount |
3 | #LoadLocationNameList |
4 | #LoadTimeZoneRule |
5 | [2.0.0+] #GetTimeZoneRuleVersion |
6 | [5.0.0+] GetDeviceLocationNameAndUpdatedTime |
100 | #ToCalendarTime |
101 | #ToCalendarTimeWithMyRule |
201 | #ToPosixTime |
202 | #ToPosixTimeWithMyRule |
GetDeviceLocationName
No input. Returns an output #LocationName.
SetDeviceLocationName
Takes an input #LocationName. No output.
GetTotalLocationNameCount
No input. Returns an output s32.
LoadLocationNameList
Takes an input s32 LocationName_index and a type-0x6 output buffer for #LocationName. Returns an output s32 for total output entries.
LoadTimeZoneRule
Takes an input #LocationName and a type-0x16 output buffer for #TimeZoneRule. No output.
GetTimeZoneRuleVersion
No input. Returns an output #TimeZoneRuleVersion.
ToCalendarTime
Takes an input #PosixTime and a type-0x15 input buffer for #TimeZoneRule. Returns an output #CalendarTime and #CalendarAdditionalInfo.
ToCalendarTimeWithMyRule
Takes an input #PosixTime. Returns an output #CalendarTime and #CalendarAdditionalInfo.
ToPosixTime
Takes an input #CalendarTime, a type-0x15 input buffer for #TimeZoneRule, an type-0xA output buffer for #PosixTime array.R eturns an output s32.
ToPosixTimeWithMyRule
Takes an input #CalendarTime, an type-0xA output buffer for #PosixTime array. Returns an output s32.
BoardPowerControlEventTarget
This is "nn::bpc::BoardPowerControlEventTarget".
SleepButtonState
This is "nn::bpc::SleepButtonState".
EventTarget
This is "nn::bpc::EventTarget".
Module
This is "nn::pcv::Module".
Value | Name | DeviceCode | Rail |
---|---|---|---|
0 | Cpu | 0x40000001 | VddCpu |
1 | Gpu | 0x40000002 | VddGpu |
2 | I2s1 | 0x40000003 | VddSoc |
3 | I2s2 | 0x40000004 | VddSoc |
4 | I2s3 | 0x40000005 | VddSoc |
5 | Pwm | 0x40000006 | VddSoc |
6 | I2c1 | 0x02000001 | VddSoc |
7 | I2c2 | 0x02000002 | VddSoc |
8 | I2c3 | 0x02000003 | VddSoc |
9 | I2c4 | 0x02000004 | VddSoc |
10 | I2c5 | 0x02000005 | VddSoc |
11 | I2c6 | 0x02000006 | VddSoc |
12 | Spi1 | 0x07000000 | VddSoc |
13 | Spi2 | 0x07000001 | VddSoc |
14 | Spi3 | 0x07000002 | VddSoc |
15 | Spi4 | 0x07000003 | VddSoc |
16 | Disp1 | 0x40000011 | VddSoc |
17 | Disp2 | 0x40000012 | VddSoc |
18 | Isp | 0x40000013 | None |
19 | Vi | 0x40000014 | None |
20 | Sdmmc1 | 0x40000015 | VddSoc |
21 | Sdmmc2 | 0x40000016 | VddSoc |
22 | Sdmmc3 | 0x40000017 | VddSoc |
23 | Sdmmc4 | 0x40000018 | VddSoc |
24 | Owr | 0x40000019 | None |
25 | Csite | 0x4000001A | VddSoc |
26 | Tsec | 0x4000001B | VddSoc |
27 | Mselect | 0x4000001C | VddSoc |
28 | Hda2codec2x | 0x4000001D | VddSoc |
29 | Actmon | 0x4000001E | VddSoc |
30 | I2cSlow | 0x4000001F | VddSoc |
31 | Sor1 | 0x40000020 | VddSoc |
32 | Sata | 0x40000021 | None |
33 | Hda | 0x40000022 | VddSoc |
34 | XusbCoreHostSrc | 0x40000023 | VddSoc |
35 | XusbFalconSrc | 0x40000024 | VddSoc |
36 | XusbFsSrc | 0x40000025 | VddSoc |
37 | XusbCoreDevSrc | 0x40000026 | VddSoc |
38 | XusbSsSrc | 0x40000027 | VddSoc |
39 | UartA | 0x03000001 | VddSoc |
40 | UartB | 0x35000405 | VddSoc |
41 | UartC | 0x3500040F | VddSoc |
42 | UartD | 0x37000001 | VddSoc |
43 | Host1x | 0x4000002C | VddSoc |
44 | Entropy | 0x4000002D | VddSoc |
45 | SocTherm | 0x4000002E | VddSoc |
46 | Vic | 0x4000002F | VddSoc |
47 | Nvenc | 0x40000030 | VddSoc |
48 | Nvjpg | 0x40000031 | VddSoc |
49 | Nvdec | 0x40000032 | VddSoc |
50 | Qspi | 0x40000033 | VddSoc |
51 | ViI2c | 0x40000034 | None |
52 | Tsecb | 0x40000035 | VddSoc |
53 | Ape | 0x40000036 | VddSoc |
54 | AudioDsp | 0x40000037 | VddSoc |
55 | AudioUart | 0x40000038 | VddSoc |
56 | Emc | 0x40000039 | VddSoc |
57 | Plle | 0x4000003A | VddSoc |
58 | PlleHwSeq | 0x4000003B | VddSoc |
59 | Dsi | 0x4000003C | VddSoc |
60 | Maud | 0x4000003D | VddSoc |
61 | Dpaux1 | 0x4000003E | VddSoc |
62 | MipiCal | 0x4000003F | VddSoc |
63 | UartFstMipiCal | 0x40000040 | VddSoc |
64 | Osc | 0x40000041 | VddSoc |
65 | SysBus | 0x40000042 | VddSoc |
66 | SorSafe | 0x40000043 | VddSoc |
67 | XusbSs | 0x40000044 | VddSoc |
68 | XusbHost | 0x40000045 | VddSoc |
69 | XusbDevice | 0x40000046 | VddSoc |
70 | Extperiph1 | 0x40000047 | VddSoc |
71 | Ahub | 0x40000048 | VddSoc |
72 | Hda2hdmicodec | 0x40000049 | VddSoc |
73 | Gpuaux | 0x4000004A | VddSoc |
74 | UsbD | 0x4000004B | VddSoc |
75 | Usb2 | 0x4000004C | VddSoc |
76 | Pcie | 0x4000004D | VddSoc |
77 | Afi | 0x4000004E | VddSoc |
78 | PciExClk | 0x4000004F | VddSoc |
79 | PExUsbPhy | 0x40000050 | VddSoc |
80 | XUsbPadCtl | 0x40000051 | VddSoc |
81 | Apbdma | 0x40000052 | VddSoc |
82 | Usb2TrkClk | 0x40000053 | VddSoc |
83 | XUsbIoPll | 0x40000054 | VddSoc |
84 | XUsbIoPllHwSeq | 0x40000055 | VddSoc |
85 | Cec | 0x40000056 | VddSoc |
[6.0.0+] 86 | Extperiph2 | 0x40000057 | VddSoc |
PowerDomain
This is "nn::pcv::PowerDomain".
Value | Name | DeviceCode | Description |
---|---|---|---|
0 | Max77620_Sd0 | 0x3A000080 | SoC (1.125v) |
1 | Max77620_Sd1 | 0x3A000081 | Dram (1.1v) |
2 | Max77620_Sd2 | 0x3A000082 | Ldo0, Ldo1, Ldo7, Ldo8 (1.325v) |
3 | Max77620_Sd3 | 0x3A000083 | 1.8v |
4 | Max77620_Ldo0 | 0x3A0000A0 | Panel (1.2v) |
5 | Max77620_Ldo1 | 0x3A0000A1 | Xusb, PCIe (1.05v) |
6 | Max77620_Ldo2 | 0x3A0000A2 | SdCard (1.8v, 3.3v) |
7 | Max77620_Ldo3 | 0x3A0000A3 | GcAsic (3.1v) |
8 | Max77620_Ldo4 | 0x3A0000A4 | Rtc (0.85v) |
9 | Max77620_Ldo5 | 0x3A0000A5 | GcCard (1.8v) |
10 | Max77620_Ldo6 | 0x3A0000A6 | Touchscreen, ALS (2.9v) |
11 | Max77620_Ldo7 | 0x3A0000A7 | Xusb (1.05v) |
12 | Max77620_Ldo8 | 0x3A0000A8 | DisplayPort, HDMI, SioMcu (1.05v) |
13 | Max77621_Cpu | 0x3A000003 | |
14 | Max77621_Gpu | 0x3A000004 | |
[6.0.0+] 15 | Max77812_Cpu | 0x3A000003 | |
[6.0.0+] 16 | Max77812_Gpu | 0x3A000004 | |
[6.0.0+] 17 | Max77812_Dram | 0x3A000005 |
ClockRatesListType
This is "nn::pcv::ClockRatesListType".
Value | Description |
---|---|
0 | Invalid |
1 | Discrete |
2 | Range |
ModuleState
This is "nn::pcv::ModuleState".
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | ClockFrequency |
0x4 | 0x1 | ClockEnabled |
0x5 | 0x1 | PowerEnabled |
0x6 | 0x1 | ResetAsserted |
0x7 | 0x1 | Reserved |
0x8 | 0x4 | MinVClockRate |
TemperatureThreshold
This is "nn::pcv::TemperatureThreshold".
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | MinMilliC |
0x4 | 0x4 | MaxMilliC |
PowerControlTarget
This is "nn::pcv::PowerControlTarget".
Value | Name | DeviceCode | Description |
---|---|---|---|
0 | 0x3C000004 | SdCard | |
1 | 0x34000007 | DisplayPort, HDMI | |
2 | |||
3 | 0x3500041A | SioMcu |
PowerDomainState
This is "nn::pcv::PowerDomainState".
SteadyClockTimePoint
This is a 0x18-byte struct.
Offset | Size | Description |
---|---|---|
0x0 | 0x8 | A u64 representing a point in time. |
0x8 | 0x10 | An ID representing the clock source. |
TimeSpanType
This is an u64.
PosixTime
This is an s64 for UTC POSIX time.
SystemClockContext
This is an 0x20-byte struct.
Offset | Size | Description |
---|---|---|
0x0 | 0x8 | a #PosixTime representing the system clock epoch. |
0x8 | 0x18 | a #SteadyClockTimePoint |
LocationName
This contains a TimeZone location string with a max size of 0x24 bytes.
TimeZoneRule
This is an 0x4000-byte struct. Official sw uses fixed-size 0x4000 for the buffer size with the above commands.
This is loaded from the TimeZoneBinary title with the specified LocationName under the zoneinfo/ directory, the content is then converted into this TimeZoneRule structure.
The files contained under zoneinfo/ directory are Tzif2 files without Tzif1 header and data at the begining of them (see RFC8536 for more information).
The conversion of a Tzif2 file to a TimeZoneRule structure is based on tz database code with some custom modifications (Leap seconds aren't handled, no usage of "posixrules" and Tzif1 support stripped out).
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | timecnt |
0x4 | 0x4 | typecnt |
0x8 | 0x4 | charcnt |
0xC | 0x1 | goback |
0xD | 0x1 | goahead |
0xE | 0x2 | Padding |
0x10 | 0x8 * 1000 | ats |
0x1f50 | 0x1 * 1000 | types |
0x2338 | 0x10 * 128 | ttis (time type information), struct ttinfo[1000] |
0x2b38 | 0x1 * 512 | chars |
0x2d38 | 0x4 | defaulttype |
0x2d3c | 0x12c4 | Reserved / Unused |
ttinfo
This is an 0x10-byte struct. Represents a Time Type Information used in #TimeZoneRule.
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | tt_gmtoff |
0x4 | 0x1 | tt_isdst |
0x5 | 0x3 | Padding |
0x8 | 0x4 | tt_abbrind |
0xC | 0x1 | tt_ttisstd |
0xD | 0x1 | tt_ttisgmt |
0xE | 0x2 | Padding |
TimeZoneRuleVersion
This is an u128.
CalendarTime
This is an 0x8-byte struct.
Offset | Size | Description |
---|---|---|
0x0 | 0x2 | Year |
0x2 | 0x1 | Month |
0x3 | 0x1 | Day |
0x4 | 0x1 | Hour |
0x5 | 0x1 | Minute |
0x6 | 0x1 | Second |
0x7 | 0x1 | Padding / unknown? |
CalendarAdditionalInfo
This is an 0x18-byte struct. This stores timezone info.
Offset | Size | Description |
---|---|---|
0x0 | 0x4 | 0-based day-of-week. |
0x4 | 0x4 | 0-based day-of-year. |
0x8 | 0x8 | Timezone name string. |
0x10 | 0x4 | 0 = no DST, 1 = DST. |
0x14 | 0x4 | s32 seconds relative to UTC for this timezone. |