From owner-freebsd-current@FreeBSD.ORG Fri Nov 9 01:36:46 2007 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 45BAA16A421; Fri, 9 Nov 2007 01:36:46 +0000 (UTC) (envelope-from Benjamin.Close@clearchain.com) Received: from ipmail03.adl2.internode.on.net (ipmail03.adl2.internode.on.net [203.16.214.135]) by mx1.freebsd.org (Postfix) with ESMTP id 41B6E13C48A; Fri, 9 Nov 2007 01:36:40 +0000 (UTC) (envelope-from Benjamin.Close@clearchain.com) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq4HAJtHM0d5LT4v/2dsb2JhbACBWw X-IronPort-AV: E=Sophos;i="4.21,392,1188743400"; d="scan'208";a="183945562" Received: from ppp121-45-62-47.lns11.adl2.internode.on.net (HELO mail.clearchain.com) ([121.45.62.47]) by ipmail03.adl2.internode.on.net with ESMTP; 09 Nov 2007 12:05:50 +1030 Received: from wolf.clearchain.com (wcl.ml.unisa.edu.au [130.220.166.5]) (authenticated bits=0) by mail.clearchain.com (8.13.8/8.13.8) with ESMTP id lA91Ze4K079303 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 9 Nov 2007 12:05:46 +1030 (CST) (envelope-from Benjamin.Close@clearchain.com) Message-ID: <4733B96C.2010307@clearchain.com> Date: Fri, 09 Nov 2007 12:05:40 +1030 From: Benjamin Close User-Agent: Thunderbird 2.0.0.0 (X11/20070615) MIME-Version: 1.0 To: Rene Ladan References: <200711071056.13466.root@solink.ru> <47322A66.9050505@gmail.com> <1194474110.2904.23.camel@RabbitsDen> <47324808.2090900@gmail.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on pegasus.clearchain.com X-Virus-Status: Clean X-Greylist: Sender succeeded SMTP AUTH authentication, not delayed by milter-greylist-2.0.2 (mail.clearchain.com [192.168.154.1]); Fri, 09 Nov 2007 12:05:48 +1030 (CST) Cc: Bachilo Dmitry , mlaier@freebsd.org, current@freebsd.org, Alexandre Sunny Kovalenko , mobile@freebsd.org Subject: Re: PCI Cardreader X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Nov 2007 01:36:46 -0000 Rene Ladan wrote: > 2007/11/8, Rene Ladan : > >> Alexandre "Sunny" Kovalenko schreef: >> >>> On Wed, 2007-11-07 at 22:13 +0100, Rene Ladan wrote: >>> >>>> Bachilo Dmitry schreef: >>>> >>>>> Hello all. >>>>> I always used USB cardreaders and had no problem with it, but now in my >>>>> notebook I have a cardreader, that appears to be onboard PCI device. And so >>>>> FreeBSD sees it as this: >>>>> pci6: at device 4.1 (no driver attached) >>>>> pci6: at device 4.2 (no driver attached) >>>>> pci6: at device 4.3 (no driver attached) >>>>> pci6: at device 4.4 (no driver attached) >>>>> >>>>> >>>>> That's even more odd because three are recognized as flash and one is not. >>>>> pciconf -lv shows this: >>>>> >>>>> none13@pci6:4:1: class=0x050100 card=0x009f1025 chip=0x05301524 >>>>> rev=0x01 hdr=0x00 >>>>> vendor = 'ENE Technology Inc' >>>>> device = 'PCI Memory Stick Card Reader Controller' >>>>> class = memory >>>>> subclass = flash >>>>> >>>>> Well, in 7.0-CURRENT it showed all four devices and now in BETA-2 only this >>>>> one. >>>>> >>>>> >>>> On my 8.0-CURRENT box (20071105) it shows all four devices: >>>> >>>> cbb0@pci0:4:1:0: class=0x060700 card=0x14371043 chip=0x04761180 rev=0xb3 hdr=0x02 >>>> vendor = 'Ricoh Company, Ltd.' >>>> device = 'unknown Ricoh R/RL/5C476(II)' >>>> class = bridge >>>> subclass = PCI-CardBus >>>> fwohci0@pci0:4:1:1: class=0x0c0010 card=0x14371043 chip=0x05521180 rev=0x08 hdr=0x00 >>>> vendor = 'Ricoh Company, Ltd.' >>>> device = 'RL5c552 IEEE-1394 Controller' >>>> class = serial bus >>>> subclass = FireWire >>>> none0@pci0:4:1:2: class=0x080500 card=0x14371043 chip=0x08221180 rev=0x17 hdr=0x00 >>>> vendor = 'Ricoh Company, Ltd.' >>>> device = 'R5C832, R5C843 SDA Standard Compliant SD Host Controller' >>>> class = base peripheral >>>> none1@pci0:4:1:3: class=0x088000 card=0x14371043 chip=0x05921180 rev=0x08 hdr=0x00 >>>> vendor = 'Ricoh Company, Ltd.' >>>> device = '13871043 Ricoh Memory Stick Host Controller' >>>> class = base peripheral >>>> >>>> >>>>> Is there any way I can make them work? >>>>> >>>>> >>>> You can add these lines to your kernel configuration: >>>> >>>> device mmc >>>> device mmcsd >>>> >>>> But don't expect any magic. mmc(4) and mmcsd(4) tell that nothing currently works, >>>> which seems to be true on my Asus A6JE (using a Kingston micro-SD card with adapter). >>>> >>>> imp@ is the last person who touched the driver which lives in /usr/src/sys/dev/mmc/ >>>> >>>> >>> Thing below is on my list to try out when I get enough breathing room >>> (or when I would have a dire need to read SD cards on my ThinkPad >>> X60 ;). Did you, by any chance, try it? Any experiences to share? >>> >>> http://www.freebsd.org/cgi/getmsg.cgi?fetch=17399+21119 >>> +/usr/local/www/db/text/2007/freebsd-mobile/20070916.freebsd-mobile >>> >>> >> Not yet, I didn't see the message until now since I'm not (yet) on the mobile list. >> A quick try showed that it does not compile on my box. I'll investigate why. >> The author did not leave an email address in the files. >> >> > The short story is bus_setup_intr() gained some parameters, I'll > figure out which. According to a blog at bsdimp.blogspot.com, Ricoh > based readers should work with this driver :) The attached patch gets it compiling but I think there might be some locking issues still as I got an immediate panic at module load. Not sure who put up the tar.gz but I know Max has done some work porting it from OpenBSD in p4: http://perforce.freebsd.org/changeList.cgi?CMD=changes&FSPC=//depot/user/mlaier/sdmmc/sys/... diff -ur sdmmc-20070627/dev/sdmmc/sdshc.c sdmmc-20070627-devel/dev/sdmmc/sdshc.c --- sdmmc-20070627/dev/sdmmc/sdshc.c 2007-06-25 19:55:52.000000000 +0930 +++ sdmmc-20070627-devel/dev/sdmmc/sdshc.c 2007-11-09 11:45:00.779789122 +1030 @@ -42,6 +42,8 @@ #include #include #include +#include +#include #include #include @@ -342,7 +344,7 @@ * Hook our interrupt after all initialization is complete. */ LOG(0x10, (dev, "Setup Intr\n")); - error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET|INTR_MPSAFE , + error = bus_setup_intr(dev, sc->irq, INTR_TYPE_NET|INTR_MPSAFE , NULL, sdshc_intr, sc, &sc->ih); if (error != 0) { MSG((dev, "could not set up interrupt\n")); diff -ur sdmmc-20070627/dev/sdmmc/sdshcbus.c sdmmc-20070627-devel/dev/sdmmc/sdshcbus.c --- sdmmc-20070627/dev/sdmmc/sdshcbus.c 2007-06-20 03:12:28.000000000 +0930 +++ sdmmc-20070627-devel/dev/sdmmc/sdshcbus.c 2007-11-09 11:49:18.706315189 +1030 @@ -41,6 +41,8 @@ #include #include #include +#include +#include #include "sdbus_if.h"