Bug#969070: $console handling might result in unbootable system
On 04.09.20 07:20, Andre Heider wrote:
> 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
You seem
>>> CONFIG_DEFAULT_CONSOLE, which too is deprecated).
I found no CONFIG_DEFAULT_CONSOLE 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
<snip />
>
> Given all that, I propose the attached patch.
On the Wandboard Quad which is one of the elder boards we have:
=> echo $console
ttymxc0
It is defined here:
include/configs/wandboard.h:48: "console=ttymxc0\0" \
Many boards set the console value directly via the
CONFIG_EXTRA_ENV_SETTINGS, e.g. include/configs/mccmon6.h:
#define CONFIG_EXTRA_ENV_SETTINGS \
"console=ttymxc0,115200 quiet\0" \
"boot_nor=" \
"setenv kernelnor 0x08180000;" \
"setenv bootargs console=${console} " \
So having a value of the console environment variable without "console="
seems to be the correct form in U-Boot.
We have only a few places where CONFIG_DEFAULT_CONSOLE is used in U-Boot:
git grep -n DEFAULT_CONS
include/configs/arndale.h:21:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC2,115200n8\0"
include/configs/espresso7420.h:22:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/odroid.h:41:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/odroid.h:152: "console=" CONFIG_DEFAULT_CONSOLE \
include/configs/odroid_xu3.h:28:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC2,115200n8\0"
include/configs/odroid_xu3.h:100: "console=" CONFIG_DEFAULT_CONSOLE \
include/configs/origen.h:30:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/peach-pi.h:27:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/peach-pit.h:27:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/s5p_goni.h:88:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC2,115200n8\0"
include/configs/s5p_goni.h:134: "console=" CONFIG_DEFAULT_CONSOLE \
include/configs/s5pc210_universal.h:30:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/s5pc210_universal.h:105: "console="
CONFIG_DEFAULT_CONSOLE \
include/configs/smdk5250.h:21:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/smdk5420.h:28:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/smdk5420.h:30:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/smdkv310.h:40:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC2,115200n8\0"
include/configs/snow.h:20:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/spring.h:15:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC1,115200n8\0"
include/configs/trats.h:37:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC2,115200n8\0"
include/configs/trats.h:115: "console=" CONFIG_DEFAULT_CONSOLE \
include/configs/trats2.h:35:#define CONFIG_DEFAULT_CONSOLE
"console=ttySAC2,115200n8\0"
include/configs/trats2.h:98: "console=" CONFIG_DEFAULT_CONSOLE \
scripts/config_whitelist.txt:293:CONFIG_DEFAULT_CONSOLE
So what should be done is to send patches for upstream U-Boot to correct
the following includes:
include/configs/odroid.h
include/configs/odroid_xu3.h
include/configs/s5p_goni.h
include/configs/s5pc210_universal.h
include/configs/trats.h
include/configs/trats2.h
Make sure that you also correct CONFIG_EXTRA_ENV_SETTINGS in these
includes,e.g. something like:
diff --git a/include/configs/odroid.h b/include/configs/odroid.h
index befb9f9aa1..f31d9bb3aa 100644
--- a/include/configs/odroid.h
+++ b/include/configs/odroid.h
@@ -38,7 +38,7 @@
/* Console configuration */
#define CONFIG_BOOTCOMMAND "run distro_bootcmd ; run autoboot"
-#define CONFIG_DEFAULT_CONSOLE "console=ttySAC1,115200n8\0"
+#define CONFIG_DEFAULT_CONSOLE "ttySAC1,115200n8"
#define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_LOAD_ADDR \
- GENERATED_GBL_DATA_SIZE)
@@ -116,7 +116,7 @@
"fi;\0" \
"kernel_args=" \
"setenv bootargs
root=/dev/mmcblk${mmcrootdev}p${mmcrootpart}" \
- " rootwait ${console} ${opts}\0" \
+ " rootwait console=${console} ${opts}\0" \
"boot_script=" \
"run loadbootscript;" \
"source ${scriptaddr}\0" \
@@ -156,8 +156,8 @@
"mmcrootpart=2\0" \
"dfu_alt_system="CONFIG_DFU_ALT \
"dfu_alt_info=Please reset the board\0" \
- "consoleon=set console console=ttySAC1,115200n8; save; reset\0" \
- "consoleoff=set console console=ram; save; reset\0" \
+ "consoleon=set console ttySAC1,115200n8; save; reset\0" \
+ "consoleoff=set console ram; save; reset\0" \
"initrdname=uInitrd\0" \
"ramdisk_addr_r=0x42000000\0" \
"scriptaddr=0x42000000\0" \
Best regards
Heinrich
Reply to: