Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Jul 2025 01:12:30 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bzeeb-lists@lists.zabbadoz.net>
To:        Warner Losh <imp@bsdimp.com>
Cc:        FreeBSD Current <current@freebsd.org>
Subject:   Re: mmccam -> no more cards/sdio but "mmcprobe"
Message-ID:  <2758n599-q813-qop3-26nr-srn194p4pn05@yvfgf.mnoonqbm.arg>
In-Reply-To: <onrpp981-386n-1658-s6qs-np018oq43qr4@yvfgf.mnoonqbm.arg>
References:  <602976q7-s2r2-o8n4-8s59-93pqq4ro3433@yvfgf.mnoonqbm.arg> <CANCZdfr4ZzKWxonMW1D61Y0aB3BCiAU5Lv_%2BSx-Ss0tb8Naupg@mail.gmail.com> <933q8q89-s848-034q-r063-76563n6938s2@yvfgf.mnoonqbm.arg> <onrpp981-386n-1658-s6qs-np018oq43qr4@yvfgf.mnoonqbm.arg>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--1098556516-1226329193-1753060351=:4643
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8BIT

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 
>>> <bzeeb-lists@lists.zabbadoz.net>
>>> 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
--1098556516-1226329193-1753060351=:4643--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2758n599-q813-qop3-26nr-srn194p4pn05>