SceLowio: Difference between revisions

From Vita Development Wiki
Jump to navigation Jump to search
Line 436: Line 436:
|}
|}


<source lang="c">int SceDsiForDriver_3FB0DF1F_dsi_dcs_read_request(int bus, unsigned short cmd, void *buffer, unsigned int size);</source>
<source lang="c">int SceDsiForDriver_3FB0DF1F_dsi_dcs_read(int bus, unsigned short cmd, void *buffer, unsigned int size);</source>


MIPI DSI DCS Read Request (0x06)
MIPI DSI DCS Read (0x06)


=== SceDsiForDriver_4DF9E924 ===
=== SceDsiForDriver_4DF9E924 ===

Revision as of 22:38, 9 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

SceDsiForDriver_114D1413

Version NID
3.60 0x114D1413
int SceDsiForDriver_114D1413_disable_bus1(int bus);

SceDsiForDriver_3FB0DF1F

Version NID
3.60 0x3FB0DF1F
int SceDsiForDriver_3FB0DF1F_dsi_dcs_read(int bus, unsigned short cmd, void *buffer, unsigned int size);

MIPI DSI DCS Read (0x06)

SceDsiForDriver_4DF9E924

Version NID
3.60 0x4DF9E924
int SceDsiForDriver_4DF9E924_get_current_pixelclock(int bus);

SceDsiForDriver_5BE5AA9B

Version NID
3.60 0x5BE5AA9B
int SceDsiForDriver_5BE5AA9B_enable_bus(int bus);

SceDsiForDriver_7640F607

Version NID
3.60 0x7640F607
int SceDsiForDriver_7640F607_disable_bus2(int bus);

SceDsiForDriver_78E6E3CF

Version NID
3.60 0x78E6E3CF
int SceDsiForDriver_78E6E3CF_set_lanes_pixel_size(int bus, int lanes, int pixel_size);

For bus == 0 (OLED/LCD), lanes must be 2 and pixel_size 24.

For bus == 1 (HDMI), lanes can be 2 or 3 and pixel_size can be 24 or 30.

SceDsiForDriver_89C00D2F

Version NID
3.60 0x89C00D2F
int SceDsiForDriver_89C00D2F_generic_short_write(int bus, int data0, int data1, int data2);

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 datai is negative or not (bit 31 set).

SceDsiForDriver_97BFEA76

Version NID
3.60 0x97BFEA76
int SceDsiForDriver_97BFEA76_set_timing(int bus, int value);

SceDsiForDriver_98120684

Version NID
3.60 0x98120684
int SceDsiForDriver_98120684_dsi_generic_read_request_1_param(int bus, unsigned short cmd, void *buffer, unsigned int size);

MIPI DSI Generic READ Request with 1 parameter (0x14)

SceDsiForDriver_B3A70C05

Version NID
3.60 0xB3A70C05
int SceDsiForDriver_B3A70C05_get_dimensions(int unk, int *width, int *height);

SceDsiForDriver_BA6BC89F

Version NID
3.60 0xBA6BC89F
int SceDsiForDriver_BA6BC89F_dcs_short_write(int bus, unsigned short cmd, int data);

If data 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.

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_0FCBF457

Version NID
3.60 0x0FCBF457
int SceIftuForDriver_0FCBF457_set_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(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.

int SceIftuForDriver_67E37EFC(SceIftuFbInfo *fbinfo_dst, SceIftuFbInfo *fbinfo_src, SceIftuConvParams *conv_params);

SceIftuForDriver_D64F4C6B

Version NID
3.60 0xD64F4C6B

Set CSC (Color Space Conversion) information.

int SceIftuForDriver_D64F4C6B_set_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(unsigned int plane, int src_width_hi, unsigned int src_height_hi, int src_width_lo, int src_height_lo);

SceCsiForDriver