It’s hard to say, because there are soo many different SD Cards out there,
and they’re not all created equal. The general consensus though, seems to be
that SanDisk Extremes are your most likely candidate for success.
Yea, using SanDisk High Endurance myself, and at least on BeagleV-Fire, the SD Card
is currently being driven out-of-spec, i.e. waay too fast for but the fastest cards out there.
Can’t speak to any of the other Beagles, but it might be worth looking into…
Exploring several avenues as we speak to try and remedy the situation on BVF.
On BeagleV-Fire, the SD Card slot is currently being driven by the QSPIXIP device:
This device is being fed in HCLK, which is running at 150MHz.
As can be seen from the device register map, this clock can be further divided down,
but with 4 bits to play with, a max. divisor is 30, as shown here:
Unfortunately, that ends up being 5MHz; way out-of-spec, which incidentally,
is also being seen in the kernel boot-log:
by the sd card driver in charge.
For K3 (BeaglePlay, BeagleY-AI, PocketBeagle2)… i’m looking at this patchset: https://patchwork.kernel.org/project/linux-mmc/list/?series=955905
From the patchset:
Some Microcenter/Patriot SD cards and Kingston eMMC are failing init
across Sitara K3 boards. Init failure is due to the sequence when
V1P8_SIGNAL_ENA is set. The V1P8_SIGNAL_ENA has a timing component tied
to it where if set, switch to full-cycle timing happens. The failing
cards do not like change to full-cycle timing before changing bus
width, so add flag to sdhci-am654 binding to suppress V1P8_SIGNAL_ENA
before changing bus width. The switch to full-cycle timing should happen
with HIGH_SPEED_ENA after change of bus width.
Typically we see this is as mmc -110, as we’ve already used the card to read u-boot and we start booting the kernel when the mmc get’s reinitialized…
I’ve got a bunch of known bad microSD’s to test with that patchset, it’ll take a bit to get in mainline (v3) and then start backporting to v6.12.x-ti/6.6.x-ti/6.1.x-ti/5.10.x-ti…