[LEDE-DEV] WRT1900ACS - Kernel 4.4.12 boot failure

Dheeran Senthilvel dheeranmech at gmail.com
Sun Jun 5 11:09:18 PDT 2016


Hi,
	Compiled build r504 followed by clean build. Still not clear what is causing the boot error mentioned previously in mailing list - May 2016.

	• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Dheeran Senthilvel
		• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Syrone Wong
		• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Felix Fietkau
			• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Dheeran Senthilvel
				• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Dheeran Senthilvel
				• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Felix Fietkau
				• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Dheeran Senthilvel
				• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Dheeran Senthilvel
				• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Dheeran Senthilvel
				• [LEDE-DEV] WRT1900ACS - Kernel 4.4.11 boot failure   Dheeran Senthilvel

Found some info that might help diagnose the problem.

=============== Initial Boot_Official Firm ==================
__   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
       _   _     ____              _
      | | | |   | __ )  ___   ___ | |_
      | | | |___|  _ \ / _ \ / _ \| __|
      | |_| |___| |_) | (_) | (_) | |_
       \___/    |____/ \___/ \___/ \__|
** LOADER **


U-Boot 2013.01 (Mar 27 2015 - 16:50:46) Marvell version: 2014_T3.0p6

Boot version : v1.0.13

Board: RD-NAS-88F6820-DDR3
SoC:   MV88F6820 Rev A0
     running 2 CPUs
CPU:   ARM Cortex A9 MPCore (Rev 1) LE
     CPU 0
     CPU    @ 1600 [MHz]
     L2     @ 800 [MHz]
     TClock @ 200 [MHz]
     DDR    @ 800 [MHz]
     DDR 32 Bit Width, FastPath Memory Access, DLB Enabled, ECC Disabled
DRAM:  512 MiB

Map:   Code:                    0x1fea9000:0x1ff7632c
     BSS:                     0x1ffef6b4
     Stack:                   0x1f9a8f20
     Heap:                    0x1f9a9000:0x1fea9000
raise: Signal # 8 caught
U-ENV offset == 0x200000
raise: Signal # 8 caught
U-ENV offset == 0x200000
     U-Boot Environment:      0x00200000:0x00220000 (NAND)

NAND:  128 MiB
MMC:   mv_sdh: 0
DEVINFO offset == 0x900000
U-ENV offset == 0x200000
U-ENV offset == 0x200000
*** Warning - bad CRC, using default environment 

S-ENV offset == 0x240000


#### auto_recovery ####
[u_env] get auto_recovery == yes
[u_env] get auto_recovery == yes
[u_env] get boot_part == 1
[u_env] get boot_part_ready == 3
auto_recovery enabled:1, boot_part:1, boot_part_ready:3

S-ENV offset == 0x240000
[boot_count_read] block:0x240000, size:128KB, records:64
[boot_count_read_record] boot_count:0, next_record:47

[boot_count_write] erase:0, auto_recovery->block_offset:0x240000 offset=0x257800

Updating boot_count ...
[boot_count_write] offset:0x257800 , length:2048
done

PCI-e 0 (IF 0 - bus 0) Root Complex Interface, Detected Link X1, GEN 2.0
PCI-e 1 (IF 1 - bus 1) Root Complex Interface, Detected Link X1, GEN 1.1
USB2.0 0: Host Mode
USB3.0 1: Host Mode
USB3.0 0: Host Mode
Board configuration detected:
mvEthE6171SwitchBasicInit init
Net:
|  port  | Interface | PHY address  |
|--------|-----------|--------------|
| egiga0 |   RGMII   |     0x01     |
| egiga1 |   SGMII   |     0x00     |
egiga0 [PRIME], egiga1
auto_recovery_check changes bootcmd: run nandboot
Hit any key to stop autoboot:  0

NAND read: device 0 offset 0xa00000, size 0x600000
6291456 bytes read: OK
## Booting kernel from Legacy Image at 02000000 ...
 Image Name:   Linksys WRT1900ACS Router
 Created:      2015-10


											———x———x———x———x——— 

=============== Initial Boot_LEDE(r504) ==================
__   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
       _   _     ____              _
      | | | |   | __ )  ___   ___ | |_
      | | | |___|  _ \ / _ \ / _ \| __|
      | |_| |___| |_) | (_) | (_) | |_
       \___/    |____/ \___/ \___/ \__|
** LOADER **


U-Boot 2013.01 (Mar 27 2015 - 16:50:46) Marvell version: 2014_T3.0p6

Boot version : v1.0.13

Board: RD-NAS-88F6820-DDR3
SoC:   MV88F6820 Rev A0
     running 2 CPUs
CPU:   ARM Cortex A9 MPCore (Rev 1) LE
     CPU 0
     CPU    @ 1600 [MHz]
     L2     @ 800 [MHz]
     TClock @ 200 [MHz]
     DDR    @ 800 [MHz]
     DDR 32 Bit Width, FastPath Memory Access, DLB Enabled, ECC Disabled
DRAM:  512 MiB

Map:   Code:                    0x1fea9000:0x1ff7632c
     BSS:                     0x1ffef6b4
     Stack:                   0x1f9a8f20
     Heap:                    0x1f9a9000:0x1fea9000
raise: Signal # 8 caught
U-ENV offset == 0x200000
raise: Signal # 8 caught
U-ENV offset == 0x200000
     U-Boot Environment:      0x00200000:0x00220000 (NAND)

NAND:  128 MiB
MMC:   mv_sdh: 0
DEVINFO offset == 0x900000
U-ENV offset == 0x200000
U-ENV offset == 0x200000
S-ENV offset == 0x240000


#### auto_recovery ####
[u_env] get auto_recovery == yes
[u_env] get auto_recovery == yes
[u_env] get boot_part == <NULL>
set boot_part=1 as default value at u_env
[u_env] get boot_part_ready == <NULL>
set boot_part_ready=3 as default value at u_env
auto_recovery enabled:1, boot_part:1, boot_part_ready:3

S-ENV offset == 0x240000
[boot_count_read] block:0x240000, size:128KB, records:64
[boot_count_read_record] boot_count:0, next_record:60

[boot_count_write] erase:0, auto_recovery->block_offset:0x240000 offset=0x25E000

Updating boot_count ...
[boot_count_write] offset:0x25E000 , length:2048
done

PCI-e 0 (IF 0 - bus 0) Root Complex Interface, Detected Link X1, GEN 2.0
PCI-e 1 (IF 1 - bus 1) Root Complex Interface, Detected Link X1, GEN 1.1
USB2.0 0: Host Mode
USB3.0 1: Host Mode
USB3.0 0: Host Mode
Board configuration detected:
mvEthE6171SwitchBasicInit init
Net:
|  port  | Interface | PHY address  |
|--------|-----------|--------------|
| egiga0 |   RGMII   |     0x01     |
| egiga1 |   SGMII   |     0x00     |
egiga0 [PRIME], egiga1
auto_recovery_check changes bootcmd: run nandboot
Hit any key to stop autoboot:  0
## Error: "nandboot" not defined

== 1st try ==
__   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
       _   _     ____              _
      | | | |   | __ )  ___   ___ | |_
      | | | |___|  _ \ / _ \ / _ \| __|
      | |_| |___| |_) | (_) | (_) | |_
       \___/    |____/ \___/ \___/ \__|
** LOADER **


U-Boot 2013.01 (Mar 27 2015 - 16:50:46) Marvell version: 2014_T3.0p6

Boot version : v1.0.13

Board: RD-NAS-88F6820-DDR3
SoC:   MV88F6820 Rev A0
     running 2 CPUs
CPU:   ARM Cortex A9 MPCore (Rev 1) LE
     CPU 0
     CPU    @ 1600 [MHz]
     L2     @ 800 [MHz]
     TClock @ 200 [MHz]
     DDR    @ 800 [MHz]
     DDR 32 Bit Width, FastPath Memory Access, DLB Enabled, ECC Disabled
DRAM:  512 MiB

Map:   Code:                    0x1fea9000:0x1ff7632c
     BSS:                     0x1ffef6b4
     Stack:                   0x1f9a8f20
     Heap:                    0x1f9a9000:0x1fea9000
raise: Signal # 8 caught
U-ENV offset == 0x200000
raise: Signal # 8 caught
U-ENV offset == 0x200000
     U-Boot Environment:      0x00200000:0x00220000 (NAND)

NAND:  128 MiB
MMC:   mv_sdh: 0
DEVINFO offset == 0x900000
U-ENV offset == 0x200000
U-ENV offset == 0x200000
S-ENV offset == 0x240000


#### auto_recovery ####
[u_env] get auto_recovery == yes
[u_env] get auto_recovery == yes
[u_env] get boot_part == <NULL>
set boot_part=1 as default value at u_env
[u_env] get boot_part_ready == <NULL>
set boot_part_ready=3 as default value at u_env
auto_recovery enabled:1, boot_part:1, boot_part_ready:3

S-ENV offset == 0x240000
[boot_count_read] block:0x240000, size:128KB, records:64
[boot_count_read_record] boot_count:1, next_record:61

[boot_count_write] erase:0, auto_recovery->block_offset:0x240000 offset=0x25E800

Updating boot_count ...
[boot_count_write] offset:0x25E800 , length:2048
done

PCI-e 0 (IF 0 - bus 0) Root Complex Interface, Detected Link X1, GEN 2.0
PCI-e 1 (IF 1 - bus 1) Root Complex Interface, Detected Link X1, GEN 1.1
USB2.0 0: Host Mode
USB3.0 1: Host Mode
USB3.0 0: Host Mode
Board configuration detected:
mvEthE6171SwitchBasicInit init
Net:
|  port  | Interface | PHY address  |
|--------|-----------|--------------|
| egiga0 |   RGMII   |     0x01     |
| egiga1 |   SGMII   |     0x00     |
egiga0 [PRIME], egiga1
auto_recovery_check changes bootcmd: run nandboot
Hit any key to stop autoboot:  0
## Error: "nandboot" not defined
Marvell>> reset
resetting ...

== 2nd Try ==

__   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
       _   _     ____              _
      | | | |   | __ )  ___   ___ | |_
      | | | |___|  _ \ / _ \ / _ \| __|
      | |_| |___| |_) | (_) | (_) | |_
       \___/    |____/ \___/ \___/ \__|
** LOADER **


U-Boot 2013.01 (Mar 27 2015 - 16:50:46) Marvell version: 2014_T3.0p6

Boot version : v1.0.13

Board: RD-NAS-88F6820-DDR3
SoC:   MV88F6820 Rev A0
     running 2 CPUs
CPU:   ARM Cortex A9 MPCore (Rev 1) LE
     CPU 0
     CPU    @ 1600 [MHz]
     L2     @ 800 [MHz]
     TClock @ 200 [MHz]
     DDR    @ 800 [MHz]
     DDR 32 Bit Width, FastPath Memory Access, DLB Enabled, ECC Disabled
DRAM:  512 MiB

Map:   Code:                    0x1fea9000:0x1ff7632c
     BSS:                     0x1ffef6b4
     Stack:                   0x1f9a8f20
     Heap:                    0x1f9a9000:0x1fea9000
raise: Signal # 8 caught
U-ENV offset == 0x200000
raise: Signal # 8 caught
U-ENV offset == 0x200000
     U-Boot Environment:      0x00200000:0x00220000 (NAND)

NAND:  128 MiB
MMC:   mv_sdh: 0
DEVINFO offset == 0x900000
U-ENV offset == 0x200000
U-ENV offset == 0x200000
S-ENV offset == 0x240000


#### auto_recovery ####
[u_env] get auto_recovery == yes
[u_env] get auto_recovery == yes
[u_env] get boot_part == <NULL>
set boot_part=1 as default value at u_env
[u_env] get boot_part_ready == <NULL>
set boot_part_ready=3 as default value at u_env
auto_recovery enabled:1, boot_part:1, boot_part_ready:3

S-ENV offset == 0x240000
[boot_count_read] block:0x240000, size:128KB, records:64
[boot_count_read_record] boot_count:2, next_record:62

[boot_count_write] erase:0, auto_recovery->block_offset:0x240000 offset=0x25F000

Updating boot_count ...
[boot_count_write] offset:0x25F000 , length:2048
done

PCI-e 0 (IF 0 - bus 0) Root Complex Interface, Detected Link X1, GEN 2.0
PCI-e 1 (IF 1 - bus 1) Root Complex Interface, Detected Link X1, GEN 1.1
USB2.0 0: Host Mode
USB3.0 1: Host Mode
USB3.0 0: Host Mode
Board configuration detected:
mvEthE6171SwitchBasicInit init
Net:
|  port  | Interface | PHY address  |
|--------|-----------|--------------|
| egiga0 |   RGMII   |     0x01     |
| egiga1 |   SGMII   |     0x00     |
egiga0 [PRIME], egiga1
auto_recovery_check changes bootcmd: run nandboot
Hit any key to stop autoboot:  0
## Error: "nandboot" not defined
Marvell>> reset
resetting …

== 3rd Try == <Triggers Recovery>==

__   __                      _ _
|  \/  | __ _ _ ____   _____| | |
| |\/| |/ _` | '__\ \ / / _ \ | |
| |  | | (_| | |   \ V /  __/ | |
|_|  |_|\__,_|_|    \_/ \___|_|_|
       _   _     ____              _
      | | | |   | __ )  ___   ___ | |_
      | | | |___|  _ \ / _ \ / _ \| __|
      | |_| |___| |_) | (_) | (_) | |_
       \___/    |____/ \___/ \___/ \__|
** LOADER **


U-Boot 2013.01 (Mar 27 2015 - 16:50:46) Marvell version: 2014_T3.0p6

Boot version : v1.0.13

Board: RD-NAS-88F6820-DDR3
SoC:   MV88F6820 Rev A0
     running 2 CPUs
CPU:   ARM Cortex A9 MPCore (Rev 1) LE
     CPU 0
     CPU    @ 1600 [MHz]
     L2     @ 800 [MHz]
     TClock @ 200 [MHz]
     DDR    @ 800 [MHz]
     DDR 32 Bit Width, FastPath Memory Access, DLB Enabled, ECC Disabled
DRAM:  512 MiB

Map:   Code:                    0x1fea9000:0x1ff7632c
     BSS:                     0x1ffef6b4
     Stack:                   0x1f9a8f20
     Heap:                    0x1f9a9000:0x1fea9000
raise: Signal # 8 caught
U-ENV offset == 0x200000
raise: Signal # 8 caught
U-ENV offset == 0x200000
     U-Boot Environment:      0x00200000:0x00220000 (NAND)

NAND:  128 MiB
MMC:   mv_sdh: 0
DEVINFO offset == 0x900000
U-ENV offset == 0x200000
U-ENV offset == 0x200000
S-ENV offset == 0x240000


#### auto_recovery ####
[u_env] get auto_recovery == yes
[u_env] get auto_recovery == yes
[u_env] get boot_part == <NULL>
set boot_part=1 as default value at u_env
[u_env] get boot_part_ready == <NULL>
set boot_part_ready=3 as default value at u_env
auto_recovery enabled:1, boot_part:1, boot_part_ready:3

S-ENV offset == 0x240000
[boot_count_read] block:0x240000, size:128KB, records:64
[boot_count_read_record] boot_count:3, next_record:63

[auto_recovery_init] BOOT_COUNT_TO_RECOVERY
[boot_count_write] erase:1, auto_recovery->block_offset:0x240000 offset=0x240000

Updating boot_count ...
[boot_count_write] offset:0x240000 , length:2048
done

PCI-e 0 (IF 0 - bus 0) Root Complex Interface, Detected Link X1, GEN 2.0
PCI-e 1 (IF 1 - bus 1) Root Complex Interface, Detected Link X1, GEN 1.1
USB2.0 0: Host Mode
USB3.0 1: Host Mode
USB3.0 0: Host Mode
Board configuration detected:
mvEthE6171SwitchBasicInit init
Net:
|  port  | Interface | PHY address  |
|--------|-----------|--------------|
| egiga0 |   RGMII   |     0x01     |
| egiga1 |   SGMII   |     0x00     |
egiga0 [PRIME], egiga1
Saving Environment to NAND...
U-ENV offset == 0x200000
Erasing Nand...
Writing to Nand... U-ENV offset == 0x200000
U-ENV offset == 0x200000
done
#### auto_recovery:2 ####
auto_recovery_check changes bootcmd: run altnandboot
Hit any key to stop autoboot:  0
## Error: "altnandboot" not defined

											———x———x———x———x——— 

=============== Partition Table_Linux 3.18_Official Firm ==================

armada-nand f10d0000.nand: Initialize HAL based NFC in 8bit mode with DMA Disabled using BCH 4bit ECC
NAND device: Manufacturer ID: 0x01, Chip ID: 0xf1 (AMD/Spansion NAND 128MiB 3,3V 8-bit), 128MiB, page size: 2048, OOB size: 64
Bad block table found at page 65472, version 0x01
Bad block table found at page 65408, version 0x01
10 cmdlinepart partitions found on MTD device armada-nand
Creating 10 MTD partitions on "armada-nand":
0x000000000000-0x000000200000 : "uboot"
0x000000200000-0x000000240000 : "u_env"
0x000000240000-0x000000280000 : "s_env"
0x000000900000-0x000000a00000 : "devinfo"
0x000000a00000-0x000003200000 : "kernel"
0x000001000000-0x000003200000 : "rootfs"
0x000003200000-0x000005a00000 : "alt_kernel"
0x000003800000-0x000005a00000 : "alt_rootfs"
0x000000a00000-0x000005a00000 : "ubifs"
0x000005a00000-0x000008000000 : "syscfg"

=============== Partition Table_LEDE(r504) ==================

[    0.917192] pxa3xx-nand f10d0000.flash: This platform can't do DMA on this device
[    0.925008] nand: device found, Manufacturer ID: 0x01, Chip ID: 0xf1
[    0.931387] nand: AMD/Spansion S34ML01G2
[    0.935334] nand: 128 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    0.942942] pxa3xx-nand f10d0000.flash: ECC strength 16, ECC step size 2048
[    0.950120] Bad block table found at page 65472, version 0x01
[    0.956233] Bad block table found at page 65408, version 0x01
[    0.962275] 10 ofpart partitions found on MTD device pxa3xx_nand-0
[    0.968479] Creating 10 MTD partitions on "pxa3xx_nand-0":
[    0.973995] 0x000000000000-0x000000200000 : "u-boot"
[    0.979273] 0x000000200000-0x000000240000 : "u_env"
[    0.984435] 0x000000240000-0x000000280000 : "s_env"
[    0.989586] 0x000000900000-0x000000a00000 : "devinfo"
[    0.994927] 0x000000a00000-0x000003200000 : "kernel1"
[    1.000279] 0x000001000000-0x000003200000 : "ubi"
[    1.005307] 0x000003200000-0x000005a00000 : "kernel2"
[    1.010650] 0x000003800000-0x000005a00000 : "rootfs2"
[    1.015993] 0x000005a00000-0x000008000000 : "syscfg"
[    1.021256] 0x000000280000-0x000000900000 : “unused_area”
											———x———x———x———x——— 



Now running LEDE environment and collecting some more info:

=============== LEDE (r504) ================================


root at WRT1900ACS:/# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00200000 00020000 "u-boot"
mtd1: 00040000 00020000 "u_env"
mtd2: 00040000 00020000 "s_env"
mtd3: 00100000 00020000 "devinfo"
mtd4: 02800000 00020000 "kernel1"
mtd5: 02200000 00020000 "ubi"
mtd6: 02800000 00020000 "kernel2"
mtd7: 02200000 00020000 "rootfs2"
mtd8: 02600000 00020000 "syscfg"
mtd9: 00680000 00020000 “unused_area”

root at WRT1900ACS:/# cat /etc/config/ubootenv

config ubootenv
      option dev '/dev/mtd1'
      option offset '0x0'
      option envsize '0x20000'
      option secsize '0x40000'

root at WRT1900ACS:/# cat /etc/fw_env.config
/dev/mtd1 0x0 0x20000 0x40000


root at WRT1900ACS:/# cat /etc/init.d/linksys_recovery
#!/bin/sh /etc/rc.common
# Copyright (C) 2015 OpenWrt.org

START=97
boot() {
. /lib/functions.sh
. /lib/mvebu.sh

case $(mvebu_board_name) in
      armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-xp-linksys-mamba)
              # make sure auto_recovery in uboot is always on
              AUTO_RECOVERY_ENA="`fw_printenv -n auto_recovery`"
              if [ "$AUTO_RECOVERY_ENA" != "yes" ] ; then
                      fw_setenv auto_recovery yes
              fi
              # reset the boot counter
              mtd resetbc s_env

root at WRT1900ACS:/# fw_printenv
bootcmd=bootp; setenv bootargs root=/dev/nfs nfsroot=${serverip}:${rootpath} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; bootm
bootdelay=5
baudrate=115200
auto_recovery=yes 

	==>> see that fw_printenv doesn’t return a expected result, this shows problem with boot variables. (May be MTD partition layout is to be blamed)

Moreover from the moment LEDE switched over to 4.4.11 the firmwares built manually and those obtained from the repo are not flash-able from official firmware, boots to official firmware after trying to flash LEDE. They need to be done serially through tftp. 


More information about the Lede-dev mailing list