VFS: Unable to mount root fs on unknown-block(179,2)

From ElphelWiki
Revision as of 20:37, 14 June 2016 by Oleg (talk | contribs) (Explanation)
Jump to: navigation, search

Description

  • Kernel panic caused by:
...
VFS: Unable to mount root fs on unknown-block(179,2)
...
  • Used to happen when the camera boots from NAND flash and tries to mount rootfs from uSD card
  • Some cards worked, some - didn't.
  • All cards work fine if camera boots from MMC only
  • Card detected as ro

Explanation

Kernel mounts rootfs from a read only card and this results in kernel panic:

  • WP is read from 0xf8000830[5:0] - which is a MIO pin - it pointed to MIO_0, a CD for NAND flash. During the boot from NAND flash the value of the pin was probably changing and some slower cards were detected as read only.

Solution

  • In u-boot 0xf8000830[5:0] was set to 0x31 - MIO_63 - it does not exist and the register value is always 0.

Bootlog

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.0.0-xilinx (oleg@dzhiminen) (gcc version 5.3.0 (GCC) ) #9 SMP PREEMPT Tue Jun 14 21:04:55 MDT 2016
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine model: Elphel 10393
[    0.000000] cma: Reserved 336 MiB at 0x0ac00000
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] PERCPU: Embedded 11 pages/cpu @eef2c000 s12672 r8192 d24192 u45056
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 260624
[    0.000000] Kernel command line: cma=336M console=ttyPS0,115200 root=/dev/mmcblk0p2 rw ip=192.168.0.8 earlyprintk rootwait rootfstype=ext4
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 684344K/1048576K available (5734K kernel code, 302K rwdata, 1892K rodata, 244K init, 2126K bss, 20168K reserved, 344064K cma-reserved, 270336K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xf0000000 - 0xff000000   ( 240 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xef800000   ( 760 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc077ac7c   (7628 kB)
[    0.000000]       .init : 0xc077b000 - 0xc07b8000   ( 244 kB)
[    0.000000]       .data : 0xc07b8000 - 0xc0803890   ( 303 kB)
[    0.000000]        .bss : 0xc0803890 - 0xc0a170cc   (2127 kB)
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  Additional per-CPU info printed with stalls.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] L2C: platform modifies aux control register: 0x02060000 -> 0x32460000
[    0.000000] L2C: DT/platform modifies aux control register: 0x02060000 -> 0x32460000
[    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 1 lines
[    0.000000] L2C-310 dynamic clock gating enabled, standby mode enabled
[    0.000000] L2C-310 cache controller enabled, 8 ways, 512 kB
[    0.000000] L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76460001
[    0.000000] ps7-slcr mapped to f0004000
[    0.000000] zynq_clock_init: clkc starts at f0004100
[    0.000000] Zynq clock init
[    0.000009] sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 3298534883328ns
[    0.000224] ps7-ttc #0 at f0008000, irq=18
[    0.000526] Console: colour dummy device 80x30
[    0.000550] Calibrating delay loop... 1332.01 BogoMIPS (lpj=6660096)
[    0.090159] pid_max: default: 32768 minimum: 301
[    0.090297] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.090312] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.090913] CPU: Testing write buffer coherency: ok
[    0.091109] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.091191] Setting up static identity map for 0x579938 - 0x579990
[    0.132434] elphel393-init: Set up the mio pin 49 and reset USB
[    0.240145] CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.240225] Brought up 2 CPUs
[    0.240243] SMP: Total of 2 processors activated (2664.03 BogoMIPS).
[    0.240252] CPU: All CPU(s) started in SVC mode.
[    0.240814] devtmpfs: initialized
[    0.241559] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
[    0.258089] pinctrl core: initialized pinctrl subsystem
[    0.261902] NET: Registered protocol family 16
[    0.263927] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.291018] cpuidle: using governor ladder
[    0.320983] cpuidle: using governor menu
[    0.329377] hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
[    0.329392] hw-breakpoint: maximum watchpoint size is 4 bytes.
[    0.343648] SCSI subsystem initialized
[    0.344094] usbcore: registered new interface driver usbfs
[    0.344187] usbcore: registered new interface driver hub
[    0.344261] usbcore: registered new device driver usb
[    0.344615] pps_core: LinuxPPS API ver. 1 registered
[    0.344627] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.344672] PTP clock support registered
[    0.344793] EDAC MC: Ver: 3.0.0
[    0.346643] cfg80211: Calling CRDA to update world regulatory domain
[    0.346928] Switched to clocksource arm_global_timer
[    0.359494] NET: Registered protocol family 2
[    0.360211] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.360307] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.360454] TCP: Hash tables configured (established 8192 bind 8192)
[    0.360513] TCP: reno registered
[    0.360531] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.360579] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.360812] NET: Registered protocol family 1
[    0.361152] RPC: Registered named UNIX socket transport module.
[    0.361164] RPC: Registered udp transport module.
[    0.361173] RPC: Registered tcp transport module.
[    0.361182] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.361665] hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
[    0.363073] futex hash table entries: 512 (order: 3, 32768 bytes)
[    0.363166] audit: initializing netlink subsys (disabled)
[    0.363220] audit: type=2000 audit(0.340:1): initialized
[    0.365036] jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
[    0.366487] bounce: pool size: 64 pages
[    0.366572] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 249)
[    0.366591] io scheduler noop registered
[    0.366606] io scheduler deadline registered
[    0.366661] io scheduler cfq registered (default)
[    0.367025] zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
[    0.368656] dma-pl330 f8003000.ps7-dma: Loaded driver for PL330 DMAC-41330
[    0.368676] dma-pl330 f8003000.ps7-dma:      DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
[    0.369370] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.371125] e0000000.serial: ttyPS0 at MMIO 0xe0000000 (irq = 160, base_baud = 1562500) is a xuartps
[    0.973487] console [ttyPS0] enabled
[    0.977636] xdevcfg f8007000.ps7-dev-cfg: ioremap 0xf8007000 to f006a000
[    0.987497] brd: module loaded
[    0.996160] loop: module loaded
[    1.001441] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.008042] usbcore: registered new interface driver usb-storage
[    1.014430] e0002000.ps7-usb supply vbus not found, using dummy regulator
[    1.021502] ULPI transceiver vendor/product ID 0x0451/0x1508
[    1.027112] ULPI integrity check: passed.
[    1.031091] ci_hdrc ci_hdrc.0: EHCI Host Controller
[    1.035963] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[    1.056969] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[    1.063175] hub 1-0:1.0: USB hub found
[    1.066876] hub 1-0:1.0: 1 port detected
[    1.072385] mousedev: PS/2 mouse device common for all mice
[    1.078349] i2c /dev entries driver
[    1.083777] rtc-m41t80 0-0068: rtc core: registered m41t62 as rtc0
[    1.091120] vsc330x 0-0001: vsc330x_i2c_probe:841 error writing
[    1.097028] vsc330x: probe of 0-0001 failed with error -5
[    1.103103] ltc3589 0-0034: Chip ltc3589 is found, driver version 1.0
[    1.111319] pca953x 0-0020: interrupt support not compiled in
[    1.118514] pca953x 0-0021: interrupt support not compiled in
[    1.124692] at24 0-0031: 256 byte 24c02 EEPROM, writable, 1 bytes/write
[    1.131404] cdns-i2c e0004000.ps7-i2c: 100 kHz mmio e0004000 irq 32
[    1.139601] Xilinx Zynq CpuIdle Driver started
[    1.144220] Driver 'mmcblk' needs updating - please use bus_type methods
[    1.150930] sdhci: Secure Digital Host Controller Interface driver
[    1.157049] sdhci: Copyright(c) Pierre Ossman
[    1.161372] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.175809] sdhci-arasan e0100000.ps7-sdio: No vmmc regulator found
[    1.182025] sdhci-arasan e0100000.ps7-sdio: No vqmmc regulator found
[    1.226975] mmc0: SDHCI controller on e0100000.ps7-sdio [e0100000.ps7-sdio] using ADMA
[    1.239253] usbcore: registered new interface driver usbhid
[    1.244754] usbhid: USB HID core driver
[    1.253320] si5338 0-0070: Chip si5338 is found, driver version 1.0
[    1.438794] si5338 0-0070: SI5338 initialized
[    1.444057] nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xa3
[    1.450355] nand: Micron MT29F8G08ADBDAH4
[    1.454338] nand: 1024 MiB, SLC, erase size: 128 KiB, page size: 2048, OOB size: 64
[    1.461989] nand: WARNING: pl35x-nand: the ECC used on your system is too weak compared to the one required by the NAND chip
[    1.473444] Bad block table found at page 524224, version 0x01
[    1.479687] Bad block table found at page 524160, version 0x01
[    1.485882] 5 ofpart partitions found on MTD device pl35x-nand
[    1.491664] Creating 5 MTD partitions on "pl35x-nand":
[    1.496778] 0x000000000000-0x000000100000 : "u-boot-spl"
[    1.503228] 0x000000100000-0x000000500000 : "u-boot"
[    1.509147] 0x000000500000-0x000000600000 : "device-tree"
[    1.515483] 0x000000600000-0x000001600000 : "kernel"
[    1.520487] mmc0: new high speed SDHC card at address 0007
[    1.527157] 0x000001600000-0x000011600000 : "rootfs"
[    1.530584] elphel393-pwr elphel393-pwr@0: Probing elphel393-pwr
[    1.536474] elphel393-pwr elphel393-pwr@0: elphel393_pwr configuration done
[    1.556642] mmcblk0: mmc0:0007 SD16G 14.4 GiB (ro)
[    1.563392]  mmcblk0: p1 p2
[    2.284253] elphel393-mem: Allocated 76800 pages for DMA at address 0xad00000
[    2.297794] elphel393-mem: Coherent buffer vaddr:              0xCAD00000
[    2.304497] elphel393-mem: Coherent buffer paddr:              0x0AD00000
[    2.311287] elphel393-mem: Coherent buffer length:             0x12C00000
[    2.318334] elphel393-mem: Probing elphel393-mem
[    2.345785] H2D stream buffer vaddr:            0xEDC00000
[    2.351199] H2D stream buffer paddr:            0x2DC00000
[    2.356654] H2D stream buffer length:           0x00400000
[    2.362135] D2H stream buffer vaddr:            0xED800000
[    2.367613] D2H stream buffer paddr:            0x2D800000
[    2.373059] D2H stream buffer length:           0x00400000
[    2.378541] Bidirectional stream buffer vaddr:  0xED400000
[    2.383996] Bidirectional stream buffer paddr:  0x2D400000
[    2.389477] Bidirectional stream buffer length: 0x00400000
[    2.427822] elphel393_sensor_i2c: registered 5 i2c device classes
[    2.433941] Error: Driver 'elphel393-sensor-i2c' is already registered, aborting...
[    2.441549] Elphel (R) model 353 Exif device driver - 125
[    2.447066] circbuf driver elphel393-circbuf: registered MAJOR: 135
[    2.453689] /home/oleg/GIT/elphel393/poky/build/tmp/work-shared/elphel393/kernel-source/drivers/elphel/framepars.c:295:initGlobalPars GLOBALPARS(0,G_DEBUG)=0
[    2.467703] /home/oleg/GIT/elphel393/poky/build/tmp/work-shared/elphel393/kernel-source/drivers/elphel/framepars.c:331:initMultiPars GLOBALPARS(G_MULTI_NUM)=0
[    2.481832] /home/oleg/GIT/elphel393/poky/build/tmp/work-shared/elphel393/kernel-source/drivers/elphel/framepars.c:295:initGlobalPars GLOBALPARS(0,G_DEBUG)=0
[    2.495896] /home/oleg/GIT/elphel393/poky/build/tmp/work-shared/elphel393/kernel-source/drivers/elphel/framepars.c:331:initMultiPars GLOBALPARS(G_MULTI_NUM)=0
[    2.510043] /home/oleg/GIT/elphel393/poky/build/tmp/work-shared/elphel393/kernel-source/drivers/elphel/framepars.c:295:initGlobalPars GLOBALPARS(0,G_DEBUG)=0
[    2.524106] /home/oleg/GIT/elphel393/poky/build/tmp/work-shared/elphel393/kernel-source/drivers/elphel/framepars.c:331:initMultiPars GLOBALPARS(G_MULTI_NUM)=0
[    2.538266] /home/oleg/GIT/elphel393/poky/build/tmp/work-shared/elphel393/kernel-source/drivers/elphel/framepars.c:295:initGlobalPars GLOBALPARS(0,G_DEBUG)=0
[    2.552316] /home/oleg/GIT/elphel393/poky/build/tmp/work-shared/elphel393/kernel-source/drivers/elphel/framepars.c:331:initMultiPars GLOBALPARS(G_MULTI_NUM)=0
[    2.566472] circbuf driver elphel393-circbuf: registered MAJOR: 130
[    2.572730] circbuf driver elphel393-circbuf: using 314572800 bytes of DMA memory from pElphel_buf at address 0x0ad00000
[    2.584546] CAN device driver interface
[    2.589944] libphy: XEMACPS mii bus: probed
[    2.595961] xemacps e000b000.ps7-ethernet: pdev->id -1, baseaddr 0xe000b000, irq 31
[    2.604154] usbcore: registered new interface driver rtl8192cu
[    2.610319] TCP: cubic registered
[    2.613559] NET: Registered protocol family 17
[    2.618060] can: controller area network core (rev 20120528 abi 9)
[    2.624212] NET: Registered protocol family 29
[    2.628613] can: raw protocol (rev 20120528)
[    2.632844] can: broadcast manager protocol (rev 20120528 t)
[    2.638515] can: netlink gateway (rev 20130117) max_hops=1
[    2.644209] zynq_pm_remap_ocm: no compatible node found for 'xlnx,zynq-ocmc-1.0'
[    2.651541] zynq_pm_suspend_init: Unable to map OCM.
[    2.656482] Registering SWP/SWPB emulation handler
[    6.747927] xemacps e000b000.ps7-ethernet: Set clk to 124999999 Hz
[    6.754028] xemacps e000b000.ps7-ethernet: link up (1000/FULL)
[    6.786954] IP-Config: Guessing netmask 255.255.255.0
[    6.792046] IP-Config: Complete:
[    6.795197]      device=eth0, hwaddr=00:0e:64:10:bc:9f, ipaddr=192.168.0.8, mask=255.255.255.0, gw=255.255.255.255
[    6.805553]      host=192.168.0.8, domain=, nis-domain=(none)
[    6.811268]      bootserver=255.255.255.255, rootserver=255.255.255.255, rootpath=
[    6.819427] VFS: Cannot open root device "mmcblk0p2" or unknown-block(179,2): error -30
[    6.827426] Please append a correct "root=" boot option; here are the available partitions:
[    6.835714] 0100           32768 ram0  (driver?)
[    6.840292] 0101           32768 ram1  (driver?)
[    6.844891] 0102           32768 ram2  (driver?)
[    6.849492] 0103           32768 ram3  (driver?)
[    6.854097] 1f00            1024 mtdblock0  (driver?)
[    6.859128] 1f01            4096 mtdblock1  (driver?)
[    6.864160] 1f02            1024 mtdblock2  (driver?)
[    6.869197] 1f03           16384 mtdblock3  (driver?)
[    6.874229] 1f04          262144 mtdblock4  (driver?)
[    6.879265] b300        15159296 mmcblk0  driver: mmcblk
[    6.884560] b301         4918272 mmcblk0p1 997389f5-01
[    6.889855] b302        10240000 mmcblk0p2 997389f5-02
[    6.895148] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)
[    6.903569] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.0.0-xilinx #9
[    6.909987] Hardware name: Xilinx Zynq Platform
[    6.914530] [<c0015ae0>] (unwind_backtrace) from [<c0012524>] (show_stack+0x10/0x14)
[    6.922237] [<c0012524>] (show_stack) from [<c057406c>] (dump_stack+0x88/0xc8)
[    6.929447] [<c057406c>] (dump_stack) from [<c0571fcc>] (panic+0xa0/0x1f8)
[    6.936299] [<c0571fcc>] (panic) from [<c077c228>] (mount_block_root+0x194/0x230)
[    6.943760] [<c077c228>] (mount_block_root) from [<c077c4b8>] (mount_root+0x108/0x110)
[    6.951658] [<c077c4b8>] (mount_root) from [<c077c650>] (prepare_namespace+0x190/0x1d8)
[    6.959644] [<c077c650>] (prepare_namespace) from [<c077be64>] (kernel_init_freeable+0x1d4/0x1e4)
[    6.968499] [<c077be64>] (kernel_init_freeable) from [<c05707e4>] (kernel_init+0x8/0xe8)
[    6.976573] [<c05707e4>] (kernel_init) from [<c000f300>] (ret_from_fork+0x14/0x34)
[    6.984124] CPU1: stopping
[    6.986810] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 4.0.0-xilinx #9
[    6.993227] Hardware name: Xilinx Zynq Platform
[    6.997759] [<c0015ae0>] (unwind_backtrace) from [<c0012524>] (show_stack+0x10/0x14)
[    7.005476] [<c0012524>] (show_stack) from [<c057406c>] (dump_stack+0x88/0xc8)
[    7.012678] [<c057406c>] (dump_stack) from [<c0014118>] (ipi_cpu_stop+0x58/0x68)
[    7.020056] [<c0014118>] (ipi_cpu_stop) from [<c00147b8>] (handle_IPI+0x88/0xe0)
[    7.027434] [<c00147b8>] (handle_IPI) from [<c0008678>] (gic_handle_irq+0x58/0x5c)
[    7.034988] [<c0008678>] (gic_handle_irq) from [<c0013000>] (__irq_svc+0x40/0x74)
[    7.042445] Exception stack(0xee88bf50 to 0xee88bf98)
[    7.047482] bf40:                                     ee88bf98 fffffff8 9fdfa7bc 00000001
[    7.055643] bf60: 9da88abe 00000001 eef38e08 00000000 c07e3ad0 c07bae2c c057cb68 c07b5740
[    7.063800] bf80: 00000018 ee88bf98 03000001 c03beb74 90000113 ffffffff
[    7.070408] [<c0013000>] (__irq_svc) from [<c03beb74>] (cpuidle_enter_state+0x58/0x124)
[    7.078392] [<c03beb74>] (cpuidle_enter_state) from [<c0052f68>] (cpu_startup_entry+0x2e8/0x37c)
[    7.087153] [<c0052f68>] (cpu_startup_entry) from [<00008704>] (0x8704)
[    7.093749] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(179,2)