Some of MicroSD cards don't work

Hello,

I know there are similar post on forum but I can’t see any solution.

Some of MicroSD cards after flashing image doesn’t work and I got that error at booting:

[    2.386857] mmc1: error -110 whilst initialising SD card
root '/dev/mmcblk1p2' doesn't exist or does not contain a /dev.

There is no common feature among the cards that don’t work, such as SDXC, SDHC format, disk capacities or A1, U1 speeds.

I tried Rufus, balena etcher and Ubuntu disk restore feature.

Some cards don’t work randomly. Why? What is the solution?

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.

A note on Balena though:
balenaEtcher: known good versions - FAQ - BeagleBoard

I know the Balena situation, thanks for reminding.

Sandisk Ultras failed. I’ll get the Extreme as you suggested, I hope they work.

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.

1 Like

I’d would to know the technical explanation for this problem.

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:
image
by the sd card driver in charge.

1 Like

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…

Regards,

1 Like