• Join
  • Sign In with my.TI Login
Texas Instruments
  • Products
  • Applications
  • Tools & Software
  • Support & Community
  • Sample & Buy
  • About TI
Sample & Purchase Cart Sample & Purchase Cart
  • Search
  • Advanced
TI E2E™ Community
  • Support Forums
  • Blogs
  • Groups
  • Videos
  • 简体中文
  • More ...
TI Home » TI E2E Community » Support Forums » ARM® Processors » Sitara™ ARM® » AM3x Sitara ARM Processors Forum » Linux boot hang on mmc read
Share
Sitara™ ARM®
  • Forum
  • Announcements
Options
  • Subscribe via RSS

Linux boot hang on mmc read

Linux boot hang on mmc read

This question is not answered
Morgan Jones
Posted by Morgan Jones
on Dec 28 2012 12:17 PM
Prodigy80 points

I have a beaglebone derived custom board that hangs once it gets to looking for the rootfs off the mmc:

Uncompressing Linux... done, booting the kernel.
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.2.16 (koen@dominion) (gcc version 4.5.4 20120305 (prerelease) (GCC) ) #1 Tue May 8 08:46:05 CEST 2012
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=50c53c7d
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: am335xevm
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] AM335X ES1.0 (neon )
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyO0,115200n8 run_hardware_tests root=/dev/mmcblk0p2 ro rootfstype=ext4 rootwait ip=none
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] allocated 1048576 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] Memory: 256MB = 256MB total
[    0.000000] Memory: 253712k/253712k available, 8432k 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 : 0xd0800000 - 0xff000000   ( 744 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xd0000000   ( 256 MB)
[    0.000000]     modules : 0xbf800000 - 0xc0000000   (   8 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0431000   (4260 kB)
[    0.000000]       .init : 0xc0431000 - 0xc0468000   ( 220 kB)
[    0.000000]       .data : 0xc0468000 - 0xc04b8580   ( 322 kB)
[    0.000000]        .bss : 0xc04b85a4 - 0xc04ffa0c   ( 286 kB)
[    0.000000] NR_IRQS:410 nr_irqs:410 410
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[    0.000000] Total of 128 interrupts on 1 active controller
[    0.000000] OMAP clockevent source: GPTIMER2 at 24000000 Hz
[    0.000000] omap_dm_timer_switch_src: Switching to HW default clocksource(sys_clkin_ck) for timer1, this may impact timekeeping in low power state
[    0.000000] OMAP clocksource: GPTIMER1 at 24000000 Hz
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms
[    0.000000] Console: colour dummy device 80x30
[    0.000219] Calibrating delay loop... 498.89 BogoMIPS (lpj=2494464)
[    0.056305] pid_max: default: 32768 minimum: 301
[    0.056474] Security Framework initialized
[    0.056551] Mount-cache hash table entries: 512
[    0.056984] Initializing cgroup subsys cpuacct
[    0.057029] Initializing cgroup subsys memory
[    0.057074] Initializing cgroup subsys devices
[    0.057089] Initializing cgroup subsys freezer
[    0.057103] Initializing cgroup subsys blkio
[    0.057130] Initializing cgroup subsys perf_event
[    0.057226] CPU: Testing write buffer coherency: ok
[    0.058314] devtmpfs: initialized
[    0.078858] omap_hwmod: gfx: failed to hardreset
[    0.095575] omap_hwmod: pruss: failed to hardreset
[    0.096144] print_constraints: dummy: 
[    0.096445] NET: Registered protocol family 16
[    0.097660] OMAP GPIO hardware version 0.1
[    0.098902] omap_mux_init: Add partition: #1: core, flags: 0
[    0.100349]  omap_i2c.1: alias fck already exists
[    0.100756] hw-breakpoint: debug architecture 0x4 unsupported.
[    0.100940]  omap2_mcspi.1: alias fck already exists
[    0.101076]  omap2_mcspi.2: alias fck already exists
[    0.101260]  edma.0: alias fck already exists
[    0.101287]  edma.0: alias fck already exists
[    0.101312]  edma.0: alias fck already exists
[    0.111516] bio: create slab <bio-0> at 0
[    0.112817] SCSI subsystem initialized
[    0.113772] usbcore: registered new interface driver usbfs
[    0.113918] usbcore: registered new interface driver hub
[    0.114106] usbcore: registered new device driver usb
[    0.114250] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
[    0.114402] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
[    0.114950] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
[    0.116166] Advanced Linux Sound Architecture Driver Version 1.0.24.
[    0.116850] Switching to clocksource gp timer
[    0.129704] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
[    0.129896] musb-hdrc musb-hdrc.0: dma type: pio
[    0.130584] musb-hdrc musb-hdrc.0: USB OTG mode controller at d081c000 using PIO, IRQ 18
[    0.130886] musb-hdrc musb-hdrc.1: dma type: pio
[    0.131181] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
[    0.131264] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
[    0.131391] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    0.131413] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    0.131433] usb usb1: Product: MUSB HDRC host driver
[    0.131448] usb usb1: Manufacturer: Linux 3.2.16 musb-hcd
[    0.131464] usb usb1: SerialNumber: musb-hdrc.1
[    0.132190] hub 1-0:1.0: USB hub found
[    0.132223] hub 1-0:1.0: 1 port detected
[    0.132752] musb-hdrc musb-hdrc.1: USB Host mode controller at d081e800 using PIO, IRQ 19
[    0.133198] NET: Registered protocol family 2
[    0.133419] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.133891] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.134115] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
[    0.134249] TCP: Hash tables configured (established 8192 bind 8192)
[    0.134266] TCP reno registered
[    0.134285] UDP hash table entries: 256 (order: 0, 4096 bytes)
[    0.134318] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[    0.134630] NET: Registered protocol family 1
[    0.135020] RPC: Registered named UNIX socket transport module.
[    0.135038] RPC: Registered udp transport module.
[    0.135051] RPC: Registered tcp transport module.
[    0.135064] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.137095] audit: initializing netlink socket (disabled)
[    0.137163] type=2000 audit(0.140:1): initialized
[    0.148281] VFS: Disk quotas dquot_6.5.2
[    0.148361] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.149686] msgmni has been set to 495
[    0.150805] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    0.150925] io scheduler noop registered
[    0.150941] io scheduler deadline registered
[    0.151012] io scheduler cfq registered (default)
[    0.152054] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.153622] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
[    0.776094] console [ttyO0] enabled
[    0.780382] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
[    0.788211] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
[    0.795993] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
[    0.803803] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
[    0.811655] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
[    0.820736] brd: module loaded
[    0.828456] loop: module loaded
[    0.831823] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[    0.896903] No daughter card found
[    0.900505] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
[    0.966906] AM335X: EVM Config read fail: -110
[    0.972216] SCSI Media Changer driver v0.25 
[    0.977099] CAN device driver interface
[    0.981105] CAN bus driver for Bosch D_CAN controller 1.0
[    0.987216] usbcore: registered new interface driver catc
[    0.992856] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver
[    0.999139] usbcore: registered new interface driver kaweth
[    1.004961] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver
[    1.012874] usbcore: registered new interface driver pegasus
[    1.018805] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver
[    1.026054] usbcore: registered new interface driver rtl8150
[    1.032077] usbcore: registered new interface driver asix
[    1.037833] usbcore: registered new interface driver cdc_ether
[    1.043993] usbcore: registered new interface driver dm9601
[    1.049907] usbcore: registered new interface driver cdc_subset
[    1.056155] usbcore: registered new interface driver zaurus
[    1.062038] cdc_ncm: 04-Aug-2011
[    1.065486] usbcore: registered new interface driver cdc_ncm
[    1.071548] usbcore: registered new interface driver cdc_acm
[    1.077482] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[    1.085940] usbcore: registered new interface driver usblp
[    1.091759] usbcore: registered new interface driver cdc_wdm
[    1.097775] usbcore: registered new interface driver uas
[    1.103322] Initializing USB Mass Storage driver...
[    1.108575] usbcore: registered new interface driver usb-storage
[    1.114849] USB Mass Storage support registered.
[    1.119812] usbcore: registered new interface driver libusual
[    1.126463] mousedev: PS/2 mouse device common for all mice
[    1.133394] omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
[    1.140257] i2c /dev entries driver
[    1.144198] Linux media interface: v0.10
[    1.148507] lirc_dev: IR Remote Control driver registered, major 249 
[    1.155236] IR NEC protocol handler initialized
[    1.159990] IR RC5(x) protocol handler initialized
[    1.164993] IR RC6 protocol handler initialized
[    1.169737] IR JVC protocol handler initialized
[    1.174466] IR Sony protocol handler initialized
[    1.179300] IR RC5 (streamzap) protocol handler initialized
[    1.185118] IR MCE Keyboard/mouse protocol handler initialized
[    1.191223] IR LIRC bridge handler initialized
[    1.195861] Linux video capture interface: v2.00
[    1.200859] usbcore: registered new interface driver uvcvideo
[    1.206860] USB Video Class driver (1.1.1)
[    1.211232] Driver for 1-wire Dallas network protocol.
[    1.217747] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
[    1.224263] _regulator_get: deviceless supply vdd_mpu not found, using dummy regulator
[    1.232826] cpuidle: using governor ladder
[    1.237331] cpuidle: using governor menu
[    1.242122] usbcore: registered new interface driver usbhid
[    1.247972] usbhid: USB HID core driver
[    1.252864] usbcore: registered new interface driver snd-usb-audio
[    1.260256] ALSA device list:
[    1.263368]   No soundcards found.
[    1.267354] TCP cubic registered
[    1.270728] Initializing XFRM netlink socket
[    1.275222] NET: Registered protocol family 17
[    1.279949] NET: Registered protocol family 15
[    1.284590] can: controller area network core (rev 20090105 abi 8)
[    1.291169] NET: Registered protocol family 29
[    1.295813] can: raw protocol (rev 20090105)
[    1.300330] Registering the dns_resolver key type
[    1.305292] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[    1.313328] ThumbEE CPU extension supported.
[    1.317872] mux: Failed to setup hwmod io irq -22
[    1.323616] Power Management for AM33XX family
[    1.328480] Trying to load am335x-pm-firmware.bin (60 secs timeout)
[    1.335139] Copied the M3 firmware to UMEM
[    1.339463] omap_hwmod: wkup_m3: wkup_m3: hwmod data error: OMAP4 does not support st_shift
[    1.353670] registered taskstats version 1
[    1.358437] omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
[    1.367902] Waiting for root device /dev/mmcblk0p2...
I've seen a few other posts that say that this can happen if the CD line for the card isn't asserted. I've checked ours, and it is asserted and compares identically with the BeagleBone.
This is booting off the MMC initially - ie, MLO and uboot are both coming off the MMC, and uboot can see the mmc just fine.
Any ideas as to what can cause this hang?
Thanks!
Morgan
morgan@mojolabs.net
Report Abuse
  • Reply
You have posted to a forum that requires a moderator to approve posts before they are publicly available.
All Replies
  • Renjith Thomas
    Posted by Renjith Thomas
    on Dec 31 2012 13:42 PM
    Guru23890 points

    Morgan,

    As you've read in other forums, your card is not getting detected. See whether the GPIO that you've used as the card detect line is added properly in your kernel code. Also see whether MMC driver is enabled or not. 

    -Renjith | www.pathpartnertech.com | Verify the answer if you think your query is resolved

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • raja V
    Posted by raja V
    on Dec 31 2012 17:01 PM
    Intellectual330 points

    Hi,

    Are you seeing the above scenario on Evaluation board or custom board.

    If custom board with MMC driver enabled, you are right its CD pin is not getting detected. You will not see this problem with MLO and u-boot because boot loader does not look for this pin.

     

    I have seen this problem couple of times on few of our custom boards and most of the times it was soldering issue or chasi problem.

    Try checking the CD pin transition on connecting and look for whether all the pins are soldered on SDcard Chasi.

     

    Regards,

    Raja.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Morgan Jones
    Posted by Morgan Jones
    on Jan 02 2013 11:49 AM
    Prodigy80 points

    @Raja - We're seeing it on our custom board, and yep, we've verified the CD pin is correct, so I'm confused as to why the kernel wouldn't see it correctly.

    @Renjith - it turns out we're using a build of OE that runs on the beaglebone, and have verified the card running on the beaglebone. So, we're thinking that the mmc driver and pin detect should work identically - we've used the same pins. The CD line goes to the same pin as the beaglebone, ball C15.

    I'm going to double-check this again, but at this point it seems that the card detect pin is in the right state. Have you ever seen anything else cause this hang besides the CD line being incorrect?

    Thanks!

    Morgan

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • raja V
    Posted by raja V
    on Jan 05 2013 09:39 AM
    Intellectual330 points

    Hi Morgan,

    Have you checked the state of the Write protect pin? Check the state change when SD card is locked and unlocked. I have seen this scenario once.

    Thanks

    Raja.

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • RAJEEV BATTU
    Posted by RAJEEV BATTU
    on Jan 08 2013 23:41 PM
    Intellectual595 points

    Hi Morgan,

    I too faced the similar problem in our board i initialized setup_starterkit(); & am33xx_sr_init(); in am335x_evm_setup.

    In your board as you don't have EEPROM it gets failed to initialize your board configuration in eeprom
    As from your logs it is clear that beaglebome setup is not invoked.
    [    0.831823] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [    0.896903] No daughter card found
    [    0.900505] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [    0.966906] AM335X: EVM Config read fail: -110

      Make sure that in am335x_evm_setup function call

    setup_beaglebone();

    am33xx_sr_init();

            if (ret != sizeof(am335x_mac_addr)) {
            setup_beaglebone();   
            am33xx_sr_init();   

            pr_warning("AM335X:AFTER setup_starterkit & am33xx_sr_init ----------------> ");
            //pr_warning("AM335X: EVM Config read fail: %d\n", ret);
                    return;
            }
    If you get following in debug msg you are done.

    The board is a AM335x Beaglebone.


    Rajeev Battu.

    AM335x Board bring up.
    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
  • Morgan Jones
    Posted by Morgan Jones
    on Jan 09 2013 13:23 PM
    Prodigy80 points

    Thank you very much for that idea Rajeev, that put us on the right track.

    Here's what we ended up with that works:

    static struct evm_dev_cfg beaglebone_dev_cfg[] = {
    //{tps65217_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    //{i2c2_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    //{mii1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {usb0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {mmc0_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    //{usb1_init, DEV_ON_BASEBOARD, PROFILE_NONE},
    {NULL, 0, 0},
    };

    if (ret != sizeof(am335x_mac_addr)) {
    //pr_warning("AM335X: EVM Config read fail: %d\n", ret);

    pr_warning("AM335X:BEFORE setup_starterkit & am33xx_cpsw_init ----------------> ");
    setup_beaglebone();
    //am33xx_cpsw_init(gigabit_enable);
    pr_warning("AM335X:AFTER setup_starterkit & am33xx_cpsw_init ----------------> ");

    return;
    }

    Adding in the mmc0_init into the beaglebone_dev_config and taking the others out ended up being the other trick. With the others in, we saw a kernel panic, but it still hung on mounting the root fs. Putting in the mmc line got us fully booted.

    Thanks again, that was a huge help!

    Morgan

    Report Abuse
    • Reply
    You have posted to a forum that requires a moderator to approve posts before they are publicly available.
TI E2E™ Community
  • Support Forums
  • Blogs
  • Videos
  • Groups
  • Site Support & Feedback
  • Settings
TI E2E™ Community Groups
  • TI University Program
  • Make the Switch
  • Microcontroller Projects
  • Motor Drive & Control
Other Communities
  • Deyisupport
  • Designsomething.org
  • beagleboard.org
  • TI on Element 14
  • TI on TechXchangeSM
Other Technical & Support Resources
  • WEBENCH® Design Center
  • Product Information Centers
  • Technical Documents
  • TI Design Network
  • TI Technical Articles
  • TI Training

All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with respect to these materials. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.

Content on this site may contain or be subject to specific guidelines or limitations on use. All postings and use of the content on this site are subject to the Terms of Use of the site; third parties using this content agree to abide by any limitations or guidelines and to comply with the Terms of Use of this site. TI, its suppliers and providers of content reserve the right to make corrections, deletions, modifications, enhancements, improvements and other changes to the content and materials, its products, programs and services at any time or to move or discontinue any content, products, programs, or services without notice.

Follow Us Texas Instruments on Facebook Texas Instruments on Twitter Texas Instruments on LinkedIn Texas Instruments on Google+
TI Worldwide | Contact Us | my.TI Login | Site Map | Corporate Citizenship | mobile m.ti.com (Mobile Version)

TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs and
embedded processors, along with software, tools and the industry’s largest sales/support staff.

© Copyright 1995-2013 Texas Instruments Incorporated. All rights reserved.
Trademarks | Privacy Policy | Terms of Use