[U-Boot] ArmSoM CM5-IO (RK3576): U-Boot overlay + defconfig for review
hu hu
huhuvmb88 at outlook.com
Wed May 27 00:52:57 PDT 2026
Hello ArmSoM team and linux-rockchip,
First, thanks for the excellent CM5-IO design — the carrier has been a
pleasure to bring up, and the schematic package (CM5-1V1 + CM5-IO-1V1)
made hardware verification straightforward.
While running mainline U-Boot v2026.07-rc3 against a production unit, I
noticed a few small areas where the upstream board DTS at
dts/upstream/src/arm64/rockchip/rk3576-armsom-cm5-io.dts
could benefit from minor adjustments to match the hardware behaviour
observed in U-Boot. Rather than touch the upstream board DTS (which
should track the kernel side), I kept all fixes in a U-Boot-only
overlay. Patch and commit message are on my fork for review:
https://github.com/gahingwoo/u-boot/commit/08ad3cd5
Quick summary of the four observations:
1. &u2phy0_otg currently has no phy-supply, so the Type-C 5V switch
gated by GPIO2_PB6 (USB_OTG0_PWREN_H per schematic sheet 12) stays
off in U-Boot and USB-C devices don't enumerate. Adding
phy-supply = <&vcc_5v0_typec0> resolves this for the U-Boot
stage; Linux already handles it through FUSB302.
2. The CM5 on-module GbE PHY is a MotorComm YT8531C-CA (schematic
sheet 18, U6601). It uses the SoC's REFCLKO25M output as its
25 MHz reference (page 18 shows Y6600 is depopulated), so
including ðm0_clk0_25m_out in gmac0's pinctrl-0 and claiming
<&cru REFCLKO25M_GMAC0_OUT> at 25 MHz on the PHY node lets the
RGMII-RXID timing lock reliably.
3. &usb_drd0_dwc3 keeps dr_mode = "otg" + usb-role-switch upstream,
which is correct for Linux + FUSB302 but leaves U-Boot in
peripheral state (no FUSB302 driver). Forcing "host" only in
the U-Boot overlay re-enables USB-C boot media.
4. defconfig pulls in CONFIG_PHY_MOTORCOMM=y so the YT8531 PHY
driver is linked alongside the existing CONFIG_PHY_REALTEK
fallback.
For reference, items (1) and (2) are already implemented in your own
BSP DTS at ArmSoM/rockchip-kernel @ linux-6.1-stan-rkr6.1, so this is
really just bringing the mainline U-Boot side into alignment with the
design your team has already validated. Particularly the
"arm64: dts: add device tree for ArmSoM CM5 IO board" commit
(2025-11-21) was the primary reference while cross-checking GPIO
assignments against the schematic — thank you for that work.
Files touched (both new, additive, nothing removed):
arch/arm/dts/rk3576-armsom-cm5-io-u-boot.dtsi
configs/armsom-cm5-io-rk3576_defconfig
dts/upstream/.../rk3576-armsom-cm5-io.dts is intentionally untouched
so it can keep tracking the kernel-side DTS.
Verification status (all observations from a running unit, U-Boot
v2026.07-rc3-g08ad3cd574f0 confirmed via /proc/device-tree/chosen/
u-boot,version after handoff):
- GbE PHY identity is positively confirmed as YT8531: the chip's
PHY ID register reads 0x4f51e91b on stmmac-0:01, which matches
PHY_ID_YT8531 in drivers/net/phy/motorcomm.c. (The upstream board
DTS header comment and the BSP DTS reset-delays comment both
still mention RTL8211F.)
- iperf3 sustained 941 Mbits/sec aggregate over 4 parallel TCP
streams for 30 s with zero retransmits, confirming the RGMII-RXID
timing is locked and the YT8531 is happy with the SoC REFCLKO25M
reference clock layout per schematic page 18.
- Under the Armbian / vendor BSP DT, kernel log confirms
u2phy0_otg has no phy-supply property and the regulator
vbus5v0_typec is correspondingly driven by FUSB302 via
vbus-supply (state = "disabled" when no source role is
negotiated). This is exactly the design the BSP DTS encodes; the
U-Boot overlay just provides a complementary path for the
no-FUSB302-driver U-Boot stage.
- USB hub + HID + HDMI all functional. The overlay's USB-C-as-host
behaviour at the U-Boot stage was not directly observed (debug
UART unavailable on this unit), but the underlying USB2 PHY
power path is now consistent with the GPIO2 PB6
(USB_OTG0_PWREN_H) wire from schematic sheet 12.
Signed-off-by is on the commit per DCO, so feel free to cherry-pick,
adapt, or use it as a starting point if you'd like to send a more
polished series to u-boot at lists.denx.de (CC'ing
kever.yang at rock-chips.com). I'm happy to revise, split the patch
differently, or clarify any schematic references — whichever flow
works best for you.
Thanks again for the board.
Best regards,
gahingwoo
huhuvmb88 at outlook.com
More information about the Linux-rockchip
mailing list