On Thu, Oct 26, 2017 at 11:14:53AM -0400, Matt DeVillier wrote: > On Thu, Oct 26, 2017 at 10:59 AM, Kevin O'Connor <ke...@koconnor.net> wrote: > > > On Thu, Oct 26, 2017 at 10:46:06AM -0400, Matt DeVillier wrote: > > > On Thu, Oct 26, 2017 at 12:56 AM, Kevin O'Connor <ke...@koconnor.net> > > wrote: > > > > > > > Does the patch below help? > > > > > > > > -Kevin > > > > > > > > > > > > --- a/src/hw/sdcard.c > > > > +++ b/src/hw/sdcard.c > > > > @@ -405,6 +405,7 @@ sdcard_card_setup(struct sddrive_s *drive, int > > volt, > > > > int prio) > > > > if (!ret && param[0] == vrange) > > > > hcs = (1<<30); > > > > // Verify SD card (instead of MMC or SDIO) > > > > +#if 0 > > > > param[0] = 0x00; > > > > ret = sdcard_pio_app(regs, SC_APP_SEND_OP_COND, param); > > > > if (ret) { > > > > @@ -416,6 +417,7 @@ sdcard_card_setup(struct sddrive_s *drive, int > > volt, > > > > int prio) > > > > drive->card_type |= SF_MMC; > > > > hcs = (1<<30); > > > > } > > > > +#endif > > > > // Init card > > > > u32 end = timer_calc(SDHCI_POWERUP_TIMEOUT); > > > > for (;;) { > > > > > > > > > > with the patch applied, neither the internal eMMC nor the large-capacity > > > external SD card are detected > > > > Yeah - this disables MMC. Any chance to get the log from this run? > > (Let me know if eMMC is needed to get the log.) > > > > -Kevin > > > > with the patch, USB devices are not available from the boot menu either (it > appears to hang?), and therefore device cannot be booted to get said log
That sounds like a bad compile then - nothing in the patch should have impacted usb. In any case, the patch below tests the same thing and it should work on eMMC also. -Kevin --- a/src/hw/sdcard.c +++ b/src/hw/sdcard.c @@ -404,19 +404,8 @@ sdcard_card_setup(struct sddrive_s *drive, int volt, int prio) ret = sdcard_pio(regs, SC_SEND_IF_COND, param); if (!ret && param[0] == vrange) hcs = (1<<30); - // Verify SD card (instead of MMC or SDIO) - param[0] = 0x00; - ret = sdcard_pio_app(regs, SC_APP_SEND_OP_COND, param); - if (ret) { - // Check for MMC card - param[0] = 0x00; - ret = sdcard_pio(regs, SC_SEND_OP_COND, param); - if (ret) - return ret; - drive->card_type |= SF_MMC; - hcs = (1<<30); - } // Init card + int firstloop = 1; u32 end = timer_calc(SDHCI_POWERUP_TIMEOUT); for (;;) { param[0] = hcs | volt; // high-capacity support and voltage level @@ -424,8 +413,18 @@ sdcard_card_setup(struct sddrive_s *drive, int volt, int prio) ret = sdcard_pio(regs, SC_SEND_OP_COND, param); else ret = sdcard_pio_app(regs, SC_APP_SEND_OP_COND, param); - if (ret) + if (ret) { + if (firstloop) { + // Check for MMC card + firstloop = 0; + drive->card_type |= SF_MMC; + hcs = (1<<30); + end = timer_calc(SDHCI_POWERUP_TIMEOUT); + continue; + } return ret; + } + firstloop = 0; if (param[0] & SR_OCR_NOTBUSY) break; if (timer_check(end)) { _______________________________________________ SeaBIOS mailing list SeaBIOS@seabios.org https://mail.coreboot.org/mailman/listinfo/seabios