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>