* Romain Naour <romain.naour@xxxxxxxx> [240129 10:11]: > Hello, > > Le 27/01/2024 à 05:48, Tony Lindgren a écrit : > > Hi, > > > > * Romain Naour <romain.naour@xxxxxxxx> [240126 20:53]: > >> Hello, > >> > >> I'm upgrading the kernel from 5.10.168 to 6.1.69 (both from TI tree) on a custom > >> board based on a AM574x SoC and I noticed a regression on the sdhci-omap driver. > >> > >> The emmc was working on the 5.10 kernel using mmc-hs200 powered at 1,8v (mmc2). > > > > Is this limited to emmc or does it also happen with the micro-sd or wlan possibly? > > I can't test with a wlan device but I noticed the same issue on micro-sd (the > mmc0 interface in my first post is a micro-sd) OK > > If the issue is emmc related, do you have mmc-pwrseq-emmc configured in the dts? > > > >> I'm able to reproduce on the IDK574x evaluation board (where the emmc is powered > >> at 3v3) with vanilla kernels. > > > > OK, looks like only am5729-beagleboneai.dts has configured mmc-pwrseq-emmc. > > > >> I had to revert all commits related to "PM runtime functions" [1] and "card > >> power off and enable aggressive PM" [2] from kernel 5.16 to use the emmc again > >> on both boards. > > > > OK, this sounds like power sequence related when the emmc gets idled. > > It seems mmc0 ios infos are lost at some point, just after the kernel boot they > are correct: > > cat /sys/kernel/debug/mmc0/ios > clock: 50000000 Hz > vdd: 21 (3.3 ~ 3.4 V) > bus mode: 2 (push-pull) > chip select: 0 (don't care) > power mode: 2 (on) > bus width: 2 (4 bits) > timing spec: 2 (sd high-speed) > signal voltage: 0 (3.30 V) > driver type: 0 (driver type B) > > And without notice, ios became wrong: > > cat /sys/kernel/debug/mmc0/ios > clock: 0 Hz > vdd: 0 (invalid) > bus mode: 2 (push-pull) > chip select: 0 (don't care) > power mode: 0 (off) > bus width: 0 (1 bits) > timing spec: 0 (legacy) > signal voltage: 0 (3.30 V) > driver type: 0 (driver type B) > > # cat /sys/bus/mmc/devices/mmc0:1234/type > SD With a beagle x15, the ios values are correct after I do something like fdisk -l /dev/mmcblk0: # cat /sys/kernel/debug/mmc0/ios clock: 0 Hz vdd: 0 (invalid) bus mode: 2 (push-pull) chip select: 0 (don't care) power mode: 0 (off) bus width: 0 (1 bits) timing spec: 0 (legacy) signal voltage: 0 (3.30 V) driver type: 0 (driver type B) # fdisk -l /dev/mmcblk0 ... # cat /sys/kernel/debug/mmc0/ios clock: 50000000 Hz vdd: 21 (3.3 ~ 3.4 V) bus mode: 2 (push-pull) chip select: 0 (don't care) power mode: 2 (on) bus width: 2 (4 bits) timing spec: 2 (sd high-speed) signal voltage: 0 (3.30 V) driver type: 0 (driver type B) So I'm still guessing your issue is with emmc not getting reinitialized properly as there's no mmc-pwrseq-emmc configured. Can you give it a try? See am5729-beagleboneai.dts for an example. Regards, Tony