[PATCH 00/10] Fix UART autoboot issues on DragonBoard 410c
Stephan Gerhold
stephan.gerhold at linaro.org
Tue Jun 24 10:45:13 CEST 2025
There have been issues with autoboot on DB410c for years, where autoboot
gets interrupted by spurious input on the UART console. I've tried fixing
this back in 2021, but it turned out this fix was not enough. Looking into
it further, there are two separate issues to fix:
- Spurious input with UART disconnected: The RX pin is floating in this
case, resulting in garbage or a UART break event (0x00 byte). This is
interpreted as input in the autoboot prompt. Fix this by adding
bias-pull-up for the RX pin. I've made this change upstream in Linux for
all MSM8916/MSM8939 devices, so I only backport the changes here using
tools/update-subtree.sh.
- Spurious input when querying console size with UART connected: It's
unclear why this happens, but it seems to be some issue in the overly
complex implementation of 4-character packing mode in the serial_msm
driver. Fix this by switching the driver to use the more simple
single-character mode, which doesn't have this issue.
With these patches, autoboot is finally working reliably on DragonBoard
410c (and hopefully will remain so for the future :-)).
Signed-off-by: Stephan Gerhold <stephan.gerhold at linaro.org>
---
Stephan Gerhold (10):
arm64: dts: qcom: msm8916/39: Move UART pinctrl to board files
arm64: dts: qcom: msm8916/39: Introduce new UART console pinctrl
arm64: dts: qcom: msm8919/39: Use UART2 console pinctrl where appropriate
arm64: dts: qcom: msm8916-motorola: Use UART1 console pinctrl
board: dragonboard410c: Drop now unneeded bootph-all for console
Revert "serial: serial_msm: Delay initialization to let pins stabilize"
serial: msm: Cleanup register naming
serial: msm: Reset after writing to DMEN
serial: msm: Re-enable after resetting
serial: msm: Use single character mode
arch/arm/dts/apq8016-sbc-u-boot.dtsi | 9 --
drivers/serial/serial_msm.c | 127 +++++----------------
dts/upstream/src/arm64/qcom/apq8016-sbc.dts | 6 +
.../src/arm64/qcom/apq8016-schneider-hmibsc.dts | 6 +
dts/upstream/src/arm64/qcom/apq8039-t2.dts | 6 +
.../src/arm64/qcom/msm8916-acer-a1-724.dts | 3 +
.../src/arm64/qcom/msm8916-alcatel-idol347.dts | 3 +
dts/upstream/src/arm64/qcom/msm8916-asus-z00l.dts | 3 +
.../src/arm64/qcom/msm8916-gplus-fl8005a.dts | 3 +
dts/upstream/src/arm64/qcom/msm8916-huawei-g7.dts | 3 +
dts/upstream/src/arm64/qcom/msm8916-lg-c50.dts | 3 +
dts/upstream/src/arm64/qcom/msm8916-lg-m216.dts | 3 +
.../src/arm64/qcom/msm8916-longcheer-l8150.dts | 3 +
.../src/arm64/qcom/msm8916-longcheer-l8910.dts | 3 +
.../src/arm64/qcom/msm8916-motorola-common.dtsi | 11 +-
dts/upstream/src/arm64/qcom/msm8916-mtp.dts | 3 +
.../arm64/qcom/msm8916-samsung-a2015-common.dtsi | 3 +
.../arm64/qcom/msm8916-samsung-fortuna-common.dtsi | 3 +
.../src/arm64/qcom/msm8916-samsung-gt5-common.dtsi | 3 +
.../src/arm64/qcom/msm8916-samsung-j5-common.dtsi | 3 +
.../src/arm64/qcom/msm8916-samsung-serranove.dts | 3 +
dts/upstream/src/arm64/qcom/msm8916-ufi.dtsi | 3 +
.../src/arm64/qcom/msm8916-wingtech-wt865x8.dtsi | 3 +
.../src/arm64/qcom/msm8916-wingtech-wt88047.dts | 3 +
dts/upstream/src/arm64/qcom/msm8916.dtsi | 51 +++++++--
.../src/arm64/qcom/msm8939-huawei-kiwi.dts | 3 +
.../src/arm64/qcom/msm8939-longcheer-l9100.dts | 3 +
dts/upstream/src/arm64/qcom/msm8939-samsung-a7.dts | 3 +
.../src/arm64/qcom/msm8939-wingtech-wt82918.dtsi | 3 +
dts/upstream/src/arm64/qcom/msm8939.dtsi | 51 +++++++--
30 files changed, 204 insertions(+), 129 deletions(-)
---
base-commit: fb4a488eb91b089912ffbc9a74d0527f0f2c79ac
change-id: 20250419-db410c-autoboot-fixes-ad7f4f5973a8
Best regards,
--
Stephan Gerhold <stephan.gerhold at linaro.org>
More information about the U-Boot
mailing list