uboot-kirkwood: fix malformed boot configuration
authorAlberto Bursi <alberto.bursi@outlook.it>
Tue, 26 Jun 2018 19:48:09 +0000 (21:48 +0200)
committerMathias Kresin <dev@kresin.me>
Tue, 26 Jun 2018 21:35:18 +0000 (23:35 +0200)
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 <alberto.bursi@outlook.it>
package/boot/uboot-kirkwood/patches/007-nsa310-uboot-generic.patch
package/boot/uboot-kirkwood/patches/008-nsa325-uboot-generic.patch
package/boot/uboot-kirkwood/patches/010-pogoplug_v4.patch
package/boot/uboot-kirkwood/patches/110-dockstar.patch
package/boot/uboot-kirkwood/patches/120-iconnect.patch
package/boot/uboot-kirkwood/patches/130-ib62x0.patch
package/boot/uboot-kirkwood/patches/140-pogoplug_e02.patch
package/boot/uboot-kirkwood/patches/150-goflexhome.patch

index 2ff916eb880bf8638edc22cd537b35d44bb540db..f90842cadaf0f0d030b27b4969b3af01855835b7 100644 (file)
@@ -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"             \
 +#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"
 +
 +/*
 +      "bootargs_root=\0"
 +
 +/*
index fd6dd6fa36e5790ba5cc9261b9d9838d41215c73..27144221327d1e2f5e293b9167548693aa3a9557 100644 (file)
 +#define CONFIG_EXTRA_ENV_SETTINGS \
 +      "console=console=ttyS0,115200\0"        \
 +      "mtdids=nand0=orion_nand\0"             \
 +#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"
 +
 +/*
 +      "bootargs_root=\0"
 +
 +/*
index 50551bad6a042b3ceebd8fabebcd72ac89ba9834..1508a98c1c878eee22bd8bf5028c5970cace8242 100644 (file)
 +#define CONFIG_EXTRA_ENV_SETTINGS \
 +      "console=console=ttyS0,115200\0"        \
 +      "mtdids=nand0=orion_nand\0"             \
 +#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"
 +
 +/*
 +      "bootargs_root=\0"
 +
 +/*
index 43dce1a0d3fe09831955211eba2e6036cd57a110..e67a888a4833a32f32c617d19ec9af96aa27720d 100644 (file)
@@ -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"             \
 -      "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"
  
  /*
 +      "bootargs_root=\0"
  
  /*
index d2e89115e8879a43fb8b55d939d25a36aa121f6e..7ff721218f51844b043c493876baebeaad085bf6 100644 (file)
  #define CONFIG_EXTRA_ENV_SETTINGS \
        "console=console=ttyS0,115200\0"        \
        "mtdids=nand0=orion_nand\0"             \
  #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"
 -      "kernel=/boot/uImage\0"                 \
 -      "bootargs_root=noinitrd ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs\0"
++      "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \
 +      "bootargs_root=\0"
  
  /*
 +      "bootargs_root=\0"
  
  /*
index ec0792c58f00ed6bc447d497a11a05b3c8b0ed54..fcb0a88a059e3c909c705436f2042305666c783a 100644 (file)
  #define CONFIG_EXTRA_ENV_SETTINGS \
        "console=console=ttyS0,115200\0"                                \
        "mtdids=nand0=orion_nand\0"                                     \
  #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"
 -      "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"
  
  /*
 +      "bootargs_root=\0"
  
  /*
index 34379f261755f48df1c61e0003d59ad281abf790..93adad6aa291240d9cd5461eca78b60e370de61f 100644 (file)
@@ -29,7 +29,7 @@
 -      "ext2load usb 0:1 0x01100000 /uInitrd\0"
 +      "console=console=ttyS0,115200\0"        \
 +      "mtdids=nand0=orion_nand\0"             \
 -      "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"
  
  /*
 +      "bootargs_root=\0"
  
  /*
index 186e33a0c4929c03bf15c34067062f1d066577c4..540c0f50708d334f8a00265432d0cdddc22c32ae 100644 (file)
  #define CONFIG_EXTRA_ENV_SETTINGS \
        "console=console=ttyS0,115200\0" \
        "mtdids=nand0=orion_nand\0" \
  #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"
 -      "kernel=/boot/uImage\0" \
 -      "bootargs_root=ubi.mtd=root root=ubi0:root rootfstype=ubifs ro\0"
++      "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \
 +      "bootargs_root=\0"
  
  /*
 +      "bootargs_root=\0"
  
  /*