March 26, 2018

'Le Potato' boot serial port

The AML-S905X-CC (Le Potato) is a strange beast. It doesn't have reams of friendly documentations and is fairly barebones.

I decided to start looking into where u-boot lives, where early boot output goes and things of that nature.

So off I went and plugged in a USB serial cable to the usual spot for a raspberry pi style header. From top right, its VCC VCC Ground UART_TX UART_RX.

attempt 1

Cracked open putty, serial 115200 baud lets go. Not my first rodeo..

doh

Never said I was able to ride the bull 8 seconds. Wrong baud rate? That would be a first for me. Maybe it has different headers. I go to check pin-out, but they do not provide a pinout!

They do however provide a schematic. I've mirrored it HERE because they served it from drive so who knows how long that will be around.

Huh, it mostly matches the raspberry pi layout..

header schematic

I decided to quickly flip around to the CPU(s) section of the schematic to make sure UART_A_TX and UART_A_RX are the right thing. In the process I discovered they have broken out the IO pins for UART in a separate spot named 'UART DEBUG' (promising!) and they are labelled differently as 'linux rx/tx':

uart debug

physical location next to hdmi

Instead of wasting time guessing UART baud rate incase its something weird I decided to crack out a saleae logic analyzer. By the way, I cannot recommend these things enough, they are amazing.

I plugin the UART pins and add async serial analyzers with 'autobaud' on, so they will scan smallest pulses as they are received and adjust baud.

hooked

serial analyzer

This works without issue and the reported baud setting is ~116279 after a capture, so 115200 is probably correct.

Plugging the usual USB serial cable into the debug UART at 115200 shows us glorious U-boot output and works.

serial analyzer

This is a custom u-boot that I am unsure is completely upstreamed. I've never seen so much stuff printed out before uboot header.

Takeaways

As expected, the le potato will require digging. aside from one (active) forum, you're basically on you're own. On the plus side the developers seem engaged with upstream, have their sources on github and provided schematics.


Previous post
NetBSD features you may have missed It's no secret NetBSD is the smallest of the three contemporary modern BSDs (FreeBSD, OpenBSD, NetBSD, intentionally ignoring PC-BSD/TrueOS). Many
Next post
Reading linux mouse input with golang I think mouse input in linux is generally awful. It always feels terrible in any window manager and I have begun digging into the whys. It seems