Difference between revisions of "UART Console"

From Vita Development Wiki
Jump to navigation Jump to search
 
(9 intermediate revisions by 4 users not shown)
Line 1: Line 1:
The UART0 is a debugging console. The logic level is 1.8V.
+
== UART0 ==
 +
 
 +
The UART0 is a debugging console used by ARM, cMep and Syscon. The logic level is 1.8V.
 +
 
 +
=== PSTV UART0 location ===
  
== PlayStation TV UART0 location ==
 
 
[[File:Pstv_uart0.png]]
 
[[File:Pstv_uart0.png]]
  
== OLED Vita UART0 location ==
+
=== OLED PS Vita UART0 location ===
 +
 
 
[[File:vita-1000-uart.png|600px]]
 
[[File:vita-1000-uart.png|600px]]
  
Two ways of using UART0. First is to solder directly to the testpads near the PMIC (yellow and cyan points). The second way is through the multi-connector or the testpads above it (blue and red points). To use the multi-connector points though, you need either to tell the syscon to select the Kermit UART (procedure currently unknown) or manually flip the switch (green point to 1.8V).
+
There are two ways of using UART0:
 +
* First way is to solder directly to the testpads near the PMIC (yellow and cyan points).
 +
 
 +
* Second way is through the multi-connector or the testpads above it (blue and red points). To use the multi-connector points though, you need either to tell Syscon to select [[Kermit]] UART (procedure currently unknown) or manually flip the switch (green point to 1.8V).
 +
 
 +
The switch is controlled by a [http://www.ti.com/lit/ds/symlink/ts3a5018.pdf TS3A5018] chip and the RTS gate is a [http://toshiba.semicon-storage.com/ap-en/product/logic/one-gate-logic/detail.TC7WG126FK.html TC7WG126FK] chip.
 +
 
 +
== UART1 ==
 +
 
 +
The UART1 is a debugging console used by DevKit PS Vita models.
 +
 
 +
UART1 is pre-initialized by SKBL.
 +
 
 +
=== DevKit PS Vita UART1 location ===
 +
 
 +
Unknown but guessed to be sent to GCP board (Communication Processor). Communication Processor sends received UART1 data over mini-USB which can be seen on PC in the Console Output for PS Vita program. Communication Processor seems to manage input/output from sdio (mini-USB) at regular intervals.
 +
 
 +
== UART5 ==
 +
 
 +
The UART5 is a debugging console used for the 3G modem on PS Vita models that have it.
 +
 
 +
=== OLED PS Vita UART5 location ===
  
== OLED Vita UART5 location ==
+
It is on the PCI-E connector pins 8,10,12,14 is RFR, CTS, TX, RX.
 +
* On 3G PS Vita units, you can solder to the PCI-E connectors or install yifan lu's PSVSD board.
 +
* On Wifi PS Vita units, you need to fill in the 88ohm termination resistors (or just short the pads) and some way to enable it (not known yet).
  
It is on the PCI-E connector pins 8,10,12,14 is RFR, CTS, TX, RX. On Wifi Vita units, you need to fill in the 88ohm termination resistors (or just short the pads) and some way to enable it (not known yet).
+
== UART initialization/deinitialization code ==
  
== UART Initialization ==
 
 
<source lang="c">
 
<source lang="c">
ScePervasiveForDriver_EFD084D8(uart_bus); // Turn on clock
+
scePervasiveUartClkGateEnableForDriver(port); // Turn on clock
ScePervasiveForDriver_A7CE7DCC(uart_bus); // Out of reset
+
scePervasiveUartResetDisableForDriver(port); // Put out of reset
ksceUartInit(uart_bus);
+
sceKernelUartInitForKernel(port);
 
/*
 
/*
  * Use UART bus
+
  * Use UART port (read/write)
 
  * ...
 
  * ...
 
  */
 
  */
ScePervasiveForDriver_788B6C61(uart_bus); // Put to reset
+
scePervasiveUartResetEnableForDriver(port); // Put to reset
ScePervasiveForDriver_18DD8043(uart_bus); // Turn off clock
+
scePervasiveUartClkGateDisableForDriver(port); // Turn off clock
 
</source>
 
</source>

Latest revision as of 16:29, 10 January 2022

UART0

The UART0 is a debugging console used by ARM, cMep and Syscon. The logic level is 1.8V.

PSTV UART0 location

Pstv uart0.png

OLED PS Vita UART0 location

Vita-1000-uart.png

There are two ways of using UART0:

  • First way is to solder directly to the testpads near the PMIC (yellow and cyan points).
  • Second way is through the multi-connector or the testpads above it (blue and red points). To use the multi-connector points though, you need either to tell Syscon to select Kermit UART (procedure currently unknown) or manually flip the switch (green point to 1.8V).

The switch is controlled by a TS3A5018 chip and the RTS gate is a TC7WG126FK chip.

UART1

The UART1 is a debugging console used by DevKit PS Vita models.

UART1 is pre-initialized by SKBL.

DevKit PS Vita UART1 location

Unknown but guessed to be sent to GCP board (Communication Processor). Communication Processor sends received UART1 data over mini-USB which can be seen on PC in the Console Output for PS Vita program. Communication Processor seems to manage input/output from sdio (mini-USB) at regular intervals.

UART5

The UART5 is a debugging console used for the 3G modem on PS Vita models that have it.

OLED PS Vita UART5 location

It is on the PCI-E connector pins 8,10,12,14 is RFR, CTS, TX, RX.

  • On 3G PS Vita units, you can solder to the PCI-E connectors or install yifan lu's PSVSD board.
  • On Wifi PS Vita units, you need to fill in the 88ohm termination resistors (or just short the pads) and some way to enable it (not known yet).

UART initialization/deinitialization code

scePervasiveUartClkGateEnableForDriver(port); // Turn on clock
scePervasiveUartResetDisableForDriver(port); // Put out of reset
sceKernelUartInitForKernel(port);
/*
 * Use UART port (read/write)
 * ...
 */
scePervasiveUartResetEnableForDriver(port); // Put to reset
scePervasiveUartClkGateDisableForDriver(port); // Turn off clock