Difference between revisions of "Manu services"

From Nintendo Switch Brew
Jump to navigation Jump to search
(Created page with "Manu ("Manufacturing") services are provided by the 010000000000B14A sysmodule, which is installed at the factory but not on normal retail systems. = manu = {| class="wikita...")
 
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Manu ("Manufacturing") services are provided by the 010000000000B14A sysmodule, which is installed at the factory but not on normal retail systems.
+
Manu ("Manufacturing") services are provided by the 010000000000B14A sysmodule, which is installed at the [[Factory_Setup|factory]] but not on normal retail systems.
  
 
= manu =
 
= manu =
 +
This is "nn::manu::IManu".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 
|-
 
|-
| 0 || || Takes 4 bytes of input, and produces 0 bytes output.
+
| 0 || [[#InitializeUsbTransferPipeFile|InitializeUsbTransferPipeFile]]
 
|-
 
|-
| 1 || || Takes an X descriptor, and produces, 8 bytes output.
+
| 1 || [[#IsFileExist|IsFileExist]]
 
|-
 
|-
| 2 || || Takes 0x18 bytes of input, a B descriptor, and an X descriptor, and produces 0 bytes of output.
+
| 2 || [[#ReadFile|ReadFile]]
 
|-
 
|-
| 3 || || Takes 0x18 bytes of input, an A descriptor, and an X descriptor, and produces 0 bytes of output.
+
| 3 || [[#WriteFile|WriteFile]]
 
|-
 
|-
| 4 || || Takes 4 bytes of input, and produces 0 bytes of output.
+
| 4 || [[#InitializeUsbTransferPipeRaw|InitializeUsbTransferPipeRaw]]
 
|-
 
|-
| 5 || || Takes 0x10 bytes of input and a B descriptor, and produces 8 bytes of output.
+
| 5 || [[#ReadRaw|ReadRaw]]
 
|-
 
|-
| 6 || || Takes 0x10 bytes of input and an A descriptor, and produces 8 bytes of output.
+
| 6 || [[#WriteRaw|WriteRaw]]
 
|-
 
|-
 +
| 7 || [7.0.0+]
 +
|-
 +
| 8 || [14.0.0+]
 
|}
 
|}
 +
 +
All commands are wrappers for [[USB_services|usb:ds]] requests with USB configured as:
 +
VID:          0x057E (Nintendo Co., Ltd)
 +
PID:          0x3000
 +
bcdDevice:    0x0100 (1.00)
 +
Manufacturer:  "Nintendo"
 +
Product:      "NintendoSdkDebugger"
 +
SerialNumber:  "SerialNumber"
 +
 +
[7.0.0+] USB is now configured as:
 +
VID:          0x057E (Nintendo Co., Ltd)
 +
PID:          0x3003
 +
bcdDevice:    0x0100 (1.00)
 +
Manufacturer:  "Nintendo"
 +
Product:      "NintendoSdkManufacturing"
 +
SerialNumber:  "SerialNumber"
 +
 +
== InitializeUsbTransferPipeFile ==
 +
Unofficial name.
 +
 +
Takes an input u32. No output.
 +
 +
Configures a transfer pipe over [[USB_services|usb:ds]] for file access mode.
 +
 +
== IsFileExist ==
 +
Unofficial name.
 +
 +
Takes a type-0x9 input buffer containing a path string. Returns an output u64.
 +
 +
Checks whether the specified file exists.
 +
 +
This is "FsFile::Exists" in SystemInitializer.
 +
 +
== ReadFile ==
 +
Unofficial name.
 +
 +
Takes a type-0x6 output buffer, a type-0x9 input buffer containing a path string and three u64s '''OutSize''', '''Offset''' and '''InSize'''. No output.
 +
 +
Reads data from the specified file.
 +
 +
== WriteFile ==
 +
Unofficial name.
 +
 +
Takes a type-0x5 output input, a type-0x9 input buffer containing a path string and three u64s '''OutSize''', '''Offset''' and '''InSize'''. No output.
 +
 +
Writes data to the specified file.
 +
 +
SystemInitializer also uses this as "FsFile::Create" with all input u64s set to 0.
 +
 +
== InitializeUsbTransferPipeRaw ==
 +
Unofficial name.
 +
 +
Takes an input u32. No output.
 +
 +
Configures a transfer pipe over [[USB_services|usb:ds]] for raw access mode.
 +
 +
== ReadRaw ==
 +
Unofficial name.
 +
 +
Takes a type-0x6 output buffer and two u64s '''Offset''' and '''Size'''. No output.
 +
 +
Reads raw data from the device.
 +
 +
== WriteRaw ==
 +
Unofficial name.
 +
 +
Takes a type-0x5 input buffer and two u64s '''Offset''' and '''Size'''. No output.
 +
 +
Writes raw data to the device.
 +
 +
[[Category:Services]]

Latest revision as of 22:08, 7 August 2023

Manu ("Manufacturing") services are provided by the 010000000000B14A sysmodule, which is installed at the factory but not on normal retail systems.

manu

This is "nn::manu::IManu".

Cmd Name
0 InitializeUsbTransferPipeFile
1 IsFileExist
2 ReadFile
3 WriteFile
4 InitializeUsbTransferPipeRaw
5 ReadRaw
6 WriteRaw
7 [7.0.0+]
8 [14.0.0+]

All commands are wrappers for usb:ds requests with USB configured as:

VID:           0x057E (Nintendo Co., Ltd)
PID:           0x3000
bcdDevice:     0x0100 (1.00)
Manufacturer:  "Nintendo"
Product:       "NintendoSdkDebugger"
SerialNumber:  "SerialNumber"

[7.0.0+] USB is now configured as:

VID:           0x057E (Nintendo Co., Ltd)
PID:           0x3003
bcdDevice:     0x0100 (1.00)
Manufacturer:  "Nintendo"
Product:       "NintendoSdkManufacturing"
SerialNumber:  "SerialNumber"

InitializeUsbTransferPipeFile

Unofficial name.

Takes an input u32. No output.

Configures a transfer pipe over usb:ds for file access mode.

IsFileExist

Unofficial name.

Takes a type-0x9 input buffer containing a path string. Returns an output u64.

Checks whether the specified file exists.

This is "FsFile::Exists" in SystemInitializer.

ReadFile

Unofficial name.

Takes a type-0x6 output buffer, a type-0x9 input buffer containing a path string and three u64s OutSize, Offset and InSize. No output.

Reads data from the specified file.

WriteFile

Unofficial name.

Takes a type-0x5 output input, a type-0x9 input buffer containing a path string and three u64s OutSize, Offset and InSize. No output.

Writes data to the specified file.

SystemInitializer also uses this as "FsFile::Create" with all input u64s set to 0.

InitializeUsbTransferPipeRaw

Unofficial name.

Takes an input u32. No output.

Configures a transfer pipe over usb:ds for raw access mode.

ReadRaw

Unofficial name.

Takes a type-0x6 output buffer and two u64s Offset and Size. No output.

Reads raw data from the device.

WriteRaw

Unofficial name.

Takes a type-0x5 input buffer and two u64s Offset and Size. No output.

Writes raw data to the device.