[SeaBIOS] [patch] sdcard: skip detection of PCI sdhci controllers if etc/sdcard used
Matt DeVillier
matt.devillier at gmail.com
Thu Mar 10 18:03:15 CET 2016
On 3/10/2016 9:03 AM, 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?
>
> [...]
>> 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
whoops, you're correct - I'll rework this shortly
>
>> + 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