qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v1 1/2] sd: sdhci: Delete over-zealous power che


From: Andrew Baumann
Subject: Re: [Qemu-devel] [PATCH v1 1/2] sd: sdhci: Delete over-zealous power check
Date: Thu, 10 Dec 2015 20:59:57 +0000

Raspberry Pi needs this change as well. I don't mind if it's as implemented 
below, or conditional under a flag property.

Tested-By: Andrew Baumann <address@hidden>

Thanks,
Andrew

> From: Peter Crosthwaite [mailto:address@hidden
> Sent: Thursday, 10 December 2015 12:55
> 
> CCing Andrew who ran into a similar issue for rPI.
> 
> On Sat, Nov 28, 2015 at 12:50 PM, Peter Crosthwaite
> <address@hidden> wrote:
> > This check was conditionalising SD card operation on the card being
> > powered by the SDHCI host controller. It is however possible
> > (particularly in embedded systems) for the power control of the SD card
> > to be managed outside of SDHCI. This can be as trivial as hard-wiring
> > the SD slot VCC to a constant power-rail.
> >
> > This means the guest SDHCI can validly opt-out of the SDHCI power
> > control feature while still using the card. So delete this check to
> > allow operation of the card with SDHCI power control.
> >
> > This is needed for at least Xilinx Zynq and also makes Freescale i.MX25
> > work for me. The digilent Zybo board has a public schematic
> > which shows SD VCC hardwiring:
> >
> > http://digilentinc.com/Data/Products/ZYBO/ZYBO_sch_VB.3.pdf
> > bottom of page 3.
> >
> > Signed-off-by: Peter Crosthwaite <address@hidden>
> > ---
> >
> >  hw/sd/sdhci.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/hw/sd/sdhci.c b/hw/sd/sdhci.c
> > index d70d1a6..ed536ee 100644
> > --- a/hw/sd/sdhci.c
> > +++ b/hw/sd/sdhci.c
> > @@ -831,7 +831,7 @@ static void sdhci_data_transfer(void *opaque)
> >
> >  static bool sdhci_can_issue_command(SDHCIState *s)
> >  {
> > -    if (!SDHC_CLOCK_IS_ON(s->clkcon) || !(s->pwrcon &
> SDHC_POWER_ON) ||
> > +    if (!SDHC_CLOCK_IS_ON(s->clkcon) ||
> >          (((s->prnsts & SDHC_DATA_INHIBIT) || s->stopped_state) &&
> >          ((s->cmdreg & SDHC_CMD_DATA_PRESENT) ||
> >          ((s->cmdreg & SDHC_CMD_RESPONSE) ==
> SDHC_CMD_RSP_WITH_BUSY &&
> > --
> > 1.9.1
> >

reply via email to

[Prev in Thread] Current Thread [Next in Thread]