[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#969070: $console handling might result in unbootable system



On 04/09/2020 03:10, Vagrant Cascadian wrote:
On 2020-08-28, Andre Heider wrote:
Stats:
Going by u-boot upstream, only 17 of +700 boards set $console (grep for
CONFIG_DEFAULT_CONSOLE, which too is deprecated).

Going by linux upstream, 112 of 125 arm64 boards used "stdout-path":
$ find /usr/lib/linux-image-4.19.0-10-arm64 -name \*.dtb|xargs strings
-f|grep stdout-path|wc -l
112

$ find /usr/lib/linux-image-4.19.0-10-arm64 -name \*.dtb|wc -l
        125

Those numbers sound pretty convincing, certainly for arm64...

Agreed, so let's concentrate on arm64 first.

Some detective work, let's see which boards are missing stdout-path:

$ find /usr/lib/linux-image-4.19.0-10-arm64 -name \*.dtb > all
$ find /usr/lib/linux-image-4.19.0-10-arm64 -name \*.dtb|xargs strings -f|grep -w stdout-path|cut -d':' -f1 > hits
$ diff -u all hits
--- all 2020-09-04 06:46:07.556097717 +0200
+++ hits        2020-09-04 06:45:58.171811652 +0200
@@ -1,11 +1,8 @@
 /usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3399-firefly.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3399-sapphire-excavator.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3399-evb.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3368-r88.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3368-px5-evb.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3328-rock64.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3368-lion-haikou.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3399-sapphire.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3399-gru-kevin.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3368-orion-r68-meta.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/rockchip/rk3328-roc-cc.dtb
@@ -21,12 +18,9 @@
 /usr/lib/linux-image-4.19.0-10-arm64/marvell/armada-8040-db.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/marvell/armada-3720-db.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/marvell/armada-8080-db.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/apm/apm-merlin.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/apm/apm-mustang.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/amlogic/meson-gxl-s905w-tx3-mini.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/amlogic/meson-gxm-q201.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/amlogic/meson-gxl-s805x-p241.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/amlogic/meson-axg-s400.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/amlogic/meson-gxbb-vega-s95-meta.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/amlogic/meson-gxl-s905d-p231.dtb

/usr/lib/linux-image-4.19.0-10-arm64/amlogic/meson-gxl-s905x-nexbox-a95x.dtb
@@ -86,18 +80,11 @@
 /usr/lib/linux-image-4.19.0-10-arm64/qcom/apq8016-sbc.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/qcom/apq8096-db820c.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/qcom/sdm845-mtp.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/arm/foundation-v8-gicv3.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/arm/juno.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/arm/rtsm_ve-aemv8a.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/arm/vexpress-v2f-1xv7-ca53x2.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/arm/foundation-v8-gicv3-psci.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/arm/foundation-v8.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/arm/juno-r2.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/arm/juno-r1.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/arm/foundation-v8-psci.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/cavium/thunder2-99xx.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/cavium/thunder-88xx.dtb
-/usr/lib/linux-image-4.19.0-10-arm64/hisilicon/hip06-d03.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/hisilicon/hip07-d05.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/hisilicon/hi6220-hikey.dtb
 /usr/lib/linux-image-4.19.0-10-arm64/hisilicon/hip05-d02.dtb

For linux-image-5.6.0-0.bpo.2-arm64:
diff -u all hits
--- all 2020-09-04 06:47:52.363292463 +0200
+++ hits        2020-09-04 06:47:43.227013979 +0200
@@ -7,7 +7,6 @@
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/rockchip/rk3399-firefly.dtb

/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/rockchip/rk3399-sapphire-excavator.dtb

/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/rockchip/rk3399-gru-scarlet-inx.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/rockchip/rk3399-evb.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/rockchip/rk3399-pinebook-pro.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/rockchip/rk3368-r88.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/rockchip/rk3399-rock-pi-4.dtb
@@ -51,7 +50,6 @@
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/marvell/cn9130-db.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/marvell/cn9132-db.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/marvell/armada-8080-db.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1088a-qds.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-lx2160a-qds.dtb

/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-lx2160a-clearfog-cx.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-lx2160a-rdb.dtb
@@ -59,23 +57,14 @@
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls2080a-rdb.dtb

/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-lx2160a-honeycomb.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1046a-rdb.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1088a-rdb.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1012a-rdb.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1012a-qds.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1046a-qds.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1028a-rdb.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls2080a-qds.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1012a-oxalis.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1043a-qds.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1043a-rdb.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1046a-frwy.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls2088a-rdb.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls2088a-qds.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1012a-frdm.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls2080a-simu.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/freescale/fsl-ls1012a-frwy.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/apm/apm-merlin.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/apm/apm-mustang.dtb

/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/amlogic/meson-gxl-s905w-tx3-mini.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/amlogic/meson-gxm-q201.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/amlogic/meson-a1-ad401.dtb
@@ -167,38 +156,26 @@
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8916-longcheer-l8150.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8996-mtp.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/sdm845-cheza-r3.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8998-asus-novago-tp370ql.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/sdm845-cheza-r1.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/qcs404-evb-1000.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8998-hp-envy-x2.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8916-samsung-a3u-eur.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/sm8150-mtp.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/ipq8074-hk01.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/sdm850-lenovo-yoga-c630.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/sc7180-idp.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/apq8096-ifc6640.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8916-samsung-a5u-eur.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8994-angler-rev-101.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8998-lenovo-miix-630.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/qcs404-evb-4000.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/msm8992-bullhead-rev-101.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/sdm845-db845c.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/apq8016-sbc.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/apq8096-db820c.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/qcom/sdm845-mtp.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/fvp-base-revc.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/foundation-v8-gicv3.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/juno.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/rtsm_ve-aemv8a.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/vexpress-v2f-1xv7-ca53x2.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/foundation-v8-gicv3-psci.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/foundation-v8.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/juno-r2.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/juno-r1.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/arm/foundation-v8-psci.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/cavium/thunder2-99xx.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/cavium/thunder-88xx.dtb
-/usr/lib/linux-image-5.6.0-0.bpo.2-arm64/hisilicon/hip06-d03.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/hisilicon/hi3670-hikey970.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/hisilicon/hip07-d05.dtb
 /usr/lib/linux-image-5.6.0-0.bpo.2-arm64/hisilicon/hi6220-hikey.dtb

So these boards do NOT have stdout-path for linux-image-4.19.0-10-arm64:
rockchip/rk3399-sapphire-excavator.dtb
rockchip/rk3399-evb.dtb
rockchip/rk3399-sapphire.dtb
apm/apm-merlin.dtb
apm/apm-mustang.dtb
amlogic/meson-axg-s400.dtb
arm/foundation-v8-gicv3.dtb
arm/rtsm_ve-aemv8a.dtb
arm/foundation-v8-gicv3-psci.dtb
arm/foundation-v8.dtb
arm/foundation-v8-psci.dtb
cavium/thunder-88xx.dtb
hisilicon/hip06-d03.dtb

And linux-image-5.6.0-0.bpo.2-arm64 added these:
freescale/fsl-ls1088a-qds.dtb
freescale/fsl-ls1088a-rdb.dtb
freescale/fsl-ls1012a-rdb.dtb
freescale/fsl-ls1012a-qds.dtb
freescale/fsl-ls1012a-oxalis.dtb
freescale/fsl-ls1012a-frdm.dtb
freescale/fsl-ls2080a-simu.dtb
freescale/fsl-ls1012a-frwy.dtb
qcom/msm8998-asus-novago-tp370ql.dtb
qcom/msm8998-hp-envy-x2.dtb
qcom/sdm850-lenovo-yoga-c630.dtb
qcom/msm8998-lenovo-miix-630.dtb
arm/fvp-base-revc.dtb

Of those, these are part of all.db:
rockchip/rk3399-evb.dts
apm/apm-mustang.dtb

The former is an evaluation board, added by Heinrich (cc'ed) in
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=899090
Given the nature of these boards, I guess Heinrich knows how to adapt $console - if he's even using it.

The latter is not part of u-boot mainline, so I claim that one is free to ignore :)

Given all that, I propose the attached patch.
>From 3a258f1b6d8f79cdba893321ec22def51601b7fe Mon Sep 17 00:00:00 2001
From: Andre Heider <a.heider@gmail.com>
Date: Fri, 4 Sep 2020 07:11:23 +0200
Subject: [PATCH] Remove "console=" prefix for arm64 when adding $console to
 $bootargs

This is the de-facto standard, get rid of this workaround.

See Bug#969070.
---
 bootscript/arm64/bootscr.uboot-generic | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/bootscript/arm64/bootscr.uboot-generic b/bootscript/arm64/bootscr.uboot-generic
index 33f90d2..78107c3 100644
--- a/bootscript/arm64/bootscr.uboot-generic
+++ b/bootscript/arm64/bootscr.uboot-generic
@@ -15,7 +15,7 @@
 # The uboot must support the booti and generic filesystem load commands.
 
 if test -n "${console}"; then
-  setenv bootargs "${bootargs} console=${console}"
+  setenv bootargs "${bootargs} ${console}"
 fi
 
 setenv bootargs @@LINUX_KERNEL_CMDLINE_DEFAULTS@@ ${bootargs} @@LINUX_KERNEL_CMDLINE@@
-- 
2.28.0


Reply to: