From owner-freebsd-mobile@FreeBSD.ORG Sun Aug 23 16:04:36 2009 Return-Path: Delivered-To: freebsd-mobile@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2EFA910656F2 for ; Sun, 23 Aug 2009 16:04:36 +0000 (UTC) (envelope-from ales-76@seznam.cz) Received: from mxm.seznam.cz (mxm.seznam.cz [77.75.76.45]) by mx1.freebsd.org (Postfix) with ESMTP id 5C91C8FC13 for ; Sun, 23 Aug 2009 16:04:34 +0000 (UTC) DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=beta; d=seznam.cz; h=In-Reply-To:Received:Date:Cc:To:From:Subject:Mime-Version:Message-Id:Content-Transfer-Encoding:Content-Type:X-Abuse:X-Seznam-User:X-QM-Mark; b=IBZnxsMBr3pK0iogbKN4BzahhEkTEUF1B7/L+spKAAGOLEok/2Qehfej0E5CPnKCg nWHL+3//nca02vHsMDmWGaXuwI1d0C+Sux4l6vYORpB1c0kfZn3BdKuSBlQtA7Dn5B7 D+QlkhMMducinxLsU+7eJF/tElTLxvqA8sd/djE= In-Reply-To: <4A8AE2CB.6000904@FreeBSD.org> Received: from isanat.pragonet.cz (isanat.pragonet.cz [212.67.66.42]) by email.seznam.cz (Email.Seznam.cz) with HTTP for ales-76@seznam.cz; Sun, 23 Aug 2009 17:03:50 +0200 (CEST) Date: Sun, 23 Aug 2009 18:04:30 +0200 (CEST) To: =?us-ascii?Q?Alexander=20Motin?= From: ales-76@seznam.cz Mime-Version: 1.0 Message-Id: <529.760-10303-5478473-1251043470@seznam.cz> Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-2"; format=flowed X-Abuse: abuse@seznam.cz X-Seznam-User: ales-76@seznam.cz X-QM-Mark: email-qm3<354468805> Cc: freebsd-mobile@freebsd.org Subject: Re: mmc does not work on HP NC6220 X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 23 Aug 2009 16:04:36 -0000 Hello, I have tried the hack and it works. By changing the one register value = in pci config space of the FlashMedia one can reroute the card slot to = the SD controller. The config of the controller after the manipulation = looks like this: 02:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrated F= lashMedia Controller =09Subsystem: Hewlett-Packard Company Device 0944 =09Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- = Stepping- SERR- FastB2B- DisINTx- =09Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=3Dmedium >TAbort- <= TAbort- SERR- mem 0xd0104000-= 0xd01040ff,0xd0105000-0xd01050ff,0xd0106000-0xd01060ff irq 22 at device= 6.4 on pci2 Aug 23 16:35:25 malka kernel: sdhci0: 3 slot(s) allocated Aug 23 16:35:25 malka kernel: sdhci0: [ITHREAD] Aug 23 16:35:51 malka kernel: sdhci0-slot2: Card inserted Aug 23 16:35:51 malka kernel: mmc0: on sdhci0 Aug 23 16:35:51 malka kernel: mmc0: Probing bus Aug 23 16:35:51 malka kernel: mmc0: SD 2.0 interface conditions: OK Aug 23 16:35:51 malka kernel: mmc0: SD probe: OK (OCR: 0x00ff8000) Aug 23 16:35:51 malka kernel: mmc0: Current OCR: 0x00ff8000 Aug 23 16:35:51 malka kernel: mmc0: Probing cards Aug 23 16:35:51 malka kernel: mmc0: New card detected (CID 02544d534430= 324732a8fbcd99007a00) Aug 23 16:35:51 malka kernel: mmc0: Card at relative address 63806 adde= d: Aug 23 16:35:51 malka kernel: mmc0: card: SD (0x2/0x544d/"SD02G" rev 3= .2 m/d 10.2007 s/n 00000000) Aug 23 16:35:51 malka kernel: mmc0: bus: 4bit, 50MHz, high speed timin= g Aug 23 16:35:51 malka kernel: mmc0: memory: 3932160 blocks, erase sect= or 8192 blocks Aug 23 16:35:51 malka kernel: mmc0: setting transfer rate to 24.000MHz Aug 23 16:35:51 malka kernel: mmcsd0: 1920MB at mmc0 2= 4MHz/4bit Aug 23 16:35:51 malka kernel: mmc0: setting bus width to 4 bits And after removal: Aug 23 16:38:56 malka kernel: sdhci0-slot2: Card removed Aug 23 16:38:56 malka kernel: mmc0: detached Alexander, do you think you can incorporate this hack into the sdhci dr= iver? At least as an option, like hw.sdhci.ti_hack or something. Well, = I understand that driver poking in config space of a device that does n= ot belong to it is not very elegant, but it should not do any harm, at = least until there is a working FlashMedia driver. I also understand tha= t if it works for me does not necessarily mean it will work for everybo= dy, but as an option and with some safety checks it would be worthwhile= . Ales Blaha > ------------ P=F9vodn=ED zpr=E1va ------------ > Od: Alexander Motin > P=F8edm=ECt: Re: mmc does not work on HP NC6220 > Datum: 18.8.2009 20:21:48 > ---------------------------------------- > ales-76@seznam.cz wrote: > > The mmc does not seem to work on my HP NC6220 notebook. I have the = mmc, mmcsd > and sdhci compiled as modules, all the modules get loaded properly. T= he system > is FreeBSD 7.2, i386, specifically configured and compiled for this m= achine. If > i set hw.mmc.debug=3D1 and hw.sdhci.debug=3D1 I see following in dmes= g: > > > > Aug 17 22:00:36 malka kernel: sdhci0: mem > 0xd0104000-0xd01040ff,0xd0105000-0xd01050ff,0xd0106000-0xd01060ff irq= 22 at > device 6.4 on pci2 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: 16MHz 4bits 3.3V DMA > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: =3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D REGISTER DUMP > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Sys addr: 0x00000000 | = Version: > 0x00008400 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Blk size: 0x00000000 | = Blk cnt: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Argument: 0x00000000 | = Trn mode: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Present: 0x00020000 | = Host ctl: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Power: 0x00000000 | = Blk gap: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Wake-up: 0x00000000 | = Clock: > 0x00000002 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Timeout: 0x00000000 | = Int stat: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Int enab: 0x01ff00fb | = Sig enab: > 0x01ff00fb > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: AC12 err: 0x00000000 | = Slot int: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: Caps: 0x01821090 | = Max curr: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot0: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: 16MHz 4bits 3.3V DMA > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: =3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D REGISTER DUMP > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Sys addr: 0x00000000 | = Version: > 0x00008400 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Blk size: 0x00000000 | = Blk cnt: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Argument: 0x00000000 | = Trn mode: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Present: 0x00020000 | = Host ctl: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Power: 0x00000000 | = Blk gap: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Wake-up: 0x00000000 | = Clock: > 0x00000002 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Timeout: 0x00000000 | = Int stat: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Int enab: 0x01ff00fb | = Sig enab: > 0x01ff00fb > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: AC12 err: 0x00000000 | = Slot int: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: Caps: 0x01821090 | = Max curr: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot1: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: 24MHz 4bits 3.3V DMA > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: =3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D REGISTER DUMP > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Sys addr: 0x00000000 | = Version: > 0x00008400 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Blk size: 0x00000000 | = Blk cnt: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Argument: 0x00000000 | = Trn mode: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Present: 0x000a0000 | = Host ctl: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Power: 0x00000000 | = Blk gap: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Wake-up: 0x00000000 | = Clock: > 0x00000002 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Timeout: 0x00000000 | = Int stat: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Int enab: 0x01ff00fb | = Sig enab: > 0x01ff00fb > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: AC12 err: 0x00000000 | = Slot int: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: Caps: 0x01821898 | = Max curr: > 0x00000000 > > Aug 17 22:00:36 malka kernel: sdhci0-slot2: > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > Aug 17 22:00:36 malka kernel: sdhci0: 3 slot(s) allocated > > Aug 17 22:00:36 malka kernel: sdhci0: [ITHREAD] > > > > That is form sdhci, mmc does not say anything at all. If I put a SD= card > inside the slot nothing happens - no message in dmesg, no device crea= ted in > /dev. Seems that the mmc does not recognize the hw. > > > > Lspci output is there: > > > > 02:06.3 Mass storage controller: Texas Instruments PCIxx21 Integrat= ed > FlashMedia Controller > > =09Subsystem: Hewlett-Packard Company Device 0944 > > =09Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParE= rr- Stepping- > SERR- FastB2B- DisINTx- > > =09Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=3Dmedium >TAbor= t- SERR- > =09Latency: 64 (1750ns min, 1000ns max), Cache Line Size: 64 bytes > > =09Interrupt: pin B routed to IRQ 19 > > =09Region 0: Memory at d0102000 (32-bit, non-prefetchable) > > =09Capabilities: [44] Power Management version 2 > > =09=09Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=3D0mA PME(D0+,D1+,D2+,= D3hot+,D3cold-) > > =09=09Status: D3 PME-Enable- DSel=3D0 DScale=3D0 PME- > > > > 02:06.4 SD Host controller: Texas Instruments > PCI6411/6421/6611/6621/7411/7421/7611/7621 Secure Digital Controller > > =09Subsystem: Hewlett-Packard Company Device 0944 > > =09Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParE= rr- Stepping- > SERR- FastB2B- DisINTx+ > > =09Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=3Dmedium >TAbor= t- SERR- > =09Latency: 64 (1750ns min, 1000ns max), Cache Line Size: 64 bytes > > =09Interrupt: pin C routed to IRQ 22 > > =09Region 0: Memory at d0104000 (32-bit, non-prefetchable) > > =09Region 1: Memory at d0105000 (32-bit, non-prefetchable) > > =09Region 2: Memory at d0106000 (32-bit, non-prefetchable) > > =09Capabilities: [80] Power Management version 2 > > =09=09Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=3D0mA PME(D0+,D1+,D2+,= D3hot+,D3cold-) > > =09=09Status: D0 PME-Enable- DSel=3D0 DScale=3D0 PME- > > > > According to the entries in the driver the TI chipset is supported.= I know the > hardware is not broken, because it worked flawlessly under Linux. I h= ave tried > to play with hw.pci.do_power_resume and hw.pci_do_power_nodriver, but= to no > avail. Have I forgot something? Are there any dependencies that are n= ot forced > during compile time? I include full dmesg, lspci and kldstat. > > TI chips have two incompatible controllers, supporting same card type= s. > Lack of activity on card insertion may mean that BIOS routes SD slot = to > the FlashMedia, but not to the SD Controller. Linus either works via = > FlashMedia Controller, as driver was made there, or it somehow rerout= es > slot to the SD controller. I have no hardware to work on first part a= nd > both hardware and specifications for the second. You may try Google t= o > find description of hack required for second solution, but it doesn't= > works in some unknown cases. > > -- > Alexander Motin > _______________________________________________ > freebsd-mobile@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-mobile > To unsubscribe, send any mail to "freebsd-mobile-unsubscribe@freebsd.= org" > > >