From: Sumit Garg <sumit.garg@kernel.org>
To: Stephan Gerhold <stephan.gerhold@linaro.org>
Cc: Casey Connolly <casey.connolly@linaro.org>,
Sumit Garg <sumit.garg@oss.qualcomm.com>,
u-boot-qcom@groups.io, u-boot@lists.denx.de,
neil.armstrong@linaro.org, trini@konsulko.com,
Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Subject: Re: [PATCH] qcom_defconfig: Enable AUTOBOOT_KEYED support
Date: Mon, 12 May 2025 12:31:58 +0530 [thread overview]
Message-ID: <aCGc5giJlI9Wqxwl@sumit-X1> (raw)
In-Reply-To: <aB4XFmFxBj30x5U6@linaro.org>
On Fri, May 09, 2025 at 04:54:43PM +0200, Stephan Gerhold wrote:
> On Fri, May 09, 2025 at 12:45:20PM +0200, Casey Connolly wrote:
> > On 5/8/25 12:32, Sumit Garg wrote:
> > > From: Sumit Garg <sumit.garg@oss.qualcomm.com>
> > >
> > > When debug serial port isn't connected, it is at least reported on RB1
> > > that autoboot gets interrupted. It is probably due to random characters
> > > on the UART RX line when disconnected. Lets try to fix this inconsistent
> > > behaviour via enabling AUTOBOOT_KEYED such that the autoboot gets
> > > interrupted only when the <SPACE> key gets pressed.
> >
> > Honestly I'd much rather fix the bug in the UART driver, maybe it's broken
> > pinctrl?
> >
> > The older UART driver (for msm8916) had a similar but that Stephen was able
> > to fix with better configuration.
> >
> > Anyhow, this is a sensible enough workaround if nobody wants to look into
> > GENI...
> >
>
> Well, the main fix I did for that isn't related to the UART driver at
> all, it's simply adding bias-pull-up for the RX pin so that it isn't
> left floating when UART is not connected.
>
> For RB1, qcm2290.dtsi &qup_uart4_default currently has bias-disable for
> both RX and TX pins. So please try applying bias-pull-up + bootph-all
> for the GPIO that belongs to RX.
>
> For details, please see the following patch series for MSM8916:
> https://lore.kernel.org/linux-arm-msm/20250422-msm8916-console-pinctrl-v2-0-f345b7a53c91@linaro.org/T/
Thanks for this reference but unfortunately this doesn't fix the issue
on RB1. I have tried the diff below [1]. It seems most likely due the
chainloading via ABL on RB1 as compared to U-Boot running as primary
bootloader on db410c. The RX line seems to be floating even before the
U-Boot starts which is causing the autoboot to stop. So for the
chainloading configuration, we need to enable AUTOBOOT_KEYED. I think
it should be the default sane configuration on Qcom platforms rather
than allowing autoboot stopped via any random character on RX line.
[1]
diff --git a/dts/upstream/src/arm64/qcom/qcm2290.dtsi b/dts/upstream/src/arm64/qcom/qcm2290.dtsi
index f0746123e59..9392bd6f3e0 100644
--- a/dts/upstream/src/arm64/qcom/qcm2290.dtsi
+++ b/dts/upstream/src/arm64/qcom/qcm2290.dtsi
@@ -551,10 +551,28 @@
};
qup_uart4_default: qup-uart4-default-state {
+ tx-pins {
+ pins = "gpio12";
+ function = "qup4";
+ drive-strength = <16>;
+ bias-disable;
+ bootph-all;
+ };
+
+ rx-pins {
+ pins = "gpio13";
+ function = "qup4";
+ drive-strength = <16>;
+ bias-pull-up;
+ bootph-all;
+ };
+ };
+
+ qup_uart4_sleep: qup-uart4-sleep-state {
pins = "gpio12", "gpio13";
- function = "qup4";
+ function = "gpio";
drive-strength = <2>;
- bias-disable;
+ bias-pull-down;
};
sdc1_state_on: sdc1-on-state {
@@ -1293,7 +1311,8 @@
clocks = <&gcc GCC_QUPV3_WRAP0_S4_CLK>;
clock-names = "se";
pinctrl-0 = <&qup_uart4_default>;
- pinctrl-names = "default";
+ pinctrl-1 = <&qup_uart4_sleep>;
+ pinctrl-names = "default", "sleep";
interconnects = <&qup_virt MASTER_QUP_CORE_0 RPM_ALWAYS_TAG
&qup_virt SLAVE_QUP_CORE_0 RPM_ALWAYS_TAG>,
<&bimc MASTER_APPSS_PROC RPM_ALWAYS_TAG
-Sumit
next prev parent reply other threads:[~2025-05-12 7:02 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-08 10:32 [PATCH] qcom_defconfig: Enable AUTOBOOT_KEYED support Sumit Garg
2025-05-09 10:45 ` Casey Connolly
2025-05-09 14:54 ` Stephan Gerhold
2025-05-12 7:01 ` Sumit Garg [this message]
2025-05-13 15:54 ` Casey Connolly
2025-05-15 11:11 ` Sumit Garg
2025-05-22 16:21 ` Stephan Gerhold
2025-06-23 23:49 ` Casey Connolly
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=aCGc5giJlI9Wqxwl@sumit-X1 \
--to=sumit.garg@kernel.org \
--cc=casey.connolly@linaro.org \
--cc=dmitry.baryshkov@oss.qualcomm.com \
--cc=neil.armstrong@linaro.org \
--cc=stephan.gerhold@linaro.org \
--cc=sumit.garg@oss.qualcomm.com \
--cc=trini@konsulko.com \
--cc=u-boot-qcom@groups.io \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.