Difference between revisions of "Legacy FIRM PXI"

From 3dbrew
Jump to navigation Jump to search
m (Fix stuff AGAIN)
Line 55: Line 55:
 
| This writes the input 0x80-byte ASCII data to [[Flash_Filesystem|nand:/rw/sys/lgy.log]].
 
| This writes the input 0x80-byte ASCII data to [[Flash_Filesystem|nand:/rw/sys/lgy.log]].
 
|}
 
|}
 +
 +
=Command 0x2=
 +
This does the following:
 +
* Waits for an u8 state field to become non-zero.
 +
* Clears DSi memory, etc.
 +
* Loads the DS(i) application specified by the command request titleID. If this fails, it immediately returns the error for this.
 +
* Initializes the DSi memory at 0x02fe7000 and 0x02fffc00.
 +
* Loads the TWL launcher located at physical address [[Memory_layout|0x27C00000]], which was written there by the TwlBg ARM11 process.
 +
* Loads the TWL bootloader, see [[FIRM|here]].
 +
* Initializes DSi memory/keys, [[IO_Registers|0x10018000]] registers, etc.
 +
* Writes value 0x3 to [[CONFIG_Registers|REG_BOOTENV]], and value 0x1 to an u8 state field.
 +
* Uses [[SVC|svcSignalEvent]], then returns.

Revision as of 21:46, 10 March 2015

This page describes the PXI commands for TWL_FIRM/AGB_FIRM.

Command Header Available since system version Description
0x0001.... 1.0.0-0 ?
0x00020080 1.0.0-0 (u64 application_titleID) This launches the specified TWL title. Eventually this will wait for command 0x00040080 to be sent.
0x00030080 1.0.0-0 (u64 application_titleID) This launches the specified GBA VC title.
0x00040080 1.0.0-0 ?
0x0005.... 1.0.0-0 ?
0x0006.... 1.0.0-0 ?
0x0007.... 1.0.0-0 ?
0x0008.... 1.0.0-0 ?
0x0009.... 1.0.0-0 ?
0x000A.... 1.0.0-0 ?
0x000B0040 1.0.0-0 This is used for TWL initialization, prior to using command 0x00020080.
0x000C0800 1.0.0-0 This writes the input 0x80-byte ASCII data to nand:/rw/sys/lgy.log.

Command 0x2

This does the following:

  • Waits for an u8 state field to become non-zero.
  • Clears DSi memory, etc.
  • Loads the DS(i) application specified by the command request titleID. If this fails, it immediately returns the error for this.
  • Initializes the DSi memory at 0x02fe7000 and 0x02fffc00.
  • Loads the TWL launcher located at physical address 0x27C00000, which was written there by the TwlBg ARM11 process.
  • Loads the TWL bootloader, see here.
  • Initializes DSi memory/keys, 0x10018000 registers, etc.
  • Writes value 0x3 to REG_BOOTENV, and value 0x1 to an u8 state field.
  • Uses svcSignalEvent, then returns.