Hello, All!
Can I handle QDR somehow for SD Bus?
Eugene.
Hello, All!
Can I handle QDR somehow for SD Bus?
Eugene.
Yes, it’s possible, just it is possible to handle QDR for any bus
driver. What do you really want to do with the QDR?
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Eugene Lomovsky
Sent: Tuesday, October 24, 2006 7:33 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] Is it possible to filter SD Bus?
Hello, All!
Can I handle QDR somehow for SD Bus?
Eugene.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Hi, Doron!
DH> Yes, it’s possible, just it is possible to handle QDR for any bus
DH> driver. What do you really want to do with the QDR?
I want to see devices (query some attributes) before they go to the PnP Manager. Sometimes
I need to change DEVICE_RELATIONS list.
I do it for USB, PCMCIA, 1394 without problems…
My filter attaches to SD host controller but when I plug in or plug off SD card there
aren’t QDR requests.
SD host controller properties:
Driver name: \Driver\sdbus
PDO Name: \Device\NTPNP_PCI0017
Device Description: SDA Standard Compliant SD Host Controller
Hardware ID: PCI\VEN_104C&DEV_8034&SUBSYS_0934103C&REV_00
Compat IDs: PCI\VEN_104C&DEV_8034&REV_00
Class Name: SDHost
Class Guid: {A0A588A4-C46F-4B37-B7EA-C82FE89870C6}
Manufacturer: SDA Standard Compliant SD Host Controller Vendor
Enumerator Name: PCI
Property Address: 00060004
Bus Number: 0x00000002
My filter attaches to wrong driver?
There is tifm21 (Texas Instruments PCIxx21 Integrated FlashMedia Controller) driver in the
system. Do I need care about it?
Eugene.
Do you see PDOs being enumerated by this driver? Are there other
drivers in the stack (!devstack ) that could be enumerating
the PDOs above your driver?
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Eugene Lomovsky
Sent: Wednesday, October 25, 2006 1:55 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Is it possible to filter SD Bus?
Hi, Doron!
DH> Yes, it’s possible, just it is possible to handle QDR for any bus
DH> driver. What do you really want to do with the QDR?
I want to see devices (query some attributes) before they go to the PnP
Manager. Sometimes
I need to change DEVICE_RELATIONS list.
I do it for USB, PCMCIA, 1394 without problems…
My filter attaches to SD host controller but when I plug in or plug off
SD card there
aren’t QDR requests.
SD host controller properties:
Driver name: \Driver\sdbus
PDO Name: \Device\NTPNP_PCI0017
Device Description: SDA Standard Compliant SD Host Controller
Hardware ID: PCI\VEN_104C&DEV_8034&SUBSYS_0934103C&REV_00
Compat IDs: PCI\VEN_104C&DEV_8034&REV_00
Class Name: SDHost
Class Guid: {A0A588A4-C46F-4B37-B7EA-C82FE89870C6}
Manufacturer: SDA Standard Compliant SD Host Controller Vendor
Enumerator Name: PCI
Property Address: 00060004
Bus Number: 0x00000002
My filter attaches to wrong driver?
There is tifm21 (Texas Instruments PCIxx21 Integrated FlashMedia
Controller) driver in the
system. Do I need care about it?
Eugene.
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Hi, Doron!
DH> Do you see PDOs being enumerated by this driver? Are there other
DH> drivers in the stack (!devstack ) that could be
DH> enumerating the PDOs above your driver?
No. I think this driver for SDIO devices only. Am I right? I can’t verify it now because I
haven’t such device…
But I’ve paid attention on tifm21 driver and realized that it belongs to Class MTD
{4D36E970-E325-11CE-BFC1-08002BE10318}. I’ve changed my filter, now it attaches to class
MTD and I see QDR during plug in/off!
But my elation was not so long. I need to know what that device is. For USB devices I
query PDO for device descriptor, for PCMCIA devices I send
IOCTL_GET_TUPLE_DATA or read PCI info, for 1394 devices I use PDO DeviceExtension…
I have no idea how to get CID for SD memory cards and CISTPL_FUNCID for SDIO devices. MSDN
says I can’t use SdBusSubmitRequest to send command requests until IRP_MN_START…
Any tips will be helpful.
thanks,
Eugene.
I asked the owner of SDBUS and he said “there is no way for a filter
driver or a function driver to send a command (say, to get CID) before
start.”
D
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Eugene Lomovsky
Sent: Wednesday, October 25, 2006 9:19 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Is it possible to filter SD Bus?
Hi, Doron!
DH> Do you see PDOs being enumerated by this driver? Are there other
DH> drivers in the stack (!devstack ) that could be
DH> enumerating the PDOs above your driver?
No. I think this driver for SDIO devices only. Am I right? I can’t
verify it now because I
haven’t such device…
But I’ve paid attention on tifm21 driver and realized that it belongs to
Class MTD
{4D36E970-E325-11CE-BFC1-08002BE10318}. I’ve changed my filter, now it
attaches to class
MTD and I see QDR during plug in/off!
But my elation was not so long. I need to know what that device is. For
USB devices I
query PDO for device descriptor, for PCMCIA devices I send
IOCTL_GET_TUPLE_DATA or read PCI info, for 1394 devices I use PDO
DeviceExtension…
I have no idea how to get CID for SD memory cards and CISTPL_FUNCID for
SDIO devices. MSDN
says I can’t use SdBusSubmitRequest to send command requests until
IRP_MN_START…
Any tips will be helpful.
thanks,
Eugene.
—
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Hi, Doron!
You wrote on Wed, 25 Oct 2006 10:17:12 -0700:
DH> I asked the owner of SDBUS and he said “there is no way for a filter
DH> driver or a function driver to send a command (say, to get CID)
DH> before start.”
It’s very very sad.
I deal with different PnP buses and every time I have to contrive special way to
communicate with devices. I mean not bus specific requests rather “point of departure”.
Why don’t bus driver stack architector use DeviceExtension (except 1394)? Host controller
always gets some useful information from devices, so why couldn’t driver share it? Why
couldn’t MS require this for bus drivers? It eliminates unnecessary requests by function
drivers, filters, PnP Manager etc…
Eugene.
Because the 1394 design to expose its device extension was a very wrong
choice. It is now locked into that structure layout. Furthermore, it
can not add any new locking/synchronization primitives to that data.
Basically, exposing your PDO’s device extension layout for the entire
stack to use is not a deep enough abstraction for long term development.
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Eugene Lomovsky
Sent: Thursday, October 26, 2006 1:35 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Is it possible to filter SD Bus?
Hi, Doron!
You wrote on Wed, 25 Oct 2006 10:17:12 -0700:
DH> I asked the owner of SDBUS and he said “there is no way for a
filter
DH> driver or a function driver to send a command (say, to get CID)
DH> before start.”
It’s very very sad.
I deal with different PnP buses and every time I have to contrive
special way to
communicate with devices. I mean not bus specific requests rather “point
of departure”.
Why don’t bus driver stack architector use DeviceExtension (except
1394)? Host controller
always gets some useful information from devices, so why couldn’t driver
share it? Why
couldn’t MS require this for bus drivers? It eliminates unnecessary
requests by function
drivers, filters, PnP Manager etc…
Eugene.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Hi, Doron!
DH> Because the 1394 design to expose its device extension was a very
DH> wrong choice. It is now locked into that structure layout.
DH> Furthermore, it can not add any new locking/synchronization
DH> primitives to that data.
DH> Basically, exposing your PDO’s device extension layout for the
DH> entire stack to use is not a deep enough abstraction for long term
DH> development.
Ok. So where is the best early place to get CID for SD filter driver?
PS: I have tryed to use SdBusOpenInterface in IRP_MN_START_DEVICE after passing IRP down.
I always get 0xc00000bb status. I haven’t found cause of error yet - without symbols it is
hard to understand tifm21 logic (I hope it supports sdbus.lib)…
thanks,
Eugene.
Is tifm21 a driver or a spec or a chipset? If it is a driver, who knows
if it supports the sdbus interface.
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Eugene Lomovsky
Sent: Friday, October 27, 2006 6:27 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Is it possible to filter SD Bus?
Hi, Doron!
DH> Because the 1394 design to expose its device extension was a very
DH> wrong choice. It is now locked into that structure layout.
DH> Furthermore, it can not add any new locking/synchronization
DH> primitives to that data.
DH> Basically, exposing your PDO’s device extension layout for the
DH> entire stack to use is not a deep enough abstraction for long term
DH> developmen
Ok. So where is the best early place to get CID for SD filter driver?
PS: I have tryed to use SdBusOpenInterface in IRP_MN_START_DEVICE after
passing IRP down.
I always get 0xc00000bb status. I haven’t found cause of error yet -
without symbols it is
hard to understand tifm21 logic (I hope it supports sdbus.lib)…
thanks,
Eugene.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer
Hi, Doron!
DH> Is tifm21 a driver or a spec or a chipset? If it is a driver, who
DH> knows if it supports the sdbus interface.
tifm21 is a driver.
MSDN:
"All device drivers in the SD stack, whether native or vendor-supplied, must communicate
with the SD bus driver by calling routines in the static SD bus library (sdbus.lib). SD
drivers must link to this library when they compile.
SD device drivers cannot directly access the host-controller register set, nor can they
embed pass-through commands for the host controller in I/O request packets (IRPs). SD
device drivers issue commands to the host controller by calling the SD bus library
routines, and then the library generates the appropriate SD commands for the host
controller."
I have a test notebook Compaq nc8230. Under Device Manager I see:
PCMCIA adapters
Texas Instruments PCIxx21 Cardbus Controller (pcmcia.sys)
PCMCIA and Flash memory devices
Texas Instruments PCIxx21 Integrated FlashMedia Controller (tifm21.sys)
Secure Digital host controllers
SDA Standard Compliant SD Host Controller (sdbus.sys)
As I’ve already told if I plug in SD memory card then corresponded device object is
created by tifm21.sys and not by sdbus.sys. I’ve tryed to call SD card routines for PDO of
tifm21.sys with no success. I am at my wit’s end. Is there a special way for SD memory
cards?
MSDN:
“The operating system provides support for SD host controllers that connect directly to
the PCI bus.”
Which host controllers?
PS: I’ve just found TI document (www.webcon.ca/~imorgan/tifm21/pci7421.pdf). It seems
memory cards and SDIO devices are managed in different ways…
Eugene.
Sdbus.lib is for the function drivers which load directly on an sd bus
enumerated PDO, it is not appropriate for deeper levels in the stack.
The same is true for URBs. A URB is the appropriate mechanism to talk
to a usb enumerated PDO (let’s say usb mass storage, so usbstor’s FDO
sends URBs), but not deeper levels in the stack (such as usbstor’s PDO
which receives disk based IRPs).
In your case, I would assume the PDO enumerated by tifm21 would also be
receiving disk based I/O and not protocol specific I/Os like those
generated by sdbus.lib
d
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Eugene Lomovsky
Sent: Monday, October 30, 2006 6:02 AM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] Is it possible to filter SD Bus?
Hi, Doron!
DH> Is tifm21 a driver or a spec or a chipset? If it is a driver, who
DH> knows if it supports the sdbus interface.
tifm21 is a driver.
MSDN:
"All device drivers in the SD stack, whether native or vendor-supplied,
must communicate
with the SD bus driver by calling routines in the static SD bus library
(sdbus.lib). SD
drivers must link to this library when they compile.
SD device drivers cannot directly access the host-controller register
set, nor can they
embed pass-through commands for the host controller in I/O request
packets (IRPs). SD
device drivers issue commands to the host controller by calling the SD
bus library
routines, and then the library generates the appropriate SD commands for
the host
controller."
I have a test notebook Compaq nc8230. Under Device Manager I see:
PCMCIA adapters
Texas Instruments PCIxx21 Cardbus Controller (pcmcia.sys)
PCMCIA and Flash memory devices
Texas Instruments PCIxx21 Integrated FlashMedia Controller (tifm21.sys)
Secure Digital host controllers
SDA Standard Compliant SD Host Controller (sdbus.sys)
As I’ve already told if I plug in SD memory card then corresponded
device object is
created by tifm21.sys and not by sdbus.sys. I’ve tryed to call SD card
routines for PDO of
tifm21.sys with no success. I am at my wit’s end. Is there a special way
for SD memory
cards?
MSDN:
“The operating system provides support for SD host controllers that
connect directly to
the PCI bus.”
Which host controllers?
PS: I’ve just found TI document
(www.webcon.ca/~imorgan/tifm21/pci7421.pdf). It seems
memory cards and SDIO devices are managed in different ways…
Eugene.
Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
To unsubscribe, visit the List Server section of OSR Online at
http://www.osronline.com/page.cfm?name=ListServer