Project

General

Profile

UART » History » Revision 65

Revision 64 (Denis 'GNUtoo' Carikli, 03/08/2020 03:47 AM) → Revision 65/93 (Denis 'GNUtoo' Carikli, 03/08/2020 03:50 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] 510k | 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.