mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 01:28:59 +00:00
ce73f89469
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>
47 lines
1.4 KiB
Diff
47 lines
1.4 KiB
Diff
--- a/include/configs/pogo_e02.h
|
|
+++ b/include/configs/pogo_e02.h
|
|
@@ -44,23 +44,23 @@
|
|
#endif
|
|
|
|
#define CONFIG_ENV_SIZE 0x20000 /* 128k */
|
|
-#define CONFIG_ENV_OFFSET 0x60000 /* env starts here */
|
|
+#define CONFIG_ENV_OFFSET 0xe0000 /* env starts here */
|
|
|
|
/*
|
|
* Default environment variables
|
|
*/
|
|
#define CONFIG_BOOTCOMMAND \
|
|
- "setenv bootargs $(bootargs_console); " \
|
|
- "run bootcmd_usb; " \
|
|
- "bootm 0x00800000 0x01100000"
|
|
+ "setenv bootargs ${console} ${mtdparts} ${bootargs_root}; " \
|
|
+ "ubi part ubi; " \
|
|
+ "ubifsmount ubi:rootfs; " \
|
|
+ "ubi read 0x800000 kernel; " \
|
|
+ "bootm 0x800000"
|
|
|
|
#define CONFIG_EXTRA_ENV_SETTINGS \
|
|
- "mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage)," \
|
|
- "32M(rootfs),-(data)\0"\
|
|
- "mtdids=nand0=orion_nand\0"\
|
|
- "bootargs_console=console=ttyS0,115200\0" \
|
|
- "bootcmd_usb=usb start; ext2load usb 0:1 0x00800000 /uImage; " \
|
|
- "ext2load usb 0:1 0x01100000 /uInitrd\0"
|
|
+ "console=console=ttyS0,115200\0" \
|
|
+ "mtdids=nand0=orion_nand\0" \
|
|
+ "mtdparts="CONFIG_MTDPARTS_DEFAULT "\0" \
|
|
+ "bootargs_root=\0"
|
|
|
|
/*
|
|
* Ethernet Driver configuration
|
|
--- a/configs/pogo_e02_defconfig
|
|
+++ b/configs/pogo_e02_defconfig
|
|
@@ -16,6 +16,7 @@ CONFIG_CMD_PING=y
|
|
CONFIG_CMD_EXT2=y
|
|
CONFIG_CMD_FAT=y
|
|
CONFIG_CMD_JFFS2=y
|
|
+CONFIG_MTDPARTS_DEFAULT="mtdparts=orion_nand:0xe0000@0x0(uboot),0x20000@0xe0000(uboot_env),0x100000@0x100000(second_stage_uboot),-@0x200000(ubi)"
|
|
CONFIG_CMD_UBI=y
|
|
CONFIG_ISO_PARTITION=y
|
|
CONFIG_ENV_IS_IN_NAND=y
|