From e13d9cd07f934c3e2a2cbee411cccec6cc4379c2 Mon Sep 17 00:00:00 2001 From: Alberto Bursi Date: Tue, 26 Jun 2018 21:48:09 +0200 Subject: [PATCH] uboot-kirkwood: fix malformed boot configuration With current uboot default configuration the bootloader will fail to start the OpenWrt firmware with the following error: ----- unexpected character 'b' at the end of partition Error initializing mtdparts! incorrect device type in ubi Partition ubi not found! Error, no UBI device/partition selected! Wrong Image Format for bootm command Error occured, error code = 112 ----- If the uboot configuration is examined with printenv I can see that mdtparts line (on a nsa310) is wrong: ----- mtdparts=mtdparts=orion_nand:0x0c0000(uboot), 0x80000(uboot_env),0x7ec0000(ubi)bootargs_root= ---- The "bootargs_root=" that was appended to it should not be there. Fix the issue by adding a \0 line terminator at the end of affected lines, mimicking what is also done by uboot upstream. This issue was detected and confirmed on a nsa310, nsa325 and a pogoplug v4, but it's not hardware-specific, so apply the same fix to other devices as well. Note that the issue is with the uboot's integrated boot configuration, which is not used unless the uboot configuration in flash is unavailable (erased or corrupted), which happens only on first time installation, or if the user deletes the uboot configuration when upgrading uboot. People just upgrading from an older uboot without erasing their previous uboot configuration stored in flash would not have noticed this issue. Signed-off-by: Alberto Bursi --- .../boot/uboot-kirkwood/patches/007-nsa310-uboot-generic.patch | 2 +- .../boot/uboot-kirkwood/patches/008-nsa325-uboot-generic.patch | 2 +- package/boot/uboot-kirkwood/patches/010-pogoplug_v4.patch | 2 +- package/boot/uboot-kirkwood/patches/110-dockstar.patch | 2 +- package/boot/uboot-kirkwood/patches/120-iconnect.patch | 3 ++- package/boot/uboot-kirkwood/patches/130-ib62x0.patch | 3 ++- package/boot/uboot-kirkwood/patches/140-pogoplug_e02.patch | 2 +- package/boot/uboot-kirkwood/patches/150-goflexhome.patch | 3 ++- 8 files changed, 11 insertions(+), 8 deletions(-) diff --git a/package/boot/uboot-kirkwood/patches/007-nsa310-uboot-generic.patch b/package/boot/uboot-kirkwood/patches/007-nsa310-uboot-generic.patch index f1612d8565b..264c160748c 100644 --- a/package/boot/uboot-kirkwood/patches/007-nsa310-uboot-generic.patch +++ b/package/boot/uboot-kirkwood/patches/007-nsa310-uboot-generic.patch @@ -627,7 +627,7 @@ NOTE: this patch is ready for upstream, LEDE-specific parts are in +#define CONFIG_EXTRA_ENV_SETTINGS \ + "console=console=ttyS0,115200\0" \ + "mtdids=nand0=orion_nand\0" \ -+ "mtdparts="CONFIG_MTDPARTS_DEFAULT \ ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ + "bootargs_root=\0" + +/* diff --git a/package/boot/uboot-kirkwood/patches/008-nsa325-uboot-generic.patch b/package/boot/uboot-kirkwood/patches/008-nsa325-uboot-generic.patch index 7fed859031c..0ce3fe02e1c 100644 --- a/package/boot/uboot-kirkwood/patches/008-nsa325-uboot-generic.patch +++ b/package/boot/uboot-kirkwood/patches/008-nsa325-uboot-generic.patch @@ -613,7 +613,7 @@ +#define CONFIG_EXTRA_ENV_SETTINGS \ + "console=console=ttyS0,115200\0" \ + "mtdids=nand0=orion_nand\0" \ -+ "mtdparts="CONFIG_MTDPARTS_DEFAULT \ ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ + "bootargs_root=\0" + +/* diff --git a/package/boot/uboot-kirkwood/patches/010-pogoplug_v4.patch b/package/boot/uboot-kirkwood/patches/010-pogoplug_v4.patch index b9e023c4f7d..568c8bf5f05 100644 --- a/package/boot/uboot-kirkwood/patches/010-pogoplug_v4.patch +++ b/package/boot/uboot-kirkwood/patches/010-pogoplug_v4.patch @@ -1212,7 +1212,7 @@ +#define CONFIG_EXTRA_ENV_SETTINGS \ + "console=console=ttyS0,115200\0" \ + "mtdids=nand0=orion_nand\0" \ -+ "mtdparts="CONFIG_MTDPARTS_DEFAULT \ ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ + "bootargs_root=\0" + +/* diff --git a/package/boot/uboot-kirkwood/patches/110-dockstar.patch b/package/boot/uboot-kirkwood/patches/110-dockstar.patch index 06ec507c885..ff2c33877b6 100644 --- a/package/boot/uboot-kirkwood/patches/110-dockstar.patch +++ b/package/boot/uboot-kirkwood/patches/110-dockstar.patch @@ -39,7 +39,7 @@ - "bootargs_root=ubi.mtd=1 root=ubi0:root rootfstype=ubifs ro\0" + "console=console=ttyS0,115200\0" \ + "mtdids=nand0=orion_nand\0" \ -+ "mtdparts="CONFIG_MTDPARTS_DEFAULT \ ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ + "bootargs_root=\0" /* diff --git a/package/boot/uboot-kirkwood/patches/120-iconnect.patch b/package/boot/uboot-kirkwood/patches/120-iconnect.patch index dcccf58eaf7..114aa1559da 100644 --- a/package/boot/uboot-kirkwood/patches/120-iconnect.patch +++ b/package/boot/uboot-kirkwood/patches/120-iconnect.patch @@ -22,9 +22,10 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "console=console=ttyS0,115200\0" \ "mtdids=nand0=orion_nand\0" \ - "mtdparts="CONFIG_MTDPARTS_DEFAULT \ +- "mtdparts="CONFIG_MTDPARTS_DEFAULT \ - "kernel=/boot/uImage\0" \ - "bootargs_root=noinitrd ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0" ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ + "bootargs_root=\0" /* diff --git a/package/boot/uboot-kirkwood/patches/130-ib62x0.patch b/package/boot/uboot-kirkwood/patches/130-ib62x0.patch index 4b1afb837e1..269cf7336de 100644 --- a/package/boot/uboot-kirkwood/patches/130-ib62x0.patch +++ b/package/boot/uboot-kirkwood/patches/130-ib62x0.patch @@ -18,10 +18,11 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "console=console=ttyS0,115200\0" \ "mtdids=nand0=orion_nand\0" \ - "mtdparts="CONFIG_MTDPARTS_DEFAULT \ +- "mtdparts="CONFIG_MTDPARTS_DEFAULT \ - "kernel=/boot/zImage\0" \ - "fdt=/boot/ib62x0.dtb\0" \ - "bootargs_root=ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs rw\0" ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ + "bootargs_root=\0" /* diff --git a/package/boot/uboot-kirkwood/patches/140-pogoplug_e02.patch b/package/boot/uboot-kirkwood/patches/140-pogoplug_e02.patch index 330821babd1..26217fadd70 100644 --- a/package/boot/uboot-kirkwood/patches/140-pogoplug_e02.patch +++ b/package/boot/uboot-kirkwood/patches/140-pogoplug_e02.patch @@ -29,7 +29,7 @@ - "ext2load usb 0:1 0x01100000 /uInitrd\0" + "console=console=ttyS0,115200\0" \ + "mtdids=nand0=orion_nand\0" \ -+ "mtdparts="CONFIG_MTDPARTS_DEFAULT \ ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ + "bootargs_root=\0" /* diff --git a/package/boot/uboot-kirkwood/patches/150-goflexhome.patch b/package/boot/uboot-kirkwood/patches/150-goflexhome.patch index 0f77ea720a3..2104b67b513 100644 --- a/package/boot/uboot-kirkwood/patches/150-goflexhome.patch +++ b/package/boot/uboot-kirkwood/patches/150-goflexhome.patch @@ -14,9 +14,10 @@ #define CONFIG_EXTRA_ENV_SETTINGS \ "console=console=ttyS0,115200\0" \ "mtdids=nand0=orion_nand\0" \ - "mtdparts="CONFIG_MTDPARTS_DEFAULT \ +- "mtdparts="CONFIG_MTDPARTS_DEFAULT \ - "kernel=/boot/uImage\0" \ - "bootargs_root=ubi.mtd=root root=ubi0:root rootfstype=ubifs ro\0" ++ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \ + "bootargs_root=\0" /*