Hi,
I’m using Mender 1.7, latest version of the client software on the board.
The board is an i.MX6Q custom board. I’ve manually ported U-Boot for this board using the freescale community version (u-boot-fslc) and manually added support for Mender.
The OS is a Yocto Based distribution using the Rocko release. Kernel version is 4.1.15 and is the Freescale community version.
Mender is working well but whilst testing rollbacks by patching the kernel to lockup I noticed that it reset and then started to boot from the other partition but then reset again during boot and then on the second attempt successfully booted to the other partition. Here’s the console output annotated with bold
Mender has updated the image with the dodgy kernel that locks up and reboots
Hit any key to stop autoboot: 0
Booting from mmc ...
53561 bytes read in 175 ms (298.8 KiB/s)
7017656 bytes read in 359 ms (18.6 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-4.1.15-rocko-1.1
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 7017592 Bytes = 6.7 MiB
Load Address: 10080000
Entry Point: 10080000
Verifying Checksum ... OK
## Flattened Device Tree blob at 13000000
Booting using the fdt blob at 0x13000000
Loading Kernel Image ... OK
Using Device Tree in place at 13000000, end 13010138
Starting kernel ...
Kernel locks up and watchdog fires as expected
U-Boot SPL 2017.11+fslc+ga07698f (Feb 28 2019 - 11:58:11)
Booted from eMMC/SD
Trying to boot from MMC1
U-Boot 2017.11+fslc+ga07698f (Feb 28 2019 - 11:58:11 +0000)
CPU: Freescale i.MX6D rev1.5 996 MHz (running at 792 MHz)
CPU: Extended Commercial temperature grade (-20C to 105C) at 38C
Reset cause: WDOG
Watchdog enabled
I2C: ready
DRAM: 2 GiB
PF3000 initialisation
PMIC: PFUZE3000 DEV_ID=0x10 REV_ID=0x21
MMC: FSL_SDHC: 0
In: serial
Out: serial
Err: serial
Net: FEC0
Writing to MMC(0)... done
Warning: Bootlimit (1) exceeded. Using altbootcmd.
Hit any key to stop autoboot: 0
Saving Environment to MMC...
Writing to redundant MMC(0)... done
Booting from mmc ...
53561 bytes read in 174 ms (299.8 KiB/s)
7019224 bytes read in 358 ms (18.7 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-4.1.15-rocko-1.1
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 7019160 Bytes = 6.7 MiB
Load Address: 10080000
Entry Point: 10080000
Verifying Checksum ... OK
## Flattened Device Tree blob at 13000000
Booting using the fdt blob at 0x13000000
Loading Kernel Image ... OK
Using Device Tree in place at 13000000, end 13010138
Starting kernel ...
[ 0.229788] SANTVEND hardware revision 1.2
[ 0.248419] anatop_regulator 20c8000.anatop:regulator-3p0@120: Failed to resolve vin-supply for vdd3p0
[ 0.248974] anatop_regulator 20c8000.anatop:regulator-3p0@120: Failed to resolve vin-supply for vdd3p0
[ 0.267578] anatop_regulator 20c8000.anatop:regulator-vddpu@140: Failed to resolve vin-supply for vddpu
[ 0.267612] imx-gpc 20dc000.gpc: failed to get pu regulator: -517
[ 0.286863] 2000000.aips-bus:usbphy_nop1 supply vcc not found, using dummy regulator
[ 0.287091] 2000000.aips-bus:usbphy_nop2 supply vcc not found, using dummy regulator
[ 0.437254] CPU PMU: Failed to parse /soc/pmu/interrupt-affinity[0]
[ 0.476108] pwm-backlight.1 supply power not found, using dummy regulator
[ 0.681126] pnglogo: No generic logo license found in device tree
[ 0.779797] imx-sdma 20ec000.sdma: no event needs to be remapped
[ 0.793505] DDR_1V35: Failed to create debugfs directory
[ 1.071165] 2184800.usbmisc supply vbus-wakeup not found, using dummy regulator
[ 1.079766] imx6q-pinctrl 20e0000.iomuxc: pin MX6Q_PAD_GPIO_0 already requested by regulators:regulator@3; cannot claim for 2184200.usb
[ 1.092035] imx6q-pinctrl 20e0000.iomuxc: pin-136 (2184200.usb) status -22
[ 1.098985] imx6q-pinctrl 20e0000.iomuxc: could not request pin 136 (MX6Q_PAD_GPIO_0) from group usbh1_vbusgrp on device 20e0000.iomuxc
[ 1.111283] imx_usb 2184200.usb: Error applying setting, reverse things back
[ 1.130249] lm85 1-002e: Device configuration is locked
[ 1.135522] lm85 1-002e: Device is not ready
[ 1.140935] tc74 1-0048: unable to read config register
[ 1.146220] tc74: probe of 1-0048 failed with error -5
[ 1.151693] tc74 1-004a: unable to read config register
[ 1.156972] tc74: probe of 1-004a failed with error -5
[ 1.162457] tc74 1-004b: unable to read config register
[ 1.167734] tc74: probe of 1-004b failed with error -5
[ 1.173361] tmp116 1-0049: tmp116_probe unable to read config register.
����V�V��-���&H\X��C
This is where the spurious reset occurs
U-Boot 2017.11+fslc+ga07698f (Feb 28 2019 - 11:58:11 +0000)
CPU: Freescale i.MX6D rev1.5 996 MHz (running at 792 MHz)
CPU: Extended Commercial temperature grade (-20C to 105C) at 38C
Reset cause: POR
Watchdog enabled
I2C: ready
DRAM: 2 GiB
PF3000 initialisation
PMIC: PFUZE3000 DEV_ID=0x10 REV_ID=0x21
MMC: FSL_SDHC: 0
In: serial
Out: serial
Err: serial
Net: FEC0
Hit any key to stop autoboot: 0
Booting from mmc ...
53561 bytes read in 173 ms (301.8 KiB/s)
7019224 bytes read in 358 ms (18.7 MiB/s)
## Booting kernel from Legacy Image at 12000000 ...
Image Name: Linux-4.1.15-rocko-1.1
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 7019160 Bytes = 6.7 MiB
Load Address: 10080000
Entry Point: 10080000
Verifying Checksum ... OK
## Flattened Device Tree blob at 13000000
Booting using the fdt blob at 0x13000000
Loading Kernel Image ... OK
Using Device Tree in place at 13000000, end 13010138
Starting kernel ...
and the board then goes onto boot fine
I’m not 100% sure but it looks like the watchdog has fired again during the rollback. Have I missed something in the setting up of U-Boot for rollback? Out of interest do the Mender changes to U-Boot do anything particular with the setup of the Watchdog during the rollback scenario.
Many Thanks,
Martin.
Edit: @mirzak: Prettified logs