Built-in Micro SD Card Reader problems

Computer is a 2022 Asus Zephyrus with AMD processor and GPU, 16GB RAM, and a 1TB NVME. OS is Fedora 38 with GNOME 44.2.
This unit has a built-in Micro SD Card reader. This card reader worked just fine with a 64GB card but I wanted bigger so I purchased a SanDisk Extreme Pro 1TB card. Every time I insert this card either the OS doesn’t recognize it, doesn’t recognize the partition on it, refuses to mount it, or flat out corrupts it. All of that is a one-shot deal too because it will never try to recognize the card again until a restart. Running dmesg will net the following results:

  • mmc0: card never left busy state
  • mmc0: error -110 whilst initalising SD card
    I’ll add that to uncorrupt the card I have to repartition and reformat with a Windows 11 tablet (UGH!).
    One more thing… I’ve reinstalled Fedora 3 times on this machine for other reasons and this card issue has always been a thing. Not sure if it’s the hardware that can’t handle a 1TB card, my ignorance (likely), or the Fedora Devs just weren’t thinking anyone would be willing to spend the time to store 1TB of data on a Micro SD.
    Any help would be appreciated.

Welcome to Ask Fedora @somech !

Not sure I can help with the specifics without more details - can you provide the output of this?

sudo lspci -nnvv (crop it to only show the entry for your card reader)

In general though, sounds like a hardware issue. Fedora runs a mostly stock kernel and most card readers just use standard drivers.

I have had similar issues - with smaller cards though - and my solution is to just have an external reader I know work, and ignore the built in reader. Anker’s works well for my use cases.

Hope that helps!

Thanks for your reply.
Below are the results of sudo lspci -nnvv
I will mention that I can format the microSD in exFat or NTFS, just not ext4 or any of the other Linux file systems. It will start the format but will complete with errors and the laptop will no longer recognize the card unless I restart, blow out the partition, and reformat in exFat. After that the card works perfectly.
So, from a hardware point of view it seems to work ok, it just won’t format 1TB of ext4. I thought about maybe breaking the card into 256GB partitions but haven’t tried it yet since I actually wanted a solid 1TB part.

4:00.0 SD Host controller [0805]: O2 Micro, Inc. SD/MMC Card Reader Controller [1217:8520] (rev 01) (prog-if 01)
Subsystem: ASUSTeK Computer Inc. Device [1043:202f]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- SERR- <PERR- INTx-
Latency: 0, Cache Line Size: 64 bytes
Interrupt: pin A routed to IRQ 49
IOMMU group: 17
Region 0: Memory at fcf01000 (32-bit, non-prefetchable) [size=4K]
Region 1: Memory at fcf00000 (32-bit, non-prefetchable) [size=2K]
Capabilities: [6c] Power Management version 3
Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0-,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [48] MSI: Enable+ Count=1/1 Maskable+ 64bit+
Address: 00000000fee00000 Data: 0000
Masking: 00000000 Pending: 00000000
Capabilities: [80] Express (v2) Endpoint, MSI 00
DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <4us, L1 unlimited
ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset- SlotPowerLimit 75W
DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
RlxdOrd+ ExtTag- PhantFunc- AuxPwr+ NoSnoop+
MaxPayload 128 bytes, MaxReadReq 128 bytes
DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <512ns, L1 unlimited
ClockPM+ Surprise- LLActRep- BwNot- ASPMOptComp-
LnkCtl: ASPM L1 Enabled; RCB 64 bytes, Disabled- CommClk-
ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
LnkSta: Speed 2.5GT/s, Width x1
TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
DevCap2: Completion Timeout: Not Supported, TimeoutDis- NROPrPrP- LTR+
10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
FRS- TPHComp- ExtTPHComp-
AtomicOpsCap: 32bit- 64bit- 128bitCAS-
DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled,
AtomicOpsCtl: ReqEn-
LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
Retimer- 2Retimers- CrosslinkRes: unsupported
Capabilities: [100 v1] Virtual Channel
Caps: LPEVC=0 RefClk=100ns PATEntryBits=1
Arb: Fixed- WRR32- WRR64- WRR128-
Ctrl: ArbSelect=Fixed
Status: InProgress-
VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans-
Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256-
Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01
Status: NegoPending- InProgress-
Capabilities: [230 v1] Latency Tolerance Reporting
Max snoop latency: 1048576ns
Max no snoop latency: 1048576ns
Capabilities: [240 v1] L1 PM Substates
L1SubCap: PCI-PM_L1.2- PCI-PM_L1.1+ ASPM_L1.2- ASPM_L1.1+ L1_PM_Substates+
L1SubCtl1: PCI-PM_L1.2- PCI-PM_L1.1+ ASPM_L1.2- ASPM_L1.1+
Kernel driver in use: sdhci-pci
Kernel modules: sdhci_pci

update… creating 256GB partitions using ext4 don’t work either. Format completes with errors and pc will no longer recognize card.

I think that the fault may lie in the partitioning.
Have you tried to create a partition on that card with fdisk then format the ext4 file system inside that partition? It works fine that way for me with smaller sd cards but I have never tried formatting one as ext4 without creating a partition.

Your post above seems to indicate you are trying to format the raw card with no partition

mmc0: card never left busy state
mmc0: error -110 whilst initalising SD card