Difference between revisions of "Config Services"
Jump to navigation
Jump to search
m |
|||
(21 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
[[Category:Services]] | [[Category:Services]] | ||
− | = Config | + | = Config service "cfg:u" = |
− | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 12: | Line 11: | ||
| 0x00010082 | | 0x00010082 | ||
| | | | ||
− | | [[CfgS:GetConfigInfoBlk2|GetConfigInfoBlk2]] | + | | [[CfgS:GetConfigInfoBlk2|GetConfigInfoBlk2]]/GetConfig |
|- | |- | ||
| 0x00020000 | | 0x00020000 | ||
| | | | ||
− | | [[Cfg:SecureInfoGetRegion|SecureInfoGetRegion]] | + | | [[Cfg:SecureInfoGetRegion|SecureInfoGetRegion]]/GetRegion |
|- | |- | ||
| 0x00030040 | | 0x00030040 | ||
Line 40: | Line 39: | ||
| 0x00080080 | | 0x00080080 | ||
| [[7.0.0-13]] | | [[7.0.0-13]] | ||
− | | | + | | [[Cfg:TranslateCountryInfo|TranslateCountryInfo]] |
|- | |- | ||
| 0x00090040 | | 0x00090040 | ||
Line 55: | Line 54: | ||
|} | |} | ||
− | = Config service "cfg: | + | = Config service "cfg:s" = |
− | + | cfg:s contains all the commands in cfg:u, in addition to the following: | |
− | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 64: | Line 62: | ||
! Available since system version | ! Available since system version | ||
! Description | ! Description | ||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| 0x04010082 | | 0x04010082 | ||
Line 118: | Line 112: | ||
|- | |- | ||
| 0x040D0040 | | 0x040D0040 | ||
− | | | + | | |
− | | | + | | SetUUIDClockSequence |
|- | |- | ||
| 0x040E0000 | | 0x040E0000 | ||
− | | | + | | |
− | | | + | | GetUUIDClockSequence |
|- | |- | ||
| 0x040F0000 | | 0x040F0000 | ||
− | | | + | | |
− | | | + | | [[CfgS:ClearParentalControls|ClearParentalControls]] |
|} | |} | ||
Line 133: | Line 127: | ||
= Config service "cfg:i" = | = Config service "cfg:i" = | ||
+ | cfg:i contains all the commands in cfg:u and cfg:s, in addition to the following: | ||
+ | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 138: | Line 134: | ||
! Available since system version | ! Available since system version | ||
! Description | ! Description | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
|- | |- | ||
| 0x08010082 | | 0x08010082 | ||
Line 237: | Line 173: | ||
| 0x080A0000 | | 0x080A0000 | ||
| | | | ||
− | | This updates the config block for blkID 0x00040001. | + | | ResetAnalogStickCalibrationParam? This updates the config block for blkID 0x00040001. |
|- | |- | ||
| 0x080B0082 | | 0x080B0082 | ||
Line 339: | Line 275: | ||
| 0x00020000 | | 0x00020000 | ||
| [[CfgNor:Shutdown|Shutdown]] | | [[CfgNor:Shutdown|Shutdown]] | ||
+ | |- | ||
+ | | 0x00030040 | ||
+ | | (u8 flag) Writes the input flag to state. Uses SPI service command [[SPI_Services|EnableSpiBus]]. | ||
+ | |- | ||
+ | | 0x00040000 | ||
+ | | Writes the u8 from the state written by 0x00030040 to cmdreply[2]. | ||
|- | |- | ||
| 0x00050082 | | 0x00050082 | ||
Line 345: | Line 287: | ||
| 0x00060082 | | 0x00060082 | ||
| [[CfgNor:WriteData|WriteData]] | | [[CfgNor:WriteData|WriteData]] | ||
+ | |- | ||
+ | | 0x00070000 | ||
+ | | This just uses the WREN command. | ||
+ | |- | ||
+ | | 0x00080000 | ||
+ | | This just uses the WRDI command. | ||
+ | |- | ||
+ | | 0x00090000 | ||
+ | | [[CfgNor:ReadIdentification|ReadIdentification]] | ||
+ | |- | ||
+ | | 0x000A0000 | ||
+ | | This waits for the WIP bit in the status register to clear(wait for writing to finish). | ||
+ | |- | ||
+ | | 0x000B0000 | ||
+ | | This waits for the WEL bit in the status register to become set(write enabled). | ||
+ | |- | ||
+ | | 0x000C0000 | ||
+ | | This writes the value of the WIP bit in the status register to u8 cmdreply[2]. | ||
+ | |- | ||
+ | | 0x000D0000 | ||
+ | | This writes the value of the WIP bit in the status register to u8 cmdreply[2]. | ||
+ | |- | ||
+ | | 0x000E0000 | ||
+ | | [[CfgNor:ReadStatusRegister|ReadStatusRegister]] | ||
+ | |- | ||
+ | | 0x000F0082 | ||
+ | | [[CfgNor:ReadDataOther|ReadDataOther]] | ||
+ | |- | ||
+ | | 0x00100082 | ||
+ | | [[CfgNor:WriteDataOther|WriteDataOther]] | ||
+ | |- | ||
+ | | 0x00110040 | ||
+ | | (u32 offset) Uses command WREN then waits for WEL to become enabled. Sends command 0xDB to SPI followed by the specified flash offset. | ||
+ | |- | ||
+ | | 0x00120040 | ||
+ | | (u32 offset) Identical to 0x00110040 except this uses SPI-command 0xD8 instead("block erase"). | ||
+ | |- | ||
+ | | 0x00130000 | ||
+ | | This uses SPI command 0xB9 for "Deep power down". | ||
+ | |- | ||
+ | | 0x00140000 | ||
+ | | This uses SPI command 0xAB for "Release from deep power down". | ||
|} | |} | ||
This is an interface for the "SPI::NOR" service, for accessing the Wifi NVRAM/SPI Flash. | This is an interface for the "SPI::NOR" service, for accessing the Wifi NVRAM/SPI Flash. |
Revision as of 14:01, 11 November 2023
Config service "cfg:u"
Command Header | Available since system version | Description |
---|---|---|
0x00010082 | GetConfigInfoBlk2/GetConfig | |
0x00020000 | SecureInfoGetRegion/GetRegion | |
0x00030040 | GenHashConsoleUnique/GetTransferableId | |
0x00040000 | 3.0.0-5 | GetRegionCanadaUSA/IsCoppacsSupported |
0x00050000 | 5.0.0-11 | GetSystemModel |
0x00060000 | 6.0.0-11 | GetModelNintendo2DS |
0x00070040 | 7.0.0-13 | (u8 val) This writes the input u8 to the first byte in the config-block for blkID 0x00160000. |
0x00080080 | 7.0.0-13 | TranslateCountryInfo |
0x00090040 | 7.0.0-13 | GetCountryCodeString |
0x000A0040 | 7.0.0-13 | GetCountryCodeID |
0x000B0000 | 9.3.0-X | IsFangateSupported |
Config service "cfg:s"
cfg:s contains all the commands in cfg:u, in addition to the following:
Command Header | Available since system version | Description |
---|---|---|
0x04010082 | GetConfigInfoBlk8 | |
0x04020082 | SetConfigInfoBlk4 | |
0x04030000 | UpdateConfigNANDSavegame | |
0x04040042 | GetLocalFriendCodeSeedData | |
0x04050000 | GetLocalFriendCodeSeed | |
0x04060000 | SecureInfoGetRegion | |
0x04070000 | SecureInfoGetByte101 | |
0x04080042 | SecureInfoGetSerialNo | |
0x04090000 | UpdateConfigBlk00040003 | |
0x040A0000 | ? | ? |
0x040B0000 | ? | ? |
0x040C0000 | ? | ? |
0x040D0040 | SetUUIDClockSequence | |
0x040E0000 | GetUUIDClockSequence | |
0x040F0000 | ClearParentalControls |
CfgS command 0x04060000(SecureInfoGetRegion) is used by NIM module to determine the SOAP RegionId, when sending SOAP requests. See here.
Config service "cfg:i"
cfg:i contains all the commands in cfg:u and cfg:s, in addition to the following:
Command Header | Available since system version | Description |
---|---|---|
0x08010082 | GetConfigInfoBlk8 | |
0x08020082 | SetConfigInfoBlk4 | |
0x08030000 | UpdateConfigNANDSavegame | |
0x080400C2 | CreateConfigInfoBlk | |
0x08050000 | DeleteConfigNANDSavefile | |
0x08060000 | FormatConfig | |
0x08070000 | This basically just returns result-code value 0x0, due to code this eventually executes being NOPed out. | |
0x08080000 | This updates the config blocks for blkIDs 0x0 and 0x20000. In certain cases this may call the code for FormatConfig. | |
0x08090000 | This updates the config block for blkID 0x60000. | |
0x080A0000 | ResetAnalogStickCalibrationParam? This updates the config block for blkID 0x00040001. | |
0x080B0082 | SetGetLocalFriendCodeSeedData | |
0x080C0042 | SetLocalFriendCodeSeedSignature | |
0x080D0000 | DeleteCreateNANDLocalFriendCodeSeed | |
0x080E0000 | VerifySigLocalFriendCodeSeed | |
0x080F0042 | GetLocalFriendCodeSeedData | |
0x08100000 | GetLocalFriendCodeSeed | |
0x08110084 | SetSecureInfo | |
0x08120000 | DeleteCreateNANDSecureInfo | |
0x08130000 | VerifySigSecureInfo | |
0x08140042 | SecureInfoGetData | |
0x08150042 | SecureInfoGetSignature | |
0x08160000 | SecureInfoGetRegion | |
0x08170000 | SecureInfoGetByte101 | |
0x08180042 | SecureInfoGetSerialNo | |
0x0819.... | ? | ? |
0x081A.... | ? | ? |
0x081B.... | ? | ? |
0x081C.... | ? | ? |
0x081D.... | ? | ? |
0x081E.... | ? | ? |
0x081F.... | ? | ? |
0x0820.... | ? | ? |
Config NVRAM service "cfg:nor"
Command Header | Description |
---|---|
0x00010040 | Initialize |
0x00020000 | Shutdown |
0x00030040 | (u8 flag) Writes the input flag to state. Uses SPI service command EnableSpiBus. |
0x00040000 | Writes the u8 from the state written by 0x00030040 to cmdreply[2]. |
0x00050082 | ReadData |
0x00060082 | WriteData |
0x00070000 | This just uses the WREN command. |
0x00080000 | This just uses the WRDI command. |
0x00090000 | ReadIdentification |
0x000A0000 | This waits for the WIP bit in the status register to clear(wait for writing to finish). |
0x000B0000 | This waits for the WEL bit in the status register to become set(write enabled). |
0x000C0000 | This writes the value of the WIP bit in the status register to u8 cmdreply[2]. |
0x000D0000 | This writes the value of the WIP bit in the status register to u8 cmdreply[2]. |
0x000E0000 | ReadStatusRegister |
0x000F0082 | ReadDataOther |
0x00100082 | WriteDataOther |
0x00110040 | (u32 offset) Uses command WREN then waits for WEL to become enabled. Sends command 0xDB to SPI followed by the specified flash offset. |
0x00120040 | (u32 offset) Identical to 0x00110040 except this uses SPI-command 0xD8 instead("block erase"). |
0x00130000 | This uses SPI command 0xB9 for "Deep power down". |
0x00140000 | This uses SPI command 0xAB for "Release from deep power down". |
This is an interface for the "SPI::NOR" service, for accessing the Wifi NVRAM/SPI Flash.