Difference between revisions of "GSP Services"
Jump to navigation
Jump to search
Steveice10 (talk | contribs) |
Steveice10 (talk | contribs) m (Add more links.) |
||
Line 106: | Line 106: | ||
| | | | ||
| | | | ||
− | | UnregisterInterruptRelayQueue | + | | [[GSPGPU:UnregisterInterruptRelayQueue|UnregisterInterruptRelayQueue]] |
|- | |- | ||
| 0x00150002 | | 0x00150002 | ||
| | | | ||
| | | | ||
− | | TryAcquireRight | + | | [[GSPGPU:TryAcquireRight|TryAcquireRight]] |
|- | |- | ||
| 0x00160042 | | 0x00160042 | ||
Line 141: | Line 141: | ||
| | | | ||
| | | | ||
− | | ResetGpuCore | + | | [[GSPGPU:ResetGpuCore|ResetGpuCore]] |
|- | |- | ||
| 0x001C0040 | | 0x001C0040 |
Revision as of 05:59, 10 October 2015
GSP service "gsp::Gpu"
Command Header | Available since system version | GSP rights required | Description |
---|---|---|---|
0x00010082 | WriteHWRegs | ||
0x00020084 | WriteHWRegsWithMask | ||
0x00030082 | WriteHWRegRepeat | ||
0x00040080 | ReadHWRegs | ||
0x00050200 | SetBufferSwap | ||
0x00060082 | SetCommandList (Stubbed) | ||
0x000700C2 | RequestDma (Stubbed) | ||
0x00080082 | No | FlushDataCache | |
0x00090082 | No | 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 | ||
0x00170000 | ReleaseRight | ||
0x00180000 | ImportDisplayCaptureInfo | ||
0x00190000 | SaveVramSysArea | ||
0x001A0000 | RestoreVramSysArea | ||
0x001B0000 | ResetGpuCore | ||
0x001C0040 | SetLedForceOff | ||
0x001D0040 | SetTestCommand (Stubbed) | ||
0x001E0080 | SetInternalPriorities | ||
0x001F0082 | 8.0.0-18 | StoreDataCache |
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 normally not used however.
GSP service "gsp::Lcd"
Command Header | Available since system version | Description |
---|---|---|
0x0001.... | ? | |
0x0002.... | ? | |
0x0003.... | ? | |
0x0004.... | ? | |
0x0005.... | ? | |
0x0006.... | ? | |
0x0007.... | ? | |
0x0008.... | ? | |
0x0009.... | ? | |
0x000A.... | ? | |
0x000B.... | ? | |
0x000C.... | ? | |
0x000D.... | ? | |
0x000E.... | ? | |
0x000F0000 | Turns on top and bottom lcd | |
0x00100000 | Turns off top and bottom lcd | |
0x00110040 | Turns on lcd backlight (1:top, 2:bottom, 3:both) | |
0x00120040 | Turns off lcd backlight (1:top, 2:bottom, 3:both) | |
0x0013.... | ? | |
0x0014.... | 8.0.0-18 | This only returns an error. Uninitialized data(not set by this command itself) is also written to u8 cmdreply_word[2]. |
0x0015.... | 8.0.0-18 | This only returns an error. Uninitialized data(not set by this command itself) is also written to u32 cmdreply_word[2]. |
Unlike gsp::Gpu, GSP module does not start a separate thread for handling these service commands.
Version history
Version | Changes |
---|---|
v8196 | Support for the new LINEAR memory region was implemented(for cache commands and vaddr->physaddr conversion). Support for the new process-mem 0x1E800000 region(however the GPU can't actually access this memory) was added for vaddr->physaddr conversion. Originally GSP module ignored vaddr->physaddr conversion errors(like with vaddrs outside of the handled ranges) and just wrote physaddr value0 to the GPU registers, however now GSP module returns an error for that instead(see here regarding errors being written to GSP shared-mem). New services commands were added too, see above. |