wandboard / imx6 / exynos4 / cortex-a9 "wrong-endian bug" fixed
Bernd Walter
ticso at cicely7.cicely.de
Wed Feb 12 22:22:48 UTC 2014
On Tue, Feb 11, 2014 at 09:33:29PM -0700, Ian Lepore wrote:
> On Tue, 2014-02-11 at 20:54 -0700, Ian Lepore wrote:
> > On Tue, 2014-02-11 at 14:44 +0100, Bernd Walter wrote:
> > > On Tue, Feb 11, 2014 at 02:07:33AM +0100, Bernd Walter wrote:
> > > > I can't seen to get the second microSD-slot running.
> > > > The controllers get attached, but mmc only to the onboard slot.
> > > > The WiFi is SDIO, which I didn't compile into the kernel and I noticed
> > > > there is a GPIO used to enable the chip.
> > >
> > > Strange enough the 4th controller gets an mmc1 device attached:
> > > sdhci_imx3: <Freescale uSDHC controller> mem 0x219c000-0x219ffff irq 57 on simplebus2
> > > sdhci_imx3-slot0: 200MHz HS 4bits 3.3V 3.0V PIO
> > > sdhci_imx3-slot0: ============== REGISTER DUMP ==============
> > > sdhci_imx3-slot0: Sys addr: 0x00000000 | Version: 0x00000002
> > > sdhci_imx3-slot0: Blk size: 0x00000000 | Blk cnt: 0x00000001
> > > sdhci_imx3-slot0: Argument: 0x00000000 | Trn mode: 0x00000000
> > > sdhci_imx3-slot0: Present: 0xf78d8088 | Host ctl: 0x00000000
> > > sdhci_imx3-slot0: Power: 0x0000000d | Blk gap: 0x00000080
> > > sdhci_imx3-slot0: Wake-up: 0x00000008 | Clock: 0x00000002
> > > sdhci_imx3-slot0: Timeout: 0x00000080 | Int stat: 0x00000000
> > > sdhci_imx3-slot0: Int enab: 0x017f00fb | Sig enab: 0x017f00fb
> > > sdhci_imx3-slot0: AC12 err: 0x00000000 | Slot int: 0x00000000
> > > sdhci_imx3-slot0: Caps: 0x0377c800 | Max curr: 0x80000000
> > > sdhci_imx3-slot0: ===========================================
> > > mmc1: <MMC/SD bus> on sdhci_imx3
> > >
> > > It hangs on probing, but it is my understanding that this controller
> > > isn't wired at all on wandboard.
> > > But why isn't there an attachment with the other two controllers.
> > >
> >
> > I can't get the uSD slot on the carrier board to work either, but my
> > symptoms are different.
> >
> > Aha! I just noticed that Freescale moved some bits around in the
> > Present State register and defined some that are undefined in the spec
> > and so on. I completely overlooked that when I was writing the
> > driver.
> >
> > I need to write some proper translation routines, which ain't happening
> > tonight. :) But, as proof of concept, the attached little crude hack
> > makes it successfully probe both of my sd slots now.
> >
> > -- Ian
> >
> > differences between files attachment (imx_sdhci_detect_hack.diff)
> > Index: sys/arm/freescale/imx/imx_sdhci.c
> > ===================================================================
> > --- sys/arm/freescale/imx/imx_sdhci.c (revision 261700)
> > +++ sys/arm/freescale/imx/imx_sdhci.c (working copy)
> > @@ -298,6 +298,9 @@ imx_sdhci_read_4(device_t dev, struct sdhci_slot *
> > val32 |= sc->r1bfix_intmask;
> > }
> >
> > + if (off == SDHCI_PRESENT_STATE && device_get_unit(dev) != 1)
> > + val32 |= SDHCI_CARD_PRESENT;
> > +
> > return val32;
> > }
> >
>
> Just realized... that check for unit != 1 is only needed if you have the
> wifi device enabled in the dts. If only the sd slots are enabled, leave
> that out.
With that both cards are probed now.
--
B.Walter <bernd at bwct.de> http://www.bwct.de
Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
More information about the freebsd-arm
mailing list