UART » History » Revision 67
Revision 66 (Denis 'GNUtoo' Carikli, 03/08/2020 03:51 AM) → Revision 67/93 (Denis 'GNUtoo' Carikli, 03/08/2020 03:55 AM)
h1. UART
There is an in-depth article covering several Samsung devices in the [[SamsungSerial]] page
h2. Settings
|_. Device and documentation |_. I/O voltage |_. ID<->GND |_. SOC TX |_. SOC RX |_. switch |_. stock bootloader settings |_. Comments |
| GT-I9100 | | 510k[9] | D- | D+ | "MAX8997":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/arch/arm/configs/lineageos_i9100_defconfig#n1294 | *UART settings*: ttySAC2 115200 8N1
To get the UART enabled at boot with the stock bootloader:
* Power the phone off and remove the battery
* Put a battery in
* Hold the select button
* Plug the UART
* Release the select button | At some point the boot procedure switches to the modem UART, it's probably some linux driver doing that |
| GT-N7000 | | 510k[9] | D- | D+ | | *UART settings*: ttySAC2 115200 8N1 | |
| GT-I9100G_CHN_CHN | 1.8V[8] ? | 619k[9] | D- | D+ | ? | *UART settings*: 115200 8N1 | Very few prints from Xloader, the next bootloader used by Android 2.6.3 doesn't seem to print much |
| GT-I9300 |/2. 1.8V[1] |/4. 619 kOhms[3] |/4. D- |/4. D+ |/4. MAX77693[5] |/4. *UART settings*: 115200
To increase verbosity during boot:
* Power off the phone and remove the battery
* Put a battery in
* Press the hold the volume-down button
* Plug the UART and wait for the first lines to be printed
* Release the volume-down button |/2. It gives a shell once Replicant 6 has booted |
| GT-I9305 |
| GT-N7100 | ? | |
| GT-N7105 | ? | |
| [[GalaxyNexusI9250SerialConsole|Galaxy Nexus (GT-I9250)]] | | 619 kOhms[4] | D+ | D- | FSA9480[7] | UART settings:
* By default: ttyFIQ0, 115200 8N1
* After patching Linux: ttyO2, 115200 8N1
See [[GalaxyNexusI9250SerialConsole]] for more details. | |
| [[NexusSI902xSerial|Nexus S]] | | 150 kOhm | | | FSA9480 | | |
| [[OptimusBlackSerial|Optimus Black (P970)]] | 1.8V[6] | N/A[2] | | | DP3T | | |
| ODROID-U3, console UART | 1.8V |\4. "connector":https://wiki.odroid.com/accessory/development/usb_uart_kit#odroid_port_description_of_uart_connector | *UART settings*: ttySAC1, 115200 8N1 | |
| ODROID-U3, IO pins UART | 1.8V |\4. "connector":https://wiki.odroid.com/old_product/odroid-x_u_q/odroid_u3/u3_ioport_uart | *UART settings*: ttySAC0, 115200 8N1 | |
fn1. Measured between USB GND and USB VCC
fn2. Code is required to use the switch as you need to configure both the MUIC and DP3T switch
fn3. See "The related driver source code":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/drivers/misc/max77693-muic.c#n102
fn4. See the "postmarketOS wiki page on Serial debugging":https://wiki.postmarketos.org/wiki/Serial_debugging
fn5. See the "driver":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/drivers/misc/max77693-muic.c and the "ifixit teardown":https://www.ifixit.com/Teardown/Samsung+Galaxy+S+III+Teardown/9391
fn6. Reference: [[OptimusBlackSerial]]
fn7. See "board-tuna-connector.c":https://git.replicant.us/replicant/kernel_samsung_tuna/tree/arch/arm/mach-omap2/board-tuna-connector.c "fsa9480.c":https://git.replicant.us/replicant/kernel_samsung_tuna/tree/drivers/misc/fsa9480.c in "kernel_samsung_tuna":https://git.replicant.us/replicant/kernel_samsung_tuna
fn8. Works, as it was tested on the device. TODO: measure the voltage, as lower UART voltages often works with higher voltage levels.
fn9. Works, as it was tested on the device. TODO: look the official reference in the driver for it.
h2. Datasheets
* "FSA9480.pdf":https://media.digikey.com/pdf/Data%20Sheets/Fairchild%20PDFs/FSA9480.pdf
h2. Interesting links
* There is a "page on Serial debugging":https://wiki.postmarketos.org/wiki/Serial_debugging on the postmarketOS wiki that contains information for using the serial port for many smartphones models.
* "mv-uart":https://osmocom.org/projects/mv-uart/wiki A serial port adapter with configurable voltages (and GPIOs)
* "DHylands_SGS2_SerialAdapter":https://wiki.mozilla.org/DHylands_SGS2_SerialAdapter : A very compact setup but with fixed resistor value.