GSP service "gsp::Gpu"
Command Header
|
Description
|
0x00010082
|
WriteHWRegs
|
0x00020084
|
WriteHWRegsWithMask
|
0x00030082
|
WriteHWRegRepeat
|
0x00040080
|
ReadHWRegs
|
0x00050200
|
SetBufferSwap
|
0x00060082
|
SetCommandList (Stubbed)
|
0x000700C2
|
RequestDma (Stubbed)
|
0x00080082
|
FlushDataCache
|
0x00090082
|
InvalidateDataCache
|
0x000A0044
|
RegisterInterruptEvents
|
0x000B0040
|
SetLcdForceBlack
|
0x000C0000
|
TriggerCmdReqQueue
|
0x000D0140
|
SetDisplayTransfer (Stubbed)
|
0x000E0180
|
SetTextureCopy (Stubbed)
|
0x000F0200
|
SetMemoryFill (Stubbed)
|
0x00100040
|
SetAxiConfigQoSMode
|
0x00110040
|
SetPerfLogMode
|
0x00120000
|
GetPerfLog
|
0x00130042
|
RegisterInterruptRelayQueue
|
0x00140000
|
UnregisterInterruptRelayQueue
|
0x00150002
|
TryAcquireRight
|
0x00160042
|
AcquireRight (bool unk, 0, u32 processhandle)
|
0x00170000
|
ReleaseRight
|
0x00180000
|
ImportDisplayCaptureInfo
|
0x00190000
|
SaveVramSysArea
|
0x001A0000
|
RestoreVramSysArea
|
0x001B0000
|
ResetGpuCore
|
0x001C0040
|
SetLedForceOff
|
0x001D0040
|
SetTestCommand (Stubbed)
|
0x001E0080
|
SetInternalPriorities
|
The GSP module starts a thread for handling commands for each service session, a maximum of 4 processes can use this service at once. Official applications have an optional code-path which writes to registers during initialization, this is not always used however.
GSP service "gsp::Lcd"
Command Header
|
Description
|
0x0001....
|
?
|
0x0002....
|
?
|
0x0003....
|
?
|
0x0004....
|
?
|
0x0005....
|
?
|
0x0006....
|
?
|
0x0007....
|
?
|
0x0008....
|
?
|
0x0009....
|
?
|
0x000A....
|
?
|
0x000B....
|
?
|
0x000C....
|
?
|
0x000D....
|
?
|
0x000E....
|
?
|
0x000F....
|
?
|
0x0010....
|
?
|
0x0012....
|
?
|
0x0013....
|
?
|
Unlike gsp::Gpu, GSP module does not start a separate thread for handling these service commands.