On Tue, Nov 19, 2019 at 10:44:54AM +0100, Patrick Wildt wrote: > > Hi,
Hi Patrick, > on some GPD Pocket mlarkin@ has the eMMC doesn't come up. One issue > is that we shouldn't go to 0V on some/most(?) Intel controllers. This > only adds it for his machine, but I know that the Appollo Lake versions > might also work if added to this check. But unless verified I'll not > add it. This makes mlarkin@'s machine work, even though it's utterly > slow. That would be the next thing to fix... probably low clocks or > doesn't use 8-bit. James Hastings has a similar diff for Intel Apollo Lake and Gemini Lake: https://www.mail-archive.com/tech@openbsd.org/msg51024.html It did work on my Apollo Lake box. > ok? > > Patrick > > diff --git a/sys/dev/pci/sdhc_pci.c b/sys/dev/pci/sdhc_pci.c > index d1b6688f573..dd6bc79c29c 100644 > --- a/sys/dev/pci/sdhc_pci.c > +++ b/sys/dev/pci/sdhc_pci.c > @@ -127,6 +127,11 @@ sdhc_pci_attach(struct device *parent, struct device > *self, void *aux) > PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_ENE_SDCARD) > sc->sc.sc_flags |= SDHC_F_NOPWR0; > > + /* Some Intel controllers break if set to 0V bus power. */ > + if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_INTEL && > + PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_INTEL_100SERIES_LP_EMMC) > + sc->sc.sc_flags |= SDHC_F_NOPWR0; > + > /* Some RICOH controllers need to be bumped into the right mode. */ > if (PCI_VENDOR(pa->pa_id) == PCI_VENDOR_RICOH && > (PCI_PRODUCT(pa->pa_id) == PCI_PRODUCT_RICOH_R5U822 || >