Adam J. Richter wrote: >>Bad patch. The devrequest struct needs to be in DMAable memory, and the >>kernels stack isn't DMAable on all arches. >> > >>usb-storage is broken that way... it's on my TODO list, too... >> > >>Matt >> > > Thanks for catching this so quickly. > > I consequently have a bunch of questions for anyone kind enough > to answer them. > > 1. All USB host controller drivers are currently PCI > drivers. I do not know non-PCI ohci or uhci conformant > controllers are even possible. Am I correct in understanding > that these devices all use bus mastering and can access the first > 4GB of RAM, rather than using the motherboard's DMA > controller and only being able to access the first 16MB? >
There are some on-chip OHCI controllers without PCI bus available: eg. Strongarm SA1111, some ARM920 chips, some SH chips (eg. sh7727). And I think it is just one part of the question if the stack would be reachable from the HC. The other part of the question is if the memory (stack) can be (re-)mapped easily for DMA access. - Roman > If the kernel stack is almost always accessible from the PCI > bus in practice, it might be worth considering only > kmalloc'ing a USB command when its original address turns > out to be inaccessible from the PCI bus, ideally in such a > way that architectures where all of the memory was guaranteed > to be accessible would have the kmalloc brach of the "if" > statement eliminated by the compiler. > > 2. Are there really architectures where the kernel stack not > guaranteed necessarily reachable from the PCI bus (e.g,. can > this happen on BIGMEM x86)? That is, aren't the kernel > stack necessarily at least in the first 4GB? > > 3. Is the situation the same for the kernel's initialized data > segment? I ask because most USB control messages are 16 byte > constants that are precomputable at compile time (including byte > swapping) and I would like to have most places that issues > USB commands eventually just pass pointers and never have most > of these commands never even be read by the CPU. There is only > one kernel initialized data section, so I am a little more > hopeful that it might be guaranteed to be in the memory range > accessible by PCI bus mastering. > > > Adam J. Richter __ ______________ 4880 Stevens Creek Blvd, Suite 104 > [EMAIL PROTECTED] \ / San Jose, California 95129-1034 > +1 408 261-6630 | g g d r a s i l United States of America > fax +1 408 261-6631 "Free Software For The Rest Of Us." > > _______________________________________________ > [EMAIL PROTECTED] > To unsubscribe, use the last form field at: > https://lists.sourceforge.net/lists/listinfo/linux-usb-devel > > > _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel