Some BayTrail ChromeOS devices have the eMMC controller hidden (thus requiring the use of etc/sdcard), while others do not, making it problematic to have a single payload which serves all devices properly. Therefore, if the CBFS contains etc/sdcard entries, skip detection of any visible PCI sdhci controllers in order to avoid duplicate entries in the boot menu.
patch implementation suggested by Kevin O'Connor :)
Signed-off-by: Matt DeVillier matt.devillier@gmail.com --- src/hw/sdcard.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/hw/sdcard.c b/src/hw/sdcard.c index 7e0875f..38d05c4 100644 --- a/src/hw/sdcard.c +++ b/src/hw/sdcard.c @@ -550,18 +550,23 @@ sdcard_setup(void) return;
struct romfile_s *file = NULL; + int num_romfiles = 0; for (;;) { file = romfile_findprefix("etc/sdcard", file); if (!file) break; run_thread(sdcard_romfile_setup, file); + num_romfiles++; }
- struct pci_device *pci; - foreachpci(pci) { - if (pci->class != PCI_CLASS_SYSTEM_SDHCI || pci->prog_if >= 2) - // Not an SDHCI controller following SDHCI spec - continue; - run_thread(sdcard_pci_setup, pci); + //only scan for PCI controllers if etc/sdcard not used + if (num_romfiles == 0) { + struct pci_device *pci; + foreachpci(pci) { + if (pci->class != PCI_CLASS_SYSTEM_SDHCI || pci->prog_if >= 2) + // Not an SDHCI controller following SDHCI spec + continue; + run_thread(sdcard_pci_setup, pci); + } } }
Dear Matt,
Am Donnerstag, den 10.03.2016, 12:20 -0600 schrieb Matt DeVillier:
Some BayTrail ChromeOS devices have the eMMC controller hidden (thus requiring the use of etc/sdcard), while others do not, making it problematic to have a single payload which serves all devices properly. Therefore, if the CBFS contains etc/sdcard entries, skip detection of any visible PCI sdhci controllers in order to avoid duplicate entries in the boot menu.
It looks like the lines got wrapped somehow. Maybe by your MUA/mail client?
patch implementation suggested by Kevin O'Connor :)
Signed-off-by: Matt DeVillier matt.devillier@gmail.com
src/hw/sdcard.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/hw/sdcard.c b/src/hw/sdcard.c index 7e0875f..38d05c4 100644 --- a/src/hw/sdcard.c +++ b/src/hw/sdcard.c @@ -550,18 +550,23 @@ sdcard_setup(void) return;
struct romfile_s *file = NULL; + int num_romfiles = 0;
I haven’t applied your patch, but it looks like the indentation differs.
for (;;) { file = romfile_findprefix("etc/sdcard", file); if (!file) break; run_thread(sdcard_romfile_setup, file); + num_romfiles++;
Ditto.
}
[…]
Thanks,
Paul