SceLowio: Difference between revisions
Line 418: | Line 418: | ||
== SceDsiForDriver == | == SceDsiForDriver == | ||
=== | === ksceDsiDisableHead === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 426: | Line 426: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiDisableHead(int head);</source> | ||
=== | === ksceDsiDcsRead === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 436: | Line 436: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiDcsRead(int head, unsigned short param, void *buff, unsigned int size); | ||
</source> | |||
MIPI DSI DCS Read (0x06) | MIPI DSI DCS Read (0x06) | ||
=== | === ksceDsiGetPixelClock === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 448: | Line 449: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiGetPixelClock(int head);</source> | ||
=== | === ksceDsiEnableHead === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 458: | Line 459: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiEnableHead(int head);</source> | ||
=== | === SceDsiForDriver_6F8029A1 === | ||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 3.60 || 0x6F8029A1 | |||
|} | |||
<source lang="c">int SceDsiForDriver_6F8029A1(int head);</source> | |||
Returns <code>((*(u32 *)([[DSI_Registers#Registers|SceDsiReg]] + 0x4C) >> 16) & 0x1FFF) - 1</code>. | |||
=== ksceDsiSendBlankingPacket === | |||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 468: | Line 481: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiSendBlankingPacket(int head);</source> | ||
=== | === ksceDsiSetLanesAndPixelSize === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 478: | Line 491: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiSetLanesAndPixelSize(int head, int lanes, int pixelsize);</source> | ||
For <code>head</code> == 0 (OLED/LCD), <code>lanes</code> must be 2 and <code>pixelsize</code> 24. | |||
For <code>head</code> == 1 (HDMI), <code>lanes</code> can be 2 or 3 and <code>pixelsize</code> can be 24 or 30. | |||
=== SceDsiForDriver_8610B795 === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 3.60 || 0x8610B795 | |||
|} | |||
<source lang="c">int SceDsiForDriver_8610B795(int head, int mul, int div);</source> | |||
Sets internal struct member <code>struct[head].unk1C = mul * struct[head].unk18 / div</code>. | |||
=== | === ksceDsiGenericShortWrite === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 492: | Line 517: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int int ksceDsiGenericShortWrite(int head, int param0, int param1, int param2);</source> | ||
Performs a MIPI DSI Generic Short Write, no parameters (0x03), MIPI DSI Generic Short Write, 1 parameter (0x13) or MIPI DSI Generic Short Write, 2 parameters (0x23) depending on the whether <code>param<sub>i</sub></code> is negative or not (bit 31 set). | Performs a MIPI DSI Generic Short Write, no parameters (0x03), MIPI DSI Generic Short Write, 1 parameter (0x13) or MIPI DSI Generic Short Write, 2 parameters (0x23) depending on the whether <code>param<sub>i</sub></code> is negative or not (bit 31 set). | ||
=== | === ksceDsiSetVic === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 504: | Line 529: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiSetVic(int head, int vic);</source> | ||
=== | === ksceDsiGenericReadRequest === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 514: | Line 539: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiGenericReadRequest(int head, int param, void *buff, unsigned int size);</source> | ||
Performs a MIPI DSI Generic Read Request, no parameters (0x04), or MIPI DSI Generic Read Request, 1 parameter (0x14) depending on the whether <code>param</code> is negative or not (bit 31 set). | Performs a MIPI DSI Generic Read Request, no parameters (0x04), or MIPI DSI Generic Read Request, 1 parameter (0x14) depending on the whether <code>param</code> is negative or not (bit 31 set). | ||
=== | === ksceDsiGetVicResolution === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 526: | Line 551: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiGetVicResolution(int vic, int *width, int *height);</source> | ||
=== | === ksceDsiDcsShortWrite === | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
Line 536: | Line 561: | ||
|} | |} | ||
<source lang="c">int | <source lang="c">int ksceDsiDcsShortWrite(int head, unsigned short param0, int param1);</source> | ||
If <code>param1</code> is negative (bit 31 set), MIPI DSI DCS Short Write, no parameters (0x05) is performed. MIPI DSI DCS Short Write, 1 parameter (0x15) is performed otherwise. | |||
=== SceDsiForDriver_C2E85919 === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 3.60 || 0xC2E85919 | |||
|} | |||
<source lang="c">int SceDsiForDriver_C2E85919(int head, unsigned int control);</source> | |||
=== SceDsiForDriver_F2921E29 === | |||
{| class="wikitable" | |||
|- | |||
! Version !! NID | |||
|- | |||
| 3.60 || 0xF2921E29 | |||
|} | |||
<source lang="c">int SceDsiForDriver_F2921E29(int head, unsigned int unk);</source> | |||
== SceIftuForDriver == | == SceIftuForDriver == |
Revision as of 22:17, 14 February 2018
Module
Known NIDs
Version | Name | World | Privilege | NID |
---|---|---|---|---|
1.69 | SceLowio | Non-secure | Kernel | 0x19E0E42F |
Libraries
Known NIDs
Version | Name | World | Visibility | NID |
---|---|---|---|---|
1.69 | ScePervasiveForDriver | Non-secure | Kernel | 0xE692C727 |
1.69 | SceGpioForDriver | Non-secure | Kernel | 0xF0EF5743 |
1.69 | ScePwmForDriver | Non-secure | Kernel | 0xECEAE2D0 |
1.69 | SceI2cForDriver | Non-secure | Kernel | 0xE14BEF6E |
1.69 | SceGrabForDriver | Non-secure | Kernel | 0x81C54BED |
1.69 | SceCdramForDriver | Non-secure | Kernel | 0xC8CD941E |
1.69 | SceDsiForDriver | Non-secure | Kernel | 0xEC897883 |
1.69 | SceIftuForDriver | Non-secure | Kernel | 0xCAFCFE50 |
1.69 | SceCsiForDriver | Non-secure | Kernel | 0xD85C8E44 |
ScePervasiveForDriver
ScePervasiveForDriver_18DD8043
Version | NID |
---|---|
3.60 | 0x18DD8043 |
Turns off the clock (&= ~mask) of the device (UART) at offset 0x120 + 4 * device
with mask = 1.
int ScePervasiveForDriver_18DD8043(int uart_bus);
ScePervasiveForDriver_243D0E78
Version | NID |
---|---|
3.60 | 0x243D0E78 |
int ScePervasiveForDriver_243D0E78_get_dsi_clock_info(int pixelclock, int info0[2], int info1[2]);
ScePervasiveForDriver_25AE181E
Version | NID |
---|---|
3.60 | 0x25AE181E |
int ScePervasiveForDriver_25AE181E_dsi_clock_disable(int bus, int value);
ScePervasiveForDriver_2F195C97
Version | NID |
---|---|
3.60 | 0x2F195C97 |
Turns on the clock (|= mask) of the device (GPIO) at offset 0x100
with mask = 1.
int ScePervasiveForDriver_2F195C97(void);
scePervasiveRemovableMemoryGetCardInsertStateForDriver
Version | NID |
---|---|
3.60 | 0x551EEE82 |
int scePervasiveRemovableMemoryGetCardInsertStateForDriver(void);
ScePervasiveForDriver_64ABE589
Version | NID |
---|---|
3.60 | 0x64ABE589 |
int ScePervasiveForDriver_64ABE589_msif_clock(int clock);
ScePervasiveForDriver_731A097D
Version | NID |
---|---|
3.60 | 0x731A097D |
Puts the device (GPIO) at offset 0x100
in reset (|= mask) with mask = 1.
int ScePervasiveForDriver_731A097D(void);
ScePervasiveForDriver_788B6C61
Version | NID |
---|---|
3.60 | 0x788B6C61 |
Puts the device (UART) at offset 0x120 + 4 * device
in reset (|= mask) with mask = 1.
int ScePervasiveForDriver_788B6C61(int uart_bus);
ScePervasiveForDriver_78C34032
Version | NID |
---|---|
3.60 | 0x78C34032 |
Puts the device at offset 0x100
(GPIO) out of reset (&= ~mask) with mask = 1.
int ScePervasiveForDriver_78C34032(void);
ScePervasiveForDriver_7B16F900
Version | NID |
---|---|
3.60 | 0x7B16F900 |
Puts the device (SPI) at offset 0x104 + 4 * device
in reset (|= mask) with mask = 1.
int ScePervasiveForDriver_7B16F900(int device);
ScePervasiveForDriver_81A155F1
Version | NID |
---|---|
3.60 | 0x81A155F1 |
Returns the SceLowio's mapped ScePervasiveMisc virtual address.
void *ScePervasiveForDriver_81A155F1(void);
ScePervasiveForDriver_8BAB45F8
Version | NID |
---|---|
3.60 | 0x8BAB45F8 |
Changes UART baudrate. (There are 7 UART devices). Check SceUartClkgenReg. for more info.
int ScePervasiveForDriver_8BAB45F8(int uart_device, int baudrate);
ScePervasiveForDriver_91C80C41
Version | NID |
---|---|
3.60 | 0x91C80C41 |
int ScePervasiveForDriver_91C80C41_set_dsi_bus_pixelclock(int bus, int pixelclock);
ScePervasiveForDriver_8A85E36B
Version | NID |
---|---|
3.60 | 0x8A85E36B |
Puts the device at offset 0x10
(? GpuEs4 related (Secure)) out of reset (&= ~mask) with mask = 1.
int ScePervasiveForDriver_8A85E36B(void);
ScePervasiveForDriver_A7CE7DCC
Version | NID |
---|---|
3.60 | 0xA7CE7DCC |
Puts the device (UART) at offset 0x120 + 4 * device
out of reset (&= ~mask) with mask = 1.
int ScePervasiveForDriver_A7CE7DCC(int uart_bus);
ScePervasiveForDriver_A7E64C6F
Version | NID |
---|---|
3.60 | 0xA7E64C6F |
Puts the device at offset 0x30
(Venezia) out of reset (&= ~mask) with mask = 1.
int ScePervasiveForDriver_A7E64C6F(void);
ScePervasiveForDriver_A85BF98A
Version | NID |
---|---|
3.60 | 0xA85BF98A |
Turns off the clock (&= ~mask) of the device (SPI) at offset 0x120 + 4 * device
with mask = 1.
int ScePervasiveForDriver_A85BF98A(int device);
ScePervasiveForDriver_BC42C72F
Version | NID |
---|---|
3.60 | 0xBC42C72F |
int ScePervasiveForDriver_BC42C72F_dsi_clock_enable(int bus, int value);
ScePervasiveForDriver_DFD96BFC
Version | NID |
---|---|
3.60 | 0xDFD96BFC |
Turns on the clock (|= mask) of the device (SPI) at offset 0x104 + 4 * device
with mask = 1.
int ScePervasiveForDriver_DFD96BFC(int device);
ScePervasiveForDriver_E3FC1C8D
Version | NID |
---|---|
3.60 | 0xE3FC1C8D |
int ScePervasiveForDriver_E3FC1C8D_dsi_reset_enter(int bus, int value);
ScePervasiveForDriver_E4B145AE
Version | NID |
---|---|
3.60 | 0xE4B145AE |
Puts the device (SPI) at offset 0x104 + 4 * device
out of reset (&= ~mask) with mask = 1.
int ScePervasiveForDriver_E4B145AE(int device);
ScePervasiveForDriver_EB176898
Version | NID |
---|---|
3.60 | 0xEB176898 |
Turns off the clock (&= ~mask) of the device (GPIO) at offset 0x100
with mask = 1.
int ScePervasiveForDriver_EB176898(void);
ScePervasiveForDriver_EFD084D8
Version | NID |
---|---|
3.60 | 0xEFD084D8 |
Turns on the clock (|= mask) of the device (UART) at offset 0x120 + 4 * device
with mask = 1.
int ScePervasiveForDriver_EFD084D8(int uart_bus);
ScePervasiveForDriver_FFB43AC2
Version | NID |
---|---|
3.60 | 0xFFB43AC2 |
int ScePervasiveForDriver_FFB43AC2_dsi_reset_exit(int bus, int value);
SceGpioForDriver
If bus
is 0
, the SceGpio0Reg
registers are used, and if bus
is 1
, the SceGpio1Reg
registers are used.
ksceGpioQueryIntr
Version | NID |
---|---|
3.60 | 0x010DC295 |
int ksceGpioQueryIntr(int bus, int port);
ksceGpioSetPortMode
Version | NID |
---|---|
3.60 | 0x372022A4 |
int ksceGpioSetPortMode(int bus, int port, int mode);
ksceGpioSetIntrMode
Version | NID |
---|---|
3.60 | 0xBBEA1DDC |
int ksceGpioSetIntrMode(int bus, int intr, int mode);
ksceGpioPortSet
Version | NID |
---|---|
3.60 | 0xD454A584 |
int ksceGpioPortSet(int bus, int port);
ksceGpioPortClear
Version | NID |
---|---|
3.60 | 0xF6310435 |
int ksceGpioPortClear(int bus, int port);
ksceGpioAcquireIntr
Version | NID |
---|---|
3.60 | 0x35AAD77A |
int ksceGpioAcquireIntr(int bus, int intr);
ScePwmForDriver
SceI2cForDriver
Types
typedef struct SceI2cDebugHandlers { unsigned int size; void (*write_start)(int bus, int device, unsigned char *buffer, int size); void (*write_error)(int bus, int error, int result); void (*read_start)(int bus, int device, unsigned char *buffer, int size); void (*read_error)(int bus, int error, int result); void (*write_read_start)(int bus, int write_device, unsigned char *write_buffer, int write_size); void (*write_read_error)(int bus, int error, int result); } SceI2cDebugHandlers;
Version | NID | Name |
---|---|---|
3.60 | 0x0A40B7BF | int sceI2cTransferWriteRead(int bus, unsigned int write_dev_id, const void *write_buffer, int write_size, unsigned int read_dev_id, void *read_buffer, int read_size);
|
3.60 | 0x30CF9469 | |
3.60 | 0x76D277AB | sceI2cReset(int bus);
|
3.60 | 0x9CF8F3D6 | sceI2cInit(int bus);
|
3.60 | 0xA2C7CE62 | int sceI2cSetDebugHandlers(int bus, SceI2cDebugHandlers *debug_handlers)
|
3.60 | 0xCA94A759 | int sceI2cTransferWrite(int bus, unsigned int device_address, const void *buffer, unsigned int size);
|
3.60 | 0xD1D0A9A4 | int sceI2cTransferRead(int bus, unsigned int device_address, void *buffer, unsigned int size);
|
3.60 | 0xE449AC6E |
SceGrabForDriver
SceCdramForDriver
SceDsiForDriver
ksceDsiDisableHead
Version | NID |
---|---|
3.60 | 0x114D1413 |
int ksceDsiDisableHead(int head);
ksceDsiDcsRead
Version | NID |
---|---|
3.60 | 0x3FB0DF1F |
int ksceDsiDcsRead(int head, unsigned short param, void *buff, unsigned int size);
MIPI DSI DCS Read (0x06)
ksceDsiGetPixelClock
Version | NID |
---|---|
3.60 | 0x4DF9E924 |
int ksceDsiGetPixelClock(int head);
ksceDsiEnableHead
Version | NID |
---|---|
3.60 | 0x5BE5AA9B |
int ksceDsiEnableHead(int head);
SceDsiForDriver_6F8029A1
Version | NID |
---|---|
3.60 | 0x6F8029A1 |
int SceDsiForDriver_6F8029A1(int head);
Returns ((*(u32 *)(SceDsiReg + 0x4C) >> 16) & 0x1FFF) - 1
.
ksceDsiSendBlankingPacket
Version | NID |
---|---|
3.60 | 0x7640F607 |
int ksceDsiSendBlankingPacket(int head);
ksceDsiSetLanesAndPixelSize
Version | NID |
---|---|
3.60 | 0x78E6E3CF |
int ksceDsiSetLanesAndPixelSize(int head, int lanes, int pixelsize);
For head
== 0 (OLED/LCD), lanes
must be 2 and pixelsize
24.
For head
== 1 (HDMI), lanes
can be 2 or 3 and pixelsize
can be 24 or 30.
SceDsiForDriver_8610B795
Version | NID |
---|---|
3.60 | 0x8610B795 |
int SceDsiForDriver_8610B795(int head, int mul, int div);
Sets internal struct member struct[head].unk1C = mul * struct[head].unk18 / div
.
ksceDsiGenericShortWrite
Version | NID |
---|---|
3.60 | 0x89C00D2F |
int int ksceDsiGenericShortWrite(int head, int param0, int param1, int param2);
Performs a MIPI DSI Generic Short Write, no parameters (0x03), MIPI DSI Generic Short Write, 1 parameter (0x13) or MIPI DSI Generic Short Write, 2 parameters (0x23) depending on the whether parami
is negative or not (bit 31 set).
ksceDsiSetVic
Version | NID |
---|---|
3.60 | 0x97BFEA76 |
int ksceDsiSetVic(int head, int vic);
ksceDsiGenericReadRequest
Version | NID |
---|---|
3.60 | 0x98120684 |
int ksceDsiGenericReadRequest(int head, int param, void *buff, unsigned int size);
Performs a MIPI DSI Generic Read Request, no parameters (0x04), or MIPI DSI Generic Read Request, 1 parameter (0x14) depending on the whether param
is negative or not (bit 31 set).
ksceDsiGetVicResolution
Version | NID |
---|---|
3.60 | 0xB3A70C05 |
int ksceDsiGetVicResolution(int vic, int *width, int *height);
ksceDsiDcsShortWrite
Version | NID |
---|---|
3.60 | 0xBA6BC89F |
int ksceDsiDcsShortWrite(int head, unsigned short param0, int param1);
If param1
is negative (bit 31 set), MIPI DSI DCS Short Write, no parameters (0x05) is performed. MIPI DSI DCS Short Write, 1 parameter (0x15) is performed otherwise.
SceDsiForDriver_C2E85919
Version | NID |
---|---|
3.60 | 0xC2E85919 |
int SceDsiForDriver_C2E85919(int head, unsigned int control);
SceDsiForDriver_F2921E29
Version | NID |
---|---|
3.60 | 0xF2921E29 |
int SceDsiForDriver_F2921E29(int head, unsigned int unk);
SceIftuForDriver
typedef struct SceIftuFbInfo { unsigned int pixelformat; unsigned int width; unsigned int height; unsigned int leftover_stride; unsigned int unk10; // always 0 unsigned int paddr; unsigned int unk18; // always 0 unsigned int unk1C; // always 0 unsigned int unk20; // always 0 unsigned int src_x; // in (0x10000 / 960) multiples unsigned int src_y; // in (0x10000 / 544) multiples unsigned int src_w; // in (0x10000 / 960) multiples unsigned int src_h; // in (0x10000 / 544) multiples unsigned int dst_x; unsigned int dst_y; unsigned int dst_w; unsigned int dst_h; unsigned int vfront_porch; unsigned int vback_porch; unsigned int hfront_porch; unsigned int hback_porch; } SceIftuFbInfo; /* size = 0x54 */ typedef struct SceIftuConvParams { unsigned int size; unsigned int unk04; SceIftuCscParams *csc_params1; SceIftuCscParams *csc_params2; unsigned int unk10; unsigned int unk14; unsigned int unk18; unsigned int unk1C; unsigned int alpha; unsigned int unk24; } SceIftuConvParams; /* size = 0x28 */ typedef struct SceIftuCscParams { unsigned int unk00; unsigned int unk04; unsigned int unk08; unsigned int unk0C; unsigned int unk10; unsigned int unk14; unsigned int csc_rr; unsigned int csc_rg; unsigned int csc_rb; unsigned int csc_gr; unsigned int csc_gg; unsigned int csc_gb; unsigned int csc_br; unsigned int csc_bg; unsigned int csc_bb; } SceIftuCscParams; /* size = 0x3C */
SceIftuForDriver_0D7C02F7
Version | NID |
---|---|
3.60 | 0x0D7C02F7 |
int SceIftuForDriver_0D7C02F7_plane_enable(unsigned int plane);
SceIftuForDriver_0FCBF457
Version | NID |
---|---|
3.60 | 0x0FCBF457 |
Set plane CSC (Color Space Conversion) information.
int SceIftuForDriver_0FCBF457_set_plane_csc2(unsigned int plane, SceIftuCscParams *param);
SceIftuForDriver_357EAE24
Version | NID |
---|---|
3.60 | 0x357EAE24 |
Sets plane alpha value. Only planes 1 and 3 support alpha blending. Supported alpha values are 0-0x100 where 0x100 is no transparency (alpha blending disable).
int SceIftuForDriver_357EAE24_set_plane_alpha(unsigned int plane, int alpha);
SceIftuForDriver_7CE0C4DA
Version | NID |
---|---|
3.60 | 0x7CE0C4DA |
Setups a plane or fb?
int SceIftuForDriver_7CE0C4DA(unsigned int index, SceIftuFbInfo *plane_info, int flags, int sync);
SceIftuForDriver_67E37EFC
Version | NID |
---|---|
3.60 | 0x67E37EFC |
Performs colorspace conversion (by using SceIftu2Reg).
int SceIftuForDriver_67E37EFC_perform_csc(SceIftuFbInfo *fbinfo_dst, SceIftuFbInfo *fbinfo_src, SceIftuConvParams *conv_params);
SceIftuForDriver_AF19FD85
Version | NID |
---|---|
3.60 | 0xAF19FD85 |
int SceIftuForDriver_AF19FD85_set_global_blending_control(unsigned int plane, int control);
SceIftuForDriver_C11F30B3
Version | NID |
---|---|
3.60 | 0xC11F30B3 |
int SceIftuForDriver_C11F30B3_plane_disable(unsigned int plane);
SceIftuForDriver_D64F4C6B
Version | NID |
---|---|
3.60 | 0xD64F4C6B |
Set plane CSC (Color Space Conversion) information.
int SceIftuForDriver_D64F4C6B_set_plane_csc(unsigned int plane, SceIftuCscParams *param);
SceIftuForDriver_E6EE2C6B
Version | NID |
---|---|
3.60 | 0xE6EE2C6B |
Set plane SRC_WIDTH and SRC_HEIGHT values (in fixed point 16.16).
int SceIftuForDriver_E6EE2C6B_set_plane_size(unsigned int plane, int src_width_hi, unsigned int src_height_hi, int src_width_lo, int src_height_lo);