Is there any use of DMA in USB devices? All DMA samples I found are about PCI.
Thank you.
Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze.
Is there any use of DMA in USB devices? All DMA samples I found are about PCI.
Thank you.
Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze.
Yes, but your USB “function” / client driver does not deal directly with the
DMA controller. Instead, the USB stack below you does. You build URBs and
submit them to the USB stack. The USB stack performs the requested actions,
such as bulk IN / OUT requests, which use DMA.
Similarly, your driver never deals with interrupts, register access, etc.
The OHCI / UHCI / EHCI driver does this for you. Your driver represents the
device *connected* to the USB, not the USB itself. And at the USB physical
layer, there is no such thing as DMA, only packets and transfers.
– arlie
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alex Farber
Sent: Tuesday, February 28, 2006 4:05 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] USB and DMA
Is there any use of DMA in USB devices? All DMA samples I found are about
PCI.
Thank you.
Yahoo! Mail
Bring photos to life! New PhotoMail
http:l.yahoo.com> makes sharing a breeze. — 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</http:>
Thank you. Does this mean that as USB driver developer, I don’t need to think about DMA? But this is an issue for hardware device developer?
OSRUSBFX2 sample driver works with the following USB interface: 3 endpoints (Interrupt, IN; BULK IN, BULK OUT), which are handled by 3 WDFUSBPIPE objects; and vendor commands. Does this sample basically represent the stuff all USB drivers are dealing with?
Arlie Davis wrote:
Yes, but your USB “function” / client driver does not deal directly with the
DMA controller. Instead, the USB stack below you does. You build URBs and
submit them to the USB stack. The USB stack performs the requested actions,
such as bulk IN / OUT requests, which use DMA.
Similarly, your driver never deals with interrupts, register access, etc.
The OHCI / UHCI / EHCI driver does this for you. Your driver represents the
device connected to the USB, not the USB itself. And at the USB physical
layer, there is no such thing as DMA, only packets and transfers.
– arlie
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alex Farber
Sent: Tuesday, February 28, 2006 4:05 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] USB and DMA
Is there any use of DMA in USB devices? All DMA samples I found are about
PCI.
Thank you.
Yahoo! Mail
Bring photos to life! New PhotoMail
l.yahoo.com> makes sharing a breeze. — 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
—
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
---------------------------------
Yahoo! Mail
Bring photos to life! New PhotoMail makes sharing a breeze.
That’s right. Developers of USB function device drivers do not need to be
concerned with DMA. Everything is done using URBs submitted to the lower
device stack (the PDEVICE_OBJECT you get back from
IoAttachDeviceToDeviceStack in your AddDevice implementation). That’s one
of the nicer aspects of USB driver development.
– arlie
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alex Farber
Sent: Tuesday, February 28, 2006 9:44 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] USB and DMA
Thank you. Does this mean that as USB driver developer, I don’t need to
think about DMA? But this is an issue for hardware device developer?
OSRUSBFX2 sample driver works with the following USB interface: 3 endpoints
(Interrupt, IN; BULK IN, BULK OUT), which are handled by 3 WDFUSBPIPE
objects; and vendor commands. Does this sample basically represent the stuff
all USB drivers are dealing with?
USB device hardware developers don’t worry about DMA either (unless they
have implemented DMA internally to transfer received data into device
system memory).
The OSRUSBFX2 board is a very typical example of what a USB device would
look like, and the driver is pretty much consistent with most USB device
drivers.
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alex Farber
Sent: Tuesday, February 28, 2006 6:44 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] USB and DMA
Thank you. Does this mean that as USB driver developer, I don’t need to
think about DMA? But this is an issue for hardware device developer?
OSRUSBFX2 sample driver works with the following USB interface: 3
endpoints (Interrupt, IN; BULK IN, BULK OUT), which are handled by 3
WDFUSBPIPE objects; and vendor commands. Does this sample basically
represent the stuff all USB drivers are dealing with?
Arlie Davis wrote:
Yes, but your USB “function” / client driver does not deal
directly with the
DMA controller. Instead, the USB stack below you does. You build
URBs and
submit them to the USB stack. The USB stack performs the
requested actions,
such as bulk IN / OUT requests, which use DMA.
Similarly, your driver never deals with interrupts, register
access, etc.
The OHCI / UHCI / EHCI driver does this for you. Your driver
represents the
device connected to the USB, not the USB itself. And at the
USB physical
layer, there is no such thing as DMA, only packets and
transfers.
– arlie
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alex
Farber
Sent: Tuesday, February 28, 2006 4:05 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] USB and DMA
Is there any use of DMA in USB devices? All DMA samples I found
are about
PCI.
Thank you.
Yahoo! Mail
Bring photos to life! New PhotoMail
l.yahoo.com> makes sharing a breeze. — 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
—
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
________________________________
Yahoo! Mail
Bring photos to life! New PhotoMail
http:ail.yahoo.com> makes sharing a breeze. — 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</http:>
Alex Farber wrote:
Thank you. Does this mean that as USB driver developer, I don’t need
to think about DMA? But this is an issue for hardware device developer?
Devices on a USB bus do not deal with DMA, nor do drivers for those
devices. Bus-mastering DMA is a PCI bus thing (and, by extension, AGP
and PCIExpress).
The USB controller uses DMA heavily, because it is a PCI device. The
host controller drivers deal with that, but those are all provided by
Microsoft.
OSRUSBFX2 sample driver works with the following USB interface: 3
endpoints (Interrupt, IN; BULK IN, BULK OUT), which are handled by 3
WDFUSBPIPE objects; and vendor commands. Does this sample basically
represent the stuff all USB drivers are dealing with?
Ho ho ho, not by a long shot. Those are very good samples, and very
good places to start working with KMDF, but they are just a start. They
don’t deal with isochronous pipes, nor multiple interfaces, nor
alternate interfaces, nor multiple instances, nor high bandwidth operations.
The general rule in writing drivers is that your device is always going
to require some specific technology that has not been dealt with in the
samples or the documentation.
–
Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.
DMA is used extensively for USB devices. The USB bus driver takes responsibility for setting up all of the DMA transfers for you.
This is pretty common of these so-called “protocol busses”. SCSI, 1394, bluetooth - these all have a driver (often provided by MS) which drives the controller and sets up all the data transfers (through DMA or otherwise). The driver then exposes a protocol based set of I/O controls (or sometimes direct call functions) which your driver can invoke to perform higher-level operations like “read from an interrupt pipe” or “send a SCSI command”.
Some of the protocol busses use low-level drivers that help with this. For example SCSI controllers have a “SCSI miniport” which the SCSIPort driver uses to actually program the controller. SCSIPort takes care of splitting up requests, setting up the DMA, building the scatter-gather lists, and then calls the SCSI miniport to actuall program the device registers to send the command & data to the controller.
It might help if you can spend a little more time spelling out what you’re trying to learn. Is this just general interest, or do you have a project you’re working on which says you have to use DMA & you’re trying to figure out what that means in your context?
-p
From: xxxxx@lists.osr.com on behalf of Alex Farber
Sent: Tue 2/28/2006 1:04 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] USB and DMA
Is there any use of DMA in USB devices? All DMA samples I found are about PCI.
Thank you.
Yahoo! Mail
Bring photos to life! New PhotoMail http: makes sharing a breeze. — 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</http:>
Thank you for information.
Yahoo! Mail
Use Photomail to share photos without annoying attachments.
No.
Only the USB HC uses DMA, and it is a PCI device. USB devices themselves do
not use DMA.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
----- Original Message -----
From: “Alex Farber”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, February 28, 2006 12:04 PM
Subject: [ntdev] USB and DMA
> Is there any use of DMA in USB devices? All DMA samples I found are about
PCI.
> Thank you.
>
>
> ---------------------------------
> Yahoo! Mail
> Bring photos to life! New PhotoMail makes sharing a breeze.
> —
> 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
> Thank you. Does this mean that as USB driver developer, I don’t need to think
about DMA?
Correct.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
Well, USB devices may use DMA on the device side, not on host side; and proper setup of this DMA functionality requires some work in host side driver (by sending device-specific URBs, of course).
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Maxim S. Shatskih
Sent: Sunday, March 05, 2006 8:36 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] USB and DMA
No.
Only the USB HC uses DMA, and it is a PCI device. USB devices themselves do
not use DMA.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
----- Original Message -----
From: “Alex Farber”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, February 28, 2006 12:04 PM
Subject: [ntdev] USB and DMA
> Is there any use of DMA in USB devices? All DMA samples I found are about
PCI.
> Thank you.
>
>
> ---------------------------------
> Yahoo! Mail
> Bring photos to life! New PhotoMail makes sharing a breeze.
> —
> 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
—
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
I assume this means DMA between a USB device and a target attached to
that device on the local IO bus of the USB device, not DMA between a USB
device and the host driver for a USB peripheral such as a USB disk.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexander Krol
Sent: Monday, March 06, 2006 8:56 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] USB and DMA
Well, USB devices may use DMA on the device side, not on host side;
and proper setup of this DMA functionality requires some work in host
side driver (by sending device-specific URBs, of course).
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Maxim S. Shatskih
Sent: Sunday, March 05, 2006 8:36 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] USB and DMA
No.
Only the USB HC uses DMA, and it is a PCI device. USB devices
themselves do
not use DMA.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
----- Original Message -----
From: “Alex Farber”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, February 28, 2006 12:04 PM
Subject: [ntdev] USB and DMA
> Is there any use of DMA in USB devices? All DMA samples I found are
about
PCI.
> Thank you.
>
>
> ---------------------------------
> Yahoo! Mail
> Bring photos to life! New PhotoMail makes sharing a breeze.
> —
> 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
—
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
—
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
Yes, on the local bus (see, for example, Philips ISP1581 chip spec).
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Roddy, Mark
Sent: Monday, March 06, 2006 4:11 PM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] USB and DMA
I assume this means DMA between a USB device and a target attached to
that device on the local IO bus of the USB device, not DMA between a USB
device and the host driver for a USB peripheral such as a USB disk.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Alexander Krol
Sent: Monday, March 06, 2006 8:56 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] USB and DMA
Well, USB devices may use DMA on the device side, not on host side;
and proper setup of this DMA functionality requires some work in host
side driver (by sending device-specific URBs, of course).
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]On Behalf Of Maxim S. Shatskih
Sent: Sunday, March 05, 2006 8:36 PM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] USB and DMA
No.
Only the USB HC uses DMA, and it is a PCI device. USB devices
themselves do
not use DMA.
Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com
----- Original Message -----
From: “Alex Farber”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, February 28, 2006 12:04 PM
Subject: [ntdev] USB and DMA
> Is there any use of DMA in USB devices? All DMA samples I found are
about
PCI.
> Thank you.
>
>
> ---------------------------------
> Yahoo! Mail
> Bring photos to life! New PhotoMail makes sharing a breeze.
> —
> 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
—
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
—
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
—
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