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.

AM62A7: Board bring up - kernel stops at "Waiting for root device"

Part Number: AM62A7
Other Parts Discussed in Thread: SK-AM62B,

Our custom board now starts to launch the kernel, and goes as far as

[    2.105660] Waiting for root device /dev/mmcblk1p2...

Comparing to the EVK, at about his point the VDDSHV_SDIO voltage switches from 3.3 to 1.8V to enable a high speed mode of the card (presumably as it mounts the device in OS rather than boot mode?)

On the custom board this does not happen, the VSEL_SD_SOC signal (GPMC0_CLK.GPIO0_31) stays high.

Note that for now we are manually entering the following line at the u-boot prompt to remove OSPI references, but it stops at the same message either way. 

setenv args_mmc "run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk1p2 rw rootfste=ext4 rootwait loglevel=8"

Can you suggest further steps to debug please?

Note that the dtsi used here is effectively the default EVK one, so many devices are not found.

U-Boot SPL 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
am62a_init: board_init_f done
SPL initial stack usage: 17032 bytes
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Trying to boot from MMC2
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Authentication passed
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Authentication passed
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Authentication passed
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Authentication passed
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Authentication passed
Starting ATF on ARM64 core...

NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
NOTICE:  BL31: Built : 00:42:57, Jan 13 2023

U-Boot SPL 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
am62a_init: board_init_f done
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Trying to boot from MMC2
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Authentication passed
am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
Authentication passed


U-Boot 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)

SoC:   AM62AX SR1.0 HS-FS
Model: Texas Instruments AM62A7 SK
DRAM:  2 GiB (effective 4 GiB)
Core:  57 devices, 27 uclasses, devicetree: separate
MMC:   mmc@fa10000: 0, mmc@fa00000: 1
Loading Environment from nowhere... OK
In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
Net:   Could not get PHY for ethernet@8000000port@1: addr 0
am65_cpsw_nuss_port ethernet@8000000port@1: phy_connect() failed
No ethernet found.

Hit any key to stop autoboot:  0
=> setenv args_mmc "run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk1p2 rw rootfste=ext4 rootwait loglevel=8"
=> boot
switch to partitions #0, OK
mmc1 is current device
SD/MMC found on device 1
Failed to load 'boot.scr'
651 bytes read in 19 ms (33.2 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc1 ...
## Error: "main_cpsw0_qsgmii_phyinit" not defined
20593152 bytes read in 844 ms (23.3 MiB/s)
53238 bytes read in 24 ms (2.1 MiB/s)
Working FDT set to 88000000
Failed to load '/boot/dtb/ti/k3-am62a7-sk-ili9806e.dtbo'
1966 bytes read in 23 ms (83 KiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
Working FDT set to 88000000
   Loading Device Tree to 000000008feef000, end 000000008fffffff ... OK
Working FDT set to 8feef000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.1.33-g8f7f371be2 (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Fri Jul 14 00:39:55 UTC 2023
[    0.000000] Machine model: Texas Instruments AM62A7 SK
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x00000000c0000000, size 576 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x0000000099800000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node c7x-dma-memory@99800000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x0000000099900000, size 30 MiB
[    0.000000] OF: reserved mem: initialized node c7x-memory@99900000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9b800000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9b900000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB
[    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c900000, compatible id shared-dma-pool
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 32 MiB
[    0.000000] OF: reserved mem: initialized node edgeai-dma-memory@a1000000, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: initialized node edgeai_shared-memories, compatible id dma-heap-carveout
[    0.000000] Reserved memory: created DMA memory pool at 0x00000000ae000000, size 288 MiB
[    0.000000] OF: reserved mem: initialized node edgeai-core-heap-memory@ae000000, compatible id shared-dma-pool
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   [mem 0x0000000100000000-0x00000008ffffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x00000000997fffff]
[    0.000000]   node   0: [mem 0x0000000099800000-0x000000009b7fefff]
[    0.000000]   node   0: [mem 0x000000009b800000-0x000000009e6fffff]
[    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
[    0.000000]   node   0: [mem 0x000000009e780000-0x00000000a2ffffff]
[    0.000000]   node   0: [mem 0x00000000a3000000-0x00000000adffffff]
[    0.000000]   node   0: [mem 0x00000000ae000000-0x00000000bfffffff]
[    0.000000]   node   0: [mem 0x00000000c0000000-0x00000000ffffffff]
[    0.000000]   node   0: [mem 0x0000000880000000-0x00000008ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ffffffff]
[    0.000000] On node 0, zone DMA: 1 pages in unavailable ranges
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.2
[    0.000000] percpu: Embedded 19 pages/cpu s38376 r8192 d31256 u77824
[    0.000000] pcpu-alloc: s38376 r8192 d31256 u77824 alloc=19*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1032191
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk1p2 rw rootfste=ext4 rootwait loglevel=8
[    0.000000] Unknown kernel command line parameters "rootfste=ext4", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] software IO TLB: area num 4.
[    0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
[    0.000000] Memory: 2807596K/4194300K available (12480K kernel code, 1294K rwdata, 4048K rodata, 2176K init, 498K bss, 796880K reserved, 589824K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
[    0.000000] ITS [mem 0x01820000-0x0182ffff]
[    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
[    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
[    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @880800000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x0000000880040000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000880050000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.000270] Console: colour dummy device 80x25
[    0.000315] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.000325] pid_max: default: 32768 minimum: 301
[    0.000377] LSM: Security Framework initializing
[    0.000479] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.000497] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.001967] cblist_init_generic: Setting adjustable number of callback queues.
[    0.001984] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.002047] cblist_init_generic: Setting shift to 2 and lim to 1.
[    0.002191] rcu: Hierarchical SRCU implementation.
[    0.002194] rcu:     Max phase no-delay instances is 1000.
[    0.002408] Platform MSI: msi-controller@1820000 domain created
[    0.002575] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.003203] EFI services will not be available.
[    0.003425] smp: Bringing up secondary CPUs ...
[    0.003996] Detected VIPT I-cache on CPU1
[    0.004092] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
[    0.004110] GICv3: CPU1: using allocated LPI pending table @0x0000000880060000
[    0.004155] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.004776] Detected VIPT I-cache on CPU2
[    0.004841] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
[    0.004856] GICv3: CPU2: using allocated LPI pending table @0x0000000880070000
[    0.004886] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.005432] Detected VIPT I-cache on CPU3
[    0.005502] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
[    0.005516] GICv3: CPU3: using allocated LPI pending table @0x0000000880080000
[    0.005544] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.005606] smp: Brought up 1 node, 4 CPUs
[    0.005612] SMP: Total of 4 processors activated.
[    0.005617] CPU features: detected: 32-bit EL0 Support
[    0.005621] CPU features: detected: CRC32 instructions
[    0.005679] CPU: All CPU(s) started at EL2
[    0.005682] alternatives: applying system-wide alternatives
[    0.007201] devtmpfs: initialized
[    0.015117] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.015143] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.029884] pinctrl core: initialized pinctrl subsystem
[    0.030373] DMI not present or invalid.
[    0.030924] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.031816] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
[    0.032042] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.032234] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.032304] audit: initializing netlink subsys (disabled)
[    0.032437] audit: type=2000 audit(0.032:1): state=initialized audit_enabled=0 res=1
[    0.032861] thermal_sys: Registered thermal governor 'step_wise'
[    0.032866] thermal_sys: Registered thermal governor 'power_allocator'
[    0.032908] cpuidle: using governor menu
[    0.033059] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.033144] ASID allocator initialised with 65536 entries
[    0.043962] platform 30200000.dss: Fixed dependency cycle(s) with /bus@f0000/spi@20100000/display@0
[    0.046110] KASLR disabled due to lack of seed
[    0.052800] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.052811] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[    0.052816] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    0.052819] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[    0.052823] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.052827] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    0.052831] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    0.052834] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    0.054292] k3-chipinfo 43000014.chipid: Family:AM62AX rev:SR1.0 JTAGID[0x0bb8d02f] Detected
[    0.055540] iommu: Default domain type: Translated
[    0.055550] iommu: DMA domain TLB invalidation policy: strict mode
[    0.055793] SCSI subsystem initialized
[    0.055923] libata version 3.00 loaded.
[    0.056106] usbcore: registered new interface driver usbfs
[    0.056137] usbcore: registered new interface driver hub
[    0.056160] usbcore: registered new device driver usb
[    0.056682] pps_core: LinuxPPS API ver. 1 registered
[    0.056686] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.056701] PTP clock support registered
[    0.056813] EDAC MC: Ver: 3.0.0
[    0.057559] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fca100
[    0.057702] omap-mailbox 29010000.mailbox: omap mailbox rev 0x66fca100
[    0.057829] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fca100
[    0.057882] omap-mailbox 29030000.mailbox: no available mbox devices found
[    0.058239] FPGA manager framework
[    0.058316] Advanced Linux Sound Architecture Driver Initialized.
[    0.059151] clocksource: Switched to clocksource arch_sys_counter
[    0.059347] VFS: Disk quotas dquot_6.6.0
[    0.059380] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.065022] Carveout Heap: Exported 176 MiB at 0x00000000a3000000
[    0.065129] NET: Registered PF_INET protocol family
[    0.065347] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.068157] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
[    0.068236] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.068251] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.068459] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
[    0.069285] TCP: Hash tables configured (established 32768 bind 32768)
[    0.069429] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.069518] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
[    0.069749] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.070171] RPC: Registered named UNIX socket transport module.
[    0.070178] RPC: Registered udp transport module.
[    0.070182] RPC: Registered tcp transport module.
[    0.070184] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.070192] NET: Registered PF_XDP protocol family
[    0.070207] PCI: CLS 0 bytes, default 64
[    0.070841] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    0.072300] Initialise system trusted keyrings
[    0.072492] workingset: timestamp_bits=46 max_order=20 bucket_order=0
[    0.077973] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.078577] NFS: Registering the id_resolver key type
[    0.078613] Key type id_resolver registered
[    0.078616] Key type id_legacy registered
[    0.078681] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.078686] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.078864] 9p: Installing v9fs 9p2000 file system support
[    0.113804] Key type asymmetric registered
[    0.113811] Asymmetric key parser 'x509' registered
[    0.113859] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.113999] io scheduler mq-deadline registered
[    0.114004] io scheduler kyber registered
[    0.116726] pinctrl-single 4084000.pinctrl: 34 pins, size 136
[    0.117141] pinctrl-single f4000.pinctrl: 171 pins, size 684
[    0.118018] pinctrl-single a40000.pinctrl: 512 pins, size 2048
[    0.124985] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.132383] loop: module loaded
[    0.133675] megasas: 07.719.03.00-rc1
[    0.137412] tun: Universal TUN/TAP device driver, 1.6
[    0.138064] thunder_xcv, ver 1.0
[    0.138099] thunder_bgx, ver 1.0
[    0.138127] nicpf, ver 1.0
[    0.138498] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    0.138503] hns3: Copyright (c) 2017 Huawei Corporation.
[    0.138551] hclge is initializing
[    0.138572] e1000: Intel(R) PRO/1000 Network Driver
[    0.138575] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    0.138613] e1000e: Intel(R) PRO/1000 Network Driver
[    0.138615] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.138644] igb: Intel(R) Gigabit Ethernet Network Driver
[    0.138648] igb: Copyright (c) 2007-2014 Intel Corporation.
[    0.138673] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    0.138676] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    0.138781] sky2: driver version 1.30
[    0.139462] VFIO - User Level meta-driver version: 0.3
[    0.140118] usbcore: registered new interface driver usb-storage
[    0.140794] i2c_dev: i2c /dev entries driver
[    0.142765] sdhci: Secure Digital Host Controller Interface driver
[    0.142773] sdhci: Copyright(c) Pierre Ossman
[    0.143263] Synopsys Designware Multimedia Card Interface Driver
[    0.143664] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.144596] ledtrig-cpu: registered to indicate activity on CPUs
[    0.144762] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    0.145093] usbcore: registered new interface driver usbhid
[    0.145098] usbhid: USB HID core driver
[    0.146252] optee: probing for conduit method.
[    0.146280] optee: revision 3.20 (8e74d476)
[    0.146544] optee: dynamic shared memory is enabled
[    0.146903] optee: initialized driver
[    0.148396] Initializing XFRM netlink socket
[    0.148425] NET: Registered PF_PACKET protocol family
[    0.148549] 9pnet: Installing 9P2000 support
[    0.148607] Key type dns_resolver registered
[    0.148970] registered taskstats version 1
[    0.148995] Loading compiled-in X.509 certificates
[    0.156593] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
[    0.186797] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
[    0.188155] pca953x 1-0023: supply vcc not found, using dummy regulator
[    0.188262] pca953x 1-0023: using AI
[    0.211290] pca953x 1-0023: failed writing register
[    0.211432] pca953x: probe of 1-0023 failed with error -121
[    0.211696] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
[    0.235203] pca954x 2-0071: probe failed
[    0.235256] omap_i2c 20020000.i2c: bus 2 rev0.12 at 400 kHz
[    0.235549] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
[    0.235678] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
[    0.235892] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    0.236141] ti-sci-inta 4e0a0000.interrupt-controller: Interrupt Aggregator domain 200 created
[    0.237050] ti-udma 485c0100.dma-controller: Number of rings: 82
[    0.238928] ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
[    0.241202] ti-udma 485c0000.dma-controller: Number of rings: 150
[    0.244660] ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
[    0.246411] ti-udma 4e230000.dma-controller: Number of rings: 6
[    0.246813] ti-udma 4e230000.dma-controller: Channels: 6 (bchan: 0, tchan: 0, rchan: 6)
[    0.247920] printk: console [ttyS2] disabled
[    0.247980] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 252, base_baud = 3000000) is a 8250
[    1.852454] printk: console [ttyS2] enabled
[    1.857706] 2810000.serial: ttyS0 at MMIO 0x2810000 (irq = 253, base_baud = 3000000) is a 8250
[    1.867244] 2850000.serial: ttyS1 at MMIO 0x2850000 (irq = 254, base_baud = 3000000) is a 8250
[    1.915159] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
[    1.923184] mdio_bus 8000f00.mdio: MDIO device at address 0 is missing.
[    1.929831] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
[    1.942660] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
[    1.949790] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
[    1.956191] pps pps0: new PPS source ptp0
[    1.960467] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
[    1.970488] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
[    1.978443] k3-j72xx-soc-thermal b00000.temperature-sensor: invalid resource
[    1.985538] k3-j72xx-soc-thermal: probe of b00000.temperature-sensor failed with error -22
[    1.996281] mmc0: CQHCI version 5.10
[    2.027244] tps6594 0-0048: error -EREMOTEIO: Failed to set PMIC state
[    2.033891] tps6594: probe of 0-0048 failed with error -121
[    2.039935] pca953x 1-0022: supply vcc not found, using dummy regulator
[    2.046375] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    2.046664] pca953x 1-0022: using AI
[    2.057822] pca953x 1-0022: failed writing register
[    2.062872] pca953x: probe of 1-0022 failed with error -121
[    2.070229] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[    2.078581] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[    2.085936] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
[    2.098931] ALSA device list:
[    2.101928]   No soundcards found.
[    2.105660] Waiting for root device /dev/mmcblk1p2...
[   12.257268] platform regulator-3: deferred probe pending
[   12.262824] platform regulator-5: deferred probe pending

  • Hi,
    From the logs it looks like SD card is not detected. Can you try enabling debug logs in MMC driver?
    Also, does it boot properly with EVM ?
    Our HW expert will provide further comments about changes in VDDSHV_SDIO voltage.

    Regards,
    Aparna

  • Evan, since your GPIO output isn't working, i think it may be a device tree issue.  Need to ask our software folks.

    James

  • Hi James, we are using the k3-am62a7-sk.dts unmodified for the moment.  The VSEL_SD_SOC wiring matches the EVK (pin N22, GPMC0_CLK.GPIO0_31).

    Unless it is defined differently in the rebuilt u-boot or something.

  • Hi Aparna,

    Thanks, can you give guidance on how to enable debug in the MMC driver, so that we can see it in the terminal output?

    The same SD card will not boot in the EVK for a different reason (the u-boot DDR config has been changed to support a different revision memory chip on the custom board).  However the OS will boot on the EVK if the default tiboot3 etc is used.

    edit: Also to confirm, the card detect signal (MMC1_SDCD) is low as long as there is a card inserted.  Connected to pin E18, same as EVK.

  • Hi Evan, sorry our software guy is out till monday.  It is good that the hw is the same, but i don't even see that GPIO defined in the device tree file for AM62A.  For example, in the dts for AM62x (which uses the same GPIO on its EVM for the same function), there is:

    vddshv_sdio_pins_default: vddshv-sdio-pins-default {
          pinctrl-single,pins = <
                AM62X_IOPAD(0x07c, PIN_OUTPUT, 7) /* (M19) GPMC0_CLK.GPIO0_31 */
    >;
    };

    vddshv_sdio: regulator-4 {
    compatible = "regulator-gpio";
    regulator-name = "vddshv_sdio";
    pinctrl-names = "default";
    pinctrl-0 = <&vddshv_sdio_pins_default>;
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <3300000>;
    regulator-boot-on;
    vin-supply = <&ldo1_reg>;
    gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
    states = <1800000 0x0>,
    <3300000 0x1>;
    };

    i would think you would have to have something like this for AM62A as well, otherwise the pinmux would not get setup to make that pin a GPIO.

    Regards,

    James

  • Hi James,

    In the k3-am62a7-sk.dts, we have the following sections related to SDIO (basically the same):

    vddshv_sdio: regulator-5 {
    compatible = "regulator-gpio";
    regulator-name = "vddshv_sdio";
    pinctrl-names = "default";
    pinctrl-0 = <&vddshv_sdio_pins_default>;
    regulator-min-microvolt = <1800000>;
    regulator-max-microvolt = <3300000>;
    regulator-boot-on;
    vin-supply = <&ldo1>;
    gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
    states = <1800000 0x0>,
    <3300000 0x1>;
    };

    vddshv_sdio_pins_default: vddshv-sdio-pins-default {
    pinctrl-single,pins = <
    AM62AX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (M19) GPMC0_CLK.GPIO0_31 */
    >;
    };

    &sdhci1 {
    /* SD/MMC */
    status = "okay";
    vmmc-supply = <&vdd_mmc1>;
    vqmmc-supply = <&vddshv_sdio>;
    pinctrl-names = "default";
    pinctrl-0 = <&main_mmc1_pins_default>;
    ti,driver-strength-ohm = <50>;
    disable-wp;
    };

    This does correlate to how it's connected.  Note that the pin number highlighted is not N22. The comment must be wrong, as the datasheet agrees with N22 for this GPIO?

  • Hi Evan,

    The SK-AM62A board uses a GPIO from the IO expander to the control the SD card slot power supply (vdd_mmc1). Does your board have the same design?

    Please see your kernel boot log line 354-356, the pca953x driver probe failed. This would cause your SD card slot not powered if your board also uses the IO expander GPIO to control the vdd_mmc1 power rail.

  • Hi Bin,

    OK I think you have hit the issue.  The VDD_MMC_SD is on when VCC_3V3_SYS is on (as the IO expander is not fitted). It is gated with RESETSTATz and PORZ_OUT.

    Does the driver need to power off the SD card to change to ultra high speed mode?

  • Hi Evan,

    Does the driver need to power off the SD card to change to ultra high speed mode?

    Typically when the SD card is used in U-Boot, for example in the SD card boot mode use case, the SD card has already be enumerated in one of the high speed mode which uses 1.8v IO. Then to re-enumerate it again in Linux, the SD card need reset. But SD card doesn't have a reset pin, so we use a GPIO to power off VDD_MMC_SD to reset the SD card.

    So if your board has VDD_MMC_SD always ON after SoC reset, the SD card won't be re-enumerated again in Linux. Yes, I think this is the reason why Linux doesn't enumerate the SD card on your board.

  • It makes sense, thank you.

    We will try to wire a GPIO.  Is there any workaround possible?

  • Hi Evan,

    I am not sure if this will be a workaround, but please try to add the following DT property in U-Boot (not kernel) device tree k3-am62a-main.dtsi, sdhci1 node:

    no-1-8-v;

    This makes SD card only works in 3.3v speed mode in U-Boot, so that kernel can switch it to 1.8v speed mode. But I am not sure if the SD card still need to be powered off to be in the reset state for the MMC controller to re-enumerate it again. I don't have experience with the case that VDD_MMC_SD is always on.

  • Thanks.  One point, we already see that the SDIO voltage is 3.3V through the whole boot process.

  • Then adding 'no-1-8-v;" in U-Boot device tree won't help.

  • Another thing to try on the "vdd_mmc1" device tree node:

    remove "enable-active-high", and "gpio = <&exp1 3 GPIO_ACTIVE_HIGH>" lines,

    and add "regulator-always-on;".

  • Quick question - are we talking about the u-boot dts or the kernel one?

  • remove "enable-active-high", and "gpio = <&exp1 3 GPIO_ACTIVE_HIGH>" lines,

    and add "regulator-always-on;".

    Sorry, this is about the kernel dts.

  • Hi Bin,

    This change did not help, unfortunately.

    Next we allocated a GPIO on the SOC to drive this function (GPIO0_53, pin V19) in the kernel DTS (attached)

    We see this pin change from input (floating) to driven high around where the boot process stops.  Because the input to the gate controlling the SD card power is pulled high with a resistor, there is effectively no change, the power remains on constantly.  I wanted to see the pin drive to a low output to reset the SD card, but it doesn't happen. 

    We have also changed the u-boot DTS file with the same change of GPIO pin, and it did not appear to make any difference.

    I have checked the MMC1_SD_EN line on the EVM as well, and it also does not show a power off/on during the kernel, at least with the pre-built kool-koala image and card that I used.

    Can there be another cause perhaps?

    U-Boot SPL 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    am62a_init: board_init_f done
    SPL initial stack usage: 17032 bytes
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Trying to boot from MMC2
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Authentication passed
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Authentication passed
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Authentication passed
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Authentication passed
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 00:42:57, Jan 13 2023
    
    U-Boot SPL 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    am62a_init: board_init_f done
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Trying to boot from MMC2
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Authentication passed
    am62a_init: spl_boot_device: devstat = 0x643 bootmedia = 0x8 bootindex = 0
    Authentication passed
    
    
    U-Boot 2023.04-g756ba776d4 (Jul 13 2023 - 05:36:12 +0000)
    
    SoC:   AM62AX SR1.0 HS-FS
    Model: Texas Instruments AM62A7 SK
    DRAM:  2 GiB (effective 4 GiB)
    Core:  58 devices, 27 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from nowhere... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   Could not get PHY for ethernet@8000000port@1: addr 0
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_connect() failed
    No ethernet found.
    
    Hit any key to stop autoboot:  0
    =>
    => setenv args_mmc "run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk1p2 rw rootfste=ext4 rootwait loglevel=9"
    =>
    => boot
    switch to partitions #0, OK
    mmc1 is current device
    SD/MMC found on device 1
    Failed to load 'boot.scr'
    621 bytes read in 19 ms (31.3 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    ## Error: "main_cpsw0_qsgmii_phyinit" not defined
    20593152 bytes read in 843 ms (23.3 MiB/s)
    53363 bytes read in 25 ms (2 MiB/s)
    Working FDT set to 88000000
    1966 bytes read in 22 ms (86.9 KiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
    Working FDT set to 88000000
       Loading Device Tree to 000000008feef000, end 000000008fffffff ... OK
    Working FDT set to 8feef000
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 6.1.33-g8f7f371be2 (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Fri Jul 14 00:39:55 UTC 2023
    [    0.000000] Machine model: Texas Instruments AM62A7 SK
    [    0.000000] efi: UEFI not found.
    [    0.000000] Reserved memory: created CMA memory pool at 0x00000000c0000000, size 576 MiB
    [    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000099800000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node c7x-dma-memory@99800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x0000000099900000, size 30 MiB
    [    0.000000] OF: reserved mem: initialized node c7x-memory@99900000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b800000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9b800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009b900000, size 15 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9b900000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c800000, size 1 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c800000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x000000009c900000, size 30 MiB
    [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@9c900000, compatible id shared-dma-pool
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 32 MiB
    [    0.000000] OF: reserved mem: initialized node edgeai-dma-memory@a1000000, compatible id shared-dma-pool
    [    0.000000] OF: reserved mem: initialized node edgeai_shared-memories, compatible id dma-heap-carveout
    [    0.000000] Reserved memory: created DMA memory pool at 0x00000000ae000000, size 288 MiB
    [    0.000000] OF: reserved mem: initialized node edgeai-core-heap-memory@ae000000, compatible id shared-dma-pool
    [    0.000000] Zone ranges:
    [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
    [    0.000000]   DMA32    empty
    [    0.000000]   Normal   [mem 0x0000000100000000-0x00000008ffffffff]
    [    0.000000] Movable zone start for each node
    [    0.000000] Early memory node ranges
    [    0.000000]   node   0: [mem 0x0000000080000000-0x00000000997fffff]
    [    0.000000]   node   0: [mem 0x0000000099800000-0x000000009b7fefff]
    [    0.000000]   node   0: [mem 0x000000009b800000-0x000000009e6fffff]
    [    0.000000]   node   0: [mem 0x000000009e700000-0x000000009e77ffff]
    [    0.000000]   node   0: [mem 0x000000009e780000-0x00000000a2ffffff]
    [    0.000000]   node   0: [mem 0x00000000a3000000-0x00000000adffffff]
    [    0.000000]   node   0: [mem 0x00000000ae000000-0x00000000bfffffff]
    [    0.000000]   node   0: [mem 0x00000000c0000000-0x00000000ffffffff]
    [    0.000000]   node   0: [mem 0x0000000880000000-0x00000008ffffffff]
    [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000008ffffffff]
    [    0.000000] On node 0, zone DMA: 1 pages in unavailable ranges
    [    0.000000] psci: probing for conduit method from DT.
    [    0.000000] psci: PSCIv1.1 detected in firmware.
    [    0.000000] psci: Using standard PSCI v0.2 function IDs
    [    0.000000] psci: Trusted OS migration not required
    [    0.000000] psci: SMC Calling Convention v1.2
    [    0.000000] percpu: Embedded 19 pages/cpu s38376 r8192 d31256 u77824
    [    0.000000] pcpu-alloc: s38376 r8192 d31256 u77824 alloc=19*4096
    [    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] alternatives: applying boot alternatives
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 1032191
    [    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk1p2 rw rootfste=ext4 rootwait loglevel=9
    [    0.000000] Unknown kernel command line parameters "rootfste=ext4", will be passed to user space.
    [    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes, linear)
    [    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
    [    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] software IO TLB: area num 4.
    [    0.000000] software IO TLB: mapped [mem 0x00000000fbfff000-0x00000000fffff000] (64MB)
    [    0.000000] Memory: 2807596K/4194300K available (12480K kernel code, 1294K rwdata, 4048K rodata, 2176K init, 498K bss, 796880K reserved, 589824K cma-reserved)
    [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
    [    0.000000] rcu: Preemptible hierarchical RCU implementation.
    [    0.000000] rcu:     RCU event tracing is enabled.
    [    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
    [    0.000000]  Trampoline variant of Tasks RCU enabled.
    [    0.000000]  Tracing variant of Tasks RCU enabled.
    [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
    [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
    [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
    [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
    [    0.000000] GICv3: 256 SPIs implemented
    [    0.000000] GICv3: 0 Extended SPIs implemented
    [    0.000000] Root IRQ handler: gic_handle_irq
    [    0.000000] GICv3: GICv3 features: 16 PPIs
    [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001880000
    [    0.000000] ITS [mem 0x01820000-0x0182ffff]
    [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
    [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
    [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @880800000 (flat, esz 8, psz 64K, shr 0)
    [    0.000000] ITS: using cache flushing for cmd queue
    [    0.000000] GICv3: using LPI property table @0x0000000880040000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000880050000
    [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000000] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.000276] Console: colour dummy device 80x25
    [    0.000321] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.000332] pid_max: default: 32768 minimum: 301
    [    0.000384] LSM: Security Framework initializing
    [    0.000485] Mount-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.000503] Mountpoint-cache hash table entries: 8192 (order: 4, 65536 bytes, linear)
    [    0.001976] cblist_init_generic: Setting adjustable number of callback queues.
    [    0.001991] cblist_init_generic: Setting shift to 2 and lim to 1.
    [    0.002053] cblist_init_generic: Setting shift to 2 and lim to 1.
    [    0.002195] rcu: Hierarchical SRCU implementation.
    [    0.002199] rcu:     Max phase no-delay instances is 1000.
    [    0.002417] Platform MSI: msi-controller@1820000 domain created
    [    0.002591] PCI/MSI: /bus@f0000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.003259] EFI services will not be available.
    [    0.003481] smp: Bringing up secondary CPUs ...
    [    0.004053] Detected VIPT I-cache on CPU1
    [    0.004141] GICv3: CPU1: found redistributor 1 region 0:0x00000000018a0000
    [    0.004159] GICv3: CPU1: using allocated LPI pending table @0x0000000880060000
    [    0.004205] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.004831] Detected VIPT I-cache on CPU2
    [    0.004897] GICv3: CPU2: found redistributor 2 region 0:0x00000000018c0000
    [    0.004911] GICv3: CPU2: using allocated LPI pending table @0x0000000880070000
    [    0.004942] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
    [    0.005487] Detected VIPT I-cache on CPU3
    [    0.005554] GICv3: CPU3: found redistributor 3 region 0:0x00000000018e0000
    [    0.005567] GICv3: CPU3: using allocated LPI pending table @0x0000000880080000
    [    0.005596] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
    [    0.005664] smp: Brought up 1 node, 4 CPUs
    [    0.005670] SMP: Total of 4 processors activated.
    [    0.005674] CPU features: detected: 32-bit EL0 Support
    [    0.005678] CPU features: detected: CRC32 instructions
    [    0.005735] CPU: All CPU(s) started at EL2
    [    0.005737] alternatives: applying system-wide alternatives
    [    0.007274] devtmpfs: initialized
    [    0.015225] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.015250] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
    [    0.030065] pinctrl core: initialized pinctrl subsystem
    [    0.030575] DMI not present or invalid.
    [    0.031122] NET: Registered PF_NETLINK/PF_ROUTE protocol family
    [    0.032014] DMA: preallocated 512 KiB GFP_KERNEL pool for atomic allocations
    [    0.032280] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.032434] DMA: preallocated 512 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.032502] audit: initializing netlink subsys (disabled)
    [    0.032640] audit: type=2000 audit(0.032:1): state=initialized audit_enabled=0 res=1
    [    0.033066] thermal_sys: Registered thermal governor 'step_wise'
    [    0.033071] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.033114] cpuidle: using governor menu
    [    0.033266] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.033350] ASID allocator initialised with 65536 entries
    [    0.044151] platform 30200000.dss: Fixed dependency cycle(s) with /bus@f0000/spi@20100000/display@0
    [    0.046355] KASLR disabled due to lack of seed
    [    0.053085] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.053097] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
    [    0.053102] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.053105] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
    [    0.053109] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.053112] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
    [    0.053117] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.053120] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
    [    0.054579] k3-chipinfo 43000014.chipid: Family:AM62AX rev:SR1.0 JTAGID[0x0bb8d02f] Detected
    [    0.055830] iommu: Default domain type: Translated
    [    0.055838] iommu: DMA domain TLB invalidation policy: strict mode
    [    0.056084] SCSI subsystem initialized
    [    0.056215] libata version 3.00 loaded.
    [    0.056451] usbcore: registered new interface driver usbfs
    [    0.056481] usbcore: registered new interface driver hub
    [    0.056506] usbcore: registered new device driver usb
    [    0.056979] pps_core: LinuxPPS API ver. 1 registered
    [    0.056984] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.056998] PTP clock support registered
    [    0.057112] EDAC MC: Ver: 3.0.0
    [    0.057883] omap-mailbox 29000000.mailbox: omap mailbox rev 0x66fca100
    [    0.058020] omap-mailbox 29010000.mailbox: omap mailbox rev 0x66fca100
    [    0.058150] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fca100
    [    0.058202] omap-mailbox 29030000.mailbox: no available mbox devices found
    [    0.058566] FPGA manager framework
    [    0.058639] Advanced Linux Sound Architecture Driver Initialized.
    [    0.059489] clocksource: Switched to clocksource arch_sys_counter
    [    0.059674] VFS: Disk quotas dquot_6.6.0
    [    0.059706] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.065388] Carveout Heap: Exported 176 MiB at 0x00000000a3000000
    [    0.065495] NET: Registered PF_INET protocol family
    [    0.065711] IP idents hash table entries: 65536 (order: 7, 524288 bytes, linear)
    [    0.068561] tcp_listen_portaddr_hash hash table entries: 2048 (order: 3, 32768 bytes, linear)
    [    0.068636] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
    [    0.068651] TCP established hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.068861] TCP bind hash table entries: 32768 (order: 8, 1048576 bytes, linear)
    [    0.069700] TCP: Hash tables configured (established 32768 bind 32768)
    [    0.069844] UDP hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.069931] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes, linear)
    [    0.070163] NET: Registered PF_UNIX/PF_LOCAL protocol family
    [    0.070581] RPC: Registered named UNIX socket transport module.
    [    0.070590] RPC: Registered udp transport module.
    [    0.070593] RPC: Registered tcp transport module.
    [    0.070596] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.070603] NET: Registered PF_XDP protocol family
    [    0.070619] PCI: CLS 0 bytes, default 64
    [    0.071297] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.072788] Initialise system trusted keyrings
    [    0.072989] workingset: timestamp_bits=46 max_order=20 bucket_order=0
    [    0.078486] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.079091] NFS: Registering the id_resolver key type
    [    0.079121] Key type id_resolver registered
    [    0.079124] Key type id_legacy registered
    [    0.079187] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.079192] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.079366] 9p: Installing v9fs 9p2000 file system support
    [    0.113224] Key type asymmetric registered
    [    0.113231] Asymmetric key parser 'x509' registered
    [    0.113279] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
    [    0.113421] io scheduler mq-deadline registered
    [    0.113426] io scheduler kyber registered
    [    0.116241] pinctrl-single 4084000.pinctrl: 34 pins, size 136
    [    0.116654] pinctrl-single f4000.pinctrl: 171 pins, size 684
    [    0.117527] pinctrl-single a40000.pinctrl: 512 pins, size 2048
    [    0.124499] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
    [    0.131772] loop: module loaded
    [    0.133073] megasas: 07.719.03.00-rc1
    [    0.136890] tun: Universal TUN/TAP device driver, 1.6
    [    0.137562] thunder_xcv, ver 1.0
    [    0.137598] thunder_bgx, ver 1.0
    [    0.137629] nicpf, ver 1.0
    [    0.138029] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
    [    0.138034] hns3: Copyright (c) 2017 Huawei Corporation.
    [    0.138083] hclge is initializing
    [    0.138102] e1000: Intel(R) PRO/1000 Network Driver
    [    0.138106] e1000: Copyright (c) 1999-2006 Intel Corporation.
    [    0.138137] e1000e: Intel(R) PRO/1000 Network Driver
    [    0.138139] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
    [    0.138169] igb: Intel(R) Gigabit Ethernet Network Driver
    [    0.138172] igb: Copyright (c) 2007-2014 Intel Corporation.
    [    0.138200] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.138204] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.138309] sky2: driver version 1.30
    [    0.138961] VFIO - User Level meta-driver version: 0.3
    [    0.139678] usbcore: registered new interface driver usb-storage
    [    0.140360] i2c_dev: i2c /dev entries driver
    [    0.142364] sdhci: Secure Digital Host Controller Interface driver
    [    0.142371] sdhci: Copyright(c) Pierre Ossman
    [    0.142830] Synopsys Designware Multimedia Card Interface Driver
    [    0.143249] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.144237] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.144408] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.144749] usbcore: registered new interface driver usbhid
    [    0.144754] usbhid: USB HID core driver
    [    0.145904] optee: probing for conduit method.
    [    0.145933] optee: revision 3.20 (8e74d476)
    [    0.146195] optee: dynamic shared memory is enabled
    [    0.146552] optee: initialized driver
    [    0.148030] Initializing XFRM netlink socket
    [    0.148060] NET: Registered PF_PACKET protocol family
    [    0.148180] 9pnet: Installing 9P2000 support
    [    0.148254] Key type dns_resolver registered
    [    0.148616] registered taskstats version 1
    [    0.148640] Loading compiled-in X.509 certificates
    [    0.156580] ti-sci 44043000.system-controller: ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
    [    0.186932] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
    [    0.188254] pca953x 1-0023: supply vcc not found, using dummy regulator
    [    0.188354] pca953x 1-0023: using AI
    [    0.211629] pca953x 1-0023: failed writing register
    [    0.211773] pca953x: probe of 1-0023 failed with error -121
    [    0.212048] omap_i2c 20010000.i2c: bus 1 rev0.12 at 100 kHz
    [    0.235543] pca954x 2-0071: probe failed
    [    0.235593] omap_i2c 20020000.i2c: bus 2 rev0.12 at 400 kHz
    [    0.235886] ti-sci-intr 4210000.interrupt-controller: Interrupt Router 5 domain created
    [    0.236018] ti-sci-intr bus@f0000:interrupt-controller@a00000: Interrupt Router 3 domain created
    [    0.236224] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
    [    0.236476] ti-sci-inta 4e0a0000.interrupt-controller: Interrupt Aggregator domain 200 created
    [    0.237388] ti-udma 485c0100.dma-controller: Number of rings: 82
    [    0.239288] ti-udma 485c0100.dma-controller: Channels: 48 (bchan: 18, tchan: 12, rchan: 18)
    [    0.241550] ti-udma 485c0000.dma-controller: Number of rings: 150
    [    0.245004] ti-udma 485c0000.dma-controller: Channels: 35 (tchan: 20, rchan: 15)
    [    0.246759] ti-udma 4e230000.dma-controller: Number of rings: 6
    [    0.247171] ti-udma 4e230000.dma-controller: Channels: 6 (bchan: 0, tchan: 0, rchan: 6)
    [    0.248265] printk: console [ttyS2] disabled
    [    0.248324] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 252, base_baud = 3000000) is a 8250
    [    1.852803] printk: console [ttyS2] enabled
    [    1.858054] 2810000.serial: ttyS0 at MMIO 0x2810000 (irq = 253, base_baud = 3000000) is a 8250
    [    1.867642] 2850000.serial: ttyS1 at MMIO 0x2850000 (irq = 254, base_baud = 3000000) is a 8250
    [    1.915497] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.923521] mdio_bus 8000f00.mdio: MDIO device at address 0 is missing.
    [    1.930171] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA01103, cpsw version 0x6BA81103 Ports: 3 quirks:00000006
    [    1.942999] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.5
    [    1.950129] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [    1.956503] pps pps0: new PPS source ptp0
    [    1.960779] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
    [    1.970809] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 19
    [    1.978714] k3-j72xx-soc-thermal b00000.temperature-sensor: invalid resource
    [    1.985808] k3-j72xx-soc-thermal: probe of b00000.temperature-sensor failed with error -22
    [    1.996575] mmc0: CQHCI version 5.10
    [    2.023546] tps6594 0-0048: error -EREMOTEIO: Failed to set PMIC state
    [    2.030141] tps6594: probe of 0-0048 failed with error -121
    [    2.035976] pca953x 1-0022: supply vcc not found, using dummy regulator
    [    2.041487] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    2.042707] pca953x 1-0022: using AI
    [    2.053871] pca953x 1-0022: failed writing register
    [    2.058896] pca953x: probe of 1-0022 failed with error -121
    [    2.066141] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [    2.074498] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [    2.081902] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [    2.095108] ALSA device list:
    [    2.098102]   No soundcards found.
    [    2.101830] Waiting for root device /dev/mmcblk1p2...
    k3-am62a7-sk 2.dts.txt
    // SPDX-License-Identifier: GPL-2.0
    /*
     * AM62A SK: https://www.ti.com/lit/zip/sprr459
     *
     * Copyright (C) 2022 Texas Instruments Incorporated - https://www.ti.com/
     */
    
    /dts-v1/;
    
    #include <dt-bindings/leds/common.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/net/ti-dp83867.h>
    #include "k3-am62a7.dtsi"
    
    / {
    	compatible =  "ti,am62a7-sk", "ti,am62a7";
    	model = "Texas Instruments AM62A7 SK";
    
    	aliases {
    		serial2 = &main_uart0;
    		serial0 = &main_uart1;
    		serial1 = &main_uart5;
    		mmc0 = &sdhci0;
    		mmc1 = &sdhci1;
    		ethernet0 = &cpsw_port1;
    	};
    
    	chosen {
    		stdout-path = "serial2:115200n8";
    	};
    
    	memory@80000000 {
    		device_type = "memory";
    		/* 4G RAM */
    		reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    		      <0x00000008 0x80000000 0x00000000 0x80000000>;
    	};
    
    	dma_buf_phys {
    		compatible = "ti,dma-buf-phys";
    	};
    
    	reserved-memory {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		/* global cma region */
    		linux,cma {
    			compatible = "shared-dma-pool";
    			reusable;
    			size = <0x00 0x24000000>;
    			alloc-ranges = <0x00 0xc0000000 0x00 0x24000000>;
    			linux,cma-default;
    		};
    
    		secure_tfa_ddr: tfa@9e780000 {
    			reg = <0x00 0x9e780000 0x00 0x80000>;
    			alignment = <0x1000>;
    			no-map;
    		};
    
    		secure_ddr: optee@9e800000 {
    			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
    			alignment = <0x1000>;
    			no-map;
    		};
    
    		wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9c800000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x9c800000 0x00 0x100000>;
    			no-map;
    		};
    
    		wkup_r5fss0_core0_memory_region: r5f-dma-memory@9c900000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x9c900000 0x00 0x01e00000>;
    			no-map;
    		};
    
    		mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory@9b800000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x9b800000 0x00 0x100000>;
    			no-map;
    		};
    
    		mcu_r5fss0_core0_memory_region: r5f-dma-memory@9b900000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x9b900000 0x00 0x0f00000>;
    			no-map;
    		};
    
    		c7x_0_dma_memory_region: c7x-dma-memory@99800000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x99800000 0x00 0x100000>;
    			no-map;
    		};
    
    		c7x_0_memory_region: c7x-memory@99900000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x99900000 0x00 0x01efffff>;
    			no-map;
    		};
    
    		edgeai_rtos_ipc_memory_region: edgeai-rtos-ipc-memory-region {
    			reg = <0x00 0xa0000000 0x00 0x01000000>;
    			no-map;
    		};
    
    		edgeai_memory_region: edgeai-dma-memory@a1000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xa1000000 0x00 0x02000000>;
    			no-map;
    		};
    
    		edgeai_shared_region: edgeai_shared-memories {
    			compatible = "dma-heap-carveout";
    			reg = <0x00 0xa3000000 0x00 0x0b000000>;
    		};
    
    		edgeai_core_heaps: edgeai-core-heap-memory@ae000000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0xae000000 0x00 0x12000000>;
    			no-map;
    		};
    	};
    
    	vmain_pd: regulator-0 {
    		/* TPS25750 PD CONTROLLER OUTPUT */
    		compatible = "regulator-fixed";
    		regulator-name = "vmain_pd";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vcc_5v0: regulator-1 {
    		/* Output of TPS63070 */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_5v0";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		vin-supply = <&vmain_pd>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vcc_3v3_main: regulator-2 {
    		/* output of LM5141-Q1 */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_3v3_main";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vmain_pd>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vdd_mmc1: regulator-3 {
    		/* TPS22918DBVR */
    		compatible = "regulator-fixed";
    		regulator-name = "vdd_mmc1";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-boot-on;
    		enable-active-high;
    		pinctrl-names= "default";
    		pinctrl-0 = <&vdd_mmc1_pins_default>;
    		gpio = <&main_gpio0 53 GPIO_ACTIVE_HIGH>;
    	};
    
    	vcc_3v3_sys: regulator-4 {
    		/* output of TPS222965DSGT */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_3v3_sys";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vcc_3v3_main>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vddshv_sdio: regulator-5 {
    		compatible = "regulator-gpio";
    		regulator-name = "vddshv_sdio";
    		pinctrl-names = "default";
    		pinctrl-0 = <&vddshv_sdio_pins_default>;
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <3300000>;
    		regulator-boot-on;
    		vin-supply = <&ldo1>;
    		gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
    		states = <1800000 0x0>,
    			 <3300000 0x1>;
    	};
    
    	leds {
    		compatible = "gpio-leds";
    		pinctrl-names = "default";
    		pinctrl-0 = <&usr_led_pins_default>;
    
    		led-0 {
    			label = "am62a-sk:green:heartbeat";
    			gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			function = LED_FUNCTION_HEARTBEAT;
    			default-state = "off";
    		};
    	};
    
    	tlv320_mclk: clk-0 {
    		#clock-cells = <0>;
    		compatible = "fixed-clock";
    		clock-frequency = <12288000>;
    	};
    
    	codec_audio: sound {
    		compatible = "simple-audio-card";
    		simple-audio-card,name = "AM62Ax-SKEVM";
    		simple-audio-card,widgets =
    			"Headphone",	"Headphone Jack",
    			"Line",		"Line In",
    			"Microphone",	"Microphone Jack";
    		simple-audio-card,routing =
    			"Headphone Jack",	"HPLOUT",
    			"Headphone Jack",	"HPROUT",
    			"LINE1L",		"Line In",
    			"LINE1R",		"Line In",
    			"MIC3R",		"Microphone Jack",
    			"Microphone Jack",	"Mic Bias";
    		simple-audio-card,format = "dsp_b";
    		simple-audio-card,bitclock-master = <&sound_master>;
    		simple-audio-card,frame-master = <&sound_master>;
    		simple-audio-card,bitclock-inversion;
    
    		simple-audio-card,cpu {
    			sound-dai = <&mcasp1>;
    		};
    
    		sound_master: simple-audio-card,codec {
    			sound-dai = <&tlv320aic3106>;
    			clocks = <&tlv320_mclk>;
    		};
    	};
    
    };
    
    &main_pmx0 {
    	main_uart0_pins_default: main-uart0-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14) UART0_RXD */
    			AM62AX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */
    		>;
    	};
    
    	main_uart1_pins_default: main-uart1-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x1ac, PIN_INPUT, 2) /* (B21) UART1_RXD */
    			AM62AX_IOPAD(0x1b0, PIN_OUTPUT, 2) /* (A21) UART1_TXD */
    		>;
    	};
    
    	main_uart5_pins_default: main-uart5-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x1d8, PIN_INPUT, 1) /* (B17) UART5_RXD */
    			AM62AX_IOPAD(0x1dc, PIN_OUTPUT, 1) /* (C18) UART5_TXD */
    		>;
    	};
    
    	main_i2c0_pins_default: main-i2c0-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */
    			AM62AX_IOPAD(0x1e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */
    		>;
    	};
    
    	main_i2c1_pins_default: main-i2c1-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */
    			AM62AX_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */
    		>;
    	};
    
    	main_i2c2_pins_default: main-i2c2-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x0b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */
    			AM62AX_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
    		>;
    	};
    
    	main_mmc1_pins_default: main-mmc1-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x23c, PIN_INPUT, 0) /* (A21) MMC1_CMD */
    			AM62AX_IOPAD(0x234, PIN_INPUT, 0) /* (B22) MMC1_CLK */
    			AM62AX_IOPAD(0x230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */
    			AM62AX_IOPAD(0x22c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */
    			AM62AX_IOPAD(0x228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */
    			AM62AX_IOPAD(0x224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */
    			AM62AX_IOPAD(0x240, PIN_INPUT, 0) /* (D17) MMC1_SDCD */
    		>;
    	};
    
    	usr_led_pins_default: usr-led-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x244, PIN_OUTPUT, 7) /* (D18) MMC1_SDWP.GPIO1_49 */
    		>;
    	};
    
    	main_usb1_pins_default: main-usb1-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */
    		>;
    	};
    
    	main_mdio1_pins_default: main-mdio1-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x160, PIN_OUTPUT, 0) /* (V12) MDIO0_MDC */
    			AM62AX_IOPAD(0x15c, PIN_INPUT, 0) /* (V13) MDIO0_MDIO */
    		>;
    	};
    
    	main_rgmii1_pins_default: main-rgmii1-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x14c, PIN_INPUT, 0) /* (AB16) RGMII1_RD0 */
    			AM62AX_IOPAD(0x150, PIN_INPUT, 0) /* (V15) RGMII1_RD1 */
    			AM62AX_IOPAD(0x154, PIN_INPUT, 0) /* (W15) RGMII1_RD2 */
    			AM62AX_IOPAD(0x158, PIN_INPUT, 0) /* (V14) RGMII1_RD3 */
    			AM62AX_IOPAD(0x148, PIN_INPUT, 0) /* (AA16) RGMII1_RXC */
    			AM62AX_IOPAD(0x144, PIN_INPUT, 0) /* (AA15) RGMII1_RX_CTL */
    			AM62AX_IOPAD(0x134, PIN_INPUT, 0) /* (Y17) RGMII1_TD0 */
    			AM62AX_IOPAD(0x138, PIN_INPUT, 0) /* (V16) RGMII1_TD1 */
    			AM62AX_IOPAD(0x13c, PIN_INPUT, 0) /* (Y16) RGMII1_TD2 */
    			AM62AX_IOPAD(0x140, PIN_INPUT, 0) /* (AA17) RGMII1_TD3 */
    			AM62AX_IOPAD(0x130, PIN_INPUT, 0) /* (AB17) RGMII1_TXC */
    			AM62AX_IOPAD(0x12c, PIN_INPUT, 0) /* (W16) RGMII1_TX_CTL */
    		>;
    	};
    
    	main_mcasp1_pins_default: main-mcasp1-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x090, PIN_INPUT, 2) /* (L19) GPMC0_BE0n_CLE.MCASP1_ACLKX */
    			AM62AX_IOPAD(0x098, PIN_INPUT, 2) /* (R18) GPMC0_WAIT0.MCASP1_AFSX */
    			AM62AX_IOPAD(0x08c, PIN_OUTPUT, 2) /* (K19) GPMC0_WEn.MCASP1_AXR0 */
    			AM62AX_IOPAD(0x084, PIN_INPUT, 2) /* (L18) GPMC0_ADVn_ALE.MCASP1_AXR2 */
    		>;
    	};
    
    	main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C15) UART0_RTSn.GPIO1_23 */
    
    		>;
    	};
    
    	/*
    	main_dss0_pins_default: main-dss0-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x100, PIN_OUTPUT, 0) /* (V17) VOUT0_VSYNC */
    			AM62AX_IOPAD(0x0f8, PIN_OUTPUT, 0) /* (T18) VOUT0_HSYNC */
    			AM62AX_IOPAD(0x104, PIN_OUTPUT, 0) /* (AA22) VOUT0_PCLK */
    			AM62AX_IOPAD(0x0fc, PIN_OUTPUT, 0) /* (U17) VOUT0_DE */
    			AM62AX_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
    			AM62AX_IOPAD(0x0bc, PIN_OUTPUT, 0) /* (U21) VOUT0_DATA1 */
    			AM62AX_IOPAD(0x0c0, PIN_OUTPUT, 0) /* (U20) VOUT0_DATA2 */
    			AM62AX_IOPAD(0x0c4, PIN_OUTPUT, 0) /* (U19) VOUT0_DATA3 */
    			AM62AX_IOPAD(0x0c8, PIN_OUTPUT, 0) /* (T19) VOUT0_DATA4 */
    			AM62AX_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (U18) VOUT0_DATA5 */
    			AM62AX_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (V22) VOUT0_DATA6 */
    			AM62AX_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA7 */
    			//AM62AX_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (V19) VOUT0_DATA8 */
    			AM62AX_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (V18) VOUT0_DATA9 */
    			AM62AX_IOPAD(0x0e0, PIN_OUTPUT, 0) /* (W22) VOUT0_DATA10 */
    			AM62AX_IOPAD(0x0e4, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA11 */
    			AM62AX_IOPAD(0x0e8, PIN_OUTPUT, 0) /* (W20) VOUT0_DATA12 */
    			AM62AX_IOPAD(0x0ec, PIN_OUTPUT, 0) /* (W19) VOUT0_DATA13 */
    			AM62AX_IOPAD(0x0f0, PIN_OUTPUT, 0) /* (Y21) VOUT0_DATA14 */
    			AM62AX_IOPAD(0x0f4, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA15 */
    			AM62AX_IOPAD(0x05c, PIN_OUTPUT, 1) /* (P22) GPMC0_AD8.VOUT0_DATA16 */
    			AM62AX_IOPAD(0x060, PIN_OUTPUT, 1) /* (R19) GPMC0_AD9.VOUT0_DATA17 */
    			AM62AX_IOPAD(0x064, PIN_OUTPUT, 1) /* (R20) GPMC0_AD10.VOUT0_DATA18 */
    			AM62AX_IOPAD(0x068, PIN_OUTPUT, 1) /* (R22) GPMC0_AD11.VOUT0_DATA19 */
    			AM62AX_IOPAD(0x06c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
    			AM62AX_IOPAD(0x070, PIN_OUTPUT, 1) /* (R21) GPMC0_AD13.VOUT0_DATA21 */
    			AM62AX_IOPAD(0x074, PIN_OUTPUT, 1) /* (T20) GPMC0_AD14.VOUT0_DATA22 */
    			AM62AX_IOPAD(0x078, PIN_OUTPUT, 1) /* (T21) GPMC0_AD15.VOUT0_DATA23 */
    		>;
    	};
    	*/
    
    	main_mmc0_pins_default: main-mmc0-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
    			AM62AX_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLKLB */
    			AM62AX_IOPAD(0x21c, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
    			AM62AX_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
    			AM62AX_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */
    			AM62AX_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */
    			AM62AX_IOPAD(0x208, PIN_INPUT_PULLUP, 0) /* (Y4) MMC0_DAT3 */
    			AM62AX_IOPAD(0x204, PIN_INPUT_PULLUP, 0) /* (AB2) MMC0_DAT4 */
    			AM62AX_IOPAD(0x200, PIN_INPUT_PULLUP, 0) /* (AC1) MMC0_DAT5 */
    			AM62AX_IOPAD(0x1fc, PIN_INPUT_PULLUP, 0) /* (AD2) MMC0_DAT6 */
    			AM62AX_IOPAD(0x1f8, PIN_INPUT_PULLUP, 0) /* (AC2) MMC0_DAT7 */
    		>;
    	};
    
    	vddshv_sdio_pins_default: vddshv-sdio-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (M19) GPMC0_CLK.GPIO0_31 */
    		>;
    	};
    
    	vdd_mmc1_pins_default: vdd-mmc1-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x0d8, PIN_OUTPUT, 7) /* (V19) GPIO0_53 */
    	};
    
    	main_spi0_pins_default: main-spi0-pins-default {
            pinctrl-single,pins = <
                AM62AX_IOPAD(0x01bc, PIN_INPUT, 0) /* (A17) SPI0_CLK */
                AM62AX_IOPAD(0x01c0, PIN_INPUT, 0) /* (B15) SPI0_D0 */
                AM62AX_IOPAD(0x01c4, PIN_INPUT, 0) /* (E15) SPI0_D1 */
                AM62AX_IOPAD(0x01b4, PIN_INPUT, 0) /* (D16) SPI0_CS0 */
            >;	
    	};
    };
    
    &mcu_pmx0 {
    	status = "okay";
    
    	pmic_irq_pins_default: pmic-irq-pins-default {
    		pinctrl-single,pins = <
    			AM62AX_MCU_IOPAD(0x000, PIN_INPUT, 7) /* (E11) MCU_GPIO0_0 */
    		>;
    	};
    };
    
    &mcu_gpio0 {
    	status = "okay";
    };
    
    &main_i2c0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c0_pins_default>;
    	clock-frequency = <400000>;
    
    	tps659312: pmic@48 {
    		compatible = "ti,tps6593-q1";
    		reg = <0x48>;
    		ti,primary-pmic;
    		system-power-controller;
    
    		gpio-controller;
    		#gpio-cells = <2>;
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&pmic_irq_pins_default>;
    		interrupt-parent = <&mcu_gpio0>;
    		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
    
    		buck123-supply = <&vcc_3v3_sys>;
    		buck4-supply = <&vcc_3v3_sys>;
    		buck5-supply = <&vcc_3v3_sys>;
    		ldo1-supply = <&vcc_3v3_sys>;
    		ldo2-supply = <&vcc_3v3_sys>;
    		ldo3-supply = <&buck5>;
    		ldo4-supply = <&vcc_3v3_sys>;
    
    		regulators {
    			buck123: buck123 {
    				regulator-name = "vcc_core";
    				regulator-min-microvolt = <715000>;
    				regulator-max-microvolt = <895000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			buck4: buck4 {
    				regulator-name = "vcc_1v1";
    				regulator-min-microvolt = <1100000>;
    				regulator-max-microvolt = <1100000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			buck5: buck5 {
    				regulator-name = "vcc_1v8_sys";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo1: ldo1 {
    				regulator-name = "vddshv5_sdio";
    				regulator-min-microvolt = <3300000>;
    				regulator-max-microvolt = <3300000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo2: ldo2 {
    				regulator-name = "vpp_1v8";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo3: ldo3 {
    				regulator-name = "vcc_0v85";
    				regulator-min-microvolt = <850000>;
    				regulator-max-microvolt = <850000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    
    			ldo4: ldo4 {
    				regulator-name = "vdda_1v8";
    				regulator-min-microvolt = <1800000>;
    				regulator-max-microvolt = <1800000>;
    				regulator-boot-on;
    				regulator-always-on;
    			};
    		};
    	};
    };
    
    &main_i2c1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <100000>;
    
    	exp1: gpio@22 {
    		compatible = "ti,tca6424";
    		reg = <0x22>;
    		gpio-controller;
    		#gpio-cells = <2>;
    
    		interrupt-parent = <&main_gpio1>;
    		interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
    		interrupt-controller;
    		#interrupt-cells = <2>;
    
    		gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
    				   "BT_EN_SOC", "MMC1_SD_EN",
    				   "VPP_EN", "EXP_PS_3V3_En",
    				   "EXP_PS_5V0_En", "EXP_HAT_DETECT",
    				   "GPIO_AUD_RSTn", "GPIO_eMMC_RSTn",
    				   "UART1_FET_BUF_EN", "BT_UART_WAKE_SOC",
    				   "GPIO_HDMI_RSTn", "CSI_GPIO0",
    				   "CSI_GPIO1", "WLAN_ALERTn",
    				   "HDMI_INTn", "TEST_GPIO2",
    				   "MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
    				   "MCASP1_FET_SEL", "UART1_FET_SEL",
    				   "PD_I2C_IRQ", "IO_EXP_TEST_LED";
    
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
    	};
    
    	exp2: gpio@23 {
    		compatible = "ti,tca6424";
    		reg = <0x23>;
    		gpio-controller;
    		#gpio-cells = <2>;
    
    		gpio-line-names = "", "",
    				  "", "",
    				  "", "",
    				  "", "",
    				  "WL_LT_EN", "CSI_RSTz",
    				  "", "",
    				  "", "",
    				  "", "",
    				  "SPI0_FET_SEL", "SPI0_FET_OE",
    				  "RGMII2_BRD_CONN_DET", "CSI_SEL2",
    				  "CSI_EN", "AUTO_100M_1000M_CONFIG",
    				  "CSI_VLDO_SEL", "SoC_WLAN_SDIO_RST";
    	};
    
    	tlv320aic3106: audio-codec@1b {
    		#sound-dai-cells = <0>;
    		compatible = "ti,tlv320aic3106";
    		reg = <0x1b>;
    		ai3x-micbias-vg = <1>;	/* 2.0V */
    		ai3x-ocmv = <1>;	/* 1.5V */
    
    		/* Regulators */
    		AVDD-supply = <&vcc_3v3_sys>;
    		IOVDD-supply = <&vcc_3v3_sys>;
    		DRVDD-supply = <&vcc_3v3_sys>;
    	};
    };
    
    &main_i2c2 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c2_pins_default>;
    	clock-frequency = <400000>;
    };
    
    &main_spi0 {
    	status = "okay";
    	pinctrl-0 = <&main_spi0_pins_default>;
    	pinctrl-names = "default";
    
    	/* Display controller */
    	ili9806e: display@0 {	
    		compatible = "ilitek,ili9806e";
    		status = "okay";
    		reg = <0>;
    		spi-max-frequency = <24000000>;
    			
    		port@0 {
    			reg = <0>;
    			ili9806e_in: endpoint {
    				remote-endpoint = <&dpi1_out>;
    			};
    		};
    	};
    };
    
    
    &sdhci1 {
    	/* SD/MMC */
    	status = "okay";
    	vmmc-supply = <&vdd_mmc1>;
    	vqmmc-supply = <&vddshv_sdio>;
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mmc1_pins_default>;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &main_gpio0 {
    	status = "okay";
    };
    
    &main_gpio1 {
    	status = "okay";
    };
    
    &main_gpio_intr {
    	status = "okay";
    };
    
    &main_uart0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart0_pins_default>;
    };
    
    &main_uart1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart1_pins_default>;
    };
    
    &main_uart5 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart5_pins_default>;
    };
    
    &usbss1 {
    	status = "okay";
    };
    
    &usb1 {
    	dr_mode = "host";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb1_pins_default>;
    };
    
    &cpsw3g {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_rgmii1_pins_default>;
    
    	cpts@3d000 {
    		/* MAP HW3_TS_PUSH to GENF1 */
    		ti,pps = <2 1>;
    	};
    };
    
    &cpsw_port1 {
    	status = "okay";
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy0>;
    };
    
    &cpsw_port2 {
    	status = "disabled";
    };
    
    &cpsw3g_mdio {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mdio1_pins_default>;
    
    	cpsw3g_phy0: ethernet-phy@0 {
    		reg = <0>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    		ti,min-output-impedance;
    	};
    };
    
    &mcasp1 {
    	status = "okay";
    	#sound-dai-cells = <0>;
    
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcasp1_pins_default>;
    
    	op-mode = <0>;          /* MCASP_IIS_MODE */
    	tdm-slots = <2>;
    
    	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
    	       1 0 2 0
    	       0 0 0 0
    	       0 0 0 0
    	       0 0 0 0
    	>;
    	tx-num-evt = <32>;
    	rx-num-evt = <32>;
    };
    
    &ti_csi2rx0 {
    	status = "okay";
    };
    
    &dphy0 {
    	status = "okay";
    };
    
    &dss {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_dss0_pins_default>;
    };
    
    &dss_ports {
    	/* VP2: DPI Output */
    	port@0 {
    		reg = <0>;
    
    		dpi1_out: endpoint {
    			remote-endpoint = <&ili9806e_in>;
    		};
    	};
    };
    
    &fss {
    	status = "okay";
    };
    
    &mailbox0_cluster0 {
    	mbox_r5_0: mbox-r5-0 {
    		ti,mbox-rx = <0 0 0>;
    		ti,mbox-tx = <1 0 0>;
    	};
    };
    
    &mailbox0_cluster1 {
    	mbox_c7x_0: mbox-c7x-0 {
    		ti,mbox-rx = <0 0 0>;
    		ti,mbox-tx = <1 0 0>;
    	};
    };
    
    &mailbox0_cluster2 {
    	mbox_mcu_r5_0: mbox-mcu_r5-0 {
    		ti,mbox-rx = <0 0 0>;
    		ti,mbox-tx = <1 0 0>;
    	};
    };
    
    &c7x_0 {
    	mboxes = <&mailbox0_cluster1 &mbox_c7x_0>;
    	memory-region = <&c7x_0_dma_memory_region>,
    			<&c7x_0_memory_region>;
    };
    
    &wkup_r5fss0_core0 {
    	mboxes = <&mailbox0_cluster0 &mbox_r5_0>;
    	memory-region = <&wkup_r5fss0_core0_dma_memory_region>,
    		<&wkup_r5fss0_core0_memory_region>;
    };
    
    &mcu_r5fss0_core0 {
    	mboxes = <&mailbox0_cluster2 &mbox_mcu_r5_0>;
    	memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
    			<&mcu_r5fss0_core0_memory_region>;
    };
    
    #define K3_TS_OFFSET(pa, val)	(0x4+(pa)*4) (0x10000 | val)
    
    &timesync_router {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&cpsw_cpts>;
    
    	/* Use Time Sync Router to map GENF1 input to HW3_TS_PUSH output */
    	cpsw_cpts: cpsw-cpts {
    		pinctrl-single,pins = <
    			/* pps [cpsw cpts genf1] in17 -> out12 [cpsw cpts hw3_push] */
    			K3_TS_OFFSET(12, 17)
    			>;
    	};
    };
    
    &sdhci0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mmc0_pins_default>;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    

  • Hi Evan,

    First let confirm if the SD card VDD power is the issue. Can you please stop the booting at U-Boot prompt, then manually touch the GPIO0_53 pin to ground (or any other point where controls the SD card power switch enable pin - MMC1_SD_LS_EN), this will turn off the SD card VDD power then turn it on again. Now run U-Boot command "boot" to start the kernel, and see if the SD card is detected.

  • Yes, I confirm it.  The VDD_MMC1 went to zero and back to 3.3V, and after "boot" it continued to the usual point.

    Also if I continue to wait after the boot process stops, I see the following line:

    [ 1.536879] debugfs: Directory 'pd:182' with parent 'pm_genpd' already present!
    [ 1.550371] ALSA device list:
    [ 1.553369] No soundcards found.
    [ 1.557105] Waiting for root device PARTUUID=61e24b44-02...
    [ 11.684399] platform regulator-5: deferred probe pending
    [ 31.906617] vdd_mmc1: disabling

      At this time, the GPIO53 output falls, turning off the VDD_MMC1 !

  • [ 11.684399] platform regulator-5: deferred probe pending
    [ 31.906617] vdd_mmc1: disabling

    Okay we are making progress...

    regulator-5 is for vddshv_sdio, wondering why it is deferred and disabled.

    Your board dts uses gpio0_31 in the vddshv_sdio node. Does your board indeed wire gpio0_31 to the PMIC to control vddshv_sdio?

  • Yes, GPIO0_31 is wired to the PMIC to control VDDSHV_SDIO.  I do not see this signal change on our custom board. 

    I do see it change on the EVK (the change to 1.8V happens around or maybe just after where the custom board stops).

  • Yes, GPIO0_31 is wired to the PMIC to control VDDSHV_SDIO.  I do not see this signal change on our custom board. 

    This signal won't change at this point of kernel boot. It is to switch the IO to 1.8v at later point.

    [ 11.684399] platform regulator-5: deferred probe pending

    Can you please add some printk to gpio_regulator_probe() in drivers/regulator/gpio-regulator.c to understand at which point this function returns error core -517 (-517 means deferred probe) during initializing vddshv_sdio (aka regulator-5)?

    If both vdd_mmc1 and vddshv_sdio are all correct in both dts and the wiring on the board, we at least expect to see the following kernel messages after "Waiting for root device PARTUUID=61e24b44-02...":

    mmc1: CQHCI version 5.10
    ...
    mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit

  • Meanwhile can you please also review your board schematics with sk-am62a's to see if there is any difference related to SD card and PMIC so that we need to adjust the board dts?

  • Hi Bin,

    Thanks for this. We will add the debug.

    The connectivity is as follows, including reworks:

    GPIO0_53 - connected (with 10k pullup) to gate controlling VDD_MMC1_SD supply.  Verified that logic level high = power on, low = power off.  When the pin is not initialized (or default to input) the SD power is also on because of the pullup.  This pin assignment is different from the EVK, we have attempted to do the DTS changes for it.

    GPIO0_31 - connected (with 10k pullup) to PMIC GPIO5, setting the voltage of VDDSHV_SDIO.  Verified that logic level high = 3.3V, low = 1.8V.  This is the same as the EVK.

    Please do guide us on the DTS adjustments needed, it seems that changes are needed in several places.  


    Another question: 

    By default the "root device" is shown like this:

    [    1.557351] Waiting for root device PARTUUID=61e24b44-02...

    If we use this boot string to try to force use of mmc1 (removing OSPI entries)

    setenv args_mmc "run finduuid;setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk1p2 rw rootfste=ext4 rootwait loglevel=9"

    Then we get:
    [ 2.108641] Waiting for root device /dev/mmcblk1p2...

    In both case it stops, but does this have any relation to the problem, why does it not use mmcblk1p2 by default?  Are these good parameters?

    We also see references to mmc0, which is not connected on our board.

    [ 1.996575] mmc0: CQHCI version 5.10
    [ 2.041487] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit

    Is it important?

     

  • Hi Bin,

    The SoC was not able to communicate with the PMIC over I2C0 (MCU_I2C0 was connected instead).  Apparently this stopped the boot process.  With this corrected, it boots right up.  Thanks for all your support.

  • Hi Evan,

    I am glad the issue is resolved. Thanks for the update.

    I am out of office this week, so don't have access to SK-AM62A EVM. But I can remotely use a SK-AM62B EVM, and did a bit test. If I add 'status = "disabled"' to either of the node vdd_mmc1 or vdd_sd_dv, the SD card won't be detected, "dmesg|grep mmc1" command won't show any message. Also since your kernel boot log shows vdd_mmc1 probe is deferred, I expect it is the vdd_mmc1 power issue which causes your board SD card is not detected. But I didn't think of PMIC related.

    To answer your other questions:

    In both case it stops, but does this have any relation to the problem, why does it not use mmcblk1p2 by default? 

    In old days, Linux uses device name (/dev/mmcblk1p2 in this case) for the rootfs device. Nowadays, modern Linux switched to use UUID (PARTUUID=<...> in the default bootargs param) instead. Both point to the same rootfs device in this case.

    Are these good parameters?

    Both are good. But UUID is better, since it doesn't change, irrelevant to Linux boot process. For example, if Linux boot enumerates SDcard first and eMMC secondly, SD card would be mmc0 and eMMC would be mmc1, then the SDcard rootfs partition would be /dev/mmcblk0p2. Now using root=/dev/mmcblk1p2 won't point to the SD card rootfs partition, and boot will fail in mounting rootfs.

    We also see references to mmc0, which is not connected on our board.

    [ 1.996575] mmc0: CQHCI version 5.10
    [ 2.041487] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit

    Is it important?

    This message tells the SDHCI0 controller is enabled, (but no any device attached). It doesn't hurt to have it enabled, but if SDHCI0 interface has nothing attached, you might just want to disable sdhci0 node in your board DTS file.

  • Hi, I have the same problem with you. The chip model is am62a7. May I ask what is your final modification method? Is mcu_i2c0 related configuration added to dts?

  • Hi Arlen, the critical issue was that the SCL I2C1 / SCA I2C1 of the PMIC (pins 30 and 31) must be connected to the SoC I2C0.

    We also did not have a GPIO connected to control MMC1_SD_EN, and a lot of the discussion above is about resolving that. But in the end it works without it.  

    Confirm also that the PMIC GPIO5 input is connected properly to SoC GPIO output, with pullup (it is needed to switch voltage of the SD IO bus). 

    Good luck

  • Thanks for the explanations Bin!

  • Hi Evan 

     Thanks a lot ! it's fixed, as you said. "it is needed to switch voltage of the SD IO bus";