Hi all,
I'm building a GNSS base station on a Luckfox Pico Pro Max (RV1106G3, 256MB), running the latest Ubuntu 22.04.3 LTS image (downloaded on the official drive) from a micro SD card. I needed UART3 (pins 19-20, UART3_TX_M1/UART3_RX_M1, GPIO1_D0/GPIO1_D1) to talk to a u-blox ZED-F9P, and ran into some issues enabling it. Posting what I found in case it helps someone else, and hoping someone here has run into the same thing.
What I found:
- None of the 6 UART controllers (serial@ff4a0000 through serial@ff4f0000) are enabled (status = "disabled") in the device tree shipped with this image — including serial@ff4c0000, the address used by the debug console (ttyFIQ0). That console actually works through the Rockchip FIQ debugger mechanism, which bypasses the normal 8250/dw-apb-uart driver, so it doesn't need that node enabled.
- Extracting the live tree (dtc -I fs -O dts /proc/device-tree) showed the uart3m1-xfer pinctrl group already correctly points at GPIO1_D0/D1 (pins 19-20), so in theory only the status property needs to flip from "disabled" to "okay".
What I tried:
1. Edited serial@ff4d0000's status to "okay" in the extracted dts, recompiled to .dtb with dtc.
2. The boot partition (32MB, on the SD card) turned out to be a U-Boot FIT image (fdt + kernel + resource sub-images, each with a sha256 hash). The configuration node declares "Sign algo: sha256,rsa2048:dev" but dumpimage shows "Sign value: unavailable" on the original, working image.
3. Extracted the original kernel/resource sub-images (verified against their existing hashes), rebuilt a new FIT with the modified fdt + untouched kernel/resource via mkimage, without a "signature" node under configurations (since the original one was empty anyway).
4. Flashed it to the boot partition, verified the write byte-for-byte.
Result: board didn't boot at all afterward — no SSH, no activity, and the GPIO-driven status LED (GPIO3_C6) never turned on, so it looks like U-Boot never handed off to the kernel. Recovered by restoring the original boot partition backup via a direct sector write from a PC. No serial debug console was connected during the failed attempt, so no boot log to share, unfortunately.
Questions for anyone who's done this before:
- Is there a documented/supported way to enable additional UARTs on the Ubuntu image without a full SDK rebuild?
- Does U-Boot on this board actually enforce FIT signature verification on configurations, even though the shipped image's own signature value is "unavailable"? Could that be why it silently refused to boot?
- Which pins carry the U-Boot/kernel debug console, so I can hook up a serial adapter next time and actually see what's failing?
Happy to share the extracted device tree or the .its file if useful. Thanks!
