When using ACPI mode, the following MMC/SDIO host controllers get enumerated: mmc0 -> ../../devices/platform/80860F14:01/mmc_host/mmc0 mmc1 -> ../../devices/platform/INT33BB:00/mmc_host/mmc1 mmc2 -> ../../devices/platform/80860F16:00/mmc_host/mmc2 With mmc2 containing the memory card. So it that one is the controller physically on the board: mmc2:59b4 -> ../../../devices/platform/80860F16:00/mmc_host/mmc2/mmc2:59b4 When using PCI mode, the following MMC/SDIO host controllers get enumerated: mmc0 -> ../../devices/pci0000:00/0000:00:11.0/mmc_host/mmc0 mmc1 -> ../../devices/pci0000:00/0000:00:12.0/mmc_host/mmc1 mmc2 -> ../../devices/pci0000:00/0000:00:17.0/mmc_host/mmc2 With now mmc1 containing the memory card which is on the physical SD card slot: mmc1:59b4 -> ../../../devices/pci0000:00/0000:00:12.0/mmc_host/mmc1/mmc1:59b4 And also lspci shows 3 MMC/SDIO host controllers: 00:11.0 SD Host controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SDIO Controller (rev 0c) 00:12.0 SD Host controller: Intel Corporation Atom Processor Z36xxx/Z37xxx Series SDIO Controller (rev 0c) 00:17.0 SD Host controller: Intel Corporation Device 0f50 (rev 0c) So do we have really 3 MMC/SDIO controllers exposed or should the 2 not in use be disabled. I also have the funny fact that sdhci-acpi.ko gets auto-loaded in PCI mode. That is a bit weird and makes me wonder what ACPI platform device would trigger that.
Hi Marcel, Please include the firmware version you are reporting issues like this with. Also, which kernel version? Now, digging into the schematic and the Intel documentation/specifications, and comparing that with what was reported to/by the OS (3.14.2-rt1+), we find that: In ACPI mode: # dmesg | grep mmc [ 4.477213] mmc0: SDHCI controller on ACPI [80860F14:01] using ADMA [ 4.490851] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA [ 4.506402] mmc2: SDHCI controller on ACPI [80860F16:00] using ADMA [ 5.197791] mmc2: new high speed SDHC card at address e624 [ 5.245622] mmcblk0: mmc2:e624 SU04G 3.69 GiB [ 5.274182] mmcblk0: 80860F14:01: eMMC (MMC1* on SoC, Not Connected) INT33BB:00: SDIO lines (SD2* on SoC, Not Connected) 80860F16:00: The MicroSD Card Slot (SD3* on SoC) In PCI mode: # lspci | grep SD 00:11.0 SD Host controller: Intel Corporation ValleyView SDIO Controller (rev 0c) 00:12.0 SD Host controller: Intel Corporation ValleyView SDIO Controller (rev 0c) 00:17.0 SD Host controller: Intel Corporation ValleyView MIPI-HSI Controller (rev 0c) # dmesg | grep mmc [ 4.787697] mmc0: SDHCI controller on PCI [0000:00:11.0] using ADMA [ 4.826407] mmc1: SDHCI controller on PCI [0000:00:12.0] using ADMA [ 4.852371] mmc2: SDHCI controller on PCI [0000:00:17.0] using ADMA [ 5.219778] mmc1: new high speed SDHC card at address e624 [ 5.230099] mmcblk0: mmc1:e624 SU04G 3.69 GiB [ 5.243487] mmcblk0: #define PCI_DEVICE_ID_INTEL_BYT_EMMC 0x0f14 #define PCI_DEVICE_ID_INTEL_BYT_SDIO 0x0f15 #define PCI_DEVICE_ID_INTEL_BYT_SD 0x0f16 #define PCI_DEVICE_ID_INTEL_BYT_EMMC2 0x0f50 0000:00:11.0: 8086:0f15 SDIO lines (SD2* on SoC, Not Connected) 0000:00:12.0: 8086:0f16 The MicroSD Card Slot (SD3* on SoC) 0000:00:17.0: 8086:0f50 eMMC (MMC1* on SoC, Not Connected) So, Tim - please remove (or mark as disabled): ACPI: 80860F14 INT33BB PCI: 8086:0f15 8086:0f50 (and 8086:0f14 is it is anywhere in the firmware, that's the old emmc device id)
Oh, I collected my data with: BIOS Information Vendor: Intel Corp. Version: MNW2CRB1.X64.0071.R30.1408121658
I forgot to include the output for the host setup: [ 4.543371] sdhci: Secure Digital Host Controller Interface driver [ 4.543381] sdhci: Copyright(c) Pierre Ossman [ 4.574945] sdhci-acpi 80860F14:01: No vmmc regulator found [ 4.574958] sdhci-acpi 80860F14:01: No vqmmc regulator found [ 4.583018] mmc0: SDHCI controller on ACPI [80860F14:01] using ADMA [ 4.587119] sdhci-acpi INT33BB:00: No vmmc regulator found [ 4.587132] sdhci-acpi INT33BB:00: No vqmmc regulator found [ 4.592382] mmc1: SDHCI controller on ACPI [INT33BB:00] using ADMA [ 4.595991] sdhci-acpi 80860F16:00: failed to setup card detect gpio [ 4.598555] sdhci-acpi 80860F16:00: No vmmc regulator found [ 4.598567] sdhci-acpi 80860F16:00: No vqmmc regulator found [ 4.603941] mmc2: SDHCI controller on ACPI [80860F16:00] using ADMA [ 5.296718] mmc2: new high speed SDHC card at address 59b4 [ 5.325698] mmcblk0: mmc2:59b4 14.9 GiB [ 5.356288] mmcblk0: p1 p2
ok, I'll remove following ACPI: 80860F14 INT33BB PCI: 8086:0f15 8086:0f50
Created attachment 2228 [details] Disable eMMC host controller by BIOS setup
(In reply to comment #5) > Created attachment 2228 [details] > Disable eMMC host controller by BIOS setup David, I'm not sure what you mean. Are you saying that if the user disables the eMMC in the BIOS setup, then this device does not appear? If so, then my response would be that this device does not exist on the board, and it should default to off in the firmware. I would also argue that it shouldn't even be an option in the firmware - unless we expect people to use this exact firmware for derivative boards which may choose to add the eMMC. As the firmware is being released as open source, I would fully expect anyone using a derivative board to reconfigure the firmware and enable it. So my preference would be to eliminate eMMC from the MinnowBaord MAX stock firmware image as it does not reflect the configuration of the board itself.
Hi Darren, I was only providing a test log and debug method for us to discuss this issue, i was not proividing a fix. After disabling eMMC host controller by setting the BIOS setup option "Device Manager -> System Setup -> South Cluster Configuration -> LPSS & SCC Configuration -> SCC eMMC Boot Controller" to be "Dsiable", Yocto could mount SD card but SD driver reports IO error and fails to find Root FS. Please check the attached log. We did not see such SD IO error on Windows with the same configuration. We need Yocto team to check if Yocto SD driver have some hardcode or dependence on eMMC controller. Could you help on this? [ 5.314728] mmc1: new high speed SDHC card at address aaaa [ 5.342648] mmcblk0: mmc1:aaaa SU04G 3.69 GiB [ 5.356410] mmcblk0: [ 5.884224] FAT-fs (mmcblk0): Volume was not properly unmounted. Some data ma y be corrupt. Please run fsck. [ 7.500061] random: nonblocking pool is initialized [ 7.731255] mmcblk0: error -110 transferring data, sector 25946, nr 8, cmd re sponse 0x900, card status 0xc00 [ 7.748358] end_request: I/O error, dev mmcblk0, sector 25947 [ 7.765465] mmcblk0: error -110 transferring data, sector 25962, nr 40, cmd r esponse 0x900, card status 0xc00
Does that card work fine if the eMMC is re-enabled?
Yes, that SD card works well as long as eMMC controller is enabled. The SD card and the file system in it are fine.
I'll have a closer look at the linux driver.
We are no longer tracking in Yocto Project Bugzilla MinnowBoard and MinnowBoard-MAX HW and firmware bugs.