mmc/sdhci controller boot timeouts with no media with an intel nuc

Craig Leres leres at freebsd.org
Wed Apr 24 21:19:06 UTC 2019


I have a NUC6i3SYH that takes a couple of extra of minutes to boot 
(11.2-RELEASE) due a controller timeout loop that executes 16 times 
(with ~10 second delays in between):

     sdhci_pci0-slot0: Controller timeout
     sdhci_pci0-slot0: ============== REGISTER DUMP ==============
     sdhci_pci0-slot0: Sys addr: 0x00000000 | Version:  0x00001002
     sdhci_pci0-slot0: Blk size: 0x00000000 | Blk cnt:  0x00000000
     sdhci_pci0-slot0: Argument: 0x00000000 | Trn mode: 0x00000000
     sdhci_pci0-slot0: Present:  0x00020001 | Host ctl: 0x00000001
     sdhci_pci0-slot0: Power:    0x0000000e | Blk gap:  0x00000080
     sdhci_pci0-slot0: Wake-up:  0x00000000 | Clock:    0x0000fa07
     sdhci_pci0-slot0: Timeout:  0x00000000 | Int stat: 0x00000000
     sdhci_pci0-slot0: Int enab: 0x01ff003b | Sig enab: 0x01ff003b
     sdhci_pci0-slot0: AC12 err: 0x00000000 | Host ctl2:0x00000000
     sdhci_pci0-slot0: Caps:     0x7568c881 | Caps2:    0x00000807
     sdhci_pci0-slot0: Max curr: 0x00000000 | ADMA err: 0x00000000
     sdhci_pci0-slot0: ADMA addr:0x00000000 | Slot int: 0x00000000

which wraps up with:

     mmc0: No compatible cards found on bus

And indeed the sd card slot is empty.

I was able to disable this code by adding:

     hint.mmc.0.disabled="1"
     hint.sdhci.0.disabled="1"

to loader.conf. What would it take to improve the default behavior? From 
what I remember sd connectors usually have a media present switch, is 
the problem that our drivers don't know how to test for this specific 
system?

		Craig


More information about the freebsd-hackers mailing list