On Mon, 21 Jul 2025, Bjoern A. Zeeb wrote:

On Mon, 21 Jul 2025, Bjoern A. Zeeb wrote:

On Sun, 20 Jul 2025, Warner Losh wrote:

On Sun, Jul 20, 2025, 5:19 PM Bjoern A. Zeeb <[email protected]>
wrote:

Hi,

I've updated one of my trees to main after a longer while and I am
confused that I no longer see and SD card or SDIO (this is netbooted):

# sysctl kern.features.mmccam
kern.features.mmccam: 1

# camcontrol devlist -v
scbus0 on dw_mmc_sim0 bus 0:
<>                                 at scbus0 target 0 lun 0 (mmcprobe0)
scbus1 on dw_mmc_sim1 bus 0:
<>                                 at scbus1 target 0 lun 0 (mmcprobe1)
scbus-1 on xpt0 bus 0:
<> at scbus-1 target -1 lun ffffffff (xpt0)

Where to start looking?


So those probes are put there to evaluate devices that were found. If they
remain, then that never finished. Most likely never started.

What hardware is this on?

arm64, rockchip

[1.000651] rockchip_dwmmc0: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xff500000-0xff503fff irq 42 on ofwbus0
[1.000652] rockchip_dwmmc0: vmmc-supply regulator found
[1.000653] rockchip_dwmmc0: vqmmc-supply regulator found
[1.000654] rockchip_dwmmc0: Hardware version ID is 270a
[1.000656] rockchip_dwmmc0: Disabling HS200+ (tuning code not written)
[1.000657] ofwbus0: <mmc@ff510000> mem 0xff510000-0xff513fff irq 43 disabled compat rockchip,rk3328-dw-mshc (no driver attached) [1.000658] rockchip_dwmmc1: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xff520000-0xff523fff irq 44 on ofwbus0
[1.000659] rockchip_dwmmc1: Hardware version ID is 270a
[1.000660] rockchip_dwmmc1: Disabling HS200+ (tuning code not written)

I found the tunable:

kern.cam.dflags=0x41

Output see below;  if it helps I can run with 0xff:

[1.035158] (noperiph:dw_mmc_sim0:0:-1:ffffffff): xpt_async(AC_PATH_REGISTERED) [1.035752] (noperiph:dw_mmc_sim1:0:-1:ffffffff): xpt_async(AC_PATH_REGISTERED)
[1.038843] (noperiph:dw_mmc_sim0:0:-1:ffffffff): XPT_SCAN_{BUS,TGT,LUN}
[1.039609] (noperiph:dw_mmc_sim0:0:0:0): XPT_SCAN_{BUS,TGT,LUN}
[1.040031] (noperiph:dw_mmc_sim0:0:0:0):  Set up the mmcprobe device...
[1.040560] (mmcprobe0:dw_mmc_sim0:0:0:0): Periph created
[1.040933] (mmcprobe0:dw_mmc_sim0:0:0:0): Probe started
[1.041289] (mmcprobe0:dw_mmc_sim0:0:0:0): Probe PROBE_INVALID to PROBE_RESET
[1.041809] (mmcprobe0:dw_mmc_sim0:0:0:0): mmcprobe_start
[1.042163] (mmcprobe0:dw_mmc_sim0:0:0:0): Start with PROBE_RESET
[1.042588] (mmcprobe0:dw_mmc_sim0:0:0:0): Start with PROBE_IDENTIFY
[1.043249] (noperiph:dw_mmc_sim1:0:-1:ffffffff): XPT_SCAN_{BUS,TGT,LUN}
[1.043729] (noperiph:dw_mmc_sim1:0:0:0): XPT_SCAN_{BUS,TGT,LUN}
[1.044143] (noperiph:dw_mmc_sim1:0:0:0):  Set up the mmcprobe device...
[1.044650] (mmcprobe1:dw_mmc_sim1:0:0:0): Periph created
[1.045007] (mmcprobe1:dw_mmc_sim1:0:0:0): Probe started
[1.045362] (mmcprobe1:dw_mmc_sim1:0:0:0): Probe PROBE_INVALID to PROBE_RESET
[1.045878] (mmcprobe1:dw_mmc_sim1:0:0:0): mmcprobe_start
[1.046237] (mmcprobe1:dw_mmc_sim1:0:0:0): Start with PROBE_RESET
[1.046655] (mmcprobe1:dw_mmc_sim1:0:0:0): Start with PROBE_IDENTIFY
[1.085627] (mmcprobe0:dw_mmc_sim0:0:0:0): mmcprobe_done
[1.085996] (mmcprobe0:dw_mmc_sim0:0:0:0): done with PROBE_RESET
[1.086437] (mmcprobe0:dw_mmc_sim0:0:0:0): Probe PROBE_RESET to PROBE_POWER_OFF [1.086997] (mmcprobe0:dw_mmc_sim0:0:0:0): mmcprobe_done: remaining freeze count 0
[1.087592] (mmcprobe1:dw_mmc_sim1:0:0:0): mmcprobe_done
[1.087970] (mmcprobe1:dw_mmc_sim1:0:0:0): done with PROBE_RESET
[1.088396] (mmcprobe1:dw_mmc_sim1:0:0:0): Probe PROBE_RESET to PROBE_POWER_OFF [1.088936] (mmcprobe1:dw_mmc_sim1:0:0:0): mmcprobe_done: remaining freeze count 0


Hmm okay:

# sysctl kern.cam.dflags
kern.cam.dflags: 255

not much else...

[1.000646] rockchip_dwmmc0: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xff500000-0xff503fff irq 42 on ofwbus0
[1.000647] rockchip_dwmmc0: vmmc-supply regulator found
[1.000648] rockchip_dwmmc0: vqmmc-supply regulator found
[1.000649] rockchip_dwmmc0: Hardware version ID is 270a
[1.000651] rockchip_dwmmc0: Disabling HS200+ (tuning code not written)
[1.000652] ofwbus0: <mmc@ff510000> mem 0xff510000-0xff513fff irq 43 disabled compat rockchip,rk3328-dw-mshc (no driver attached) [1.000653] rockchip_dwmmc1: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xff520000-0xff523fff irq 44 on ofwbus0
[1.000654] rockchip_dwmmc1: Hardware version ID is 270a
[1.000655] rockchip_dwmmc1: Disabling HS200+ (tuning code not written)
[1.000682] ofwbus0: <mmc@ff5f0000> mem 0xff5f0000-0xff5f3fff irq 50 disabled compat rockchip,rk3328-dw-mshc (no driver attached) [1.035161] (noperiph:dw_mmc_sim0:0:-1:ffffffff): xpt_async(AC_PATH_REGISTERED) [1.035754] (noperiph:dw_mmc_sim1:0:-1:ffffffff): xpt_async(AC_PATH_REGISTERED)
[1.038855] (noperiph:dw_mmc_sim0:0:-1:ffffffff): XPT_SCAN_{BUS,TGT,LUN}
[1.039618] (noperiph:dw_mmc_sim0:0:0:0): XPT_SCAN_{BUS,TGT,LUN}
[1.040041] (noperiph:dw_mmc_sim0:0:0:0):  Set up the mmcprobe device...
[1.040572] (mmcprobe0:dw_mmc_sim0:0:0:0): Periph created
[1.040945] (mmcprobe0:dw_mmc_sim0:0:0:0): Probe started
[1.041301] (mmcprobe0:dw_mmc_sim0:0:0:0): Probe PROBE_INVALID to PROBE_RESET
[1.041817] (mmcprobe0:dw_mmc_sim0:0:0:0): mmcprobe_start
[1.042171] (mmcprobe0:dw_mmc_sim0:0:0:0): Start with PROBE_RESET
[1.042595] (mmcprobe0:dw_mmc_sim0:0:0:0): Start with PROBE_IDENTIFY
[1.043257] (noperiph:dw_mmc_sim1:0:-1:ffffffff): XPT_SCAN_{BUS,TGT,LUN}
[1.043737] (noperiph:dw_mmc_sim1:0:0:0): XPT_SCAN_{BUS,TGT,LUN}
[1.044151] (noperiph:dw_mmc_sim1:0:0:0):  Set up the mmcprobe device...
[1.044658] (mmcprobe1:dw_mmc_sim1:0:0:0): Periph created
[1.045015] (mmcprobe1:dw_mmc_sim1:0:0:0): Probe started
[1.045370] (mmcprobe1:dw_mmc_sim1:0:0:0): Probe PROBE_INVALID to PROBE_RESET
[1.045886] (mmcprobe1:dw_mmc_sim1:0:0:0): mmcprobe_start
[1.046244] (mmcprobe1:dw_mmc_sim1:0:0:0): Start with PROBE_RESET
[1.046663] (mmcprobe1:dw_mmc_sim1:0:0:0): Start with PROBE_IDENTIFY
[1.085689] (mmcprobe0:dw_mmc_sim0:0:0:0): mmcprobe_done
[1.086059] (mmcprobe0:dw_mmc_sim0:0:0:0): done with PROBE_RESET
[1.086488] (mmcprobe0:dw_mmc_sim0:0:0:0): Probe PROBE_RESET to PROBE_POWER_OFF [1.087023] (mmcprobe0:dw_mmc_sim0:0:0:0): mmcprobe_done: remaining freeze count 0
[1.088196] (mmcprobe1:dw_mmc_sim1:0:0:0): mmcprobe_done
[1.088625] (mmcprobe1:dw_mmc_sim1:0:0:0): done with PROBE_RESET
[1.089343] (mmcprobe1:dw_mmc_sim1:0:0:0): Probe PROBE_RESET to PROBE_POWER_OFF [1.090285] (mmcprobe1:dw_mmc_sim1:0:0:0): mmcprobe_done: remaining freeze count 0

Similar on an NXP LS1088 with mmccam:

# dmesg -a | egrep -iE '(mmc|sdhci)'
[1.000313] sdhci_fsl_fdt0: <NXP QorIQ Layerscape eSDHC controller> mem 
0x2140000-0x214ffff irq 20 on simplebus0
[1.000314] sdhci_fsl_fdt0: sdhci_fsl_fdt_attach:947: baseclk_hz 600000000 = 
clk_hz 1200000000 / baseclk_div 2
[1.000315] sdhci_fsl_fdt0: vendor_ver: 0x20
[1.000316] sdhci_fsl_fdt0: sdhci_fsl_fdt_attach:970: maxclk_hz 25000000 = f_max 
25000000 ?: baseclk_hz 600000000
[1.000317] sdhci_fsl_fdt0-slot0: Hardware doesn't specify timeout clock 
frequency, setting BROKEN_TIMEOUT quirk.
[1.000319] sdhci_fsl_fdt0-slot0: 25MHz HS 4bits VDD: 3.3V VCCQ: 3.3V 1.8V 1.2V 
DRV: B DMA removable
sdhci_fsl_fdt0-slot0: eMMC: HS200
sdhci_fsl_fdt0-slot0: UHS-I: SDR12 SDR25 SDR50 SDR104 DDR50
sdhci_fsl_fdt0-slot0: Re-tuning count 0 secs, mode 3
[1.000320] sdhci_fsl_fdt0-slot0: ============== REGISTER DUMP ==============
sdhci_fsl_fdt0-slot0: Sys addr: 0xf6814000 | Version:  0x00002002
sdhci_fsl_fdt0-slot0: Blk size: 0x00000200 | Blk cnt:  0x00000020
sdhci_fsl_fdt0-slot0: Argument: 0x00000000 | Trn mode: 0x00000000
sdhci_fsl_fdt0-slot0: Present:  0x01fd0000 | Host ctl: 0x00000002
sdhci_fsl_fdt0-slot0: Power:    0x0000000d | Blk gap:  0x00000000
sdhci_fsl_fdt0-slot0: Wake-up:  0x00000000 | Clock:    0x00000003
sdhci_fsl_fdt0-slot0: Timeout:  0x0000000c | Int stat: 0x00000000
sdhci_fsl_fdt0-slot0: Int enab: 0x377f11cf | Sig enab: 0x00000000
sdhci_fsl_fdt0-slot0: AC12 err: 0x00000000 | Host ctl2:0x00000000
sdhci_fsl_fdt0-slot0: Caps:     0x35f20000 | Caps2:    0x0000af07
sdhci_fsl_fdt0-slot0: Max curr: 0x00000000 | ADMA err: 0x00000000
sdhci_fsl_fdt0-slot0: ADMA addr:0x00000000 | Slot int: 0x00000000
sdhci_fsl_fdt0-slot0: ===========================================
[1.000321] sdhci_fsl_fdt0-slot0: Card inserted
[1.000323] exclusive sleep mutex SD slot mtx (sdhci) r = 0 (0xffffa0800529ec38) 
locked @ /usr/src/sys/dev/sdhci/sdhci.c:688
[1.000331] #6 0xffff000000031f58 at mmccam_start_discovery+0x1c
[1.000332] #7 0xffff000000271688 at sdhci_card_task+0x108
[1.000333] #8 0xffff000000278334 at sdhci_fsl_fdt_attach+0x5b0
[1.033269] (noperiph:sdhci_slot0:0:-1:ffffffff): xpt_async(AC_PATH_REGISTERED)
[1.046019] (noperiph:sdhci_slot0:0:-1:ffffffff): XPT_SCAN_{BUS,TGT,LUN}
[1.051372] (noperiph:sdhci_slot0:0:0:0): XPT_SCAN_{BUS,TGT,LUN}
[1.080359] (noperiph:sdhci_slot0:0:0:0):  Set up the mmcprobe device...
[1.085760] (mmcprobe0:sdhci_slot0:0:0:0): Periph created
[1.089831] (mmcprobe0:sdhci_slot0:0:0:0): Probe started
[1.093833] (mmcprobe0:sdhci_slot0:0:0:0): Probe PROBE_INVALID to PROBE_RESET
[1.099670] (mmcprobe0:sdhci_slot0:0:0:0): mmcprobe_start
[1.103756] (mmcprobe0:sdhci_slot0:0:0:0): Start with PROBE_RESET
[1.108542] (mmcprobe0:sdhci_slot0:0:0:0): Start with PROBE_IDENTIFY
[1.113823] (mmcprobe0:sdhci_slot0:0:0:0): mmcprobe_done
[1.117667] (mmcprobe0:sdhci_slot0:0:0:0): done with PROBE_RESET
[1.122371] (mmcprobe0:sdhci_slot0:0:0:0): Probe PROBE_RESET to PROBE_POWER_OFF
[1.128379] (mmcprobe0:sdhci_slot0:0:0:0): mmcprobe_done: remaining freeze count 0
# camcontrol devlist -v
scbus0 on sdhci_slot0 bus 0:
<>                                 at scbus0 target 0 lun 0 (mmcprobe0)
...

--
Bjoern A. Zeeb                                                     r15:7

Reply via email to