Kernel 3.7.1 issue with sd card

Started by cnoviello, January 27, 2013, 06:41:03 PM

Previous topic - Next topic

cnoviello

Hi,
I'm experiencing  a really strange issue with kernel 3.7.1.

When I power up olinuxino, kernel runs without problems and root fs is mounted correctly. But if a "reboot" command is typed on command line, when the kernel restart it's unable to mount SD card partitions. The only way to start olinuxino is both power it down or press RESET button.

These are messages on kernel ring buffer when board is powered up:

[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Linux version 3.7.1 (carmine@aspire-one) (gcc version 4.6.2 20110921 (release) [ARM/embedded-4_6-branch revision 182083] (GCC) ) #2 Sun Jan 27 16:59:32 CET 2013
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: Freescale i.MX23 (Device Tree), model: i.MX23 Olinuxino Low Cost Board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: noinitrd console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootdelay=5 ssp1=mmc
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Memory: 64MB = 64MB total
[    0.000000] Memory: 54156k/54156k available, 11380k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xc4800000 - 0xff000000   ( 936 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04d0828   (4899 kB)
[    0.000000]       .init : 0xc04d1000 - 0xc04f39e8   ( 139 kB)
[    0.000000]       .data : 0xc04f4000 - 0xc052dd38   ( 232 kB)
[    0.000000]        .bss : 0xc052dd5c - 0xc0a7d5d8   (5439 kB)
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] of_irq_init: children remain, but no parents
[    0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 3695 kB
[    0.000000]  per task-struct memory footprint: 1152 bytes
[    0.070000] Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)
[    0.070000] pid_max: default: 32768 minimum: 301
[    0.070000] Mount-cache hash table entries: 512
[    0.080000] CPU: Testing write buffer coherency: ok
[    0.080000] Setting up static identity map for 0x4036e388 - 0x4036e3e0
[    0.090000] devtmpfs: initialized
[    0.100000] pinctrl core: initialized pinctrl subsystem
[    0.110000] regulator-dummy: no parameters
[    0.110000] NET: Registered protocol family 16
[    0.110000] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.150000] Serial: AMBA PL011 UART driver
[    0.160000] 80070000.serial: ttyAMA0 at MMIO 0x80070000 (irq = 129) is a PL011 rev2
[    0.340000] console [ttyAMA0] enabled
[    0.370000] bio: create slab <bio-0> at 0
[    0.390000] mxs-dma 80004000.dma-apbh: initialized
[    0.400000] mxs-dma 80024000.dma-apbx: initialized
[    0.410000] usb0_vbus: 5000 mV
[    0.410000] SCSI subsystem initialized
[    0.420000] usbcore: registered new interface driver usbfs
[    0.420000] usbcore: registered new interface driver hub
[    0.430000] usbcore: registered new device driver usb
[    0.440000] Advanced Linux Sound Architecture Driver Initialized.
[    0.450000] Switching to clocksource mxs_timer
[    0.660000] NET: Registered protocol family 2
[    0.670000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[    0.670000] TCP bind hash table entries: 2048 (order: 4, 73728 bytes)
[    0.680000] TCP: Hash tables configured (established 2048 bind 2048)
[    0.690000] TCP: reno registered
[    0.690000] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    0.700000] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    0.710000] NET: Registered protocol family 1
[    0.720000] RPC: Registered named UNIX socket transport module.
[    0.720000] RPC: Registered udp transport module.
[    0.730000] RPC: Registered tcp transport module.
[    0.730000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.740000] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.830000] NFS: Registering the id_resolver key type
[    0.840000] Key type id_resolver registered
[    0.840000] Key type id_legacy registered
[    0.850000] msgmni has been set to 105
[    0.860000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.860000] io scheduler noop registered (default)
[    0.870000] uart-pl011 80070000.serial: no DMA platform data
[    0.880000] 8006c000.serial: ttyAPP0 at MMIO 0x8006c000 (irq = 126) is a 8006c000.serial
[    0.890000] mxs-auart 8006c000.serial: Found APPUART 3.0.0
[    0.910000] usbcore: registered new interface driver smsc95xx
[    0.920000] Initializing USB Mass Storage driver...
[    0.920000] usbcore: registered new interface driver usb-storage
[    0.930000] USB Mass Storage support registered.
[    0.930000] imx_usb 80080000.usb: pinctrl get/select failed, err=-19
[    0.940000] ci_hdrc ci_hdrc.0: doesn't support gadget
[    0.950000] ci_hdrc ci_hdrc.0: ChipIdea HDRC EHCI
[    0.960000] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[    1.020000] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[    1.030000] hub 1-0:1.0: USB hub found
[    1.040000] hub 1-0:1.0: 1 port detected
[    1.050000] mousedev: PS/2 mouse device common for all mice
[    1.060000] stmp3xxx-rtc 8005c000.rtc: rtc core: registered 8005c000.rtc as rtc0
[    1.070000] i2c /dev entries driver
[    1.120000] mxs-mmc 80010000.ssp: initialized
[    1.130000] leds-gpio leds.5: pins are not configured from the driver
[    1.150000] usbcore: registered new interface driver usbhid
[    1.160000] usbhid: USB HID core driver
[    1.170000] TCP: cubic registered
[    1.170000] NET: Registered protocol family 17
[    1.180000] Key type dns_resolver registered
[    1.190000] registered taskstats version 1
[    1.200000] stmp3xxx-rtc 8005c000.rtc: setting system clock to 1970-01-01 00:00:03 UTC (3)
[    1.220000] mmc0: host does not support reading read-only switch. assuming write-enable.
[    1.240000] mmc0: new high speed SD card at address aaaa
[    1.250000] ALSA device list:
[    1.250000]   No soundcards found.
[    1.260000] mmcblk0: mmc0:aaaa SU02G 1.84 GiB
[    1.270000] Waiting 5sec before mounting root device...
[    1.290000]  mmcblk0: p1 p2 p3 p4
[    1.360000] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    1.510000] hub 1-1:1.0: USB hub found
[    1.520000] hub 1-1:1.0: 3 ports detected
[    1.800000] usb 1-1.1: new high-speed USB device number 3 using ci_hdrc
[    1.930000] smsc95xx v1.0.4
[    2.030000] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-ci_hdrc.0-1.1, smsc95xx USB 2.0 Ethernet, 12:bd:7d:4a:9a:a9
[    6.300000] kjournald starting.  Commit interval 5 seconds
[    6.310000] EXT3-fs (mmcblk0p2): using internal journal
[    6.320000] EXT3-fs (mmcblk0p2): mounted filesystem with ordered data mode
[    6.320000] VFS: Mounted root (ext3 filesystem) on device 179:2.
[    6.330000] Freeing init memory: 136K

and these are messages when the "reboot" command is typed:

[    0.000000] Booting Linux on physical CPU 0
[    0.000000] Linux version 3.7.1 (carmine@aspire-one) (gcc version 4.6.2 20110921 (release) [ARM/embedded-4_6-branch revision 182083] (GCC) ) #2 Sun Jan 27 16:59:32 CET 2013
[    0.000000] CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177
[    0.000000] CPU: VIVT data cache, VIVT instruction cache
[    0.000000] Machine: Freescale i.MX23 (Device Tree), model: i.MX23 Olinuxino Low Cost Board
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
[    0.000000] Kernel command line: noinitrd console=ttyAMA0,115200 root=/dev/mmcblk0p2 rw rootdelay=5 ssp1=mmc
[    0.000000] PID hash table entries: 256 (order: -2, 1024 bytes)
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Memory: 64MB = 64MB total
[    0.000000] Memory: 54156k/54156k available, 11380k reserved, 0K highmem
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
[    0.000000]     vmalloc : 0xc4800000 - 0xff000000   ( 936 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xc4000000   (  64 MB)
[    0.000000]     modules : 0xbf000000 - 0xc0000000   (  16 MB)
[    0.000000]       .text : 0xc0008000 - 0xc04d0828   (4899 kB)
[    0.000000]       .init : 0xc04d1000 - 0xc04f39e8   ( 139 kB)
[    0.000000]       .data : 0xc04f4000 - 0xc052dd38   ( 232 kB)
[    0.000000]        .bss : 0xc052dd5c - 0xc0a7d5d8   (5439 kB)
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS:16 nr_irqs:16 16
[    0.000000] of_irq_init: children remain, but no parents
[    0.000000] sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
[    0.000000] Console: colour dummy device 80x30
[    0.000000] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.000000] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.000000] ... MAX_LOCK_DEPTH:          48
[    0.000000] ... MAX_LOCKDEP_KEYS:        8191
[    0.000000] ... CLASSHASH_SIZE:          4096
[    0.000000] ... MAX_LOCKDEP_ENTRIES:     16384
[    0.000000] ... MAX_LOCKDEP_CHAINS:      32768
[    0.000000] ... CHAINHASH_SIZE:          16384
[    0.000000]  memory used by lock dependency info: 3695 kB
[    0.000000]  per task-struct memory footprint: 1152 bytes
[    0.070000] Calibrating delay loop... 226.09 BogoMIPS (lpj=1130496)
[    0.070000] pid_max: default: 32768 minimum: 301
[    0.070000] Mount-cache hash table entries: 512
[    0.080000] CPU: Testing write buffer coherency: ok
[    0.080000] Setting up static identity map for 0x4036e388 - 0x4036e3e0
[    0.090000] devtmpfs: initialized
[    0.100000] pinctrl core: initialized pinctrl subsystem
[    0.110000] regulator-dummy: no parameters
[    0.110000] NET: Registered protocol family 16
[    0.110000] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.150000] Serial: AMBA PL011 UART driver
[    0.160000] 80070000.serial: ttyAMA0 at MMIO 0x80070000 (irq = 129) is a PL011 rev2
[    0.340000] console [ttyAMA0] enabled
[    0.370000] bio: create slab <bio-0> at 0
[    0.390000] mxs-dma 80004000.dma-apbh: initialized
[    0.400000] mxs-dma 80024000.dma-apbx: initialized
[    0.410000] usb0_vbus: 5000 mV
[    0.410000] SCSI subsystem initialized
[    0.420000] usbcore: registered new interface driver usbfs
[    0.420000] usbcore: registered new interface driver hub
[    0.430000] usbcore: registered new device driver usb
[    0.440000] Advanced Linux Sound Architecture Driver Initialized.
[    0.450000] Switching to clocksource mxs_timer
[    0.660000] NET: Registered protocol family 2
[    0.670000] TCP established hash table entries: 2048 (order: 2, 16384 bytes)
[    0.670000] TCP bind hash table entries: 2048 (order: 4, 73728 bytes)
[    0.680000] TCP: Hash tables configured (established 2048 bind 2048)
[    0.690000] TCP: reno registered
[    0.690000] UDP hash table entries: 256 (order: 2, 20480 bytes)
[    0.700000] UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)
[    0.710000] NET: Registered protocol family 1
[    0.720000] RPC: Registered named UNIX socket transport module.
[    0.720000] RPC: Registered udp transport module.
[    0.730000] RPC: Registered tcp transport module.
[    0.730000] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.740000] NetWinder Floating Point Emulator V0.97 (double precision)
[    0.830000] NFS: Registering the id_resolver key type
[    0.830000] Key type id_resolver registered
[    0.840000] Key type id_legacy registered
[    0.840000] msgmni has been set to 105
[    0.850000] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.860000] io scheduler noop registered (default)
[    0.870000] uart-pl011 80070000.serial: no DMA platform data
[    0.880000] 8006c000.serial: ttyAPP0 at MMIO 0x8006c000 (irq = 126) is a 8006c000.serial
[    0.890000] mxs-auart 8006c000.serial: Found APPUART 3.0.0
[    0.910000] usbcore: registered new interface driver smsc95xx
[    0.910000] Initializing USB Mass Storage driver...
[    0.920000] usbcore: registered new interface driver usb-storage
[    0.930000] USB Mass Storage support registered.
[    0.930000] imx_usb 80080000.usb: pinctrl get/select failed, err=-19
[    0.940000] ci_hdrc ci_hdrc.0: doesn't support gadget
[    0.950000] ci_hdrc ci_hdrc.0: ChipIdea HDRC EHCI
[    0.950000] ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
[    1.010000] ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
[    1.020000] hub 1-0:1.0: USB hub found
[    1.030000] hub 1-0:1.0: 1 port detected
[    1.040000] mousedev: PS/2 mouse device common for all mice
[    1.050000] stmp3xxx-rtc 8005c000.rtc: rtc core: registered 8005c000.rtc as rtc0
[    1.060000] i2c /dev entries driver
[    1.110000] mxs-mmc 80010000.ssp: initialized
[    1.110000] leds-gpio leds.5: pins are not configured from the driver
[    1.130000] usbcore: registered new interface driver usbhid
[    1.140000] usbhid: USB HID core driver
[    1.150000] TCP: cubic registered
[    1.150000] NET: Registered protocol family 17
[    1.160000] Key type dns_resolver registered
[    1.170000] registered taskstats version 1
[    1.170000] stmp3xxx-rtc 8005c000.rtc: setting system clock to 2013-01-27 17:34:04 UTC (1359308044)
[    1.210000] ALSA device list:
[    1.210000]   No soundcards found.
[    1.220000] Waiting 5sec before mounting root device...
[    1.350000] usb 1-1: new high-speed USB device number 2 using ci_hdrc
[    1.500000] hub 1-1:1.0: USB hub found
[    1.500000] hub 1-1:1.0: 3 ports detected
[    1.790000] usb 1-1.1: new high-speed USB device number 3 using ci_hdrc
[    1.920000] smsc95xx v1.0.4
[    2.020000] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-ci_hdrc.0-1.1, smsc95xx USB 2.0 Ethernet,
6e:f5:0c:ff:fb:64
[    6.240000] VFS: Cannot open root device "mmcblk0p2" or unknown-block(0,0): error -6
[    6.240000] Please append a correct "root=" boot option; here are the available partitions:
[    6.250000] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    6.250000] [<c0013f38>] (unwind_backtrace+0x0/0xf0) from [<c036740c>] (panic+0x98/0x1f4)
[    6.250000] [<c036740c>] (panic+0x98/0x1f4) from [<c04d1a70>] (mount_block_root+0x1a4/0x25c)
[    6.250000] [<c04d1a70>] (mount_block_root+0x1a4/0x25c) from [<c04d1c0c>] (mount_root+0xe4/0x10c)
[    6.250000] [<c04d1c0c>] (mount_root+0xe4/0x10c) from [<c04d1d50>] (prepare_namespace+0x11c/0x180)
[    6.250000] [<c04d1d50>] (prepare_namespace+0x11c/0x180) from [<c0360b68>] (kernel_init+0x168/0x29c)
[    6.250000] [<c0360b68>] (kernel_init+0x168/0x29c) from [<c000e9e8>] (ret_from_fork+0x14/0x2c)


I tried to add a rootdelay=3 to kernel cmdline, but it doesn't solve.

Help is really appreciated.

Carmine Noviello

cnoviello

I discovered that the same problem affects latest ArchlinuxArm for olinuxino.

Niii

Same for 3.8.0-rc3.
mmc is initialized at reboot, but no mmc0 discovered.

Christian Jann

#3
Same here with 3.7.6 and latest Arch Linux image, really annoying because I cannot use the watchdog timer to let it reboot automatically on errors.

Edit: Reboot works if you use U-Boot: http://www.eewiki.net/display/linuxonarm/iMX233-OLinuXino, http://www.jann.cc/2013/02/07/u_boot_for_the_imx233_olinuxino.html.