Dear sir / madam,
We're currently developing a device based on the i.MX6 Solo CPU. This device runs U-Boot, Android 7.1.1 and Linux 4.9. The kernel is taken from the NXP GIT repository, as instructed in the Android User Guide. The root file system is a RAM file system (ramdisk.img wrapped with mkimage). For this device, I've used sabresd_6dq as a basic configuration.
The system now hangs in a reboot cycle which it can't escape. I've disabled the watchdog and SELinux to ensure that they weren't causing the problem. This is the kernel log:
--------------------------------------------------------------------------------------------------------
Using FEC device
TFTP from server 138.138.138.2; our IP address is 138.138.138.1
Filename 'tpv4/uImage'.
Load address: 0x10800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
########################################################
2.3 MiB/s
done
Bytes transferred = 4626368 (4697c0 hex)
Using FEC device
TFTP from server 138.138.138.2; our IP address is 138.138.138.1
Filename 'tpv4/devicetree.dtb'.
Load address: 0x18000000
Loading: ####
2.3 MiB/s
done
Bytes transferred = 47908 (bb24 hex)
Using FEC device
TFTP from server 138.138.138.2; our IP address is 138.138.138.1
Filename 'tpv4/uRamdisk'.
Load address: 0x12000000
Loading: #################################################################
################################################
2.3 MiB/s
done
Bytes transferred = 1653977 (193cd9 hex)
## Booting kernel from Legacy Image at 10800000 ...
Image Name: Linux-4.9.17-g36f2946b-dirty
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 4626304 Bytes = 4.4 MiB
Load Address: 10008000
Entry Point: 10008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 12000000 ...
Image Name: Test Ram Image
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 1653913 Bytes = 1.6 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000
Loading Kernel Image ... OK
Loading Ramdisk to 2f3b1000, end 2f544c99 ... OK
Loading Device Tree to 2f3a2000, end 2f3b0b23 ... OK
Starting kernel ...
Uncompressing Linux... done, booting the kernel.
[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.9.17-g36f2946b-dirty (user@computer) (gcc version 4.9 20150123 (prerelease) (GCC) ) #102 SMP PREEMPT Mon Jul 2 14:32:49 CEST 2018
[ 0.000000] CPU: ARMv7 Processor [412fc09a] revision 10 (ARMv7), cr=10c53c7d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt:Machine model: device
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] percpu: Embedded 14 pages/cpu @9fbbb000 s26048 r8192 d23104 u57344
[ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048
[ 0.000000] Kernel command line: console=ttymxc1,115200 init=/init androidboot.selinux=disabled androidboot.console=ttymxc1 androidboot.hardware=freescale androidboot.dm_verity=disabled vmalloc=256M cma=448M
[ 0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[ 0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[ 0.000000] Memory: 506864K/524288K available (7168K kernel code, 318K rwdata, 1604K rodata, 1024K init, 423K bss, 17424K reserved, 0K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xa0800000 - 0xff800000 (1520 MB)
[ 0.000000] lowmem : 0x80000000 - 0xa0000000 ( 512 MB)
[ 0.000000] pkmap : 0x7fe00000 - 0x80000000 ( 2 MB)
[ 0.000000] modules : 0x7f000000 - 0x7fe00000 ( 14 MB)
[ 0.000000] .text : 0x80008000 - 0x80800000 (8160 kB)
[ 0.000000] .init : 0x80a00000 - 0x80b00000 (1024 kB)
[ 0.000000] .data : 0x80b00000 - 0x80b4fac0 ( 319 kB)
[ 0.000000] .bss : 0x80b4fac0 - 0x80bb96dc ( 424 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Build-time adjustment of leaf fanout to 32.
[ 0.000000] RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[ 0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=32, nr_cpu_ids=2
[ 0.000000] NR_IRQS:16 nr_irqs:16 16
[ 0.000000] L2C: DT/platform modifies aux control register: 0x32050000 -> 0x32450000
[ 0.000000] L2C-310 erratum 769419 enabled
[ 0.000000] L2C-310 enabling early BRESP for Cortex-A9
[ 0.000000] L2C-310 full line of zeros enabled for Cortex-A9
[ 0.000000] L2C-310 ID prefetch enabled, offset 16 lines
[ 0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[ 0.000000] L2C-310 cache controller enabled, 16 ways, 512 kB
[ 0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76450001
[ 0.000000] Switching to timer-based delay loop, resolution 333ns
[ 0.000008] sched_clock: 32 bits at 3000kHz, resolution 333ns, wraps every 715827882841ns
[ 0.000025] clocksource: mxc_timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 637086815595 ns
[ 0.001120] Console: colour dummy device 80x30
[ 0.001140] Calibrating delay loop (skipped), value calculated using timer frequency.. 6.00 BogoMIPS (lpj=30000)
[ 0.001155] pid_max: default: 32768 minimum: 301
[ 0.001224] Security Framework initialized
[ 0.001236] SELinux: Initializing.
[ 0.001317] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.002011] CPU: Testing write buffer coherency: ok
[ 0.002369] CPU0: update cpu_capacity 1024
[ 0.002386] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[ 0.002432] Setting up static identity map for 0x10100000 - 0x10100058
[ 0.169680] Brought up 1 CPUs
[ 0.169697] SMP: Total of 1 processors activated (6.00 BogoMIPS).
[ 0.169707] CPU: All CPU(s) started in SVC mode.
[ 0.170407] devtmpfs: initialized
[ 0.180680] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[ 0.181032] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.181056] futex hash table entries: 512 (order: 3, 32768 bytes)
[ 0.181243] pinctrl core: initialized pinctrl subsystem
[ 0.182276] NET: Registered protocol family 16
[ 0.182970] DMA: preallocated 256 KiB pool for atomic coherent allocations
[ 0.209618] cpuidle: using governor ladder
[ 0.239616] cpuidle: using governor menu
[ 0.239861] CPU identified as i.MX6DL, silicon rev 1.3
[ 0.257947] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[ 0.257964] hw-breakpoint: maximum watchpoint size is 4 bytes.
[ 0.258968] imx6dl-pinctrl 20e0000.iomuxc: initialized IMX pinctrl driver
[ 0.260088] imx-gpc 20dc000.gpc: no fsl,ldo-bypass found!
[ 0.260209] imx-gpc 20dc000.gpc: Registered imx-gpc
[ 0.325157] mxs-dma 110000.dma-apbh: initialized
[ 0.326468] vgaarb: loaded
[ 0.326799] SCSI subsystem initialized
[ 0.327082] usbcore: registered new interface driver usbfs
[ 0.327158] usbcore: registered new interface driver hub
[ 0.327285] usbcore: registered new device driver usb
[ 0.327989] i2c i2c-0: of_i2c: modalias failure on /soc/aips-bus@02100000/i2c@021a0000/screen
[ 0.328005] i2c i2c-0: Failed to create I2C device for /soc/aips-bus@02100000/i2c@021a0000/screen
[ 0.328025] i2c i2c-0: IMX I2C adapter registered
[ 0.328043] i2c i2c-0: can't use DMA, using PIO instead.
[ 0.328560] i2c i2c-1: of_i2c: modalias failure on /soc/aips-bus@02100000/i2c@021a4000/temperature
[ 0.328576] i2c i2c-1: Failed to create I2C device for /soc/aips-bus@02100000/i2c@021a4000/temperature
[ 0.328593] i2c i2c-1: IMX I2C adapter registered
[ 0.328609] i2c i2c-1: can't use DMA, using PIO instead.
[ 0.328729] pps_core: LinuxPPS API ver. 1 registered
[ 0.328740] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.328765] PTP clock support registered
[ 0.329202] imx rpmsg driver is registered.
[ 0.329302] Advanced Linux Sound Architecture Driver Initialized.
[ 0.339956] clocksource: Switched to clocksource mxc_timer1
[ 0.340088] VFS: Disk quotas dquot_6.6.0
[ 0.340154] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[ 0.351119] NET: Registered protocol family 2
[ 0.351748] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[ 0.351804] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[ 0.351872] TCP: Hash tables configured (established 4096 bind 4096)
[ 0.351926] UDP hash table entries: 256 (order: 1, 8192 bytes)
[ 0.351953] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[ 0.352111] NET: Registered protocol family 1
[ 0.372632] RPC: Registered named UNIX socket transport module.
[ 0.372645] RPC: Registered udp transport module.
[ 0.372653] RPC: Registered tcp transport module.
[ 0.372664] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.372957] Trying to unpack rootfs image as initramfs...
[ 0.472122] Freeing initrd memory: 1616K (9f3b1000 - 9f545000)
[ 0.472604] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[ 0.473940] Bus freq driver module loaded
[ 0.474816] audit: initializing netlink subsys (disabled)
[ 0.474874] audit: type=2000 audit(0.470:1): initialized
[ 0.485827] workingset: timestamp_bits=30 max_order=17 bucket_order=0
[ 0.503360] NFS: Registering the id_resolver key type
[ 0.503392] Key type id_resolver registered
[ 0.503402] Key type id_legacy registered
[ 0.503664] fuse init (API version 7.26)
[ 0.512142] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[ 0.512158] io scheduler noop registered
[ 0.512168] io scheduler deadline registered
[ 0.512313] io scheduler cfq registered (default)
[ 0.512824] imx-weim 21b8000.weim: Driver registered.
[ 0.513883] backlight supply power not found, using dummy regulator
[ 0.517189] imx-sdma 20ec000.sdma: no iram assigned, using external mem
[ 0.517432] imx-sdma 20ec000.sdma: loaded firmware 3.3
[ 0.521462] 21e8000.serial: ttymxc1 at MMIO 0x21e8000 (irq = 63, base_baud = 5000000) is a IMX
[ 1.266776] console [ttymxc1] enabled
[ 1.272428] [drm] Initialized
[ 1.275869] [drm] Initialized vivante 1.0.0 20120216 on minor 0
[ 1.285359] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 1.292071] [drm] No driver support for vblank timestamp query.
[ 1.298144] imx-drm display-subsystem: bound imx-ipuv3-crtc.2 (ops 0x8084c658)
[ 1.305544] imx-drm display-subsystem: bound imx-ipuv3-crtc.3 (ops 0x8084c658)
[ 1.313031] imx-drm display-subsystem: failed to bind 2000000.aips-bus:ldb@020e0008 (ops 0x8084c340): -2
[ 1.322679] imx-drm display-subsystem: master bind failed: -2
[ 1.328448] imx-ipuv3-crtc: probe of imx-ipuv3-crtc.3 failed with error -2
[ 1.335403] imx-ipuv3 2400000.ipu: IPUv3H probed
[ 1.512817] brd: module loaded
[ 1.517830] m25p80 spi1.0: m25p16 (2048 Kbytes)
[ 1.532834] 1 ofpart partitions found on MTD device spi1.0
[ 1.538331] Creating 1 MTD partitions on "spi1.0":
[ 1.543198] 0x000000000000-0x000000200000 : "uboot"
[ 1.548548] spi_imx 200c000.ecspi: chipselect 0 already in use
[ 1.554458] spi_master spi1: spi_device register error /soc/aips-bus@02000000/spba-bus@02000000/ecspi@0200c000/is25lp016d-jnle@0
[ 1.566098] spi_master spi1: Failed to create SPI device for /soc/aips-bus@02000000/spba-bus@02000000/ecspi@0200c000/is25lp016d-jnle@0
[ 1.578263] spi_imx 200c000.ecspi: probed
[ 1.583003] libphy: Fixed MDIO Bus: probed
[ 1.588452] 2188000.ethernet supply phy not found, using dummy regulator
[ 1.597801] pps pps0: new PPS source ptp0
[ 1.605885] libphy: fec_enet_mii_bus: probed
[ 1.610827] fec 2188000.ethernet eth0: registered PHC device 0
[ 1.616903] PPP generic driver version 2.4.2
[ 1.621466] PPP BSD Compression module registered
[ 1.626180] PPP Deflate Compression module registered
[ 1.631377] PPP MPPE Compression module registered
[ 1.636180] NET: Registered protocol family 24
[ 1.640926] mousedev: PS/2 mouse device common for all mice
[ 1.647562] snvs_rtc 20cc000.snvs:snvs-rtc-lp: rtc core: registered 20cc000.snvs:snvs-r as rtc0
[ 1.656456] i2c /dev entries driver
[ 1.661171] WD: probe()
[ 1.663643] max63xx_wdt max6373_wdt: requesting 10s heartbeat
[ 1.669402] max63xx_wdt max6373_wdt: using 10s heartbeat with 0s initial delay
[ 1.684530] WD: Watchdog disabled
[ 1.680336] max6373_wdt successfully loaded
[ 1.684530] WD: Watchdog disabled
[ 1.687936] WD: driver loaded
[ 1.691389] sdhci: Secure Digital Host Controller Interface driver
[ 1.697575] sdhci: Copyright(c) Pierre Ossman
[ 1.701964] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.770014] mmc0: SDHCI controller on 2198000.usdhc [2198000.usdhc] using ADMA
[ 1.801525] mxc_vpu 2040000.vpu_fsl: VPU initialized
[ 1.811332] galcore: clk_get vg clock failed, disable vg!
[ 1.820011] Galcore version 6.2.2.96445
[ 1.919987] mmc0: new DDR MMC card at address 0001
[ 1.940013] mmcblk0: mmc0:0001 008G30 7.28 GiB
[ 1.955512] mmcblk0boot0: mmc0:0001 008G30 partition 1 4.00 MiB
[ 1.967282] caam 2100000.caam: ERA source: CAAMVID.
[ 1.972447] mmcblk0boot1: mmc0:0001 008G30 partition 2 4.00 MiB
[ 1.978627] caam 2100000.caam: AXI pipeline throttling enabled.
[ 1.985713] caam 2100000.caam: Entropy delay = 3200
[ 1.990690] mmcblk0rpmb: mmc0:0001 008G30 partition 3 4.00 MiB
[ 2.001921] mmcblk0: p1 p2 p3 < p5 p6 p7 p8 >
[ 2.060062] caam 2100000.caam: Instantiated RNG4 SH0
[ 2.120820] caam 2100000.caam: Instantiated RNG4 SH1
[ 2.125799] caam 2100000.caam: device ID = 0x0a16010000000100 (Era 4)
[ 2.132271] caam 2100000.caam: job rings = 2, qi = 0
[ 2.196227] caam algorithms registered in /proc/crypto
[ 2.205585] caam_jr 2101000.jr0: registering rng-caam
[ ] // platform caam_sm stuff
[ 3.057140] snvs-secvio 20cc000.caam-snvs: can't get snvs clock
[ 3.063152] snvs-secvio 20cc000.caam-snvs: violation handlers armed - non-secure state
[ 3.071662] usbcore: registered new interface driver usbhid
[ 3.077245] usbhid: USB HID core driver
[ 3.082619] NET: Registered protocol family 10
[ 3.098192] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 3.104921] NET: Registered protocol family 17
[ 3.109445] 8021q: 802.1Q VLAN Support v1.8
[ 3.113761] NET: Registered protocol family 36
[ 3.118235] Key type dns_resolver registered
[ 3.124213] cpu cpu0: Registered imx6q-cpufreq
[ 3.128689] ThumbEE CPU extension supported.
[ 3.149825] imx_thermal 2000000.aips-bus:tempmon: Extended Commercial CPU temperature grade - max:105C critical:100C passive:95C
[ 3.161826] snvs_rtc 20cc000.snvs:snvs-rtc-lp: setting system clock to 1970-01-01 00:00:01 UTC (1)
[ 3.171433] ldb_bl_en: disabling
[ 3.174677] ALSA device list:
[ 3.177655] No soundcards found.
[ 3.182373] Freeing unused kernel memory: 1024K (80a00000 - 80b00000)
[ 3.192560] init: init first stage started!
[ 3.208051] SELinux: Permission validate_trans in class security not defined in policy.
[ 3.216760] SELinux: Class cap_userns not defined in policy.
[ 3.222609] SELinux: Class cap2_userns not defined in policy.
[ 3.228451] SELinux: the above unknown classes and permissions will be denied
[ 3.276262] audit: type=1403 audit(3.261:2): policy loaded auid=4294967295 ses=4294967295
[ 3.285390] audit: type=1404 audit(3.281:3): enforcing=1 old_enforcing=0 auid=4294967295 ses=4294967295
[ 3.320240] init: (Initializing SELinux enforcing took 0.12s.)
[ 3.331666] init: init second stage started!
[ 3.345915] init: Running restorecon...
[ 3.387964] init: waitpid failed: No child processes
[ 3.393774] init: (Loading properties from /default.prop took 0.00s.)
[ 3.404685] init: (Parsing /init.environ.rc took 0.00s.)
[ 3.410471] init: (Parsing /init.zygote32.rc took 0.00s.)
[ 3.415904] init: (Parsing /init.rc took 0.01s.)
[ 3.436236] ueventd: ueventd started!
[ 3.726362] ueventd: Coldboot took 0.28s.
[ 3.748758] reboot: Restarting system with command 'recovery'
[ 4.754630] Reboot failed -- System halted
--------------------------------------------------------------------------------------------------------
I would like to have some help in figuring out why the device keeps rebooting. I'm currently clueless on how to solve the problem. Did anyone experienced this or a comparable problem?
Thanks in advance.
With kind regards,
Tim
EDIT:
The question was previously about the same reboot-loop, but I thought it was caused by SELinux. This is incorrect because the errors in the logs came from the NFS mount. I've changed this thread not to mislead other users. The following error is for historical reasons:
[ 6.578464] init: SELinux: Could not set context for /init: Operation not supported on transport endpoint
Wow, that looks so complex of your Android boot loop issue, but I collected a link about fixing Android boot loop with some free methods. and you can check it.
Hello,
I apologize for the delay.
Have you also tried disabling the dm_verity functionality?
If not, please try adding the below command in your u-boot terminal:
androidboot.dm_verity=disable.
Best Regards,
Diego.
Manjunath, Diego,
SELinux does not support NFS, which is why Android doesn't boot. My problem had somewhat the same origin: by creating firmware I accidentally removed the SELinux context. That causes the same error.
Hi Diego,
androidboot.dm_verity=disable. does not help. I have similar issue.
Can you let me know if nxp supports NFS on Nougat/Oreo?
Please help
Regards,
Manju