Changes

Jump to navigation Jump to search
1,274 bytes added ,  21:26, 4 October 2017
Added IPC call names and headers
Line 123: Line 123:  
!  Description
 
!  Description
 
|-
 
|-
| 0x0001....
+
| 0x00010080
| SetSystemClock (RTC)
+
| SetRTC
 
|-
 
|-
| 0x0002....
+
| 0x00020000
| GetSystemClock (RTC)
+
| GetRTC
 
|-
 
|-
| 0x0003....
+
| 0x00030040
| ?
+
| SetRTCSeconds
 
|-
 
|-
| 0x0004....
+
| 0x00040000
| GetSystemClockSeconds
+
| GetRTCSeconds
 
|-
 
|-
| 0x0005....
+
| 0x00050040
| ?
+
| SetRTCMinutes
 
|-
 
|-
| 0x0006....
+
| 0x00060000
| GetSystemClockMinutes ?
+
| GetRTCMinutes
 
|-
 
|-
| 0x0007....
+
| 0x00070040
| ?
+
| SetRTCHours
 
|-
 
|-
| 0x0008....
+
| 0x00080000
|  
+
| GetRTCHours
 
|-
 
|-
| 0x0009....
+
| 0x00090040
| ?
+
| SetRTCDayOfWeek
 
|-
 
|-
| 0x000A....
+
| 0x000A0000
| ?
+
| GetRTCDayOfWeek
 
|-
 
|-
| 0x000B....
+
| 0x000B0040
| ?
+
| SetRTCDayOfMonth
 
|-
 
|-
| 0x000C....
+
| 0x000C0000
| ?
+
| GetRTCDayOfMonth
 
|-
 
|-
| 0x000D....
+
| 0x000D0040
| ?
+
| SetRTCMonth
 
|-
 
|-
| 0x000E....
+
| 0x000E0000
| ?
+
| GetRTCMonth
 
|-
 
|-
| 0x000F....
+
| 0x000F0040
| ?
+
| SetRTCYear
 
|-
 
|-
| 0x0010....
+
| 0x00100000
| ?
+
| GetRTCYear
 
|-
 
|-
| 0x0011....
+
| 0x00110040
| ?
+
| SetRTCLeapYearCounter
 
|-
 
|-
| 0x0012....
+
| 0x00120000
| ?
+
| GetRTCLeapYearCounter
 
|-
 
|-
| 0x0013....
+
| 0x00130080
| ?
+
| SetRTCAlarm
 
|-
 
|-
| 0x0014....
+
| 0x00140000
| ?
+
| GetRTCAlarm
 
|-
 
|-
| 0x0015....
+
| 0x00150040
| ?
+
| SetRTCAlarmComponent[0]
 
|-
 
|-
| 0x0016....
+
| 0x00160000
| ?
+
| GetRTCAlarmComponent[0]
 
|-
 
|-
| 0x0017....
+
| 0x00170040
| ?
+
| SetRTCAlarmComponent[1]
 
|-
 
|-
| 0x0018....
+
| 0x00180000
| ?
+
| GetRTCAlarmComponent[1]
 
|-
 
|-
| 0x0019....
+
| 0x00190040
| ?
+
| SetRTCAlarmComponent[2]
 
|-
 
|-
| 0x001A....
+
| 0x001A0000
| ?
+
| GetRTCAlarmComponent[2]
 
|-
 
|-
| 0x001B....
+
| 0x001B0040
| ?
+
| SetRTCAlarmComponent[3]
 
|-
 
|-
| 0x001C....
+
| 0x001C0000
| ?
+
| GetRTCAlarmComponent[3]
 
|-
 
|-
| 0x001D....
+
| 0x001D0040
| ?
+
| SetRTCAlarmComponent[4]
 
|-
 
|-
| 0x001E....
+
| 0x001E0000
| ?
+
| GetRTCAlarmComponent[4]
 
|-
 
|-
 
| 0x001F0040
 
| 0x001F0040
Line 217: Line 217:  
|-
 
|-
 
| 0x00200000
 
| 0x00200000
| GetPedometerState
+
| GetPedometerRecordingMode
 
|-
 
|-
 
| 0x00210080
 
| 0x00210080
| GetStepCount(for the current day)
+
| GetStepCount (for the current day)
 
|-
 
|-
| 0x0022....
+
| 0x00220042
| ?
+
| ReadRegister4Fh(u32 unused_size, translation_param size=0x156 << 4 <nowiki>|</nowiki> 0xC, u8[0x156] ptr)
 
|-
 
|-
| 0x0023....
+
| 0x00230000
| ?
+
| ??? writes 1 to register 0x4E which is not writable
 
|-
 
|-
| 0x0024....
+
| 0x00240000
| GetMcuRtcEventHandle. MCU notifications 1, 8, 9, 10, 13, 14 and 15 signal this.
+
| GetPowerEventHandle. MCU notifications 1, 8, 9, 10, 13, 14 and 15 signal this.
 +
see [[I2C_Registers#Device_3|Register 0x18]]
 
|-
 
|-
| 0x0025....
+
| 0x00250000
| GetMcuRtcEventReason
+
| GetPowerInterruptHistory
 
|-
 
|-
| 0x0026....
+
| 0x00260000
| ?
+
| CheckRegister02hBit0
 
|-
 
|-
| 0x0027....
+
| 0x00270000
| Disables i2c register 2
+
| ClearRegister02hBit0 (does nothing since the register is not writable)
 
|-
 
|-
| 0x0028....
+
| 0x00280000
| ?
+
| CheckRegister02hBit1
 
|-
 
|-
| 0x0029....
+
| 0x00290000
| Same as 0x0027....
+
| ClearRegister02hBit1
 
|-
 
|-
 
| 0x002A0000
 
| 0x002A0000
Line 258: Line 259:  
| [[MCURTC:GetBatteryLevel|GetBatteryLevel]]
 
| [[MCURTC:GetBatteryLevel|GetBatteryLevel]]
 
|-
 
|-
| 0x002E....
+
| 0x002E0000
| ?
+
| GetBatteryEmptyPatternByte0
 
|-
 
|-
| 0x002F....
+
| 0x002F0000
| ?
+
| GetBatteryEmptyPatternByte0_safe™
 
|-
 
|-
| 0x0030....
+
| 0x00300040
| ?
+
| SetLEDBrightness (see [[I2C_Registers#Device_3|Register 0x28]])
 
|-
 
|-
| 0x0031....
+
| 0x00310000
| ?
+
| GetLEDBrightness (see [[I2C_Registers#Device_3|Register 0x28]])
 
|-
 
|-
| 0x0032....
+
| 0x00320000
| [[MCURTC:PowerOff|PowerOff]] (writes 0x1 to i2c MCU device, reg 0x20)
+
| PowerOff (writes 0x1 to i2c MCU device, [[I2C_Registers#Device_3|reg 0x20]])
 
|-
 
|-
| 0x0033....
+
| 0x00330000
| [[MCURTC:HardwareReboot|HardwareReboot]] (writes 0x4 to i2c MCU device, reg 0x20)
+
| HardwareReboot (writes 0x4 to i2c MCU device, [[I2C_Registers#Device_3|reg 0x20]])
 
|-
 
|-
| 0x0034....
+
| 0x00340000
| ?
+
| WriteRegister reg=0x23 value=0x72 (writing to read-only registers does nothing)
 
|-
 
|-
| 0x0035....
+
| 0x00350000
| Writes 0x10 to i2c MCU device, reg 0x20
+
| Writes 0x10 to i2c MCU device, reg 0x20 (this bit of the register is not writable)
 
|-
 
|-
| 0x0036....
+
| 0x00360040
 
| SetWatchdogTimer
 
| SetWatchdogTimer
 
|-
 
|-
| 0x0037....
+
| 0x00370000
 
| GetWatchdogTimer
 
| GetWatchdogTimer
 
|-
 
|-
| 0x0038....
+
| 0x00380042
| ?
+
| ReadInfoRegister(u32 unused_size, translation_param size << 4 <nowiki>|</nowiki> 0xC, u8[0x13] ptr)
 
|-
 
|-
| 0x0039....
+
| 0x00390082
| ?
+
| WriteLoop (translation parameters too complex)
 
|-
 
|-
| 0x003A....
+
| 0x003A0082
| ?
+
| ReadLoop (translation parameters too complex)
 
|-
 
|-
 
| 0x003B0640
 
| 0x003B0640
Line 306: Line 307:  
| [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]]
 
| [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]]
 
|-
 
|-
| 0x003E....
+
| 0x003E0040
| ?
+
| WriteRegister50h
 
|-
 
|-
| 0x003F....
+
| 0x003F0000
| ?
+
| ReadRegister50h
 
|-
 
|-
| 0x0040....
+
| 0x00400040
| ?
+
| WriteRegister51h
 
|-
 
|-
| 0x0041....
+
| 0x00410000
| ?
+
| ReadRegister51h
 
|-
 
|-
 
| 0x00420040
 
| 0x00420040
 
| [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]]
 
| [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]]
 
|-
 
|-
| 0x0043....
+
| 0x00430040
| ?
+
| SetScreenFlickerTop
 
|-
 
|-
| 0x0044....
+
| 0x00440000
| ?
+
| GetScreenFlickerTop
 
|-
 
|-
| 0x0045....
+
| 0x00450040
| ?
+
| SetScreenFlickerBottom
 
|-
 
|-
| 0x0046....
+
| 0x00460000
| ?
+
| GetScreenFlickerBottom
 
|-
 
|-
| 0x0047....
+
| 0x00470080
| ?
+
| SetVolumeSliderBounds
 
|-
 
|-
| 0x0048....
+
| 0x00480000
| ?
+
| GetVolumeSliderBounds
 
|-
 
|-
| 0x0049....
+
| 0x00490040
| ?
+
| SetInterruptMask (see [[I2C_Registers#Device_3|Register 0x18]])
 
|-
 
|-
| 0x004A....
+
| 0x004A0000
| ?
+
| GetInterruptMask (see [[I2C_Registers#Device_3|Register 0x18]])
 
|-
 
|-
| 0x004B....
+
| 0x004B0000
| ?
+
| ExitExclusiveInterruptMode
 
|-
 
|-
| 0x004C....
+
| 0x004C0000
| ?
+
| EnterExclusiveInterruptMode
 
|-
 
|-
| 0x004D....
+
| 0x004D0000
| [[MCURTC:ReadHidFlagRegister|ReadHidFlagRegister]] (reads i2c MCU device, reg 0x10)
+
| [[MCURTC:ReadHidFlagRegister|ReadInterrupt]] (see [[I2C_Registers#Device_3|Register 0x10]])
 
|-
 
|-
 
| 0x004E0040
 
| 0x004E0040
| [[MCURTC:PublishNotifications|PublishNotifications]]
+
| [[MCURTC:PublishNotifications|TriggerInterrupt]]
 
|-
 
|-
| 0x004F....
+
| 0x004F0040
| Sets some flag (otherwise set when uploading MCU firmware)
+
| SetMCUFirmUpdated(u32 flag) not used by anything
 
|-
 
|-
| 0x0050....
+
| 0x00500000
| Returns the above flag
+
| IsMCUFirmUpdated
 
|-
 
|-
 
| 0x00510040
 
| 0x00510040
Line 369: Line 370:  
| [[MCURTC:GetSoftwareClosedFlag|GetSoftwareClosedFlag]]
 
| [[MCURTC:GetSoftwareClosedFlag|GetSoftwareClosedFlag]]
 
|-
 
|-
| 0x0053....
+
| 0x00530040
 
| ?
 
| ?
 
|-
 
|-
| 0x0054....
+
| 0x00540000
 
| ?
 
| ?
 
|-
 
|-
| 0x0055....
+
| 0x00550040
 
| ?
 
| ?
 
|-
 
|-
| 0x0056....
+
| 0x00560000
 
| ?
 
| ?
 
|-
 
|-
| 0x0057....
+
| 0x00570040
 
| ?
 
| ?
 
|-
 
|-
| 0x0058....
+
| 0x00580000
 
| ?
 
| ?
 
|-
 
|-
Line 393: Line 394:  
| [[MCURTC:GetLegacyJumpProhibitedFlag|GetLegacyJumpProhibitedFlag]]
 
| [[MCURTC:GetLegacyJumpProhibitedFlag|GetLegacyJumpProhibitedFlag]]
 
|}
 
|}
  −
Note that using invalid input with these InfoLED/SetBatteryEmptyLEDPattern commands(especially SetInfoLEDPattern) can cause the system to be bricked(however the boot failure may not begin immediately after using the invalid parameters).
      
=MCU sound service "mcu::SND"=
 
=MCU sound service "mcu::SND"=
Trusted
225

edits

Navigation menu