Project

General

Profile

UART » History » Version 75

Denis 'GNUtoo' Carikli, 03/10/2020 04:34 PM
i9100: from the bootloader environment

1 40 Denis 'GNUtoo' Carikli
h1. UART
2 1 Denis 'GNUtoo' Carikli
3 12 Denis 'GNUtoo' Carikli
There is an in-depth article covering several Samsung devices in the [[SamsungSerial]] page
4 11 Denis 'GNUtoo' Carikli
5 1 Denis 'GNUtoo' Carikli
h2. Settings
6 12 Denis 'GNUtoo' Carikli
7 31 Denis 'GNUtoo' Carikli
|_. Device and documentation |_. I/O voltage |_. ID<->GND |_. SOC TX |_. SOC RX |_. switch |_. stock bootloader settings |_. Comments |
8 75 Denis 'GNUtoo' Carikli
| GT-I9000 | 1.8V[8] ? | 150k | D- | D+ | | *UART settings*: ttySAC2 115200 8N1
9 74 Denis 'GNUtoo' Carikli
To get a shell in the bootloader:
10
* Power off the phone
11
* Start sending some characters through the UART
12
* Press the volume down button and the power button to power up the phone
13
* Release the buttons when the phone has powered up
14
* Once you get the shell, you can stop sending characters through the UART | At some point the boot procedure switches to the modem UART, it's probably some linux driver doing that |
15 71 Denis 'GNUtoo' Carikli
| GT-I9100 | 1.8V[8] ? | 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 
16 58 Denis 'GNUtoo' Carikli
 To get the UART enabled at boot with the stock bootloader:
17 57 Denis 'GNUtoo' Carikli
* Power the phone off and remove the battery
18
* Put a battery in
19 62 Denis 'GNUtoo' Carikli
* Hold the select button
20 57 Denis 'GNUtoo' Carikli
* Plug the UART
21 70 Denis 'GNUtoo' Carikli
* Release the select button
22
To get the UART enabled at boot with the Replicant 6.0 kernel and the stock bootloader, see the "DHylands_SGS2_Console":https://wiki.mozilla.org/DHylands_SGS2_Console page on the mozilla wiki. | At some point the boot procedure switches to the modem UART, it's probably some linux driver doing that |
23 71 Denis 'GNUtoo' Carikli
| GT-N7000 | 1.8V[8] ? | 510k[9] | D- | D+ | | *UART settings*: 115200 8N1 | |
24 1 Denis 'GNUtoo' Carikli
| 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 |
25
| GT-I9300 |/2. 1.8V[1] |/4. 619 kOhms[3] |/4. D- |/4. D+ |/4. MAX77693[5] |/4. *UART settings*: 115200
26 62 Denis 'GNUtoo' Carikli
To increase verbosity during boot:
27
* Power off the phone and remove the battery
28
* Put a battery in
29
* Press the hold the volume-down button
30
* Plug the UART and wait for the first lines to be printed
31
* Release the volume-down button |/2. It gives a shell once Replicant 6 has booted |
32 48 Denis 'GNUtoo' Carikli
| GT-I9305 |
33
| GT-N7100 | ? | |
34
| GT-N7105 | ? | |
35 61 Denis 'GNUtoo' Carikli
| [[GalaxyNexusI9250SerialConsole|Galaxy Nexus (GT-I9250)]] | | 619 kOhms[4] | D+ | D- | FSA9480[7] | UART settings:
36
* By default: ttyFIQ0, 115200 8N1
37
* After patching Linux: ttyO2, 115200 8N1
38 43 Denis 'GNUtoo' Carikli
See [[GalaxyNexusI9250SerialConsole]] for more details. | |
39 45 Denis 'GNUtoo' Carikli
| [[NexusSI902xSerial|Nexus S]] | | 150 kOhm | | | FSA9480 | | |
40 48 Denis 'GNUtoo' Carikli
| [[OptimusBlackSerial|Optimus Black (P970)]] | 1.8V[6] | N/A[2] | | | DP3T | | |
41 60 Denis 'GNUtoo' Carikli
| 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 | |
42
| 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 | |
43 17 Denis 'GNUtoo' Carikli
44 1 Denis 'GNUtoo' Carikli
fn1. Measured between USB GND and USB VCC
45
46
fn2. Code is required to use the switch as you need to configure both the MUIC and DP3T switch
47
48
fn3. See "The related driver source code":https://git.replicant.us/replicant/kernel_samsung_smdk4412/tree/drivers/misc/max77693-muic.c#n102
49
50
fn4. See the "postmarketOS wiki page on Serial debugging":https://wiki.postmarketos.org/wiki/Serial_debugging
51 30 Denis 'GNUtoo' Carikli
52 1 Denis 'GNUtoo' Carikli
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
53
54
fn6. Reference: [[OptimusBlackSerial]]
55 44 Denis 'GNUtoo' Carikli
56
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
57 50 Denis 'GNUtoo' Carikli
58
fn8. Works, as it was tested on the device. TODO: measure the voltage, as lower UART voltages often works with higher voltage levels.
59
60
fn9. Works, as it was tested on the device. TODO: look the official reference in the driver for it.
61 23 Denis 'GNUtoo' Carikli
62 47 Denis 'GNUtoo' Carikli
h2. Datasheets
63
64
* "FSA9480.pdf":https://media.digikey.com/pdf/Data%20Sheets/Fairchild%20PDFs/FSA9480.pdf
65
66 23 Denis 'GNUtoo' Carikli
h2. Interesting links
67
68 34 Denis 'GNUtoo' Carikli
* 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.
69
* "mv-uart":https://osmocom.org/projects/mv-uart/wiki A serial port adapter with configurable voltages (and GPIOs)
70 53 Denis 'GNUtoo' Carikli
* "DHylands_SGS2_SerialAdapter":https://wiki.mozilla.org/DHylands_SGS2_SerialAdapter : A very compact setup but with fixed resistor value.
71 68 Denis 'GNUtoo' Carikli
72
h2. See also
73
74 69 Denis 'GNUtoo' Carikli
* [[BootloaderInterfaces]]: Documentation about the stock bootloaders interfaces