Difference between revisions of "MCU Services"

From 3dbrew
Jump to navigation Jump to search
Line 2: Line 2:
  
 
=MCU camera service "mcu::CAM"=
 
=MCU camera service "mcu::CAM"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x0001....
 +
| ?
 +
|-
 +
| 0x0002....
 +
| ?
 +
|}
  
 
=MCU GPU service "mcu::GPU"=
 
=MCU GPU service "mcu::GPU"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x0001....
 +
| ?
 +
|-
 +
| 0x0002....
 +
| ?
 +
|-
 +
| 0x0003....
 +
| ?
 +
|-
 +
| 0x0004....
 +
| ?
 +
|-
 +
| 0x0005....
 +
| ?
 +
|-
 +
| 0x0006....
 +
| ?
 +
|-
 +
| 0x0007....
 +
| ?
 +
|-
 +
| 0x0008....
 +
| ?
 +
|-
 +
| 0x0009....
 +
| ?
 +
|-
 +
| 0x000A....
 +
| ?
 +
|-
 +
| 0x000B....
 +
| ?
 +
|-
 +
| 0x000C....
 +
| ?
 +
|-
 +
| 0x000D....
 +
| ?
 +
|-
 +
| 0x000E....
 +
| ?
 +
|}
  
 
=MCU HID service "mcu::HID"=
 
=MCU HID service "mcu::HID"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x0001....
 +
| ?
 +
|-
 +
| 0x0002....
 +
| ?
 +
|-
 +
| 0x0003....
 +
| ?
 +
|-
 +
| 0x0004....
 +
| ?
 +
|-
 +
| 0x0005....
 +
| ?
 +
|-
 +
| 0x0006....
 +
| ?
 +
|-
 +
| 0x0007....
 +
| ?
 +
|-
 +
| 0x0008....
 +
| ?
 +
|-
 +
| 0x0009....
 +
| ?
 +
|-
 +
| 0x000A....
 +
| ?
 +
|-
 +
| 0x000B....
 +
| ?
 +
|-
 +
| 0x000C....
 +
| ?
 +
|-
 +
| 0x000D....
 +
| ?
 +
|-
 +
| 0x000E....
 +
| ?
 +
|}
  
 
=MCU service "mcu::RTC"=
 
=MCU service "mcu::RTC"=
Line 12: Line 117:
 
!  Command Header
 
!  Command Header
 
!  Description
 
!  Description
 +
|-
 +
| 0x0001....
 +
| ?
 +
|-
 +
| 0x0002....
 +
| ?
 +
|-
 +
| 0x0003....
 +
| ?
 +
|-
 +
| 0x0004....
 +
| ?
 +
|-
 +
| 0x0005....
 +
| ?
 +
|-
 +
| 0x0006....
 +
| ?
 +
|-
 +
| 0x0007....
 +
| ?
 +
|-
 +
| 0x0008....
 +
| ?
 +
|-
 +
| 0x0009....
 +
| ?
 +
|-
 +
| 0x000A....
 +
| ?
 +
|-
 +
| 0x000B....
 +
| ?
 +
|-
 +
| 0x000C....
 +
| ?
 +
|-
 +
| 0x000D....
 +
| ?
 +
|-
 +
| 0x000E....
 +
| ?
 +
|-
 +
| 0x000F....
 +
| ?
 +
|-
 +
| 0x0010....
 +
| ?
 +
|-
 +
| 0x0011....
 +
| ?
 +
|-
 +
| 0x0012....
 +
| ?
 +
|-
 +
| 0x0013....
 +
| ?
 +
|-
 +
| 0x0014....
 +
| ?
 +
|-
 +
| 0x0015....
 +
| ?
 +
|-
 +
| 0x0016....
 +
| ?
 +
|-
 +
| 0x0017....
 +
| ?
 +
|-
 +
| 0x0018....
 +
| ?
 +
|-
 +
| 0x0019....
 +
| ?
 +
|-
 +
| 0x001A....
 +
| ?
 +
|-
 +
| 0x001B....
 +
| ?
 +
|-
 +
| 0x001C....
 +
| ?
 +
|-
 +
| 0x001D....
 +
| ?
 +
|-
 +
| 0x001E....
 +
| ?
 +
|-
 +
| 0x001F....
 +
| ?
 +
|-
 +
| 0x0020....
 +
| ?
 +
|-
 +
| 0x0021....
 +
| ?
 +
|-
 +
| 0x0022....
 +
| ?
 +
|-
 +
| 0x0023....
 +
| ?
 +
|-
 +
| 0x0024....
 +
| ?
 +
|-
 +
| 0x0025....
 +
| ?
 +
|-
 +
| 0x0026....
 +
| ?
 +
|-
 +
| 0x0027....
 +
| ?
 +
|-
 +
| 0x0028....
 +
| ?
 +
|-
 +
| 0x0029....
 +
| ?
 +
|-
 +
| 0x002A....
 +
| ?
 +
|-
 +
| 0x002B....
 +
| ?
 +
|-
 +
| 0x002C....
 +
| ?
 +
|-
 +
| 0x002D....
 +
| ?
 +
|-
 +
| 0x002E....
 +
| ?
 +
|-
 +
| 0x002F....
 +
| ?
 +
|-
 +
| 0x0030....
 +
| ?
 +
|-
 +
| 0x0031....
 +
| ?
 +
|-
 +
| 0x0032....
 +
| ?
 +
|-
 +
| 0x0033....
 +
| ?
 +
|-
 +
| 0x0034....
 +
| ?
 +
|-
 +
| 0x0035....
 +
| ?
 +
|-
 +
| 0x0036....
 +
| ?
 +
|-
 +
| 0x0037....
 +
| ?
 +
|-
 +
| 0x0038....
 +
| ?
 +
|-
 +
| 0x0039....
 +
| ?
 +
|-
 +
| 0x003A....
 +
| ?
 
|-
 
|-
 
| 0x003B0640
 
| 0x003B0640
Line 21: Line 300:
 
| 0x003D0000
 
| 0x003D0000
 
| [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]]
 
| [[MCURTC:GetInfoLEDStatus|GetInfoLEDStatus]]
 +
|-
 +
| 0x003E....
 +
| ?
 +
|-
 +
| 0x003F....
 +
| ?
 +
|-
 +
| 0x0040....
 +
| ?
 +
|-
 +
| 0x0041....
 +
| ?
 
|-
 
|-
 
| 0x00420040
 
| 0x00420040
 
| [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]]
 
| [[MCURTC:SetBatteryEmptyLEDPattern|SetBatteryEmptyLEDPattern]]
 +
|-
 +
| 0x0043....
 +
| ?
 +
|-
 +
| 0x0044....
 +
| ?
 +
|-
 +
| 0x0045....
 +
| ?
 +
|-
 +
| 0x0046....
 +
| ?
 +
|-
 +
| 0x0047....
 +
| ?
 +
|-
 +
| 0x0048....
 +
| ?
 +
|-
 +
| 0x0049....
 +
| ?
 +
|-
 +
| 0x004A....
 +
| ?
 +
|-
 +
| 0x004B....
 +
| ?
 +
|-
 +
| 0x004C....
 +
| ?
 +
|-
 +
| 0x004D....
 +
| ?
 +
|-
 +
| 0x004E....
 +
| ?
 +
|-
 +
| 0x004F....
 +
| ?
 +
|-
 +
| 0x0050....
 +
| ?
 +
|-
 +
| 0x0051....
 +
| ?
 +
|-
 +
| 0x0052....
 +
| ?
 +
|-
 +
| 0x0053....
 +
| ?
 +
|-
 +
| 0x0054....
 +
| ?
 +
|-
 +
| 0x0055....
 +
| ?
 +
|-
 +
| 0x0056....
 +
| ?
 +
|-
 +
| 0x0057....
 +
| ?
 +
|-
 +
| 0x0058....
 +
| ?
 +
|-
 +
| 0x0059....
 +
| ?
 +
|-
 +
| 0x005A....
 +
| ?
 
|}
 
|}
  
Line 29: Line 392:
  
 
=MCU sound service "mcu::SND"=
 
=MCU sound service "mcu::SND"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x0001....
 +
| ?
 +
|-
 +
| 0x0002....
 +
| ?
 +
|-
 +
| 0x0003....
 +
| ?
 +
|}
  
 
=MCU wifi service "mcu::NWM"=
 
=MCU wifi service "mcu::NWM"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x0001....
 +
| ?
 +
|-
 +
| 0x0002....
 +
| ?
 +
|-
 +
| 0x0003....
 +
| ?
 +
|-
 +
| 0x0004....
 +
| ?
 +
|-
 +
| 0x0005....
 +
| ?
 +
|-
 +
| 0x0006....
 +
| ?
 +
|-
 +
| 0x0007....
 +
| ?
 +
|-
 +
| 0x0008....
 +
| ?
 +
|}
  
 
=MCU service "mcu::HWC"=
 
=MCU service "mcu::HWC"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x0001....
 +
| ?
 +
|-
 +
| 0x0002....
 +
| ?
 +
|-
 +
| 0x0003....
 +
| ?
 +
|-
 +
| 0x0004....
 +
| ?
 +
|-
 +
| 0x0005....
 +
| ?
 +
|-
 +
| 0x0006....
 +
| ?
 +
|-
 +
| 0x0007....
 +
| ?
 +
|-
 +
| 0x0008....
 +
| ?
 +
|-
 +
| 0x0009....
 +
| ?
 +
|-
 +
| 0x000A....
 +
| ?
 +
|-
 +
| 0x000B....
 +
| ?
 +
|-
 +
| 0x000C....
 +
| ?
 +
|-
 +
| 0x000D....
 +
| ?
 +
|-
 +
| 0x000E....
 +
| ?
 +
|-
 +
| 0x000F....
 +
| ?
 +
|-
 +
| 0x0010....
 +
| ?
 +
|-
 +
| 0x0011....
 +
| ?
 +
|}
  
 
=MCU service "mcu::PLS"=
 
=MCU service "mcu::PLS"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x0001....
 +
| ?
 +
|-
 +
| 0x0002....
 +
| ?
 +
|-
 +
| 0x0003....
 +
| ?
 +
|-
 +
| 0x0004....
 +
| ?
 +
|-
 +
| 0x0005....
 +
| ?
 +
|-
 +
| 0x0006....
 +
| ?
 +
|-
 +
| 0x0007....
 +
| ?
 +
|-
 +
| 0x0008....
 +
| ?
 +
|-
 +
| 0x0009....
 +
| ?
 +
|}
  
 
=MCU codec service "mcu::CDC"=
 
=MCU codec service "mcu::CDC"=
 +
{| class="wikitable" border="1"
 +
|-
 +
!  Command Header
 +
!  Description
 +
|-
 +
| 0x00010000
 +
| ?
 +
|}

Revision as of 05:33, 27 October 2013

Only one session can be open per service at a time. If a session is already open for a service, MCU module will wait for the thread handling the session to terminate(triggered by the session being closed by the user process), then it accepts the new session. The commands for each service are handled by separate threads.

MCU camera service "mcu::CAM"

Command Header Description
0x0001.... ?
0x0002.... ?

MCU GPU service "mcu::GPU"

Command Header Description
0x0001.... ?
0x0002.... ?
0x0003.... ?
0x0004.... ?
0x0005.... ?
0x0006.... ?
0x0007.... ?
0x0008.... ?
0x0009.... ?
0x000A.... ?
0x000B.... ?
0x000C.... ?
0x000D.... ?
0x000E.... ?

MCU HID service "mcu::HID"

Command Header Description
0x0001.... ?
0x0002.... ?
0x0003.... ?
0x0004.... ?
0x0005.... ?
0x0006.... ?
0x0007.... ?
0x0008.... ?
0x0009.... ?
0x000A.... ?
0x000B.... ?
0x000C.... ?
0x000D.... ?
0x000E.... ?

MCU service "mcu::RTC"

Command Header Description
0x0001.... ?
0x0002.... ?
0x0003.... ?
0x0004.... ?
0x0005.... ?
0x0006.... ?
0x0007.... ?
0x0008.... ?
0x0009.... ?
0x000A.... ?
0x000B.... ?
0x000C.... ?
0x000D.... ?
0x000E.... ?
0x000F.... ?
0x0010.... ?
0x0011.... ?
0x0012.... ?
0x0013.... ?
0x0014.... ?
0x0015.... ?
0x0016.... ?
0x0017.... ?
0x0018.... ?
0x0019.... ?
0x001A.... ?
0x001B.... ?
0x001C.... ?
0x001D.... ?
0x001E.... ?
0x001F.... ?
0x0020.... ?
0x0021.... ?
0x0022.... ?
0x0023.... ?
0x0024.... ?
0x0025.... ?
0x0026.... ?
0x0027.... ?
0x0028.... ?
0x0029.... ?
0x002A.... ?
0x002B.... ?
0x002C.... ?
0x002D.... ?
0x002E.... ?
0x002F.... ?
0x0030.... ?
0x0031.... ?
0x0032.... ?
0x0033.... ?
0x0034.... ?
0x0035.... ?
0x0036.... ?
0x0037.... ?
0x0038.... ?
0x0039.... ?
0x003A.... ?
0x003B0640 SetInfoLEDPattern
0x003C0040 SetInfoLEDPatternHeader
0x003D0000 GetInfoLEDStatus
0x003E.... ?
0x003F.... ?
0x0040.... ?
0x0041.... ?
0x00420040 SetBatteryEmptyLEDPattern
0x0043.... ?
0x0044.... ?
0x0045.... ?
0x0046.... ?
0x0047.... ?
0x0048.... ?
0x0049.... ?
0x004A.... ?
0x004B.... ?
0x004C.... ?
0x004D.... ?
0x004E.... ?
0x004F.... ?
0x0050.... ?
0x0051.... ?
0x0052.... ?
0x0053.... ?
0x0054.... ?
0x0055.... ?
0x0056.... ?
0x0057.... ?
0x0058.... ?
0x0059.... ?
0x005A.... ?

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). For the bitmasks controlling these LEDs, bit clear = LED enable, bit set = LED disable? These notification LEDs(red LED, green LED, blue LED, ...) can only be enabled/disabled, nothing more.

MCU sound service "mcu::SND"

Command Header Description
0x0001.... ?
0x0002.... ?
0x0003.... ?

MCU wifi service "mcu::NWM"

Command Header Description
0x0001.... ?
0x0002.... ?
0x0003.... ?
0x0004.... ?
0x0005.... ?
0x0006.... ?
0x0007.... ?
0x0008.... ?

MCU service "mcu::HWC"

Command Header Description
0x0001.... ?
0x0002.... ?
0x0003.... ?
0x0004.... ?
0x0005.... ?
0x0006.... ?
0x0007.... ?
0x0008.... ?
0x0009.... ?
0x000A.... ?
0x000B.... ?
0x000C.... ?
0x000D.... ?
0x000E.... ?
0x000F.... ?
0x0010.... ?
0x0011.... ?

MCU service "mcu::PLS"

Command Header Description
0x0001.... ?
0x0002.... ?
0x0003.... ?
0x0004.... ?
0x0005.... ?
0x0006.... ?
0x0007.... ?
0x0008.... ?
0x0009.... ?

MCU codec service "mcu::CDC"

Command Header Description
0x00010000 ?