[SeaBIOS] [patch] sdcard: skip detection of PCI sdhci controllers if etc/sdcard used

John Lewis jlewis at johnlewis.ie
Sat Mar 12 14:50:19 CET 2016



On 2016-03-10 15:03, Kevin O'Connor wrote:
> On Thu, Mar 10, 2016 at 12:38:14AM -0600, Matt DeVillier wrote:
>> 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.
> 
> John, would disabling PCI scans for sd controllers when any etc/sdcard
> files exist work okay for the machines you've tested with?

I don't know why it wouldn't work, Kevin, unless some of the models do 
both e.g. a hidden device for the eMMC and an unhidden device for the SD 
card.

> 
> [...]
>> diff --git a/src/hw/sdcard.c b/src/hw/sdcard.c
>> index 7e0875f..32cdb14 100644
>> --- a/src/hw/sdcard.c
>> +++ b/src/hw/sdcard.c
>> @@ -557,11 +557,14 @@ sdcard_setup(void)
>>          run_thread(sdcard_romfile_setup, file);
>>      }
>> 
>> -    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 (file == NULL) {
> 
> Unless I've missed something, this test (file==NULL) is always true
> here.  Maybe add a counter or flag in the romfile search loop.
> 
> -Kevin
> 
>> +        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);
>> +        }
>>      }
>>  }



More information about the SeaBIOS mailing list