UART Location How-To

Search This thread

AdamOutler

Retired Senior Recognized Developer
Feb 18, 2011
5,224
9,827
Miami, Fl̨̞̲̟̦̀̈̃͛҃҅͟orida
As much as I despise Qualcomm's lock down practices, I must admit that the Qualcomm processor is pretty darn solid. There aren't too many problems with Qualcrapp :D. However, that's now and I've got some information which may help some of you out in the future.

I did some hacking last night on a live stream with a few other XDA members from this and other forums. The goal was to find the UART location on the AT&T Galaxy S3.

Why, you might ask, would this be useful? During kernel and bootloader development, sometimes the device won't boot to the point where you can obtain logs to determine the problem. UART can provide the realtime eyes-on that you need to troubleshoot such problems.

So the process was as follows... On a rooted device, pull the kernel. Extract it. Add command line parameters to enable UART.
Code:
console=ttyHSL0,115200n8 loglevel=9
Recompress into a boot.img. upload with Heimdall. Teardown the device. Adb shell into the device. Execute the following code so you push data through the UART port and know if the device has locked up.
Code:
su
while [ 0 ]; do date| tee /dev/ttyHSL0; busybox sleep .5; done
After that, you can locate the UART port by probing at 115200bps.

The TX from the board (your RX lead] is placed 2nd from the bottom on the battery side of the board. RX is either the one above that or middle on the other side.

Video:

In the video, at about 5 minutes in, I said I didn't know what the 31 value was... and the kmesg logs were pretty thin.. Well, turns out they are the kernel message levels. For full logging, change that to 987654321. Samsung usually uses the 9 identifier to represent shell access :D.

So, I hope this helps. UART provides eyes before any other method of debugging (aside from JTAG) begins to work. UART is the first thing to do in order to make a device into a development board.
 

upndwn4par

Inactive Recognized Developer
Jan 22, 2012
3,640
10,375
New Jersey
I haven't watched the video yet because the loading is soooo slow.

Is it possible to uart in to the headphone jack on this device?

We were able to do this on the Atrix 4G.
 

jamcar

Senior Member
Aug 11, 2010
1,215
400
Orlando
As much as I despise Qualcomm's lock down practices, I must admit that the Qualcomm processor is pretty darn solid. There aren't too many problems with Qualcrapp :D.

Wasn't fully aware they had lock down practices. Could you say more about that? Like what is it? What did they do?
Thanks.


Aaron Swartz, Rest in Pixels.
 

m11kkaa

Recognized Dev / Inactive Recognized Contributor
Jan 20, 2011
1,259
2,147
I try to find the UART port on an APQ8064(Mi2 and Nexus4 are using it).
Just one question: how can I probe uart? just random connecting my RX to any pins on the board?
Can't this completely break the hardware?
 

Top Liked Posts

  • There are no posts matching your filters.
  • 15
    As much as I despise Qualcomm's lock down practices, I must admit that the Qualcomm processor is pretty darn solid. There aren't too many problems with Qualcrapp :D. However, that's now and I've got some information which may help some of you out in the future.

    I did some hacking last night on a live stream with a few other XDA members from this and other forums. The goal was to find the UART location on the AT&T Galaxy S3.

    Why, you might ask, would this be useful? During kernel and bootloader development, sometimes the device won't boot to the point where you can obtain logs to determine the problem. UART can provide the realtime eyes-on that you need to troubleshoot such problems.

    So the process was as follows... On a rooted device, pull the kernel. Extract it. Add command line parameters to enable UART.
    Code:
    console=ttyHSL0,115200n8 loglevel=9
    Recompress into a boot.img. upload with Heimdall. Teardown the device. Adb shell into the device. Execute the following code so you push data through the UART port and know if the device has locked up.
    Code:
    su
    while [ 0 ]; do date| tee /dev/ttyHSL0; busybox sleep .5; done
    After that, you can locate the UART port by probing at 115200bps.

    The TX from the board (your RX lead] is placed 2nd from the bottom on the battery side of the board. RX is either the one above that or middle on the other side.

    Video:

    In the video, at about 5 minutes in, I said I didn't know what the 31 value was... and the kmesg logs were pretty thin.. Well, turns out they are the kernel message levels. For full logging, change that to 987654321. Samsung usually uses the 9 identifier to represent shell access :D.

    So, I hope this helps. UART provides eyes before any other method of debugging (aside from JTAG) begins to work. UART is the first thing to do in order to make a device into a development board.
    4
    Forgot to mention.. There is surely a switch in the PARAMS to enable early bootloader logging. This is yet to be found.