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.

Linux/AM3352: Waiting for root device /dev/mmcblk0p2

Part Number: AM3352

Tool/software: Linux

Hi, I am using the lastest TI SDK, when I boot the kernel , and I met the " Waiting for root device /dev/mmcblk0p2" , please help me to find the reason, thanks.

Platform : AM3352 

and I use  the linx3.14 kernel , and everything works well, but I change the kernel to linux4.14 , then I met " Waiting for root device /dev/mmcblk0p2"

I have checked the dts configuration, and here is the boot log:

[ 0.000000] Booting Linux on physical CPU 0x0
[ 0.000000] Linux version 4.14.79-gbde58ab01e (user@ubuntu) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03)) #6 PREEMPT Sun Feb 17 23:27:23 PST 2019
[ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
[ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[ 0.000000] OF: fdt: Machine model: TI AM335x Advantech ECU1251
[ 0.000000] Memory policy: Data cache writeback
[ 0.000000] efi: Getting EFI parameters from FDT:
[ 0.000000] efi: UEFI not found.
[ 0.000000] cma: Reserved 48 MiB at 0x8c800000
[ 0.000000] CPU: All CPU(s) started in SVC mode.
[ 0.000000] AM335X ES2.1 (sgx neon)
[ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 64960
[ 0.000000] Kernel command line: console=ttyO0,115200n8 coherent_pool=2M root=/dev/mmcblk0p2 ro 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: 197280K/262144K available (8192K kernel code, 321K rwdata, 2508K rodata, 1024K init, 267K bss, 15712K reserved, 49152K cma-reserved, 0K highmem)
[ 0.000000] Virtual kernel memory layout:
[ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
[ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
[ 0.000000] vmalloc : 0xd0800000 - 0xff800000 ( 752 MB)
[ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
[ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
[ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
[ 0.000000] .text : 0xc0008000 - 0xc0900000 (9184 kB)
[ 0.000000] .init : 0xc0c00000 - 0xc0d00000 (1024 kB)
[ 0.000000] .data : 0xc0d00000 - 0xc0d50678 ( 322 kB)
[ 0.000000] .bss : 0xc0d50678 - 0xc0d9359c ( 268 kB)
[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[ 0.000000] Preemptible hierarchical RCU implementation.
[ 0.000000] Tasks RCU enabled.
[ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
[ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
[ 0.000015] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[ 0.000037] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[ 0.000049] OMAP clocksource: timer1 at 24000000 Hz
[ 0.000211] timer_probe: no matching timers found
[ 0.000414] Console: colour dummy device 80x30
[ 0.000440] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
[ 0.000446] This ensures that you still see kernel messages. Please
[ 0.000452] update your kernel commandline.
[ 0.000483] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)
[ 0.089096] pid_max: default: 32768 minimum: 301
[ 0.089289] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.089303] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[ 0.090133] CPU: Testing write buffer coherency: ok
[ 0.090198] CPU0: Spectre v2: using BPIALL workaround
[ 0.090903] Setting up static identity map for 0x80100000 - 0x80100060
[ 0.091063] Hierarchical SRCU implementation.
[ 0.091415] EFI services will not be available.
[ 0.092848] devtmpfs: initialized
[ 0.100966] random: get_random_u32 called from bucket_table_alloc+0x9c/0x1ac with crng_init=0
[ 0.101500] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
[ 0.101810] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[ 0.101835] futex hash table entries: 256 (order: -1, 3072 bytes)
[ 0.105513] pinctrl core: initialized pinctrl subsystem
[ 0.106268] DMI not present or invalid.
[ 0.106683] NET: Registered protocol family 16
[ 0.111338] DMA: preallocated 2048 KiB pool for atomic coherent allocations
[ 0.125069] omap_hwmod: debugss: _wait_target_disable failed
[ 0.178215] cpuidle: using governor ladder
[ 0.178252] cpuidle: using governor menu
[ 0.183024] OMAP GPIO hardware version 0.1
[ 0.191807] omap-gpmc 50000000.gpmc: GPMC revision 6.0
[ 0.193963] No ATAGs?
[ 0.193978] hw-breakpoint: debug architecture 0x4 unsupported.
[ 0.208017] edma 49000000.edma: TI EDMA DMA engine driver
[ 0.211350] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
[ 0.211490] media: Linux media interface: v0.10
[ 0.211541] Linux video capture interface: v2.00
[ 0.211648] pps_core: LinuxPPS API ver. 1 registered
[ 0.211656] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[ 0.211679] PTP clock support registered
[ 0.211715] EDAC MC: Ver: 3.0.0
[ 0.212158] dmi: Firmware registration failed.
[ 0.212603] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
[ 0.212939] Advanced Linux Sound Architecture Driver Initialized.
[ 0.214210] clocksource: Switched to clocksource timer1
[ 0.223103] NET: Registered protocol family 2
[ 0.223886] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.223921] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
[ 0.223949] TCP: Hash tables configured (established 2048 bind 2048)
[ 0.224050] UDP hash table entries: 256 (order: 0, 4096 bytes)
[ 0.224071] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
[ 0.224313] NET: Registered protocol family 1
[ 0.224775] RPC: Registered named UNIX socket transport module.
[ 0.224790] RPC: Registered udp transport module.
[ 0.224798] RPC: Registered tcp transport module.
[ 0.224804] RPC: Registered tcp NFSv4.1 backchannel transport module.
[ 0.225736] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[ 0.225864] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
[ 0.227395] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[ 0.231944] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[ 0.232834] NFS: Registering the id_resolver key type
[ 0.232889] Key type id_resolver registered
[ 0.232898] Key type id_legacy registered
[ 0.232950] ntfs: driver 2.1.32 [Flags: R/O].
[ 0.235275] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[ 0.235298] io scheduler noop registered
[ 0.235307] io scheduler deadline registered
[ 0.235539] io scheduler cfq registered (default)
[ 0.235550] io scheduler mq-deadline registered
[ 0.235558] io scheduler kyber registered
[ 0.236833] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
[ 0.290976] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[ 0.294405] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
[ 0.927150] console [ttyS0] enabled
[ 0.931795] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a 8250
[ 0.941641] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 32, base_baud = 3000000) is a 8250
[ 0.951427] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 33, base_baud = 3000000) is a 8250
[ 0.961220] 481a8000.serial: ttyS4 at MMIO 0x481a8000 (irq = 34, base_baud = 3000000) is a 8250
[ 0.971797] omap_rng 48310000.rng: Random Number Generator ver. 20
[ 0.990694] brd: module loaded
[ 1.000775] loop: module loaded
[ 1.006596] libphy: Fixed MDIO Bus: probed
[ 1.012796] i2c /dev entries driver
[ 1.016921] IR NEC protocol handler initialized
[ 1.021478] IR RC5(x/sz) protocol handler initialized
[ 1.026594] IR RC6 protocol handler initialized
[ 1.031142] IR JVC protocol handler initialized
[ 1.035704] IR Sony protocol handler initialized
[ 1.040339] IR SANYO protocol handler initialized
[ 1.045074] IR Sharp protocol handler initialized
[ 1.049796] IR MCE Keyboard/mouse protocol handler initialized
[ 1.055665] IR XMP protocol handler initialized
[ 1.062199] cpuidle: enable-method property 'ti,am3352' found operations
[ 1.069420] sdhci: Secure Digital Host Controller Interface driver
[ 1.075744] sdhci: Copyright(c) Pierre Ossman
[ 1.080828] omap_hsmmc 48060000.mmc: Got CD GPIO
[ 1.086634] omap_hsmmc 47810000.mmc: Got CD GPIO
[ 1.092109] sdhci-pltfm: SDHCI platform and OF driver helper
[ 1.098862] ledtrig-cpu: registered to indicate activity on CPUs
[ 1.108883] NET: Registered protocol family 10
[ 1.114682] Segment Routing with IPv6
[ 1.118448] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[ 1.125232] NET: Registered protocol family 17
[ 1.129987] Key type dns_resolver registered
[ 1.134680] omap_voltage_late_init: Voltage driver support not added
[ 1.147994] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 100 kHz
[ 1.154777] omap_hsmmc 48060000.mmc: Got CD GPIO
[ 1.161131] omap_hsmmc 47810000.mmc: Got CD GPIO
[ 1.167279] hctosys: unable to open rtc device (rtc0)
[ 1.172904] ALSA device list:
[ 1.176061] No soundcards found.
[ 1.180282] Waiting for root device /dev/mmcblk0p2...
[ 3.324247] random: fast init done
[ 200.084330] random: crng init done

Here is my dts:

/*
* Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
/dts-v1/;

#include "am33xx.dtsi"
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/pwm/pwm.h>

/ {
model = "TI AM335x Advantech ECU1251";
compatible = "ti,am335x-ecu1251", "ti,am33xx";

cpus {
cpu@0 {
/*cpu0-supply = <&vcc>;*/
};
};

memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x10000000>; /* 256 MB */
};


chosen {
stdout-path = &uart0;
};

};


&am33xx_pinmux {
pinctrl-names = "default";
pinctrl-0 = <&ext_bus_pins_default &ext_device_pins &gpio_config_pins>;

i2c0_pins: pinmux_i2c0_pins {
pinctrl-single,pins = <
0x188 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_sda.i2c0_sda */
0x18c (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c0_scl.i2c0_scl */
>;
};


uart0_pins: pinmux_uart0_pins {
pinctrl-single,pins = <
0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */
0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */
>;
};

uart1_pins: pinmux_uart1_pins {
pinctrl-single,pins = <
0x180 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart1_rxd.uart1_rxd */
0x184 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart1_txd.uart1_txd */
>;
};

uart2_pins: pinmux_uart2_pins {
pinctrl-single,pins = <
0x150 (PIN_INPUT_PULLUP | MUX_MODE1) /* spi0_sclk.gpio0_2 uart2_rxd */
0x154 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* spi0_d0.gpio0_3 uart2_txd */
>;
};

uart3_pins: pinmux_uart3_pins {
pinctrl-single,pins = <
0x160 (PIN_INPUT_PULLUP | MUX_MODE1) /* spi0_cs1.gpio0_6 uart3_rxd */
0x164 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* ecap0_in_pwm0_out.gpio0_7 uart3_txd */
>;
};

uart4_pins: pinmux_uart4_pins {
pinctrl-single,pins = <
0x168 (PIN_INPUT_PULLUP | MUX_MODE1) /* uart0_ctsn.gpio1_8 uart4_rxd */
0x16c (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* uart0_rtsn.gpio1_9 uart4_txd */
>;
};

cpsw_default: cpsw_default {
pinctrl-single,pins = <
/* Slave 1 */
0x10c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_crs.rmii1_crs_dv */
0x110 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxerr.rmii1_rxerr */
0x114 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txen.rmii1_txen */
0x124 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd1.rmii1_txd1 */
0x128 (PIN_OUTPUT_PULLDOWN | MUX_MODE1) /* mii1_txd0.rmii1_txd0 */
0x13c (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd1.rmii1_rxd1 */
0x140 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_rxd0.rmii1_rxd0 */
0x144 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* rmii1_refclk.rmii1_refclk */

/* Slave 2 */
0x070 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* gpmc_wait0.rmii2_crs_dv */
0x074 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* gpmc_wpn.rmii2_rxerr */
0x040 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* gpmc_a0.rmii2_txen */
0x050 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* gpmc_a4.rmii2_txd1 */
0x054 (PIN_OUTPUT_PULLDOWN | MUX_MODE3) /* gpmc_a5.rmii2_txd0 */
0x068 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* gpmc_a10.rmii2_rxd1 */
0x06c (PIN_INPUT_PULLDOWN | MUX_MODE3) /* gpmc_a11.rmii2_rxd0 */
0x108 (PIN_INPUT_PULLDOWN | MUX_MODE1) /* mii1_col.rmii2_refclk */
>;
};

cpsw_sleep: cpsw_sleep {
pinctrl-single,pins = <
/* Slave 1 reset value */
0x10c (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x110 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x114 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x124 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x128 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x13c (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x140 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x144 (PIN_INPUT_PULLDOWN | MUX_MODE7)

/* Slave 2 reset value*/
0x70 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x74 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x40 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x50 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x54 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x68 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x6c (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x108 (PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};

davinci_mdio_default: davinci_mdio_default {
pinctrl-single,pins = <
/* MDIO */
0x148 (PIN_INPUT_PULLUP | SLEWCTRL_FAST | MUX_MODE0) /* mdio_data.mdio_data */
0x14c (PIN_OUTPUT_PULLUP | MUX_MODE0) /* mdio_clk.mdio_clk */
>;
};

davinci_mdio_sleep: davinci_mdio_sleep {
pinctrl-single,pins = <
/* MDIO reset value */
0x148 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x14c (PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};

mmc1_pins_default: pinmux_mmc1_pins {
pinctrl-single,pins = <

AM33XX_IOPAD(0x990, PIN_INPUT | MUX_MODE7) /* spi0_cs1.gpio3_14 */

AM33XX_IOPAD(0x8fc, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat0.mmc0_dat0 */
AM33XX_IOPAD(0x8f8, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat1.mmc0_dat1 */
AM33XX_IOPAD(0x8f4, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat2.mmc0_dat2 */
AM33XX_IOPAD(0x8f0, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_dat3.mmc0_dat3 */
AM33XX_IOPAD(0x904, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_cmd.mmc0_cmd */
AM33XX_IOPAD(0x900, PIN_INPUT_PULLUP | MUX_MODE0) /* mmc0_clk.mmc0_clk */

AM33XX_IOPAD(0x9a0, PIN_INPUT | MUX_MODE4) /* mcasp0_aclkrclkr.mmc0_sdwp */
>;
};

mmc1_pins_sleep: pinmux_mmc1_pins_sleep {
pinctrl-single,pins = <
AM33XX_IOPAD(0x8F0, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x8F4, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x8F8, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x8FC, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x900, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x904, PIN_INPUT_PULLDOWN | MUX_MODE7)
AM33XX_IOPAD(0x990, PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};

mmc3_pins_default: pinmux_mmc3_pins {
pinctrl-single,pins = <
0x044 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a1.mmc2_dat0, INPUT_PULLUP | MODE3 */
0x048 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a2.mmc2_dat1, INPUT_PULLUP | MODE3 */
0x04C (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_a3.mmc2_dat2, INPUT_PULLUP | MODE3 */
0x078 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_ben1.mmc2_dat3, INPUT_PULLUP | MODE3 */
0x088 (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_csn3.mmc2_cmd, INPUT_PULLUP | MODE3 */
0x08C (PIN_INPUT_PULLUP | MUX_MODE3) /* gpmc_clk.mmc2_clk, INPUT_PULLUP | MODE3 */
0x198 (PIN_INPUT_PULLUP | MUX_MODE7) /* mcasp0_axr0.gpio3_16 CD */
>;
};

mmc3_pins_sleep: pinmux_mmc3_pins_sleep {
pinctrl-single,pins = <
0x044 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x048 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x04C (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x078 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x088 (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x08C (PIN_INPUT_PULLDOWN | MUX_MODE7)
0x198 (PIN_INPUT_PULLDOWN | MUX_MODE7)
>;
};

ext_bus_pins_default: ext_bus_pins_default {
pinctrl-single,pins = <
0x58 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_a6.gpmc_a6 */
0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_a7.gpmc_a7 */
0x60 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_a8.gpmc_a8 */
0x64 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_a9.gpmc_a9 */

0xd0 (PIN_INPUT_PULLUP | MUX_MODE1) /* lcd_data12.gpmc_a16 */

0x0 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad0.gpmc_ad0 */
0x4 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad1.gpmc_ad1 */
0x8 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad2.gpmc_ad2 */
0xc (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad3.gpmc_ad3 */
0x10 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad4.gpmc_ad4 */
0x14 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad5.gpmc_ad5 */
0x18 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad6.gpmc_ad6 */
0x1c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad7.gpmc_ad7 */
0x20 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad8.gpmc_ad8 */
0x24 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad9.gpmc_ad9 */
0x28 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad10.gpmc_ad10 */
0x2c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad11.gpmc_ad11 */
0x30 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad12.gpmc_ad12 */
0x34 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad13.gpmc_ad13 */
0x38 (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad14.gpmc_ad14 */
0x3c (PIN_INPUT_PULLUP | MUX_MODE0) /* gpmc_ad15.gpmc_ad15 */

0x7c (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn0.gpmc_csn0 */
0x80 (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn1.gpmc_csn1 */
0x84 (PIN_OUTPUT | MUX_MODE0) /* gpmc_csn2.gpmc_csn2 */
0x94 (PIN_OUTPUT | MUX_MODE0) /* gpmc_oen_ren.gpmc_oen_ren */
0x98 (PIN_OUTPUT | MUX_MODE0) /* gpmc_wen.gpmc_wen */
>;
};

/* SLB9645 TPM_INT_N irq. */
ext_device_pins: pinmux_ext_device_pins {
pinctrl-single,pins = <
0x58 0x27 /* gpmc_a6.gpio1_22, INPUT | MODE7 TPM SLB9645 irq */
>;
};

ht1382_rtc_pins: pinmux_ht1382_pins {
pinctrl-single,pins = <
0x1B0 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* xdma_event_intr0.gpio0_19 CLK */
0x1B4 (PIN_INPUT_PULLUP | MUX_MODE7) /* xdma_event_intr1.gpio0_20 DIO */
0x1A0 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* mcasp0_aclkr.gpio3_18 CE */
0x118 (PIN_INPUT_PULLUP | MUX_MODE7) /* mii1_rxdv.gpio3_4 IRQ */
>;
};

/* run & program & error led */
user_leds_default: user_leds_default {
pinctrl-single,pins = <
0x19C (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mcasp0_ahclkr.gpio3_17 user_define0 */
0x1AC (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* mcasp0_ahclkx.gpio3_21 user_define1 */
0x0EC (PIN_OUTPUT_PULLDOWN | MUX_MODE7) /* lcd_ac_bias_en.gpio2_25 user_define2 */
>;
};

gpio_config_pins: pinmux_gpio_config_pins {
pinctrl-single,pins = <
/* WDI# */
0x90 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* gpmc_advn_ale.gpio2_2, WDI# */
/* WDI_EN */
0x1E8 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* emu1.gpio3_8 WDI_EN */

/* minipcie reset */
0x194 (PIN_OUTPUT_PULLUP | MUX_MODE7) /* mcasp0_fsx.gpio3_15 minipcie reset */

/* UART RTSN */
0x17C (PIN_OUTPUT | MUX_MODE7) /* uart1_rtsn.gpio0_13, UART1 RTSN */
0x158 (PIN_OUTPUT | MUX_MODE7) /* spi0_d1.gpio0_4, UART2 RTSN */
0x15C (PIN_OUTPUT | MUX_MODE7) /* spi0_cs0.gpio0_5, UART3 RTSN */
0x178 (PIN_OUTPUT | MUX_MODE7) /* uart1_ctsn.gpio0_12, UART4 RTSN */
>;
};

vmmcsd_fixed:fixedregulator@0 {
compatible = "regulator-fixed";
regulator-name = "vmmcsd_fixed";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
};
};

&uart0 {
pinctrl-names = "default";
pinctrl-0 = <&uart0_pins>;

status = "okay";
};

&uart1 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>;
rs485-rts-delay = <0x0 0x0>;
// rs485-rts-active-high;
rts-gpio = <&gpio0 13 0x04>;
linux,rs485-enabled-at-boot-time;
rs485-rx-during-tx;

status = "okay";
};

&uart2 {
pinctrl-names = "default";
pinctrl-0 = <&uart2_pins>;
rs485-rts-delay = <0x0 0x0>;
// rs485-rts-active-high;
rts-gpio = <&gpio0 4 0x04>;
linux,rs485-enabled-at-boot-time;

status = "okay";
};

&uart3 {
pinctrl-names = "default";
pinctrl-0 = <&uart3_pins>;
rs485-rts-delay = <0x0 0x0>;
// rs485-rts-active-high
rts-gpio = <&gpio0 5 0x04>;
linux,rs485-enabled-at-boot-time;

status = "okay";
};

&uart4 {
pinctrl-names = "default";
pinctrl-0 = <&uart4_pins>;
rs485-rts-delay = <0x0 0x0>;
// rs485-rts-active-high;
rts-gpio = <&gpio0 12 0x04>;
linux,rs485-enabled-at-boot-time;
rs485-rx-during-tx;

status = "okay";
};

&i2c0 {
pinctrl-names = "default";
pinctrl-0 = <&i2c0_pins>;

status = "okay";
clock-frequency = <100000>;

tpm@20 {
compatible = "infineon,slb9645tt";
reg = <0x20>;
};
};

&usb {
status = "okay";
};

&usb_ctrl_mod {
status = "okay";
};


&usb0_phy {
status = "okay";
};

&usb1_phy {
status = "okay";
};

&usb0 {
status = "okay";
dr_mode = "host";
};

&usb1 {
status = "okay";
dr_mode = "host";
};
&cppi41dma {
status = "okay";
};


&rtc{
pinctrl-names = "default";
pinctrl-0 = <&ht1382_rtc_pins>;
status = "okay";

compatible = "holtek,ht1382-rtc";

interrupt-parent = <&gpio3>;
interrupts = <4 8>; // gpio3_4
};

/*
&led {
pinctrl-names = "default";
pinctrl-0 = <&user_leds_default>;

compatible = "gpio-leds";

led@1 {
label = "am335x:green:run";
gpios = <&gpio3 17 GPIO_ACTIVE_LOW>;
default-state = "off";
};

led@2 {
label = "am335x:red:err";
gpios = <&gpio3 21 GPIO_ACTIVE_LOW>;
default-state = "off";
};

led@3 {
label = "am335x:green:program";
gpios = <&gpio2 25 GPIO_ACTIVE_LOW>;
default-state = "off";
};
};


*/
&elm {
status = "okay";
};


&gpmc {
ranges = <0 0 0x01000000 0x01000000>,
<1 0 0x02000000 0x01000000>,
<2 0 0x03000000 0x01000000>;

status = "okay";
};

&mac {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&cpsw_default>;
pinctrl-1 = <&cpsw_sleep>;
dual_emac;
};

&davinci_mdio {
pinctrl-names = "default", "sleep";
pinctrl-0 = <&davinci_mdio_default>;
pinctrl-1 = <&davinci_mdio_sleep>;
};

&cpsw_emac0 {
phy_id = <&davinci_mdio>, <1>;
phy-mode = "rmii";
dual_emac_res_vlan = <1>;
};

&cpsw_emac1 {
phy_id = <&davinci_mdio>, <2>;
phy-mode = "rmii";
dual_emac_res_vlan = <2>;
};

&phy_sel {
rmii-clock-ext;
};

&mmc1 {
status = "okay";
vmmc-supply = <&vmmcsd_fixed>;
bus-width = <4>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mmc1_pins_default>;
pinctrl-1 = <&mmc1_pins_sleep>;
cd-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
};

&mmc3 {
dmas = <&edma_xbar 12 0 1
&edma_xbar 13 0 2>;

dma-names = "tx", "rx";

status = "okay";
vmmc-supply = <&vmmcsd_fixed>;
bus-width = <4>;
max-frequency = <50000000>;
pinctrl-names = "default", "sleep";
pinctrl-0 = <&mmc3_pins_default>;
pinctrl-1 = <&mmc3_pins_sleep>;
cd-gpios = <&gpio3 16 GPIO_ACTIVE_HIGH>;
// wp-gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
ti,needs-special-hs-handling;
cap-power-off-card;
keep-power-in-suspend;
};

&edma {
ti,edma-xbar-event-map = <1 12
2 13>;
};

  • Hello Yafei,

    Please, check your cd-gpios line for misalignment and also use the latest U-Boot since the latest kernel versions prefer PARTUUID instead of root=/dev/mmcblk0p2 path.

    Best regards,
    Kemal

  • Hi Kemal
    I have used PARTUUID , and nothing changed,
    if I change to the lasted uboot , I need to update the toolchain and rootfs , and it is a lot of work, so I changed to use PARTUUID, please help me to find why, thanks again.
    here is the boot log:

    Uncompressing Linux... done, booting the kernel.
    [ 0.000000] Booting Linux on physical CPU 0x0
    [ 0.000000] Linux version 4.14.79-gbde58ab01e (user@ubuntu) (gcc version 4.7.3 20130226 (prerelease) (crosstool-NG linaro-1.13.1-4.7-2013.03-20130313 - Linaro GCC 2013.03)) #6 PREEMPT Sun Feb 17 23:27:23 PST 2019
    [ 0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
    [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
    [ 0.000000] OF: fdt: Machine model: TI AM335x Advantech ECU1251
    [ 0.000000] Memory policy: Data cache writeback
    [ 0.000000] efi: Getting EFI parameters from FDT:
    [ 0.000000] efi: UEFI not found.
    [ 0.000000] cma: Reserved 48 MiB at 0x8c800000
    [ 0.000000] CPU: All CPU(s) started in SVC mode.
    [ 0.000000] AM335X ES2.1 (sgx neon)
    [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 64960
    [ 0.000000] Kernel command line: console=ttyO0,115200n8 coherent_pool=2M root=PARTUUID=000de2dd-02 ro 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: 197280K/262144K available (8192K kernel code, 321K rwdata, 2508K rodata, 1024K init, 267K bss, 15712K reserved, 49152K cma-reserved, 0K highmem)
    [ 0.000000] Virtual kernel memory layout:
    [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB)
    [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB)
    [ 0.000000] vmalloc : 0xd0800000 - 0xff800000 ( 752 MB)
    [ 0.000000] lowmem : 0xc0000000 - 0xd0000000 ( 256 MB)
    [ 0.000000] pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
    [ 0.000000] modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
    [ 0.000000] .text : 0xc0008000 - 0xc0900000 (9184 kB)
    [ 0.000000] .init : 0xc0c00000 - 0xc0d00000 (1024 kB)
    [ 0.000000] .data : 0xc0d00000 - 0xc0d50678 ( 322 kB)
    [ 0.000000] .bss : 0xc0d50678 - 0xc0d9359c ( 268 kB)
    [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
    [ 0.000000] Preemptible hierarchical RCU implementation.
    [ 0.000000] Tasks RCU enabled.
    [ 0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
    [ 0.000000] IRQ: Found an INTC at 0xfa200000 (revision 5.0) with 128 interrupts
    [ 0.000000] OMAP clockevent source: timer2 at 24000000 Hz
    [ 0.000015] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
    [ 0.000036] clocksource: timer1: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
    [ 0.000048] OMAP clocksource: timer1 at 24000000 Hz
    [ 0.000210] timer_probe: no matching timers found
    [ 0.000417] Console: colour dummy device 80x30
    [ 0.000443] WARNING: Your 'console=ttyO0' has been replaced by 'ttyS0'
    [ 0.000450] This ensures that you still see kernel messages. Please
    [ 0.000456] update your kernel commandline.
    [ 0.000486] Calibrating delay loop... 795.44 BogoMIPS (lpj=3977216)
    [ 0.089100] pid_max: default: 32768 minimum: 301
    [ 0.089294] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.089309] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
    [ 0.090141] CPU: Testing write buffer coherency: ok
    [ 0.090209] CPU0: Spectre v2: using BPIALL workaround
    [ 0.090912] Setting up static identity map for 0x80100000 - 0x80100060
    [ 0.091069] Hierarchical SRCU implementation.
    [ 0.091424] EFI services will not be available.
    [ 0.092857] devtmpfs: initialized
    [ 0.100969] random: get_random_u32 called from bucket_table_alloc+0x9c/0x1ac with crng_init=0
    [ 0.101496] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3
    [ 0.101811] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
    [ 0.101836] futex hash table entries: 256 (order: -1, 3072 bytes)
    [ 0.105480] pinctrl core: initialized pinctrl subsystem
    [ 0.106236] DMI not present or invalid.
    [ 0.106653] NET: Registered protocol family 16
    [ 0.111306] DMA: preallocated 2048 KiB pool for atomic coherent allocations
    [ 0.125034] omap_hwmod: debugss: _wait_target_disable failed
    [ 0.178195] cpuidle: using governor ladder
    [ 0.178232] cpuidle: using governor menu
    [ 0.183008] OMAP GPIO hardware version 0.1
    [ 0.191736] omap-gpmc 50000000.gpmc: GPMC revision 6.0
    [ 0.193903] No ATAGs?
    [ 0.193915] hw-breakpoint: debug architecture 0x4 unsupported.
    [ 0.207966] edma 49000000.edma: TI EDMA DMA engine driver
    [ 0.211291] omap_i2c 44e0b000.i2c: could not find pctldev for node /ocp/l4_wkup@44c00000/scm@210000/pinmux@800/pinmux_i2c0_pins, deferring probe
    [ 0.211432] media: Linux media interface: v0.10
    [ 0.211484] Linux video capture interface: v2.00
    [ 0.211591] pps_core: LinuxPPS API ver. 1 registered
    [ 0.211600] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [ 0.211622] PTP clock support registered
    [ 0.211658] EDAC MC: Ver: 3.0.0
    [ 0.212097] dmi: Firmware registration failed.
    [ 0.212542] omap-mailbox 480c8000.mailbox: omap mailbox rev 0x400
    [ 0.212872] Advanced Linux Sound Architecture Driver Initialized.
    [ 0.214160] clocksource: Switched to clocksource timer1
    [ 0.223000] NET: Registered protocol family 2
    [ 0.223788] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.223823] TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
    [ 0.223851] TCP: Hash tables configured (established 2048 bind 2048)
    [ 0.223954] UDP hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.223974] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
    [ 0.224140] NET: Registered protocol family 1
    [ 0.224765] RPC: Registered named UNIX socket transport module.
    [ 0.224782] RPC: Registered udp transport module.
    [ 0.224790] RPC: Registered tcp transport module.
    [ 0.224797] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [ 0.225732] hw perfevents: no interrupt-affinity property for /pmu, guessing.
    [ 0.225861] hw perfevents: enabled with armv7_cortex_a8 PMU driver, 5 counters available
    [ 0.227391] workingset: timestamp_bits=14 max_order=16 bucket_order=2
    [ 0.231951] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [ 0.232845] NFS: Registering the id_resolver key type
    [ 0.232895] Key type id_resolver registered
    [ 0.232904] Key type id_legacy registered
    [ 0.232957] ntfs: driver 2.1.32 [Flags: R/O].
    [ 0.235308] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [ 0.235332] io scheduler noop registered
    [ 0.235341] io scheduler deadline registered
    [ 0.235576] io scheduler cfq registered (default)
    [ 0.235588] io scheduler mq-deadline registered
    [ 0.235596] io scheduler kyber registered
    [ 0.236880] pinctrl-single 44e10800.pinmux: 142 pins at pa f9e10800 size 568
    [ 0.291015] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
    [ 0.294423] 44e09000.serial: ttyS0 at MMIO 0x44e09000 (irq = 30, base_baud = 3000000) is a 8250
    [ 0.927688] console [ttyS0] enabled
    [ 0.932335] 48022000.serial: ttyS1 at MMIO 0x48022000 (irq = 31, base_baud = 3000000) is a 8250
    [ 0.942182] 48024000.serial: ttyS2 at MMIO 0x48024000 (irq = 32, base_baud = 3000000) is a 8250
    [ 0.951966] 481a6000.serial: ttyS3 at MMIO 0x481a6000 (irq = 33, base_baud = 3000000) is a 8250
    [ 0.961756] 481a8000.serial: ttyS4 at MMIO 0x481a8000 (irq = 34, base_baud = 3000000) is a 8250
    [ 0.972348] omap_rng 48310000.rng: Random Number Generator ver. 20
    [ 0.991273] brd: module loaded
    [ 1.001302] loop: module loaded
    [ 1.007105] libphy: Fixed MDIO Bus: probed
    [ 1.013303] i2c /dev entries driver
    [ 1.017450] IR NEC protocol handler initialized
    [ 1.022006] IR RC5(x/sz) protocol handler initialized
    [ 1.027127] IR RC6 protocol handler initialized
    [ 1.031675] IR JVC protocol handler initialized
    [ 1.036239] IR Sony protocol handler initialized
    [ 1.040873] IR SANYO protocol handler initialized
    [ 1.045608] IR Sharp protocol handler initialized
    [ 1.050329] IR MCE Keyboard/mouse protocol handler initialized
    [ 1.056198] IR XMP protocol handler initialized
    [ 1.062724] cpuidle: enable-method property 'ti,am3352' found operations
    [ 1.069942] sdhci: Secure Digital Host Controller Interface driver
    [ 1.076263] sdhci: Copyright(c) Pierre Ossman
    [ 1.081343] omap_hsmmc 48060000.mmc: Got CD GPIO
    [ 1.087158] omap_hsmmc 47810000.mmc: Got CD GPIO
    [ 1.092631] sdhci-pltfm: SDHCI platform and OF driver helper
    [ 1.099391] ledtrig-cpu: registered to indicate activity on CPUs
    [ 1.109391] NET: Registered protocol family 10
    [ 1.115164] Segment Routing with IPv6
    [ 1.118930] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
    [ 1.125765] NET: Registered protocol family 17
    [ 1.130522] Key type dns_resolver registered
    [ 1.135220] omap_voltage_late_init: Voltage driver support not added
    [ 1.148509] omap_i2c 44e0b000.i2c: bus 0 rev0.11 at 100 kHz
    [ 1.155275] omap_hsmmc 48060000.mmc: Got CD GPIO
    [ 1.161646] omap_hsmmc 47810000.mmc: Got CD GPIO
    [ 1.167807] hctosys: unable to open rtc device (rtc0)
    [ 1.173428] ALSA device list:
    [ 1.176585] No soundcards found.
    [ 1.180771] Waiting for root device PARTUUID=000de2dd-02...
    [ 3.324196] random: fast init done
  • Add broken-cd; label to the mmc1 node and check whether the rootfs will load.

  • Hi, Kemal,

    Thanks for your reply, I added the "broken-cd; " label , and tested again, but nothing changed.
    From the boot log , I can not find the gpmc driver loaded , is that a possible reason? If so , what can I do?

    Best Regards
    Yafei Wang
  • Hi, Kemal,

    Thanks for your reply.

    The problem has been solved by modifying the dts file ,

    I move the position of "vmmcsd_fixed" node under the "/" root node from "am335x_pinmux" node. But I donot know why, can you help to understand it ?


    / {
    model = "TI AM335x Advantech ECU1251";
    compatible = "ti,am335x-ecu1251", "ti,am33xx";

    cpus {
    cpu@0 {
    /*cpu0-supply = <&vcc>;*/
    };
    };

    memory@80000000 {
    device_type = "memory";
    reg = <0x80000000 0x10000000>; /* 256 MB */
    };


    chosen {
    stdout-path = &uart0;
    };

    vmmcsd_fixed: fixedregulator@0 {
    compatible = "regulator-fixed";
    regulator-name = "vmmcsd_fixed";
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-always-on;
    };
    };


    &mmc1 {
    status = "okay";
    vmmc-supply = <&vmmcsd_fixed>;
    bus-width = <4>;
    pinctrl-names = "default", "sleep";
    pinctrl-0 = <&mmc1_pins_default>;
    pinctrl-1 = <&mmc1_pins_sleep>;
    cd-gpios = <&gpio3 14 GPIO_ACTIVE_HIGH>;
    };


    Best Regards
    Yafei Wang
  • It is probably because of the variable scope, prototype or any other value for vmmcsd_fixed was taken when it was out of the "/" root node from "am335x_pinmux" node.