AnsweredAssumed Answered

Linux hangs on boot while mounting root file system on SD card

Question asked by Mike-Przybylski on Feb 23, 2013
Latest reply on Apr 2, 2013 by larsc

Hello,

 

The recent updates to the analog devices linux repository seem to have broken the SD/MMC drivers for the ZED Board.  (Xilinx Zynq).

 

I am using the xcomm_zynq branch and the most recent commit was:

 

d7e18dfa171e5b6eab02ba22498822f8f09d3f89

 

I am also using Xilinx's latest version of U-Boot, (2012.10).  Since I had to make a few changes to the zync_xcomm_adv7511_defconfig, I am attaching a copy of my kernel config.

 

I used  the zynq-zed-adv7511.dts file to generate my device tree.

 

I am really new to linux driver troubleshooting and kernel hacking, but I would love some pointers on how to understand and fix this problem.

 

Best regards

Mike P.

 

Console from startup to boot hang:

U-Boot 2012.10 (Feb 07 2013 - 00:21:48)

 

 

DRAM:  512 MiB

MMC:   SDHCI: 0

SF: Detected S25FL256S with page size 64 KiB, total 32 MiB

SF: Warning - Only lower 16MB is accessible in 3 byte addressing mode

In:    serial

Out:   serial

Err:   serial

Net:   zynq_gem

Hit any key to stop autoboot:  0

copy kernel from sd to ram...

Device: SDHCI

Manufacturer ID: 3

OEM: 5344

Name: SU32G

Tran Speed: 50000000

Rd Block Len: 512

SD version 2.0

High Capacity: Yes

Capacity: 29.7 GiB

Bus Width: 4-bit

reading uImage

 

 

2737632 bytes read

reading devicetree.dtb

 

 

6920 bytes read

## Booting kernel from Legacy Image at 03000000 ...

   Image Name:   Linux-3.6.0-02477-gd7e18df

   Image Type:   ARM Linux Kernel Image (uncompressed)

   Data Size:    2737568 Bytes = 2.6 MiB

   Load Address: 00008000

   Entry Point:  00008000

   Verifying Checksum ... OK

## Flattened Device Tree blob at 02a00000

   Booting using the fdt blob at 0x02a00000

   Loading Kernel Image ... OK

OK

   Loading Device Tree to 1fb50000, end 1fb54b07 ... OK

 

 

Starting kernel ...

 

 

Uncompressing Linux... done, booting the kernel.

Booting Linux on physical CPU 0

Linux version 3.6.0-02477-gd7e18df (mikep@debbie-does-linus) (gcc version 4.6.3 (Sourcery CodeBench Lite 2012.03-79) ) #7 SMP PREEMPT Fri Feb 22 18:54:47 PST 2013

CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d

CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

Machine: Xilinx Zynq Platform, model: Xilinx Zynq ZED

bootconsole [earlycon0] enabled

cma: CMA: reserved 40 MiB at 1d000000

Memory policy: ECC disabled, Data cache writealloc

PERCPU: Embedded 7 pages/cpu @c0e33000 s7872 r8192 d12608 u32768

Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048

Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait

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: 512MB = 512MB total

Memory: 468220k/468220k available, 56068k reserved, 0K highmem

Virtual kernel memory layout:

    vector  : 0xffff0000 - 0xffff1000   (   4 kB)

    fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)

    vmalloc : 0xe0800000 - 0xff000000   ( 488 MB)

    lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)

    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)

    modules : 0xbf000000 - 0xbfe00000   (  14 MB)

      .text : 0xc0008000 - 0xc04ab1bc   (4749 kB)

      .init : 0xc04ac000 - 0xc04d3ec0   ( 160 kB)

      .data : 0xc04d4000 - 0xc0521720   ( 310 kB)

       .bss : 0xc0521744 - 0xc0a28550   (5148 kB)

Preemptible hierarchical RCU implementation.

        RCU lockdep checking is enabled.

        Dump stacks of tasks blocking RCU-preempt GP.

        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.

NR_IRQS:512

MIO pin 11 not assigned(00001760)

xslcr mapped to e0802000

Zynq clock init

timer #0 at e0804000, irq=43

sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms

Console: colour dummy device 80x30

Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar

... MAX_LOCKDEP_SUBCLASSES:  8

... MAX_LOCK_DEPTH:          48

... MAX_LOCKDEP_KEYS:        8191

... CLASSHASH_SIZE:          4096

... MAX_LOCKDEP_ENTRIES:     16384

... MAX_LOCKDEP_CHAINS:      32768

... CHAINHASH_SIZE:          16384

memory used by lock dependency info: 3695 kB

per task-struct memory footprint: 1152 bytes

Calibrating delay loop... 1332.01 BogoMIPS (lpj=6660096)

pid_max: default: 32768 minimum: 301

Mount-cache hash table entries: 512

CPU: Testing write buffer coherency: ok

CPU0: thread -1, cpu 0, socket 0, mpidr 80000000

hw perfevents: enabled with ARMv7 Cortex-A9 PMU driver, 7 counters available

Setting up static identity map for 0x34ed50 - 0x34ed84

L310 cache controller enabled

l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72360000, Cache size: 524288 B

CPU1: Booted secondary processor

CPU1: thread -1, cpu 1, socket 0, mpidr 80000001

Brought up 2 CPUs

SMP: Total of 2 processors activated (2664.03 BogoMIPS).

devtmpfs: initialized

NET: Registered protocol family 16

DMA: preallocated 256 KiB pool for atomic coherent allocations

xgpiops e000a000.gpio: gpio at 0xe000a000 mapped to 0xe080c000

hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.

hw-breakpoint: maximum watchpoint size is 4 bytes.

bio: create slab <bio-0> at 0

SCSI subsystem initialized

usbcore: registered new interface driver usbfs

usbcore: registered new interface driver hub

usbcore: registered new device driver usb

Advanced Linux Sound Architecture Driver Version 1.0.25.

Switching to clocksource xttcps_clocksource

NET: Registered protocol family 2

TCP established hash table entries: 16384 (order: 5, 131072 bytes)

TCP bind hash table entries: 16384 (order: 7, 589824 bytes)

TCP: Hash tables configured (established 16384 bind 16384)

TCP: reno registered

UDP hash table entries: 256 (order: 2, 20480 bytes)

UDP-Lite hash table entries: 256 (order: 2, 20480 bytes)

NET: Registered protocol family 1

msgmni has been set to 994

io scheduler noop registered

io scheduler deadline registered

io scheduler cfq registered (default)

xuartps e0001000.uart: failed to get alias id, errno -19

e000�console [ttyPS0] enabled, bootconsole disabled

console [ttyPS0] enabled, bootconsole disabled

xdevcfg f8007000.devcfg: ioremap f8007000 to e0812000 with size 1000

[drm] Initialized drm 1.1.0 20060810

platform 6c000000.axi_hdmi: Driver axi-hdmi requests probe deferral

brd: module loaded

loop: module loaded

xqspips e000d000.spi: master is unqueued, this is deprecated

xqspips e000d000.spi: at 0xE000D000 mapped to 0xE0814000, irq=51

libphy: XEMACPS mii bus: probed

xemacps e000b000.eth: pdev->id -1, baseaddr 0xe000b000, irq 54

ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver

ULPI transceiver vendor/product ID 0x0451/0x1507

Found TI TUSB1210 ULPI transceiver.

ULPI integrity check: passed.

xusbps-ehci xusbps-ehci.0: Xilinx PS USB EHCI Host Controller

xusbps-ehci xusbps-ehci.0: new USB bus registered, assigned bus number 1

xusbps-ehci xusbps-ehci.0: irq 53, io mem 0x00000000

xusbps-ehci xusbps-ehci.0: USB 2.0 started, EHCI 1.00

hub 1-0:1.0: USB hub found

hub 1-0:1.0: 1 port detected

Initializing USB Mass Storage driver...

usbcore: registered new interface driver usb-storage

USB Mass Storage support registered.

mousedev: PS/2 mouse device common for all mice

i2c /dev entries driver

sdhci: Secure Digital Host Controller Interface driver

sdhci: Copyright(c) Pierre Ossman

sdhci-pltfm: SDHCI platform and OF driver helper

mmc0: Invalid maximum block size, assuming 512 bytes

mmc0: mmc_rescan_try_freq: trying to init card at 400000 Hz

mmc0: SDHCI controller on e0100000.sdhci [e0100000.sdhci] using ADMA

usbcore: registered new interface driver usbhid

usbhid: USB HID core driver

adv7511-hdmi-snd adv7511_hdmi_snd.4: CODEC adv7511.2-0039 not registered

platform adv7511_hdmi_snd.4: Driver adv7511-hdmi-snd requests probe deferral

mmc0: new high speed SDHC card at address e624

TCP: cubic registered

NET: Registered protocol family 17

VFP support v0.3: mmcblk0: mmc0:e624 SU32G 29.7 GiB

implementor 41 architecture 3 part 30 variant 9 rev 4

Registering SWP/SWPB emulation handler

drivers/rtc/hctosys.c: unable to open rtc device (rtc0)

No connectors reported connected with modes

[drm] Cannot find any crtc or sizes - going 1024x768

ALSA device list:

  No soundcards found.

�Console: switching to colour frame buffer device 128x48

fb0:  frame buffer device

drm: registered panic notifier

[drm] Initialized axi_hdmi_drm 1.0.0 20120930 on minor 0

adv7511-hdmi-snd adv7511_hdmi_snd.4: CODEC adv7511.2-0039 not registered

platform adv7511_hdmi_snd.4: Driver adv7511-hdmi-snd requests probe deferral

mmc0: Timeout waiting for hardware interrupt.

mmcblk0: error -110 transferring data, sector 90376, nr 264, cmd response 0x900, card status 0xb00

mmcblk0: retrying using single block read

mmc0: Timeout waiting for hardware interrupt.

mmcblk0: error -110 transferring data, sector 90432, nr 208, cmd response 0x900, card status 0x0

end_request: I/O error, dev mmcblk0, sector 90432

mmc0: Timeout waiting for hardware interrupt.

mmcblk0: error -110 transferring data, sector 90433, nr 207, cmd response 0x900, card status 0x0

end_request: I/O error, dev mmcblk0, sector 90433

INFO: task swapper/0:1 blocked for more than 20 seconds.

"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.

swapper/0       D c034d62c     0     1      0 0x00000000

[<c034d62c>] (__schedule+0x540/0x658) from [<c034d938>] (io_schedule+0x70/0xa0)

[<c034d938>] (io_schedule+0x70/0xa0) from [<c00d4e40>] (sleep_on_buffer+0x8/0x10)

[<c00d4e40>] (sleep_on_buffer+0x8/0x10) from [<c034b28c>] (__wait_on_bit+0x54/0x9c)

[<c034b28c>] (__wait_on_bit+0x54/0x9c) from [<c034b34c>] (out_of_line_wait_on_bit+0x78/0x84)

[<c034b34c>] (out_of_line_wait_on_bit+0x78/0x84) from [<c013706c>] (journal_get_superblock+0x50/0x2a8)

[<c013706c>] (journal_get_superblock+0x50/0x2a8) from [<c01372d0>] (load_superblock+0xc/0x58)

[<c01372d0>] (load_superblock+0xc/0x58) from [<c013733c>] (jbd2_journal_wipe+0x20/0x94)

[<c013733c>] (jbd2_journal_wipe+0x20/0x94) from [<c0116c4c>] (ext4_fill_super+0x1cc8/0x26c4)

[<c0116c4c>] (ext4_fill_super+0x1cc8/0x26c4) from [<c00af7d4>] (mount_bdev+0x120/0x19c)

[<c00af7d4>] (mount_bdev+0x120/0x19c) from [<c011163c>] (ext4_mount+0x10/0x18)

[<c011163c>] (ext4_mount+0x10/0x18) from [<c00b00b0>] (mount_fs+0x10/0xb0)

[<c00b00b0>] (mount_fs+0x10/0xb0) from [<c00c7e80>] (vfs_kern_mount+0x4c/0xc0)

[<c00c7e80>] (vfs_kern_mount+0x4c/0xc0) from [<c00c831c>] (do_kern_mount+0x34/0xd0)

[<c00c831c>] (do_kern_mount+0x34/0xd0) from [<c00c9df0>] (do_mount+0x628/0x6a8)

[<c00c9df0>] (do_mount+0x628/0x6a8) from [<c00c9ef4>] (sys_mount+0x84/0xc4)

[<c00c9ef4>] (sys_mount+0x84/0xc4) from [<c04acb94>] (mount_block_root+0xec/0x288)

[<c04acb94>] (mount_block_root+0xec/0x288) from [<c04acfd4>] (prepare_namespace+0x160/0x1c0)

[<c04acfd4>] (prepare_namespace+0x160/0x1c0) from [<c04ac964>] (kernel_init+0x178/0x1b8)

[<c04ac964>] (kernel_init+0x178/0x1b8) from [<c000e388>] (kernel_thread_exit+0x0/0x8)

1 lock held by swapper/0/1:

#0:  (&type->s_umount_key#12/1){+.+.+.}, at: [<c00af3e4>] sget+0x29c/0x4d4

mmc0: Timeout waiting for hardware interrupt.

mmcblk0: error -110 transferring data, sector 90434, nr 206, cmd response 0x900, card status 0x0

end_request: I/O error, dev mmcblk0, sector 90434

mmc0: Timeout waiting for hardware interrupt.

mmcblk0: error -110 transferring data, sector 90435, nr 205, cmd response 0x900, card status 0x0

end_request: I/O error, dev mmcblk0, sector 90435

 

Outcomes