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/66AK2G12: SD Boot Hangs on "Waiting for root device"

Part Number: 66AK2G12

Tool/software: Linux

Hello,

I have a custom design using the 66AK2G12.  We are using Linux SDK 5 with U-Boot 2018.01 and Linux 4.14.40.  I have the system loading U-Boot from the SD card interface (MMCSD0). From U-Boot, I am able to load the boot files into memory and boot Linux, but the kernel boot hangs at "Waiting for root device PARTUUID=239df219-02...".

I have seen in other forum posts that this problem is often due to an issue with the chip detect. (https://e2e.ti.com/support/processors/f/791/t/553707)

Because of design constraints, we do not have a chip detect line on this design.  I have added broken-cd; to the device tree node in an attempt to bypass this, but have been unsuccessful in getting the rootfs to load from the SD card.

The card was formatted with the SDK provided tool and contains a FAT partition for U-Boot and an EXT3 partition for the rootfs.

My bootargs are bootargs=console=ttyS0,115200n8 ignore_loglevel root=PARTUUID=239df219-02 rw rootfstype=ext3 rootwait

Attached is my bootlog.

Any guidance that can be provided to shine some light on why my system won't recognize the rootfs is appreciated.  Please let me know if additional infomation is needed.

Thank you,

Jeff

U-Boot 2018.01-00444-g2561f9c-dirty (Jan 23 2019 - 11:38:02 -0700)

CPU: 66AK2Gx-100 SR1.0
Model: Texas Instruments K2G General Purpose EVM
DRAM:
Clear entire DDR3 memory to enable ECC
1 GiB
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1
Net:   eth0: netcp@4000000
Hit any key to stop autoboot:  0
32832 bytes read in 13 ms (2.4 MiB/s)
K2_BM_15.07-53-ge1f885a SoC:k2g built:04:08:14, Jul 22 2018

## installed monitor @ 0xc0f7000, freq [24000000], status 202338304
33620 bytes read in 14 ms (2.3 MiB/s)
0 - Name:'pmmc@2900000' type:'internal memory mapped' supports: load start
Load Remote Processor 0 with data@addr=0x82000000 33620 bytes: Success!
3854848 bytes read in 187 ms (19.7 MiB/s)
34797 bytes read in 11 ms (3 MiB/s)
29850 bytes read in 15 ms (1.9 MiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Ramdisk to 8fff7000, end 8ffff7ed ... OK
   Loading Device Tree to 8ffec000, end 8fff6499 ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.14.40-g4796173fc5 (jeff@l-serv) (gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)) #20 SMP PREEMPT Thu Jan 17 16:12:30 MST 2019
[    0.000000] CPU: ARMv7 Processor [412fc0f4] revision 4 (ARMv7), cr=30c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[    0.000000] OF: fdt: Machine model: Texas Instruments K2G General Purpose EVM
[    0.000000] debug: ignoring loglevel setting.
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] Switching physical address space to 0x800000000
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x000000081f800000, size 8 MiB
[    0.000000] OF: reserved mem: initialized node dsp-common-memory@81f800000, compatible id shared-dma-pool
[    0.000000] cma: Reserved 48 MiB at 0x000000083d000000
[    0.000000] On node 0 totalpages: 165888
[    0.000000] free_area_init_node: node 0, pgdat c10405c0, node_mem_map d76f5000
[    0.000000]   DMA zone: 1152 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 100352 pages, LIFO batch:31
[    0.000000]   HighMem zone: 65536 pages, LIFO batch:15
[    0.000000] percpu: Embedded 15 pages/cpu @d76ce000 s31308 r8192 d21940 u61440
[    0.000000] pcpu-alloc: s31308 r8192 d21940 u61440 alloc=15*4096
[    0.000000] pcpu-alloc: [0] 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 164736
[    0.000000] Kernel command line: console=ttyS0,115200n8 ignore_loglevel root=PARTUUID=239df219-02 rw rootfstype=ext3 rootwait
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Memory: 584704K/663552K available (8192K kernel code, 356K rwdata, 2472K rodata, 2048K init, 294K bss, 21504K reserved, 57344K cma-reserved, 212992K highmem)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0xe0800000 - 0xff800000   ( 496 MB)
[    0.000000]     lowmem  : 0xc0000000 - 0xe0000000   ( 512 MB)
[    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
[    0.000000]       .text : 0xc0008000 - 0xc0a00000   (10208 kB)
[    0.000000]       .init : 0xc0e00000 - 0xc1000000   (2048 kB)
[    0.000000]       .data : 0xc1000000 - 0xc10590c8   ( 357 kB)
[    0.000000]        .bss : 0xc105b000 - 0xc10a493c   ( 295 kB)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000]  RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000]  Tasks RCU enabled.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] arch_timer: cp15 timer(s) running at 24.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x588fe9dc0, max_idle_ns: 440795202592 ns
[    0.000004] sched_clock: 56 bits at 24MHz, resolution 41ns, wraps every 4398046511097ns
[    0.000015] Switching to timer-based delay loop, resolution 41ns
[    0.000124] keystone_timer_init: failed to get clock
[    0.000141] Failed to initialize '/soc/timer@2210000': -517
[    0.000395] Console: colour dummy device 80x30
[    0.000425] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.000440] pid_max: default: 32768 minimum: 301
[    0.000549] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000560] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.001093] CPU: Testing write buffer coherency: ok
[    0.001309] /cpus/cpu@0 missing clock-frequency property
[    0.001323] CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.040012] Setting up static identity map for 0x80200000 - 0x80200138
[    0.060015] Hierarchical SRCU implementation.
[    0.081386] EFI services will not be available.
[    0.100084] smp: Bringing up secondary CPUs ...
[    0.100096] smp: Brought up 1 node, 1 CPU
[    0.100106] SMP: Total of 1 processors activated (48.00 BogoMIPS).
[    0.100114] CPU: All CPU(s) started in HYP mode.
[    0.100121] CPU: Virtualization extensions available.
[    0.100504] devtmpfs: initialized
[    0.105986] random: get_random_u32 called from bucket_table_alloc+0x104/0x22c with crng_init=0
[    0.110212] VFP support v0.3: implementor 41 architecture 4 part 30 variant f rev 0
[    0.110425] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.110442] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.111756] pinctrl core: initialized pinctrl subsystem
[    0.111947] DMI not present or invalid.
[    0.112194] NET: Registered protocol family 16
[    0.120985] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.121757] cpuidle: using governor ladder
[    0.121794] cpuidle: using governor menu
[    0.122142] No ATAGs?
[    0.122184] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.122197] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.126410] davinci_gpio 2603000.gpio: could not find pctldev for node /soc/pinmux@02621000/pinmux_gpio0_pins, deferring probe
[    0.126862] davinci_gpio 260a000.gpio: could not find pctldev for node /soc/pinmux@02621000/pinmux_gpio1_pins, deferring probe
[    0.172089] i2c_davinci 2530000.i2c: could not find pctldev for node /soc/pinmux@02621000/pinmux_i2c0_pins, deferring probe
[    0.172131] i2c_davinci 2530400.i2c: could not find pctldev for node /soc/pinmux@02621000/pinmux_i2c1_pins, deferring probe
[    0.172166] i2c_davinci 2530800.i2c: could not find pctldev for node /soc/pinmux@02621000/pinmux_i2c2_pins, deferring probe
[    0.172320] media: Linux media interface: v0.10
[    0.172361] Linux video capture interface: v2.00
[    0.172438] pps_core: LinuxPPS API ver. 1 registered
[    0.172447] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.172467] PTP clock support registered
[    0.172484] EDAC MC: Ver: 3.0.0
[    0.180408] dmi: Firmware registration failed.
[    0.190497] clocksource: Switched to clocksource arch_sys_counter
[    0.197818] NET: Registered protocol family 2
[    0.198334] TCP established hash table entries: 4096 (order: 2, 16384 bytes)
[    0.198374] TCP bind hash table entries: 4096 (order: 3, 32768 bytes)
[    0.198442] TCP: Hash tables configured (established 4096 bind 4096)
[    0.198517] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.198540] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.198653] NET: Registered protocol family 1
[    0.230594] RPC: Registered named UNIX socket transport module.
[    0.230606] RPC: Registered udp transport module.
[    0.230614] RPC: Registered tcp transport module.
[    0.230621] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.230633] PCI: CLS 0 bytes, default 64
[    0.230816] Trying to unpack rootfs image as initramfs...
[    0.233231] Freeing initrd memory: 36K
[    0.233494] hw perfevents: no interrupt-affinity property for /pmu, guessing.
[    0.233688] hw perfevents: enabled with armv7_cortex_a15 PMU driver, 7 counters available
[    0.234345] platform alarmtimer: set dma_pfn_offset00780000
[    0.235010] workingset: timestamp_bits=14 max_order=18 bucket_order=4
[    0.239223] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.250841] NFS: Registering the id_resolver key type
[    0.250866] Key type id_resolver registered
[    0.250876] Key type id_legacy registered
[    0.250914] ntfs: driver 2.1.32 [Flags: R/O].
[    0.252641] bounce: pool size: 64 pages
[    0.252697] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.252708] io scheduler noop registered
[    0.252717] io scheduler deadline registered
[    0.252872] io scheduler cfq registered (default)
[    0.252882] io scheduler mq-deadline registered
[    0.252891] io scheduler kyber registered
[    0.253192] keystone_irq soc:keystone_irq@026202a0: irqchip registered, nr_irqs 28
[    0.253960] pinctrl-single 2621000.pinmux: please update dts to use #pinctrl-cells = <1>
[    0.254339] pinctrl-single 2621000.pinmux: 260 pins at pa e0850000 size 1040
[    0.254794] gpio-syscon soc:keystone_dsp_gpio@02620240: can't read the dir register offset!
[    0.254816] gpiochip_find_base: found new base at 484
[    0.254979] gpio gpiochip0: (soc:keystone_dsp_gpio@02620240): added GPIO chardev (254:0)
[    0.255053] gpiochip_setup_dev: registered GPIOs 484 to 511 on device: gpiochip0 (soc:keystone_dsp_gpio@02620240)
[    0.255143] gpio-syscon soc:keystone_pruss_gpio0: can't read the dir register offset!
[    0.255162] gpiochip_find_base: found new base at 456
[    0.255295] gpio gpiochip1: (soc:keystone_pruss_gpio0): added GPIO chardev (254:1)
[    0.255368] gpiochip_setup_dev: registered GPIOs 456 to 483 on device: gpiochip1 (soc:keystone_pruss_gpio0)
[    0.255455] gpio-syscon soc:keystone_pruss_gpio1: can't read the dir register offset!
[    0.255472] gpiochip_find_base: found new base at 428
[    0.255589] gpio gpiochip2: (soc:keystone_pruss_gpio1): added GPIO chardev (254:2)
[    0.255660] gpiochip_setup_dev: registered GPIOs 428 to 455 on device: gpiochip2 (soc:keystone_pruss_gpio1)
[    0.255744] gpio-syscon soc:keystone_pruss_gpio2: can't read the dir register offset!
[    0.255761] gpiochip_find_base: found new base at 400
[    0.255936] gpio gpiochip3: (soc:keystone_pruss_gpio2): added GPIO chardev (254:3)
[    0.256004] gpiochip_setup_dev: registered GPIOs 400 to 427 on device: gpiochip3 (soc:keystone_pruss_gpio2)
[    0.256090] gpio-syscon soc:keystone_pruss_gpio3: can't read the dir register offset!
[    0.256106] gpiochip_find_base: found new base at 372
[    0.256231] gpio gpiochip4: (soc:keystone_pruss_gpio3): added GPIO chardev (254:4)
[    0.256300] gpiochip_setup_dev: registered GPIOs 372 to 399 on device: gpiochip4 (soc:keystone_pruss_gpio3)
[    0.314550] Serial: 8250/16550 driver, 10 ports, IRQ sharing disabled
[    0.314634] platform serial8250: set dma_pfn_offset00780000
[    0.326464] brd: module loaded
[    0.332340] loop: module loaded
[    0.334890] platform Fixed MDIO bus.0: set dma_pfn_offset00780000
[    0.335023] mdio_bus fixed-0: GPIO lookup for consumer reset
[    0.335034] mdio_bus fixed-0: using lookup tables for GPIO lookup
[    0.335047] mdio_bus fixed-0: lookup for GPIO reset failed
[    0.335074] libphy: Fixed MDIO Bus: probed
[    0.336796] i2c /dev entries driver
[    0.337233] IR NEC protocol handler initialized
[    0.337243] IR RC5(x/sz) protocol handler initialized
[    0.337252] IR RC6 protocol handler initialized
[    0.337259] IR JVC protocol handler initialized
[    0.337266] IR Sony protocol handler initialized
[    0.337273] IR SANYO protocol handler initialized
[    0.337279] IR Sharp protocol handler initialized
[    0.337287] IR MCE Keyboard/mouse protocol handler initialized
[    0.337294] IR XMP protocol handler initialized
[    0.338476] sdhci: Secure Digital Host Controller Interface driver
[    0.338484] sdhci: Copyright(c) Pierre Ossman
[    0.338712] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.339688] ledtrig-cpu: registered to indicate activity on CPUs
[    0.341857] NET: Registered protocol family 10
[    0.360831] Segment Routing with IPv6
[    0.360902] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    0.361423] NET: Registered protocol family 17
[    0.361596] Key type dns_resolver registered
[    0.361746] Registering SWP/SWPB emulation handler
[    0.363326] GPIO line 115 (gpio0-default-lows) hogged as output/low
[    0.363350] GPIO line 50 (gpio0-default-highs) hogged as output/high
[    0.363516] gpio gpiochip5: (davinci_gpio.0): added GPIO chardev (254:5)
[    0.363593] gpiochip_setup_dev: registered GPIOs 0 to 143 on device: gpiochip5 (davinci_gpio.0)
[    0.363623] davinci_gpio 2603000.gpio: Error -517 getting gpio clock
[    0.364304] GPIO line 39 (gpio1-defaults) hogged as output/high
[    0.364445] gpio gpiochip5: (davinci_gpio.0): added GPIO chardev (254:5)
[    0.364523] gpiochip_setup_dev: registered GPIOs 0 to 67 on device: gpiochip5 (davinci_gpio.0)
[    0.364552] davinci_gpio 260a000.gpio: Error -517 getting gpio clock
[    0.370432] ti-sci 2921c00.pmmc: ABI: 2.4 (firmware rev 0x0011 '0.1.1-50-g129ef (Eagle)')
[    0.386583] random: fast init done
[    0.405482] ti-sci-clk 2921c00.pmmc:clocks: get-parent failed for dev=76, clk=11, ret=-19
[    0.405599] ti-sci-clk 2921c00.pmmc:clocks: get-parent failed for dev=76, clk=11, ret=-19
[    0.405847] ti-sci-clk 2921c00.pmmc:clocks: get-parent failed for dev=76, clk=11, ret=-19
[    0.411767] keystone timer clock @166666666 Hz
[    0.412102] GPIO line 115 (gpio0-default-lows) hogged as output/low
[    0.412124] GPIO line 50 (gpio0-default-highs) hogged as output/high
[    0.412289] gpio gpiochip5: (davinci_gpio.0): added GPIO chardev (254:5)
[    0.412367] gpiochip_setup_dev: registered GPIOs 0 to 143 on device: gpiochip5 (davinci_gpio.0)
[    0.415823] GPIO line 183 (gpio1-defaults) hogged as output/high
[    0.415980] gpio gpiochip6: (davinci_gpio.1): added GPIO chardev (254:6)
[    0.416059] gpiochip_setup_dev: registered GPIOs 144 to 211 on device: gpiochip6 (davinci_gpio.1)
[    0.422284] edma 2700000.edma: TI EDMA DMA engine driver
[    0.422779] edma 2728000.edma: memcpy is disabled
[    0.426107] edma 2728000.edma: TI EDMA DMA engine driver
[    0.429020] keystone-navigator-qmss soc:qmss@4020000: qmgr start queue 0, number of queues 128
[    0.429138] keystone-navigator-qmss soc:qmss@4020000: added qmgr start queue 0, num of queues 128, reg_peek e0e61000, reg_status   (null), reg_config e0e63000, reg_region e0e65000, reg_push e0e67000, reg_pop e0e67000
[    0.430091] keystone-navigator-dma soc:knav_dmas@0: DMA dma_gbe registered 53 logical channels, flows 32, tx chans: 21, rx chans: 32
[    0.431095] console [ttyS0] disabled
[    0.431132] 2530c00.serial: ttyS0 at MMIO 0x2530c00 (irq = 23, base_baud = 12000000) is a TI DA8xx/66AK2x
[    1.721266] console [ttyS0] enabled
[    1.725892] 2531000.serial: ttyS1 at MMIO 0x2531000 (irq = 24, base_baud = 12000000) is a TI DA8xx/66AK2x
[    1.736628] 2531400.serial: ttyS2 at MMIO 0x2531400 (irq = 25, base_baud = 12000000) is a TI DA8xx/66AK2x
[    1.747061] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805400[0]'
[    1.756243] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805400[1]'
[    1.765399] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805400[2]'
[    1.774532] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805400[3]'
[    1.783664] spi_davinci 21805400.spi: DMA is not supported (-19)
[    1.790198] spidev spi0.0: buggy DT: spidev listed directly in DT
[    2.275390] spidev spi0.1: buggy DT: spidev listed directly in DT
[    2.761511] spi_davinci 21805400.spi: Controller at 0xe0e79400
[    2.768137] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805800[0]'
[    2.777318] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805800[1]'
[    2.786453] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805800[2]'
[    2.795618] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805800[3]'
[    2.804752] spi_davinci 21805800.spi: DMA is not supported (-19)
[    2.811306] spidev spi1.0: buggy DT: spidev listed directly in DT
[    3.297664] spidev spi1.1: buggy DT: spidev listed directly in DT
[    3.783778] spi_davinci 21805800.spi: Controller at 0xe0e7b800
[    3.790253] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805c00[0]'
[    3.799398] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805c00[1]'
[    3.808531] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805c00[2]'
[    3.817660] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21805c00[3]'
[    3.826790] spi_davinci 21805c00.spi: DMA is not supported (-19)
[    3.833327] spidev spi2.0: buggy DT: spidev listed directly in DT
[    4.319665] spidev spi2.1: buggy DT: spidev listed directly in DT
[    4.805980] spidev spi2.2: buggy DT: spidev listed directly in DT
[    5.292087] spi_davinci 21805c00.spi: Controller at 0xe0e7dc00
[    5.298558] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21806000[0]'
[    5.307705] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21806000[1]'
[    5.316837] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21806000[2]'
[    5.325968] of_get_named_gpiod_flags: can't parse 'cs-gpios' property of node '/soc/spi@21806000[3]'
[    5.335101] spi_davinci 21806000.spi: DMA is not supported (-19)
[    5.341713] m25p80 spi3.0: found s25fl064l, expected s25sl032p
[    5.347938] m25p80 spi3.0: s25fl064l (8192 Kbytes)
[    5.352760] 1 ofpart partitions found on MTD device spi3.0
[    5.358232] Creating 1 MTD partitions on "spi3.0":
[    5.363034] 0x000000000000-0x000000100000 : "xmos-img"
[    5.369152] spidev spi3.1: buggy DT: spidev listed directly in DT
[    5.855319] spi_davinci 21806000.spi: Controller at 0xe0e7f000
[    5.861648] mdio_bus 4200f00.mdio: GPIO lookup for consumer reset
[    5.867731] mdio_bus 4200f00.mdio: using device tree for GPIO lookup
[    5.874101] of_get_named_gpiod_flags: can't parse 'reset-gpios' property of node '/soc/mdio@4200f00[0]'
[    5.883492] of_get_named_gpiod_flags: can't parse 'reset-gpio' property of node '/soc/mdio@4200f00[0]'
[    5.892794] mdio_bus 4200f00.mdio: using lookup tables for GPIO lookup
[    5.899310] mdio_bus 4200f00.mdio: lookup for GPIO reset failed
[    5.960520] davinci_mdio 4200f00.mdio: davinci mdio revision 1.7, bus freq 2500000
[    5.968074] libphy: 4200f00.mdio: probed
[    5.972846] davinci_mdio 4200f00.mdio: phy[0]: device 4200f00.mdio:00, driver TI DP83867
[    5.981491] netcp-1.0 2620110.netcp: ALE enabled
[    5.986229] netcp-1.0 2620110.netcp: initialized cpsw ale version 1.4
[    5.992720] netcp-1.0 2620110.netcp: ALE Table size 64
[    5.997914] netcp-1.0 2620110.netcp: cpts: overflow check period 500 (jiffies)
[    6.005187] netcp-1.0 2620110.netcp: CPTS: ref_clk_freq:250000000 calc_mult:2147483648 calc_shift:29 error:0 nsec/sec
[    6.016460] netcp-1.0 2620110.netcp: module(netcp-xgbe) not used for device
[    6.023855] Probing sdhci!
[    6.026657] sdhci-omap 23000000.mmc: GPIO lookup for consumer wp
[    6.032681] sdhci-omap 23000000.mmc: using device tree for GPIO lookup
[    6.039202] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/soc/mmc@23000000[0]'
[    6.048334] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/soc/mmc@23000000[0]'
[    6.057375] sdhci-omap 23000000.mmc: using lookup tables for GPIO lookup
[    6.064077] sdhci-omap 23000000.mmc: lookup for GPIO wp failed
[    6.069992] sdhci: no write protect flag set
[    6.074430] mmc0: Hardware doesn't report any support voltages.
[    6.080989] hctosys: unable to open rtc device (rtc0)
[    6.109924] Waiting for root device PARTUUID=239df219-02...

  • Hi Jeff,

    I am looking into the log and will provide my inputs.
    Could you also share the dts files for your board? If it is not possible to share the whole dts, just the chunks related to mmcsd (pinmux & settings as well as gpios used as cd signals would be fine).

    Best Regards,
    Yordan
  • Also if you could share the output of printenv in u-boot would be useful.

    Best Regards,
    Yordan
  • Hi,

    For the CD signal, you could try and hack the sdhci.c driver to think the cd signal is present:
    /* Firstly check card presence */
    present = mmc->ops->get_cd(mmc);

    From your log I can see also the following error message:
    [ 6.074430] mmc0: Hardware doesn't report any support voltages.
    coming from sdhci.c. Make sure your dts defines the SD Card voltages, you could refer to the k2g EVM dts node:
    &mmc0 {
    pinctrl-names = "default";
    pinctrl-0 = <&mmc0_pins>;
    vmmc-supply = <&vcc3v3_dcin_reg>;
    vqmmc-supply = <&vcc3v3_dcin_reg>;
    cd-gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
    status = "okay";
    };

    vcc3v3_dcin_reg: fixedregulator-vcc3v3-dcin {
    compatible = "regulator-fixed";
    regulator-name = "mmc0_fixed";
    regulator-min-microvolt = <3300000>;
    regulator-max-microvolt = <3300000>;
    regulator-always-on;
    };

    Also dig in the kernel source for the following wp warnings:
    [ 6.048334] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/soc/mmc@23000000[0]'
    [ 6.064077] sdhci-omap 23000000.mmc: lookup for GPIO wp failed
    [ 6.069992] sdhci: no write protect flag set
    This should not be critical, but just in case make sure you do not set wp.

    Best Regards,
    Yordan
  • Yordan,

    I have changed all instances of get_cd to a "true" assignment, but the system still does not boot.  Interestingly, after adding the voltage regulator, the warning about the support voltages is still present.  I will keep digging and post my findings here.

    I have attached my DTS and u-boot environment for your review.

    Thank you,

    Jeff3364.filesForForum.zip

  • I enabled dynamic debug during the kernel boot sequence and found some more potentially useful info.  I'm not sure what all of it means, but it looks like the device may not be getting powered up correctly.  The SDMMC related portions of the bootlog are shown here:

    [   12.153252] PM: Moving platform:23000000.mmc to end of list
    [   12.153257] platform 23000000.mmc: Retrying from deferred list
    [   12.153517] bus: 'platform': driver_probe_device: matched device 23000000.mmc with driver sdhci-omap
    [   12.153527] bus: 'platform': really_probe: probing driver sdhci-omap with device 23000000.mmc
    [   12.153563] pinctrl-single 2621000.pinmux: pinmux_mmc0_pins index: 0x310 value: 0x120002
    [   12.153571] pinctrl-single 2621000.pinmux: pinmux_mmc0_pins index: 0x314 value: 0x120002
    [   12.153578] pinctrl-single 2621000.pinmux: pinmux_mmc0_pins index: 0x30c value: 0x120002
    [   12.153585] pinctrl-single 2621000.pinmux: pinmux_mmc0_pins index: 0x308 value: 0x120002
    [   12.153592] pinctrl-single 2621000.pinmux: pinmux_mmc0_pins index: 0x304 value: 0x120002
    [   12.153598] pinctrl-single 2621000.pinmux: pinmux_mmc0_pins index: 0x300 value: 0x120002
    [   12.153607] pinctrl core: add 1 pinctrl maps
    [   12.153633] pinctrl-single 2621000.pinmux: found group selector 11 for pinmux_mmc0_pins
    [   12.153641] sdhci-omap 23000000.mmc: no init pinctrl state
    [   12.153650] pinctrl-single 2621000.pinmux: request pin 196 (PIN196) for 23000000.mmc
    [   12.153656] pinctrl-single 2621000.pinmux: request pin 197 (PIN197) for 23000000.mmc
    [   12.153662] pinctrl-single 2621000.pinmux: request pin 195 (PIN195) for 23000000.mmc
    [   12.153668] pinctrl-single 2621000.pinmux: request pin 194 (PIN194) for 23000000.mmc
    [   12.153673] pinctrl-single 2621000.pinmux: request pin 193 (PIN193) for 23000000.mmc
    [   12.153678] pinctrl-single 2621000.pinmux: request pin 192 (PIN192) for 23000000.mmc
    [   12.153684] pinctrl-single 2621000.pinmux: enabling (null) function11
    [   12.153695] sdhci-omap 23000000.mmc: no sleep pinctrl state
    [   12.153700] sdhci-omap 23000000.mmc: no idle pinctrl state
    [   12.153712] OF: ** translation for device /soc/mmc@23000000 **
    [   12.153721] OF: bus is default (na=1, ns=1) on /soc
    [   12.153730] OF: parent bus is default (na=2, ns=2) on /
    [   12.153734] OF: walking ranges...
    [   12.153739] OF: default map, cp=80000000, s=80000000, da=80000000
    [   12.153742] OF: with offset: 0
    [   12.153746] OF: reached root node
    [   12.153751] OF: dma_addr(80000000) cpu_addr(800000000) size(80000000)
    [   12.153757] sdhci-omap 23000000.mmc: dma_pfn_offset(0x780000)
    [   12.153768] sdhci-omap 23000000.mmc: device is not dma coherent
    [   12.153773] sdhci-omap 23000000.mmc: device is not behind an iommu
    [   12.153791] devices_kset: Moving 23000000.mmc to end of list
    [   12.153811] sdhci-omap 23000000.mmc: adding to PM domain ti_sci_pd
    [   12.153816] sdhci-omap 23000000.mmc: genpd_add_device()
    [   12.165070] ti-sci 2921c00.pmmc: MSGHDR:type=0x0201 host=0x00 seq=0x00 flags=0x00000002
    [   12.165114] Probing sdhci!
    [   12.165149] OF: of_irq_parse_one: dev=/soc/mmc@23000000, index=0
    [   12.165167] OF:  parent=/interrupt-controller@02561000, intsize=3
    [   12.165173] OF:  intspec=0
    [   12.165179] OF: of_irq_parse_raw: ipar=/interrupt-controller@02561000, size=3
    [   12.165186] OF:  -> addrsize=2
    [   12.165191] OF:  -> got it !
    [   12.165238] sdhci-omap 23000000.mmc: GPIO lookup for consumer wp
    [   12.165243] sdhci-omap 23000000.mmc: using device tree for GPIO lookup
    [   12.165254] of_get_named_gpiod_flags: can't parse 'wp-gpios' property of node '/soc/mmc@23000000[0]'
    [   12.165261] of_get_named_gpiod_flags: can't parse 'wp-gpio' property of node '/soc/mmc@23000000[0]'
    [   12.165266] sdhci-omap 23000000.mmc: using lookup tables for GPIO lookup
    [   12.165272] sdhci-omap 23000000.mmc: lookup for GPIO wp failed
    [   12.165307] OF: comparing fck with fck
    [   12.165327] sdhci-omap 23000000.mmc: unable to get pbias regulator -19
    [   12.165359] sdhci-omap 23000000.mmc: genpd_runtime_resume()
    [   12.165388] ti-sci 2921c00.pmmc: MSGHDR:type=0x0200 host=0x00 seq=0x00 flags=0x00000002
    [   12.165420] sdhci-omap 23000000.mmc: resume latency exceeded, 53542 ns
    [   12.165427] sdhci: no write protect flag set
    [   12.165433] sdhci-omap 23000000.mmc: No vmmc regulator found
    [   12.165438] sdhci-omap 23000000.mmc: No vqmmc regulator found
    [   12.165444] mmc0: sdhci: Version:   0x00003302 | Present:  0x01f70000
    [   12.165449] mmc0: sdhci: Caps:      0x20e90080 | Caps_1:   0x00000f77
    [   12.165463] cma: cma_alloc(cma c108ac28, count 1, align 0)
    [   20.621924] cma: cma_alloc(): returned d7f89900
    [   20.626498] mmc0: sdhci: Auto-CMD23 unavailable
    [   20.631036] mmc0: sdhci: Broken Card Detect: MMC NEEDS POLL
    [   20.636611] mmc0: Hardware doesn't report any support voltages.
    [   20.642541] cma: cma_release(page d7f89900)
    [   20.646738] sdhci-omap 23000000.mmc: genpd_runtime_suspend()
    [   20.652434] ti-sci 2921c00.pmmc: MSGHDR:type=0x0200 host=0x00 seq=0x00 flags=0x00000002
    [   20.660460] sdhci-omap 23000000.mmc: suspend latency exceeded, 8057334 ns
    [   20.667286] kobject: 'mmc0' (d6af6010): kobject_cleanup, parent   (null)
    [   20.673990] kobject: 'mmc0' (d6af6010): calling ktype release
    [   20.679743] kobject: 'mmc0': free name
    [   20.683501] sdhci-omap 23000000.mmc: removing from PM domain ti_sci_pd
    [   20.690031] sdhci-omap 23000000.mmc: genpd_remove_device()
    [   20.695553] kernfs 23000000.mmc: removing
    [   20.699578] kernfs driver: removing
    [   20.703078] sdhci-omap: probe of 23000000.mmc rejects match -19

  • I was able to get the system to boot using the following change:

    In file sdhci-omap.c, function sdhci_omap_set_capabilities I commented out the line "if(regulator_is_supported_voltage(vqmmc, IOV_3V3, IOV_3V3))" to force the addition of CAPA_VS33 to the capabilities register.

    I am not sure if there are negative implications of this change. I have also noticed that device tree changes do not seem to change the capabilities reported by the driver. There are some capabilities I would like to use, but I cannot see that making changes such as "broken-cd" and "disable-wp" has any effect. I'd like to disable any suspend capabilities, disable write protection, and disable card detect.

    The verbose debug showed some more information, but I am not sure if it will cause any issues.

    Thanks,
    Jeff
  • Hi,

    "broken-cd" and "disable-wp" entries are not supported for the sd, this is why they won't have any effect.

    As for forcing the CAPA_VS33 this just adds the 3.3V support. This shouldn't cause problems with the MMC, seeing the K2G EVM dtb the interface actually uses 3.3V supply.

    Best Regards,
    Yordan
  • Good to know, thank you.  

    My main concern is the fact that the driver does not find the vmmc and vqmmc regulators.  This seems to me that it may indicate a deeper issue.  It would be my preference to fix this using the device tree so that I do not have to modify the driver every time I upgrade to a new SDK.

    Jeff