Bug 267580 - FreeBSD 13.1 and later cannot read microSD (13.0-R OK)
Summary: FreeBSD 13.1 and later cannot read microSD (13.0-R OK)
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: arm (show other bugs)
Version: 13.1-STABLE
Hardware: arm64 Any
: --- Affects Only Me
Assignee: freebsd-arm (Nobody)
URL:
Keywords: needs-qa
Depends on:
Blocks:
 
Reported: 2022-11-05 22:26 UTC by Jason W. Bacon
Modified: 2023-04-12 06:51 UTC (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jason W. Bacon freebsd_committer freebsd_triage 2022-11-05 22:26:51 UTC
After running freebsd-update upgrade -r 13.1-RELEASE on my headless ROCK64, I was unable to reach it.  I tried reimaging my eMMC with 13.1-RELEASE and 13.1-STABLE, no luck.  I then reimaged with 13.0-RELEASE and it works fine again.

This device is completely headless.  HDMI does not work and I don't have the hardware for a serial console, so I cannot be certain whether it is not booting or just not connecting to the network.

It's not a critical issue for me, but I'm available to work with someone who might know how to fix it.
Comment 1 Mark Millard 2022-11-06 00:43:39 UTC
Note: /dev/da3 below is an eMMC in a adaptor context allowing USB use.

First how I set up the eMMC, then what the serial console reports . . .

# dd if=FreeBSD-13.1-RELEASE-arm64-aarch64-ROCK64.img of=/dev/da3 bs=1m conv=fsync,sync status=progress
GEOM: da3: the secondary GPT header is not in the last LBA. 42 MB/s

3072+0 records in
3072+0 records out
3221225472 bytes transferred in 77.701188 secs (41456579 bytes/sec)

# gpart show -p
. . .
=>     40  6291376    da3  GPT  (116G) [CORRUPT]
       40    32728         - free -  (16M)
    32768   102400  da3p1  efi  (50M)
   135168  6156160  da3p2  freebsd-ufs  (2.9G)
  6291328       88         - free -  (44K)

# gpart recover /dev/da3
da3 recovered

# gpart show -p
. . .
=>       40  244277168    da3  GPT  (116G)
         40      32728         - free -  (16M)
      32768     102400  da3p1  efi  (50M)
     135168    6156160  da3p2  freebsd-ufs  (2.9G)
    6291328  237985880         - free -  (113G)

Attempting booting via the eMMC got the following output,
with the output stopping after "random: unblocking device.":

Loading kernel...
/boot/kernel/kernel text=0x2a8 text=0x8bcbf0 text=0x1f97ac data=0x1a6ac0 data=0x0+0x381000 syms=[0x8+0x11f6a0+0x8+0x1439ea]
Loading configured modules...
/boot/kernel/umodem.ko text=0x2160 text=0x1440 data=0x6e8+0x10 syms=[0x8+0xf60+0x8+0xb7b]
loading required module 'ucom'
/boot/kernel/ucom.ko text=0x249f text=0x3840 data=0x8a0+0x858 syms=[0x8+0x1188+0x8+0xb1c]
can't find '/etc/hostid'
can't find '/boot/entropy'

Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [/boot/kernel/kernel]...               
Using DTB provided by EFI at 0x80f0000.
EFI framebuffer information:
addr, size     0x0, 0x0
dimensions     0 x 0
stride         0
masks          0x00000000, 0x00000000, 0x00000000, 0x00000000
---<<BOOT>>---
Copyright (c) 1992-2021 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
        The Regents of the University of California. All rights reserved.
FreeBSD is a registered trademark of The FreeBSD Foundation.
FreeBSD 13.1-RELEASE releng/13.1-n250148-fc952ac2212 GENERIC arm64
FreeBSD clang version 13.0.0 (git@github.com:llvm/llvm-project.git llvmorg-13.0.0-0-gd7b669b3a303)
VT: init without driver.
module firmware already present!
real memory  = 4275851264 (4077 MB)
avail memory = 4146606080 (3954 MB)
Starting CPU 1 (1)
Starting CPU 2 (2)
Starting CPU 3 (3)
FreeBSD/SMP: Multiprocessor System Detected: 4 CPUs
arc4random: WARNING: initial seeding bypassed the cryptographic random device because it was not yet seeded and the knob 'bypass_before_seeding' was enabled.
random: entropy device external interface
MAP fbf1f000 mode 2 pages 1
MAP fbf23000 mode 2 pages 3
MAP fbf27000 mode 2 pages 4
MAP fef40000 mode 2 pages 16
kbd0 at kbdmux0
ofwbus0: <Open Firmware Device Tree>
simplebus0: <Flattened device tree simple bus> on ofwbus0
clk_fixed0: <Fixed clock> on ofwbus0
rk_grf0: <RockChip General Register Files> mem 0xff100000-0xff100fff on ofwbus0
rk3328_cru0: <Rockchip RK3328 Clock and Reset Unit> mem 0xff440000-0xff440fff on ofwbus0
Cannot set frequency for clk: aclk_bus_pre, error: 34
rk3328_cru0: Failed to set aclk_bus_pre to a frequency of 15000000
Cannot set frequency for clk: aclk_peri_pre, error: 34
rk3328_cru0: Failed to set aclk_peri_pre to a frequency of 15000000
clk_fixed1: <Fixed clock> on ofwbus0
regfix0: <Fixed Regulator> on ofwbus0
regfix1: <Fixed Regulator> on ofwbus0
regfix2: <Fixed Regulator> on ofwbus0
regfix3: <Fixed Regulator> on ofwbus0
simple_mfd0: <Simple MFD (Multi-Functions Device)> mem 0xff450000-0xff45ffff on ofwbus0
psci0: <ARM Power State Co-ordination Interface Driver> on ofwbus0
gic0: <ARM Generic Interrupt Controller> mem 0xff811000-0xff811fff,0xff812000-0xff813fff,0xff814000-0xff815fff,0xff816000-0xff817fff irq 49 on ofwbus0
gic0: pn 0x2, arch 0x2, rev 0x1, implementer 0x43b irqs 160
rk_pinctrl0: <RockChip Pinctrl controller> on ofwbus0
gpio0: <RockChip GPIO Bank controller> mem 0xff210000-0xff2100ff irq 52 on rk_pinctrl0
gpiobus0: <OFW GPIO bus> on gpio0
gpio1: <RockChip GPIO Bank controller> mem 0xff220000-0xff2200ff irq 53 on rk_pinctrl0
gpiobus1: <OFW GPIO bus> on gpio1
gpio2: <RockChip GPIO Bank controller> mem 0xff230000-0xff2300ff irq 54 on rk_pinctrl0
gpiobus2: <OFW GPIO bus> on gpio2
gpio3: <RockChip GPIO Bank controller> mem 0xff240000-0xff2400ff irq 55 on rk_pinctrl0
gpiobus3: <OFW GPIO bus> on gpio3
rk_i2c0: <RockChip I2C> mem 0xff160000-0xff160fff irq 16 on ofwbus0
iicbus0: <OFW I2C bus> on rk_i2c0
rk805_pmu0: <RockChip RK805 PMIC> at addr 0x30 irq 56 on iicbus0
generic_timer0: <ARMv8 Generic Timer> irq 4,5,6,7 on ofwbus0
Timecounter "ARM MPCore Timecounter" frequency 24000000 Hz quality 1000
Event timer "ARM MPCore Eventtimer" frequency 24000000 Hz quality 1000
rk_tsadc0: <RockChip temperature sensors> mem 0xff250000-0xff2500ff irq 22 on ofwbus0
cpulist0: <Open Firmware CPU Group> on ofwbus0
cpu0: <Open Firmware CPU> on cpulist0
cpufreq_dt0: <Generic cpufreq driver> on cpu0
cpu1: <Open Firmware CPU> on cpulist0
cpufreq_dt1: <Generic cpufreq driver> on cpu1
cpu2: <Open Firmware CPU> on cpulist0
cpufreq_dt2: <Generic cpufreq driver> on cpu2
cpu3: <Open Firmware CPU> on cpulist0
cpufreq_dt3: <Generic cpufreq driver> on cpu3
pmu0: <Performance Monitoring Unit> irq 0,1,2,3 on ofwbus0
uart0: <16750 or compatible> mem 0xff130000-0xff1300ff irq 14 on ofwbus0
uart0: console (-1,n,8,1)
iic0: <I2C generic I/O> on iicbus0
spi0: <Rockchip SPI> mem 0xff190000-0xff190fff irq 19 on ofwbus0
spi0: cannot get apb_pclk clock
device_attach: spi0 attach returned 6
rockchip_dwmmc0: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xff500000-0xff503fff irq 41 on ofwbus0
rockchip_dwmmc0: Hardware version ID is 270a
rockchip_dwmmc1: <Synopsys DesignWare Mobile Storage Host Controller (RockChip)> mem 0xff520000-0xff523fff irq 43 on ofwbus0
rockchip_dwmmc1: Hardware version ID is 270a
mmc0: <MMC/SD bus> on rockchip_dwmmc1
dwc0: <Rockchip Gigabit Ethernet Controller> mem 0xff540000-0xff54ffff irq 44 on ofwbus0
miibus0: <MII bus> on dwc0
rgephy0: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 0 on miibus0
rgephy0:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
rgephy1: <RTL8169S/8110S/8211 1000BASE-T media interface> PHY 1 on miibus0
rgephy1:  none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT-FDX, 1000baseT-FDX-master, auto
dwc0: Ethernet address: 86:e0:c0:ea:fa:a9
dwcotg0: <DWC OTG 2.0 integrated USB controller> mem 0xff580000-0xff5bffff irq 46 on ofwbus0
usbus1 on dwcotg0
ehci0: <Generic EHCI Controller> mem 0xff5c0000-0xff5cffff irq 47 on ofwbus0
usbus2: EHCI version 1.0
usbus2 on ehci0
ohci0: <Generic OHCI Controller> mem 0xff5d0000-0xff5dffff irq 48 on ofwbus0
usbus3 on ohci0
gpioc0: <GPIO controller> on gpio0
gpioc1: <GPIO controller> on gpio1
gpioc2: <GPIO controller> on gpio2
gpioc3: <GPIO controller> on gpio3
gpioled0: <GPIO LEDs> on ofwbus0
gpioled0: <led-0> failed to map pin
gpioled0: <led-1> failed to map pin
armv8crypto0: <AES-CBC,AES-XTS,AES-GCM>
Timecounters tick every 1.000 msec
rk805_pmu0: registered as a time-of-day clock, resolution 1.000000s
usbus1: 480Mbps High Speed USB v2.0
usbus2: 480Mbps High Speed USB v2.0
usbus3: 12Mbps Full Speed USB v1.0
ugen2.1: <Generic EHCI root HUB> at usbus2
uhub0 on usbus2
uhub0: <Generic EHCI root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus2
ugen1.1: <DWCOTG OTG Root HUB> at usbus1
uhub1 on usbus1
uhub1: <DWCOTG OTG Root HUB, class 9/0, rev 2.00/1.00, addr 1> on usbus1
ugen3.1: <Generic OHCI root HUB> at usbus3
uhub2 on usbus3
uhub2: <Generic OHCI root HUB, class 9/0, rev 1.00/1.00, addr 1> on usbus3
mmcsd0: 125GB <MMCHC DJNB4R 0.7 SN DDEBE217 MFG 05/2017 by 21 0x0000> at mmc0 150.0MHz/8bit/1016-block
mmcsd0boot0: 4MB partition 1 at mmcsd0
mmcsd0boot1: 4MB partition 2 at mmcsd0
mmcsd0rpmb: 4MB partition 3 at mmcsd0
CPU  0: ARM Cortex-A53 r0p4 affinity:  0
                   Cache Type = <64 byte D-cacheline,64 byte I-cacheline,VIPT ICache,64 byte ERG,64 byte CWG>
 Instruction Set Attributes 0 = <CRC32,SHA2,SHA1,AES+PMULL>
 Instruction Set Attributes 1 = <>
         Processor Features 0 = <AdvSIMD,FP,EL3 32,EL2 32,EL1 32,EL0 32>
         Processor Features 1 = <>
      Memory Model Features 0 = <TGran4,TGran64,SNSMem,BigEnd,16bit ASID,1TB PA>
      Memory Model Featur1 = <>
AArch32 Instruction Set Attributes 5 = <CRC32,SHA2,SHA1,AES+VMULL,SEVL>
AArch32 Media and VFP Features 0 = <FPRound,FPSqrt,FPDivide,DP VFPv3+v4,SP VFPv3+v4,AdvSIMD>
AArch32 Media and VFP Features 1 = <SIMDFMAC,FPHP DP Conv,SIMDHP SP Conv,SIMDSP,SIMDInt,SIMDLS,FPDNaN,FPFtZ>
CPU  1: ARM Cortex-A53 r0p4 affinity:  1
CPU  2: ARM Cortex-A53 r0p4 affinity:  2
CPU  3: ARM Cortex-A53 r0p4 affinity:  3
Release APs...done
Trying to mount root from ufs:/dev/ufs/rootfs [rw]...
mmcsd0: Error indicated: 4 Failed
rockchip_dwmmc1: Failed to update clk
uhub2: 1 port with 1 removable, self powered
uhub1: 1 port with 1 removable, self powered
uhub0: 1 port with 1 removable, self powered
random: unblocking device.
Comment 2 Mark Millard 2022-11-06 01:09:11 UTC
(In reply to Mark Millard from comment #1)

I'm only supplying some evidence that you can not because of
lack of a serial console. I'm unlikely to be of much help with
identifying the actual fixes for any odd behavior(s).

My old boot logs show 52MHz for the likes of:

mmcsd0: 125GB <MMCHC DJNB4R 0.7 SN 9F43B2AE MFG 06/2016 by 21 0x0000> at mmc0 52.0MHz/8bit/1016-block

instead of the 150.0MHz that the new, failing boot shows:

mmcsd0: 125GB <MMCHC DJNB4R 0.7 SN DDEBE217 MFG 05/2017 by 21 0x0000> at mmc0 150.0MHz/8bit/1016-block

Hopefully, the output might help someone that knows what they
are doing for such issues. More than the above point may be
of importance.


I knew that my old USB3 based world boot (eMMC for /boot/kernel/
and a few other files the kernel stage uses, plus earlier stages)
no longer worked. I had not known that more normal use was also
broken: I did not try anything else at the time. Absent the
combination of USB3 and 4 GiBytes of RAM, I tend to ignore the
Rock64.
Comment 3 Mark Millard 2022-11-06 01:54:25 UTC
(In reply to Mark Millard from comment #2)

Warning: "My old boot logs show" tends to be from a fairly
small variation on "main" at the time and I tend to carry
around some exploratory patches in all my own builds until
I notice they break something. The wording is not trying
to indicate what old ??.?-RELEASE or ??.?-STABLE or even
??.?-CURRENT did on its own.

And my normal use of USB3 for world tends to mean not
continuing to use the eMMC for later stages for such
contexts, other than explicit mounts of eMMC partitions.
Those mounts and use of them worked, indicating the the
52 MHz context was working historically.
Comment 4 Mark Millard 2022-11-06 02:15:25 UTC
(In reply to Mark Millard from comment #3)

Turns out I have old exploratory material in my "main"
context that deals with this 150.0 MHz vs. 52.0 MHz
issue. I'd forgotten.

# git -C /usr/main-src/ diff sys/dev/mmc/mmc.c
diff --git a/sys/dev/mmc/mmc.c b/sys/dev/mmc/mmc.c
index 5fce6cbf47a1..ff6896f35678 100644
--- a/sys/dev/mmc/mmc.c
+++ b/sys/dev/mmc/mmc.c
@@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
+#include <sys/kobj.h>
 #include <sys/malloc.h>
 #include <sys/lock.h>
 #include <sys/module.h>
@@ -1512,6 +1513,8 @@ mmc_timing_to_string(enum mmc_bus_timing timing)
 static bool
 mmc_host_timing(device_t dev, enum mmc_bus_timing timing)
 {
+       kobjop_desc_t kobj_desc;
+       kobj_method_t *kobj_method;
        int host_caps;
 
        host_caps = mmcbr_get_caps(dev);
@@ -1543,14 +1546,37 @@ mmc_host_timing(device_t dev, enum mmc_bus_timing timing)
        case bus_timing_mmc_ddr52:
                return (HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_DDR52));
        case bus_timing_mmc_hs200:
-               return (HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS200_120) ||
-                       HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS200_180));
        case bus_timing_mmc_hs400:
-               return (HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS400_120) ||
-                       HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS400_180));
        case bus_timing_mmc_hs400es:
-               return (HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS400 |
-                   MMC_CAP_MMC_ENH_STROBE));
+               /*
+                * Disable eMMC modes that require use of
+                * MMC_SEND_TUNING_BLOCK_HS200 to set things up if either the
+                * tune or re-tune method is the default NULL implementation.
+                */
+               kobj_desc = &mmcbr_tune_desc;
+               kobj_method = kobj_lookup_method(((kobj_t)dev)->ops->cls, NULL,
+                   kobj_desc);
+               if (kobj_method == &kobj_desc->deflt)
+                       return (false);
+               kobj_desc = &mmcbr_retune_desc;
+               kobj_method = kobj_lookup_method(((kobj_t)dev)->ops->cls, NULL,
+                   kobj_desc);
+               if (kobj_method == &kobj_desc->deflt) {
+                       return (false);
+               }
+
+               /*
+                * Otherwise track the host capabilities.
+                */
+               if (timing == bus_timing_mmc_hs200)
+                       return (HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS200_120) ||
+                               HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS200_180));
+               if (timing == bus_timing_mmc_hs400)
+                       return (HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS400_120) ||
+                               HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS400_180));
+               if (timing == bus_timing_mmc_hs400es)
+                       return (HOST_TIMING_CAP(host_caps, MMC_CAP_MMC_HS400 |
+                               MMC_CAP_MMC_ENH_STROBE));
        }
 
 #undef HOST_TIMING_CAP
Comment 5 Mark Millard 2022-11-06 02:37:41 UTC
(In reply to Mark Millard from comment #4)

See the thread(s) that started with:

https://lists.freebsd.org/archives/freebsd-arm/2021-December/000704.html

that had a subject of:

Rock64 configuration fails to boot for main 22c4ab6cb015 but worked for main 06bd74e1e39c (Nov 21): e.MMC mishandled?
Comment 6 Jason W. Bacon freebsd_committer freebsd_triage 2022-11-06 20:24:48 UTC
This may be related to the fact that I can't mount my eMMC via a USB reader on FreeBSD 13.1 amd64.  I can't be sure, but I think I was able to do this previously.  It works fine on my MacBook and on a laptop running 12.4-BETA1.

usb_msc_auto_quirk: UQ_MSC_NO_GETMAXLUN set for USB mass storage device Generic USB3.0 Flash Disk (0x05e3:0x0749)
usb_msc_auto_quirk: UQ_MSC_NO_TEST_UNIT_READY set for USB mass storage device Generic USB3.0 Flash Disk (0x05e3:0x0749)
usb_msc_auto_quirk: UQ_MSC_NO_PREVENT_ALLOW set for USB mass storage device Generic USB3.0 Flash Disk (0x05e3:0x0749)
ugen0.5: <Generic USB3.0 Flash Disk> at usbus0
umass1 on uhub2
umass1: <Generic USB3.0 Flash Disk, class 0/0, rev 3.00/15.32, addr 9> on usbus0
umass1:  SCSI over Bulk-Only; quirks = 0x8101
umass1:3:1: Attached to scbus3
(probe0:umass-sim1:1:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
(probe0:umass-sim1:1:0:0): SCSI status: Check Condition
(probe0:umass-sim1:1:0:0): SCSI sense: ABORTED COMMAND asc:30,0 (Incompatible medium installed)
(probe0:umass-sim1:1:0:0): Retrying command (per sense data)
(probe0:umass-sim1:1:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
(probe0:umass-sim1:1:0:0): SCSI status: Check Condition
(probe0:umass-sim1:1:0:0): SCSI sense: ABORTED COMMAND asc:30,0 (Incompatible medium installed)
(probe0:umass-sim1:1:0:0): Retrying command (per sense data)
(probe0:umass-sim1:1:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
(probe0:umass-sim1:1:0:0): SCSI status: Check Condition
(probe0:umass-sim1:1:0:0): SCSI sense: ABORTED COMMAND asc:30,0 (Incompatible medium installed)
(probe0:umass-sim1:1:0:0): Retrying command (per sense data)
(probe0:umass-sim1:1:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
(probe0:umass-sim1:1:0:0): SCSI status: Check Condition
(probe0:umass-sim1:1:0:0): SCSI sense: ABORTED COMMAND asc:30,0 (Incompatible medium installed)
(probe0:umass-sim1:1:0:0): Retrying command (per sense data)
(probe0:umass-sim1:1:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
(probe0:umass-sim1:1:0:0): SCSI status: Check Condition
(probe0:umass-sim1:1:0:0): SCSI sense: ABORTED COMMAND asc:30,0 (Incompatible medium installed)
(probe0:umass-sim1:1:0:0): Retrying command (per sense data)
(probe0:umass-sim1:1:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
(probe0:umass-sim1:1:0:0): SCSI status: Check Condition
(probe0:umass-sim1:1:0:0): SCSI sense: ABORTED COMMAND asc:30,0 (Incompatible medium installed)
(probe0:umass-sim1:1:0:0): Error 5, Retries exhausted
da1 at umass-sim1 bus 1 scbus3 target 0 lun 0
da1: <Generic USB Flash Disk 1532> Removable Direct Access SPC-4 SCSI device
da1: Serial Number 000000001532
da1: 400.000MB/s transfers
da1: Attempt to query device size failed: ABORTED COMMAND, Incompatible medium installed
da1: quirks=0x3<NO_SYNC_CACHE,NO_6_BYTE>
Comment 7 Kubilay Kocak freebsd_committer freebsd_triage 2022-11-06 21:57:26 UTC
@Jason Are you able to test a 12/stable and current image for bootability?
Comment 8 Mark Millard 2022-11-06 22:33:03 UTC
(In reply to Jason W. Bacon from comment #6)

I tried an analogous test on a 8 GiByte RPi4B. No "Incompatible medium
installed" notices so not a good match overall. Seems like something more
specific to your context is involved.

For reference:

# uname -apKU
FreeBSD 13R-ufs 13.1-RELEASE-p3 FreeBSD 13.1-RELEASE-p3 GENERIC arm64 aarch64 1301000 1301000

Then plugging in to a USB3 port:

usb_msc_auto_quirk: UQ_MSC_NO_TEST_UNIT_READY set for USB mass storage device Kingston Multi-Reader (0x11b0:0x6368)
usb_msc_auto_quirk: UQ_MSC_NO_PREVENT_ALLOW set for USB mass storage device Kingston Multi-Reader (0x11b0:0x6368)
usb_msc_auto_quirk: UQ_MSC_NO_SYNC_CACHE set for USB mass storage device Kingston Multi-Reader (0x11b0:0x6368)
usb_msc_auto_quirk: UQ_MSC_NO_START_STOP set for USB mass storage device Kingston Multi-Reader (0x11b0:0x6368)
ugen0.4: <Kingston Multi-Reader> at usbus0
umass1 on uhub0
umass1: <Bulk-In, Bulk-Out, Interface> on usbus0
umass1:  SCSI over Bulk-Only; quirks = 0xc005
umass1:1:1: Attached to scbus1
(probe0:umass-sim1:1:0:0): REPORT LUNS. CDB: a0 00 00 00 00 00 00 00 00 10 00 00 
(probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error
(probe0:umass-sim1:1:0:0): SCSI status: Check Condition
(probe0:umass-sim1:1:0:0): SCSI sense: ILLEGAL REQUEST asc:24,0 (Invalid field in CDB)
(probe0:umass-sim1:1:0:0): Error 22, Unretryable error
da1 at umass-sim1 bus 1 scbus1 target 0 lun 0
da1: < Multi-Reader  -0 1.00> Removable Direct Access SPC-4 SCSI device
da1: Serial Number 08738181902155
da1: 400.000MB/s transfers
da1: Attempt to query device size failed: NOT READY, Medium not present
da1: quirks=0x2<NO_6_BYTE>
da2 at umass-sim1 bus 1 scbus1 target 0 lun 1
da2: < Multi-Reader  -1 1.00> Removable Direct Access SPC-4 SCSI device
da2: Serial Number 08738181902155
da2: 400.000MB/s transfers
da2: Attempt to query device size failed: NOT READY, Medium not present
da2: quirks=0x2<NO_6_BYTE>
da3 at umass-sim1 bus 1 scbus1 target 0 lun 2
da3: < Multi-Reader  -2 1.00> Removable Direct Access SPC-4 SCSI device
da3: Serial Number 08738181902155
da3: 400.000MB/s transfers
da3: Attempt to query device size failed: NOT READY, Medium not present
da3: quirks=0x2<NO_6_BYTE>
da4 at umass-sim1 bus 1 scbus1 target 0 lun 3
da4: < Multi-Reader  -3 1.00> Removable Direct Access SPC-4 SCSI device
da4: Serial Number 08738181902155
da4: 400.000MB/s transfers
da4: 119276MB (244277248 512 byte sectors)
da4: quirks=0x2<NO_6_BYTE>
GEOM_PART: integrity check failed (da4s2, BSD)

# gpart show -p
. . .
=>       63  244277185    da4  MBR  (116G)
         63      32705         - free -  (16M)
      32768     163840  da4s1  fat32lba  [active]  (80M)
     196608  244080640  da4s2  !169  (116G)

Plugging in a USB2 port instead:

usb_msc_auto_quirk: UQ_MSC_NO_TEST_UNIT_READY set for USB mass storage device Kingston Multi-Reader (0x11b0:0x6368)
usb_msc_auto_quirk: UQ_MSC_NO_PREVENT_ALLOW set for USB mass storage device Kingston Multi-Reader (0x11b0:0x6368)
usb_msc_auto_quirk: UQ_MSC_NO_SYNC_CACHE set for USB mass storage device Kingston Multi-Reader (0x11b0:0x6368)
usb_msc_auto_quirk: UQ_MSC_NO_START_STOP set for USB mass storage device Kingston Multi-Reader (0x11b0:0x6368)
ugen0.4: <Kingston Multi-Reader> at usbus0
umass1 on uhub1
umass1: <Bulk-In, Bulk-Out, Interface> on usbus0
umass1:  SCSI over Bulk-Only; quirks = 0xc005
umass1:1:1: Attached to scbus1
da1 at umass-sim1 bus 1 scbus1 target 0 lun 0
da1: < Multi-Reader  -0 1.00> Removable Direct Access SPC-2 SCSI device
da1: Serial Number 08738181902155
da1: 40.000MB/s transfers
da1: Attempt to query device size failed: NOT READY, Medium not present
da1: quirks=0x2<NO_6_BYTE>
da2 at umass-sim1 bus 1 scbus1 target 0 lun 1
da2: < Multi-Reader  -1 1.00> Removable Direct Access SPC-2 SCSI device
da2: Serial Number 08738181902155
da2: 40.000MB/s transfers
da2: Attempt to query device size failed: NOT READY, Medium not present
da2: quirks=0x2<NO_6_BYTE>
da3 at umass-sim1 bus 1 scbus1 target 0 lun 2
da3: < Multi-Reader  -2 1.00> Removable Direct Access SPC-2 SCSI device
da3: Serial Number 08738181902155
da3: 40.000MB/s transfers
da3: Attempt to query device size failed: NOT READY, Medium not present
da3: quirks=0x2<NO_6_BYTE>
da4 at umass-sim1 bus 1 scbus1 target 0 lun 3
da4: < Multi-Reader  -3 1.00> Removable Direct Access SPC-2 SCSI device
da4: Serial Number 08738181902155
da4: 40.000MB/s transfers
da4: 119276MB (244277248 512 byte sectors)
da4: quirks=0x2<NO_6_BYTE>
GEOM_PART: integrity check failed (da4s2, BSD)

# gpart show -p
. . .
=>       63  244277185    da4  MBR  (116G)
         63      32705         - free -  (16M)
      32768     163840  da4s1  fat32lba  [active]  (80M)
     196608  244080640  da4s2  !169  (116G)
Comment 9 Jason W. Bacon freebsd_committer freebsd_triage 2022-11-07 16:40:58 UTC
(In reply to Kubilay Kocak from comment #7)

Yeah, I can probably tinker with it next weekend.
Comment 10 Jason W. Bacon freebsd_committer freebsd_triage 2022-11-12 12:40:04 UTC
One more data point: 13.1-RELEASE boots fine on a microSD.
Comment 11 Jason W. Bacon freebsd_committer freebsd_triage 2022-11-12 14:19:45 UTC
The latest 14.0 snapshot is a no-go.

Given that my eMMC won't mount on a 13.1 amd64 machine and won't boot on the ROCK64, it's looking more like a platform-independent driver issue.
Comment 12 Jason W. Bacon freebsd_committer freebsd_triage 2022-11-12 14:21:23 UTC
And there is no ROCK64 image for 12.x.
Comment 13 Mark Millard 2023-04-02 23:58:38 UTC
(In reply to Jason W. Bacon from comment #10)

The subject line for this submittal likely should be
adjusted to indicate the media-type dependency for
the problem since you report that microsd card boots
of 13.1-RELEASE do work for booting the Rock64.
Comment 14 Mark Millard 2023-04-12 06:51:46 UTC
The new summary "FreeBSD 13.1 and later cannot read microSD (13.0-R OK)"
makes no mention of eMMC but mentions microSD, unlike the Description
text. These are always distinct types of storage media as far as I know,
governed by different standards.

The original description text indicates eMMC for the problem.
And:
Comment 10 indicates "13.1-RELEASE boots fine on a microSD".

So, I'm confused about the status of the 2 types of media for what
is being reported. Some notes may need to be added to make clear
what is claimed for each of the 2 types of media. It might be that
the summary text needs another edit, I can not tell.

(My original notes were for eMMC, not microSD card media.)