This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Waiting for root device /dev/mmcblk0p2

Other Parts Discussed in Thread: AM3359, TPS65910, TLC59108

我这边针对AM3359的baseboard,自己做了一块新板,和baseboard外围设备基本上一致,就少了LCD和nand flash模块。然后我用SDK提供的文件制作了一张SD卡用于启动。从AM3359启动时,可以进入到根文件系统。在新做的板子上启动时,卡在这里:Waiting for root device /dev/mmcblk0p2。以下是对应的代码:

if ((ROOT_DEV == 0) && root_wait) {
printk(KERN_INFO "Waiting for root device %s...\n",
saved_root_name);
while (driver_probe_done() != 0 ||
(ROOT_DEV = name_to_dev_t(saved_root_name)) == 0)
msleep(100);
async_synchronize_full();
}
 
我输出了ROOT_DEV的值,是0。到底是哪里出了问题,我需要修改内核吗?
  • sd卡烧好了吗?怎么布局的

  • 烧好了,已经可以在AM335x的开发板上启动根文件系统。SD卡被划分为两个区:  boot(FAT32):MLO,u-boot.img,uImage;    rootfs(ext3):targetNFS。

  • 自做的板上,我用的是micro SD卡,而原来的板上用的是SD卡,这个有个关系吗?在新板中,内核已经能启动了。

  • evm的多分区挂载过程中很容易挂。e2e网站上也有不少人反馈。如果参考它的设计,有可能遗传了那个问题。

    我的evm也是这种情况,把能搜的方法都试遍了,均无效。直接放弃。

  • 启动信息:

    Uncompressing Linux... done, booting the kernel.
    [ 0.000000] Linux version 3.2.0 (jenkins@sdit-build01) (gcc version 4.5.3 20110311 (prerelease) (GCC) ) #1 Thu Jul 26 17:16:27 CDT 2012
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7d
    [ 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 (sgx neon )
    [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 65024
    [ 0.000000] Kernel command line: console=ttyO0,115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext3 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] Memory: 256MB = 256MB total
    [ 0.000000] Memory: 253256k/253256k available, 8888k 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 : 0xbf000000 - 0xc0000000 ( 16 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc059d000 (5716 kB)
    [ 0.000000] .init : 0xc059d000 - 0xc05db000 ( 248 kB)
    [ 0.000000] .data : 0xc05dc000 - 0xc0644198 ( 417 kB)
    [ 0.000000] .bss : 0xc06441bc - 0xc0671024 ( 180 kB)
    [ 0.000000] NR_IRQS:396
    [ 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.000190] Calibrating delay loop... 718.02 BogoMIPS (lpj=3590144)
    [ 0.057157] pid_max: default: 32768 minimum: 301
    [ 0.057285] Security Framework initialized
    [ 0.057388] Mount-cache hash table entries: 512
    [ 0.057768] CPU: Testing write buffer coherency: ok
    [ 0.077715] omap_hwmod: pruss: failed to hardreset
    [ 0.078823] print_constraints: dummy:
    [ 0.079189] NET: Registered protocol family 16
    [ 0.081317] OMAP GPIO hardware version 0.1
    [ 0.083919] omap_mux_init: Add partition: #1: core, flags: 0
    [ 0.086132] omap_i2c.1: alias fck already exists
    [ 0.087018] omap2_mcspi.1: alias fck already exists
    [ 0.087291] omap2_mcspi.2: alias fck already exists
    [ 0.088043] edma.0: alias fck already exists
    [ 0.088066] edma.0: alias fck already exists
    [ 0.088085] edma.0: alias fck already exists
    [ 0.114933] bio: create slab <bio-0> at 0
    [ 0.117163] SCSI subsystem initialized
    [ 0.118873] usbcore: registered new interface driver usbfs
    [ 0.119181] usbcore: registered new interface driver hub
    [ 0.119384] usbcore: registered new device driver usb
    [ 0.119537] musb-ti81xx musb-ti81xx: musb0, board_mode=0x13, plat_mode=0x3
    [ 0.119820] musb-ti81xx musb-ti81xx: musb1, board_mode=0x13, plat_mode=0x1
    [ 0.137227] omap_i2c omap_i2c.1: bus 1 rev2.4.0 at 100 kHz
    [ 0.139140] tps65910 1-002d: JTAGREVNUM 0x0
    [ 0.141518] print_constraints: VRTC:
    [ 0.142976] print_constraints: VIO: at 1800 mV
    [ 0.145285] print_constraints: VDD1: 600 <--> 1500 mV at 1262 mV normal
    [ 0.147587] print_constraints: VDD2: 600 <--> 1500 mV at 1137 mV normal
    [ 0.148593] print_constraints: VDD3: 5000 mV
    [ 0.150005] print_constraints: VDIG1: at 1800 mV
    [ 0.151439] print_constraints: VDIG2: at 1800 mV
    [ 0.152859] print_constraints: VPLL: at 1800 mV
    [ 0.154283] print_constraints: VDAC: at 1800 mV
    [ 0.155703] print_constraints: VAUX1: at 1800 mV
    [ 0.157129] print_constraints: VAUX2: at 3300 mV
    [ 0.158574] print_constraints: VAUX33: at 3300 mV
    [ 0.160004] print_constraints: VMMC: at 3300 mV
    [ 0.160499] tps65910 1-002d: No interrupt support, no core IRQ
    [ 0.161729] Advanced Linux Sound Architecture Driver Version 1.0.24.
    [ 0.162878] Switching to clocksource gp timer
    [ 0.178303] musb-hdrc: version 6.0, ?dma?, otg (peripheral+host)
    [ 0.178486] musb-hdrc musb-hdrc.0: dma type: pio
    [ 0.178796] MUSB0 controller's USBSS revision = 4ea20800
    [ 0.179352] musb-hdrc musb-hdrc.0: USB OTG mode controller at d083c000 using PIO, IRQ 18
    [ 0.179519] musb-hdrc musb-hdrc.1: dma type: pio
    [ 0.179817] MUSB1 controller's USBSS revision = 4ea20800
    [ 0.179941] musb-hdrc musb-hdrc.1: MUSB HDRC host driver
    [ 0.180017] musb-hdrc musb-hdrc.1: new USB bus registered, assigned bus number 1
    [ 0.180157] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [ 0.180172] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [ 0.180186] usb usb1: Product: MUSB HDRC host driver
    [ 0.180197] usb usb1: Manufacturer: Linux 3.2.0 musb-hcd
    [ 0.180208] usb usb1: SerialNumber: musb-hdrc.1
    [ 0.180977] hub 1-0:1.0: USB hub found
    [ 0.181006] hub 1-0:1.0: 1 port detected
    [ 0.181542] musb-hdrc musb-hdrc.1: USB Host mode controller at d083e800 using PIO, IRQ 19
    [ 0.181964] NET: Registered protocol family 2
    [ 0.182156] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.182455] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
    [ 0.182612] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)
    [ 0.182707] TCP: Hash tables configured (established 8192 bind 8192)
    [ 0.182719] TCP reno registered
    [ 0.182732] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.182755] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.183007] NET: Registered protocol family 1
    [ 0.183276] RPC: Registered named UNIX socket transport module.
    [ 0.183290] RPC: Registered udp transport module.
    [ 0.183299] RPC: Registered tcp transport module.
    [ 0.183308] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.183559] NetWinder Floating Point Emulator V0.97 (double precision)
    [ 0.195695] VFS: Disk quotas dquot_6.5.2
    [ 0.195763] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
    [ 0.196311] msgmni has been set to 494
    [ 0.199490] alg: No test for stdrng (krng)
    [ 0.200177] io scheduler noop registered
    [ 0.200191] io scheduler deadline registered
    [ 0.200255] io scheduler cfq registered (default)
    [ 0.201420] Could not set LED4 to fully on
    [ 0.203247] omap_uart.0: ttyO0 at MMIO 0x44e09000 (irq = 72) is a OMAP UART0
    [ 0.836105] console [ttyO0] enabled
    [ 0.840360] omap_uart.1: ttyO1 at MMIO 0x48022000 (irq = 73) is a OMAP UART1
    [ 0.848205] omap_uart.2: ttyO2 at MMIO 0x48024000 (irq = 74) is a OMAP UART2
    [ 0.856007] omap_uart.3: ttyO3 at MMIO 0x481a6000 (irq = 44) is a OMAP UART3
    [ 0.863807] omap_uart.4: ttyO4 at MMIO 0x481a8000 (irq = 45) is a OMAP UART4
    [ 0.871562] omap_uart.5: ttyO5 at MMIO 0x481aa000 (irq = 46) is a OMAP UART5
    [ 0.888767] brd: module loaded
    [ 0.896854] loop: module loaded
    [ 0.900311] i2c-core: driver [tsl2550] using legacy suspend method
    [ 0.906797] i2c-core: driver [tsl2550] using legacy resume method
    [ 0.913224] at24 1-0051: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [ 0.972920] No daughter card found
    [ 0.976515] at24 1-0050: 32768 byte 24c256 EEPROM, writable, 64 bytes/write
    [ 1.043031] AM335X: EVM Config read fail: -110
    [ 1.049345] mtdoops: mtd device (mtddev=name/number) must be supplied
    [ 1.056538] omap2-nand driver initializing
    [ 1.060968] OneNAND driver initializing
    [ 1.066246] CAN device driver interface
    [ 1.070252] CAN bus driver for Bosch D_CAN controller 1.0
    [ 1.076725] usbcore: registered new interface driver zd1201
    [ 1.082719] usbcore: registered new interface driver cdc_ether
    [ 1.088981] usbcore: registered new interface driver cdc_eem
    [ 1.095045] usbcore: registered new interface driver dm9601
    [ 1.100895] cdc_ncm: 04-Aug-2011
    [ 1.104454] usbcore: registered new interface driver cdc_ncm
    [ 1.110353] Initializing USB Mass Storage driver...
    [ 1.115673] usbcore: registered new interface driver usb-storage
    [ 1.121932] USB Mass Storage support registered.
    [ 1.127206] mousedev: PS/2 mouse device common for all mice
    [ 1.134092] omap_rtc omap_rtc: rtc core: registered omap_rtc as rtc0
    [ 1.140901] i2c /dev entries driver
    [ 1.144976] Linux video capture interface: v2.00
    [ 1.150113] usbcore: registered new interface driver uvcvideo
    [ 1.156125] USB Video Class driver (1.1.1)
    [ 1.162448] OMAP Watchdog Timer Rev 0x01: initial timeout 60 sec
    [ 1.171023] cpuidle: using governor ladder
    [ 1.175818] cpuidle: using governor menu
    [ 1.180518] omap4_aes_mod_init: loading AM33X AES driver
    [ 1.186217] omap4-aes omap4-aes: AM33X AES hw accel rev: 3.02
    [ 1.192734] omap4_aes_probe: probe() done
    [ 1.197140] omap4_sham_mod_init: loading AM33X SHA/MD5 driver
    [ 1.203287] omap4-sham omap4-sham: AM33X SHA/MD5 hw accel rev: 4.03
    [ 1.214770] omap4_sham_probe: probe() done
    [ 1.221463] usbcore: registered new interface driver usbhid
    [ 1.227312] usbhid: USB HID core driver
    [ 1.231905] usbcore: registered new interface driver snd-usb-audio
    [ 1.239991] ALSA device list:
    [ 1.243120] No soundcards found.
    [ 1.246661] oprofile: hardware counters not available
    [ 1.251921] oprofile: using timer interrupt.
    [ 1.256404] nf_conntrack version 0.5.0 (3957 buckets, 15828 max)
    [ 1.263185] ip_tables: (C) 2000-2006 Netfilter Core Team
    [ 1.268842] TCP cubic registered
    [ 1.272208] NET: Registered protocol family 17
    [ 1.276874] can: controller area network core (rev 20090105 abi 8)
    [ 1.283422] NET: Registered protocol family 29
    [ 1.288053] can: raw protocol (rev 20090105)
    [ 1.292500] can: broadcast manager protocol (rev 20090105 t)
    [ 1.298447] Registering the dns_resolver key type
    [ 1.303435] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [ 1.311427] ThumbEE CPU extension supported.
    [ 1.315952] mux: Failed to setup hwmod io irq -22
    [ 1.321478] Power Management for AM33XX family
    [ 1.326354] Trying to load am335x-pm-firmware.bin (60 secs timeout)
    [ 1.333021] Copied the M3 firmware to UMEM
    [ 1.337903] sr_init: platform driver register failed
    [ 1.346583] clock: disabling unused clocks to save power
    [ 1.365042] omap_rtc omap_rtc: setting system clock to 2000-01-01 00:00:00 UTC (946684800)
    [ 1.374219] Waiting for root device /dev/mmcblk0p2...

  • 我想大概找到原因了,可能是我的新板上没有daughter board,所以导致某些信息无法读取。不过我是刚接触linux不久,不知道从何下手去修改,希望懂的人能指导一下。

    /*
    * Daughter board Detection.
    * Every board has a ID memory (EEPROM) on board. We probe these devices at
    * machine init, starting from daughter board and ending with baseboard.
    * Assumptions :
    * 1. probe for i2c devices are called in the order they are included in
    * the below struct. Daughter boards eeprom are probed 1st. Baseboard
    * eeprom probe is called last.
    */
    static struct i2c_board_info __initdata am335x_i2c0_boardinfo[] = {
    {
    /* Daughter Board EEPROM */
    I2C_BOARD_INFO("24c256", DAUG_BOARD_I2C_ADDR),
    .platform_data = &am335x_daughter_board_eeprom_info,
    },
    {
    /* Baseboard board EEPROM */
    I2C_BOARD_INFO("24c256", BASEBOARD_I2C_ADDR),
    .platform_data = &am335x_baseboard_eeprom_info,
    },
    {
    I2C_BOARD_INFO("cpld_reg", 0x35),
    },
    {
    I2C_BOARD_INFO("tlc59108", 0x40),
    },
    {
    I2C_BOARD_INFO("tps65910", TPS65910_I2C_ID1),
    .platform_data = &am335x_tps65910_info,
    },
    {
    I2C_BOARD_INFO("tlv320aic3x", 0x1b),
    },
    };

  • 使用TI的am335x_evm时,会从EEPROM中读出对应的配置信息,然后进行比较。如果配置上了,则执行对应的初始化函数。而自己做的板子,自然是匹配不上,所以不能执行SD卡的初始化。所以才会卡在上面的这个地方。

  • 是的,就是这个情况,现在修改代码了吗?板子是否启动了?

  • 在提示“ERROR HEADER”那提示错误后,跳过GOTO OUT,OUT= HULT MAICHINE语句,但是一句初始化的语句不能跳过。

  • 解决了吗?同样的问题。。。我们做了2板 ,前面那一板都没这个问题,新板子就有,硬件上没差别啊。。。。大神们,赐教一下。。。

  • 解决了吗?同样的问题。。。我们做了2板 ,前面那一板都没这个问题,新板子就有,硬件上没差别啊。。。。大神们,赐教一下。。。

  • 你好 我想问下 这个问题是怎么解决的 我也遇到来这个问题?

  • linux启动卡住在类似的位置,

    求解?