Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Mar 2016 20:29:00 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        Ruslan Makhmatkhanov <rm@FreeBSD.org>, FreeBSD Current <freebsd-current@freebsd.org>
Subject:   Re: SD card adapter doesn't working anymore
Message-ID:  <1459132140.1091.122.camel@freebsd.org>
In-Reply-To: <56F6551D.1010308@FreeBSD.org>
References:  <56F5A0A9.8030207@FreeBSD.org> <1458947510.1091.91.camel@freebsd.org> <56F5CCDA.2060808@FreeBSD.org> <1458954555.1091.94.camel@freebsd.org> <56F6551D.1010308@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 2016-03-26 at 12:23 +0300, Ruslan Makhmatkhanov wrote:
> Ian Lepore wrote on 03/26/16 04:09 AM:
> > On Sat, 2016-03-26 at 02:42 +0300, Ruslan Makhmatkhanov wrote:
> > > Ian Lepore wrote on 03/26/16 02:11 AM:
> > > > On Fri, 2016-03-25 at 23:33 +0300, Ruslan Makhmatkhanov wrote:
> > > > > Hello,
> > > > > 
> > > > > I have this in pciconf output:
> > > > > 
> > > > > =============================================================
> > > > > ====
> > > > > ====
> > > > > =
> > > > > none1@pci0:36:0:0:	class=0x088000 card=0x167e103c
> > > > > chip=0x2392197b
> > > > > rev=0x30 hdr=0x00
> > > > >        vendor     = 'JMicron Technology Corp.'
> > > > >        device     = 'SD/MMC Host Controller'
> > > > >        class      = base peripheral
> > > > > 
> > > > > none2@pci0:36:0:3:	class=0x088000 card=0x167e103c
> > > > > chip=0x2393197b
> > > > > rev=0x30 hdr=0x00
> > > > >        vendor     = 'JMicron Technology Corp.'
> > > > >        device     = 'MS Host Controller'
> > > > >        class      = base peripheral
> > > > > =============================================================
> > > > > ====
> > > > > ====
> > > > > =
> > > > > 
> > > > > And my SD-card controller is not working anymore (it worked
> > > > > on
> > > > > -current
> > > > > on the same laptop year or two ago). Do I need to load some
> > > > > kld
> > > > > to
> > > > > make
> > > > > it working, or support for this controllers was dropped
> > > > > altogether
> > > > > for
> > > > > some reason? I have mostly vanilla GENERIC at r296772, but it
> > > > > actually
> > > > > stopped to work much earlier.
> > > > > 
> > > > > Thanks.
> > > > > 
> > > > 
> > > > Do you have a pciconf entry for class=080501 chip=0x2391197b,
> > > > device
> > > > would probably be "SD Host Controller", and if so, is it 
> > > > none@pci o
> > > > r
> > > > sdhci_pci@pci ?  If sdhci_pci attached, there would be dmesg
> > > > output
> > > > for
> > > > it, and I'm curious whether any irq-related error showed up
> > > > when it
> > > > attached.
> > > > 
> > > > The only change I can find that might have some effect is a
> > > > switch
> > > > to
> > > > MSI-based interrupts some time ago.  That was MFC'd to 10
> > > > -stable in
> > > > r271051, and that's very close to range cited in that PR.
> > > > 
> > > > It might be worth trying to set hw.sdhci.enable_msi=0 in
> > > > loader.conf
> > > > and see if it makes a difference.
> > > > 
> > > > -- Ian
> > > 
> > > Sorry, but nothing has changed in pciconf/dmesg with this option
> > > at
> > > boot.
> > > 
> > 
> > Hmm, well so much for logic ("what changed around the time reported
> > in
> > that PR?").  Now for intuition...
> > 
> > Maybe this JMicro device id needs the same quirks as the 2381 ID
> > that's
> > already in the driver.  The attached patch would add that.  If this
> > fixes it, that's good, but it doesn't explain why it worked then
> > stopped working at some point.
> > 
> > -- Ian
> 
> I updated to r297281 with this quirk applied. Sadly, it doesn't
> change 
> anything - controllers still not recognized. I also tried to boot
> this 
> revision with disabled hw.sdhci.enable_msi=0, that I applied earlier.
> 

I finally found some time today to give this stuff a try on my one x86
system that has an sdhci controller in it.  Unfortunately, everything
just works fine.  I tried with a GENERIC kernel that has those devices
compiled in, and I tried taking them out and loading sdhci_pci, mmc,
and mmcsd as modules, and everything just worked both ways.

The only thing I can think of now is to turn up the debugging levels. 
 That's going to generate a lot of spewage, but if you paste/upload the
output somewhere I'll look through it.  So try setting:

  hw.sdhci.debug=3
  hw.mmc.debug=3

in either loader.conf or via sysctl before you kldload the modules.  If
the sdhci output is too trashed with interrupt info, maybe lower it to
2.

-- Ian




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1459132140.1091.122.camel>