AnsweredAssumed Answered

watchdog versus reboot command - hangs sometimes

Question asked by Manoel Ramon on Nov 18, 2016
Latest reply on Nov 20, 2016 by igorpadykov

Hi Community

 

   I have a question. My device is running android 4.3 based in IMX6Q and created a script that test the boot process. Basically, after the zygote is ready, 10 seconds later I send a reboot command via shell.

 

   The device reboots fine for something around 10 boots. After that I see that u-boot is detecting the previous boot as "watchdog" reason and then hangs:

 

   Everytime I send the reboot, command I see the following messages:

 

# reboot
SysRq : Emergency Remount R/O
EXT4-fs (mmcblk0p4): re-mounted. Opts: (null)
EXT4-fs (mmcblk0p6): re-mounted. Opts: (null)
Emergency Remount complete
imx2-wdt imx2-wdt.0: Device shutdown: Expect reboot!
Restarting system.

 

 

When the restart fails I see the boot reason as WDOG:

 

U-Boot 2009.08-00091-gb128c3c (Nov 15 2016 - 17:01:55)

CPU: Freescale i.MX6 family TO1.2 at 792 MHz
Thermal sensor with ratio = 185
Temperature: 40 C, calibration data 0x59550269
mx6q pll1: 792MHz
mx6q pll2: 528MHz
mx6q pll3: 480MHz
mx6q pll8: 50MHz
ipg clock : 66000000Hz
ipg per clock : 66000000Hz
uart clock : 80000000Hz
cspi clock : 60000000Hz
ahb clock : 132000000Hz
axi clock : 264000000Hz
emi_slow clock: 132000000Hz
ddr clock : 528000000Hz
usdhc1 clock : 198000000Hz
usdhc2 clock : 198000000Hz
usdhc3 clock : 198000000Hz
usdhc4 clock : 198000000Hz
nfc clock : 24000000Hz
Board: i.MX6Q-HORIZON: unknown-board Board: 0x63012 [WDOG]
Boot Device: MMC
I2C: ready
DRAM: 1 GB
MMC: FSL_USDHC: 0,FSL_USDHC: 1,FSL_USDHC: 2,FSL_USDHC: 3
*** Warning - bad CRC or MMC, using default environment

In: serial
Out: serial
Err: serial
Found PFUZE100! deviceid=10,revid=21
Net: FEC0 [PRIME]
Hit any key to stop autoboot: 0
kernel @ 10808000 (4752500)
ramdisk @ 11800000 (238673)
kernel cmdline:
use boot.img command line:
console=ttymxc0,115200 init=/init video=mxcfb0:dev=lcd,Newhaven-LCD,if=RGB24,bpp=32 fbmem=28M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=intrinsyc no_console_suspend=1 dmfc=3

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Initializing cgroup subsys cpu
Linux version 3.0.35 (mramon@nirvana-vm) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #4 SMP PREEMPT Wed Nov 16 13:50:44 PST 2016
CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Accriva i.MX 6 Horizon Board
Memory policy: ECC disabled, Data cache writealloc
CPU identified as i.MX6Q, silicon rev 1.2
PERCPU: Embedded 7 pages/cpu @c1325000 s6592 r8192 d13888 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 203520
Kernel command line: console=ttymxc0,115200 init=/init video=mxcfb0:dev=lcd,Newhaven-LCD,if=RGB24,bpp=32 fbmem=28M fb0base=0x27b00000 vmalloc=400M androidboot.console=ttymxc0 androidboot.hardware=intrinsyc no_console_suspend=1 dmfc=3
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
Memory: 379MB 360MB 64MB = 803MB total
Memory: 801972k/801972k available, 246604k reserved, 434176K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
DMA : 0xfbe00000 - 0xffe00000 ( 64 MB)
vmalloc : 0xd9800000 - 0xf2000000 ( 392 MB)
lowmem : 0xc0000000 - 0xd9000000 ( 400 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.init : 0xc0008000 - 0xc0065000 ( 372 kB)
.text : 0xc0065000 - 0xc08fc39c (8797 kB)
.data : 0xc08fe000 - 0xc0993688 ( 598 kB)
.bss : 0xc09936ac - 0xc0b1b608 (1568 kB)
Preemptible hierarchical RCU implementation.
NR_IRQS:624
MXC GPIO hardware
sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 1431655ms
arm_max_freq=800MHz
MXC_Early serial console at MMIO 0x2020000 (options '115200')
bootconsole [ttymxc0] enabled
Calibrating delay loop... 1581.05 BogoMIPS (lpj=7905280)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
Initializing cgroup subsys debug
Initializing cgroup subsys cpuacct
Initializing cgroup subsys freezer
CPU: Testing write buffer coherency: ok
hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available
CPU1: Booted secondary processor
Brought up 2 CPUs
SMP: Total of 2 processors activated (3162.11 BogoMIPS).
print_constraints: dummy:
NET: Registered protocol family 16
print_constraints: vddpu: 725 <--> 1300 mV at 700 mV fast normal
print_constraints: vddcore: 725 <--> 1300 mV at 1150 mV fast normal
print_constraints: vddsoc: 725 <--> 1300 mV at 1200 mV fast normal
print_constraints: vdd2p5: 2000 <--> 2775 mV at 2400 mV fast normal
print_constraints: vdd1p1: 800 <--> 1400 mV at 1100 mV fast normal
print_constraints: vdd3p0: 2625 <--> 3400 mV at 3000 mV fast normal
Reboot Reason: [WDOG]
Board: UARTs Initialized.

ram_console: got buffer at 3ff00000, size 100000
ram_console: found existing buffer, size 20220, start 20220
console [ram-1] enabled
Board: LCD init ok
Board: jadak_data enabled
Booting device : MMC
user buttons defined: ret = 0
------------------
Wifi/BT power on
------------------
Board: Analytic Camera initialized.
Board: Analytic POST Enabled

Board: 3.3VA Disabled

Board: Analytic CPU Disabled

Board: Analytic Boot init ok
Board: ft5x0x_ts_reset
Board: ft5x0x_ts_init ok
Board: SPARX-Integrated PCB defined.
Board: End of Board Init.

hw-breakpoint: found 6 breakpoint and 1 watchpoint registers.
hw-breakpoint: 1 breakpoint(s) reserved for watchpoint single-step.
hw-breakpoint: maximum watchpoint size is 4 bytes.
L310 cache controller enabled
l2x0: 16 ways, CACHE_ID 0x410000c7, AUX_CTRL 0x32070000, Cache size: 1048576 B
bio: create slab <bio-0> at 0
mxs-dma mxs-dma-apbh: initialized
print_constraints: vmmc: 3300 mV
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Freescale USB OTG Driver loaded, $Revision: 1.55 $
mc_pfuze 1-0008: ID: 0,Full lay: 2 ,Metal lay: 1
mc_pfuze 1-0008: FAB: 0 ,FIN: 0
PFUZE: SW4 is ON
print_constraints: PFUZE100_SW1A: 300 <--> 1875 mV at 1300 mV
print_constraints: PFUZE100_SW1B: 300 <--> 1875 mV at 300 mV
print_constraints: PFUZE100_SW1C: 300 <--> 1875 mV at 1300 mV
print_constraints: PFUZE100_SW2: 3250 <--> 3300 mV at 3300 mV
print_constraints: PFUZE100_SW3A: 400 <--> 1975 mV at 1500 mV
print_constraints: PFUZE100_SW3B: 400 <--> 1975 mV at 1500 mV
print_constraints: PFUZE100_SW4: 3200 <--> 3300 mV at 3300 mV
print_constraints: PFUZE100_SWBST: at 5000 mV
print_constraints: PFUZE100_VSNVS: 3000 mV
print_constraints: PFUZE100_VREFDDR: at 750 mV
print_constraints: PFUZE100_VGEN1: 800 <--> 1550 mV at 800 mV
print_constraints: PFUZE100_VGEN2: 800 <--> 1550 mV at 1500 mV
print_constraints: PFUZE100_VGEN3: 3000 <--> 3300 mV at 3300 mV
print_constraints: PFUZE100_VGEN4: 2800 mV
print_constraints: PFUZE100_VGEN5: 2800 <--> 3000 mV at 2800 mV
print_constraints: PFUZE100_VGEN6: 3100 <--> 3300 mV at 3300 mV
MANOEL ipu_proble()
imx-ipuv3 imx-ipuv3.0: IPU DMFC ONLY-DP HIGH RESOLUTION: 5B(0~3), 5F(4~7)
MANOEL ipu_proble()
imx-ipuv3 imx-ipuv3.1: IPU DMFC ONLY-DP HIGH RESOLUTION: 5B(0~3), 5F(4~7)
Advanced Linux Sound Architecture Driver Version 1.0.24.
Bluetooth: Core ver 2.16
NET: Registered protocol family 31
Bluetooth: HCI device and connection manager initialized
Bluetooth: HCI socket layer initialized
Bluetooth: L2CAP socket layer initialized
Bluetooth: SCO socket layer initialized
i2c-core: driver [max17135] using legacy suspend method
i2c-core: driver [max17135] using legacy resume method
Switching to clocksource mxc_timer1
NET: Registered protocol family 2
IP route cache hash table entries: 16384 (order: 4, 65536 bytes)
TCP established hash table entries: 65536 (order: 7, 524288 bytes)
TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
TCP: Hash tables configured (established 65536 bind 65536)
TCP reno registered
UDP hash table entries: 256 (order: 1, 8192 bytes)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 32
Unpacking initramfs...
Freeing initrd memory: 232K
PMU: registered new PMU device of type 0
Static Power Management for Freescale i.MX6
wait mode is enabled for i.MX6
cpaddr = d9880000 suspend_iram_base=d98ec000
PM driver module loaded
IMX usb wakeup probe
the wakeup pdata is 0xd46fd8e0
add wake up source irq 75
cpu regulator mode:ldo_bypass
_regulator_get: get() with no identifier
mx6_cpu_regulator_init: failed to get pu regulator
i.MXC CPU frequency driver
highmem bounce pool size: 64 pages
ashmem: initialized
NTFS driver 2.1.30 [Flags: R/O].
JFFS2 version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
fuse init (API version 7.16)
msgmni has been set to 718
NET: Registered protocol family 38
cryptodev: driver loaded.
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
MIPI DSI driver module loaded
mxc_sdc_fb mxc_sdc_fb.0: register mxc display driver lcd
lcdif_init: 1
init channel = 9
init channel 1
init channel 2
init channel 3
init channel 23
init channel 23.1
init channel 23.2
init channel 28

 

 

My first question is, do you guys have any idea why sometimes the reboot is triggering the watchdog ? And why the boot fails ?

Outcomes