- 12 Dec, 2015 6 commits
-
-
Max Reitz authored
* struct ata_device inherits cdi_storage_device or cdi_scsi_device. Since this driver does not know all of the fields contained therein for sure, the object has to be initialized to 0. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org>
-
Max Reitz authored
! ATAPI commands need to be of size 12. However, general SCSI packets may have any length and thus the SCSI command to be sent has to be copied to a temporary buffer before it can be passed to the ATAPI device. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org>
-
Max Reitz authored
+ This adds a USB mass storage device driver. It is missing proper error handling (e.g. for STALLed endpoints) and support for any USB MSD class other than bulk-only (e.g. control-bulk-interrupt for USB floppy drives). Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org>
-
Max Reitz authored
+ This adds a USB 2.0 bus driver. It is missing support for USB 3.x (obviously), and also interrupt and isochronous transfers (and other things, too). Also, it is probably bad (e.g. there is only a single counter for device IDs instead of keeping track of which IDs are used and which are not). Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org>
-
Max Reitz authored
+ This adds an EHCI USB host controller driver. It is missing support for periodic schedule (interrupt and isochronous transfers), hotplugging, suspend/resume, etc. pp.. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org>
-
Max Reitz authored
+ Add headers to be used by USB host controller drivers, the USB bus driver, and USB device drivers. These headers are still lacking functions for periodic transactions (interrupt/isochronous), hotplugging, suspend/resume, etc. pp.. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org>
-
- 21 Oct, 2015 1 commit
-
-
+ I cannot remember how well this driver works, but it is certainly better than having none at all. Signed-off-by:
Max Reitz <max@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 19 Jul, 2015 7 commits
-
-
+ Currently, all devices provided on a bus have to be passed to the init_device() function of all drivers handling any device type on that bus. cdi_handle_bus_device() can be used by the driver to specify a pattern (struct cdi_bus_device_pattern) which allows the CDI implementation to speed up the selection of the correct driver for a new device. Signed-off-by:
Max Reitz <max@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
+ One SCSI device may provide multiple LUNs. Add a field for the LUN count to cdi_scsi_device. + Furthermore, add a field to select the LUN to cdi_scsi_packet. Signed-off-by:
Max Reitz <max@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- Remove týndur-specific fields from non-OS-dependant structures Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
+ Add cdi_elapsed_ms() + Add CDI_CONDITION_WAIT() and CDI_CONDITION_WAIT_SLEEP() macros for waiting until a volatile condition is fulfilled or a timeout occurs Signed-off-by:
Max Reitz <max@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
+ Type inheritance is a common pattern seen in CDI. The new CDI_UPCAST() macro makes conversion to superclasses safer and allows for multiple inheritance if the need arises. + Add some endianness conversion functions. Even though support for big endian platforms is nowhere in sight, endianness conversion is still a common operation which should not be implemented in the driver itself but provided by the CDI implementation. Signed-off-by:
Max Reitz <max@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
Our dear Max likes to be silly with multilingual comments. Fine with me, but make sure that this stuff doesn't end up in English or German documentation. This patch doesn't change the Makefile to actually produce documentation in any of the new languages as it would be utterly useless in its incomplete state. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
+ Apparently it is allowed to specify additional CFLAGS (as "CC_FLAGS") in a file named Makefile.conf (formatted as a shell script) in a driver's root directory; or at least ext2 just does this. This patch makes the CDI Makefile take the additional flags from that file into account, if present. Thanks to this, the ext2 driver can be compiled. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-by:
Kevin Wolf <kevin@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 16 Apr, 2015 1 commit
-
-
Kevin Wolf authored
Surprisingly, real hardware works much better when the disk gets power and is spun up. Also disable any automatic transition to power management modes just to be on the safe side. Before resetting a port, the processing of the command list must be stopped. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 17 Jan, 2015 2 commits
-
-
Kevin Wolf authored
This was implemented the same as CDI_SCSI_READ, but should be using the out function. Cc: cdi-devel@tyndur.org Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
This contains not only the modifications to actually split requests by the block size of 2048, but also included a fix to request.c, which used packet_size before it was initialised, so that always only a single block would be transferred. Cc: cdi-devel@tyndur.org Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 13 Jan, 2015 1 commit
-
-
! Added function call to free up the ressource structure Signed-off-by:
OSDevNewbie <baesae@hotmail.ch> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 09 Jan, 2015 5 commits
-
-
Kevin Wolf authored
Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
cdi_provide_device() hasn't been implemented so far because it raises questions of inter-driver communication in microkernel environments that aren't trivial to answer. This patch adds an interface to provide a device that is guaranteed to be handled by a CDI driver in the same binary, i.e. when passing pointers works. This is not meant as a general solution, but only to be used as a means for the internal organisation of complex drivers where some kind of an internal bus exists that can neither be exposed by a different driver nor can its children be handled by a different driver. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
Every complete implementation will need to store the information whether a driver is already initialised somewhere, so just put it into struct cdi_driver. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 01 Jan, 2015 2 commits
-
-
Kevin Wolf authored
The code was apparently based on the osdev.org wiki, which confused seconds and microseconds for step_rate_time, so we're off by a factor of 1000. It's fixed in the wiki for a couple of years now, so it might be time to fix it in this driver as well. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
Kevin Wolf authored
It's not a very good idea to flag every resource as readable, browsable and symlink-readable at the same time. This fixes the flags to actually match the assigned class. The iso9660 driver knows symlinks as it reads them from a Rockridge image, however it doesn't implement the .read_link callback, so using the respective flag doesn't make sense. Treat symlinks as regular files for now. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 02 Jan, 2014 1 commit
-
-
Kevin Wolf authored
The first 1024 bytes on the disk must be left alone. If they are part of the first block, they need to be included in the write request of each superblock update because the cache works only at the granularity of filesystem blocks. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 05 Mar, 2012 1 commit
-
-
Kevin Wolf authored
Commit 10f8c755 broke the floppy driver by initialising the drives before the controller. This fix restores the right order. Additionally, floppy must assign the device's driver after 10f8c755 because it calls the device init function before generic CDI code can do the job. This could clearly need some cleanup so that CDI calls the device init functions again, but for now let's just fix the breakage. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 18 Jun, 2011 2 commits
-
-
! ata: Retrying after read/write errors helps to make the code work a bit more reliably on real hardware Signed-off-by:
Antoine Kaufmann <toni@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
! ata: The busmaster DMA buffer must be aligned to 64k for DMA to work on real hardware, too Signed-off-by:
Antoine Kaufmann <toni@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 25 Mar, 2011 1 commit
-
-
This patch fixes the e1000 driver in VMware (and potentially some real hardware as well) by enforcing a 16-byte alignment for transmit and receive descriptors. Without this fix, the card automatically aligns the addresses on a 16-byte boundary, causing corruption in several data structures. The specification specifically states "The * Descriptor Base Address must point to a 16-byte aligned block of data". VMware appears to be far more pedantic than QEMU and VirtualBox when using these buffers. Signed-off-by:
Matthew Iselin <matthew@theiselins.net> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 06 Mar, 2011 1 commit
-
-
Kevin Wolf authored
We use receive buffers of 1536 bytes, but tell the NIC that the buffer size is 2048. Probably not a good idea. While at it, make the buffer size setting in RCTL explicit, even though it's just a zero. Signed-off-by:
Kevin Wolf <kevin@tyndur.org> Acked-by:
Rich Edelman <redelman@gmail.com>
-
- 23 Dec, 2010 3 commits
-
-
Kevin Wolf authored
+ hdaudio: Added a CDI driver for Intel HD Audio. Tested on qemu and VirtualBox. Signed-off-by:
Kevin Wolf <kevin@tyndur.org> Acked-by:
Max Reitz <max@tyndur.org>
-
This adds an AC97 sound output driver using the CDI.audio interface. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-By:
Matthew Iselin <matthew@theiselins.net> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
This adds the CDI.audio header for sound I/O drivers. Signed-off-by:
Max Reitz <max@tyndur.org> Acked-By:
Matthew Iselin <matthew@theiselins.net> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 27 Nov, 2010 1 commit
-
-
Kevin Wolf authored
! ata: Bit 3 in the Bus Master IDE Command Register is set if the DMA transfer is a bus master write, i.e. read from disk and write to memory. Current code got that wrong and sets it for writes to the disk. Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 17 Nov, 2010 1 commit
-
-
* Unset the executable bit Signed-off-by:
Max Reitz <max@tyndur.org> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-
- 10 Sep, 2010 1 commit
-
-
Kevin Wolf authored
If we want to point people at the CDI documentation, we should have some helpful content on the main page. This is a beginning, with a short introduction to CDI, and some links to the most important doxygen pages as well as to the git repo, mailing list and IRC. I already used this patch for generating new documentation, you can take a look at the usual URL (http://lpt.tyndur.org/cdi/english ) Signed-off-by:
Kevin Wolf <kevin@tyndur.org> Acked-by:
Rich Edelman <redelman@gmail.com>
-
- 28 Aug, 2010 2 commits
-
-
Kevin Wolf authored
This is the third e1000 model that is supported by VirtualBox. No further changes to the code seem to be required, it works fine as soon as the driver detects the device. Signed-off-by:
Kevin Wolf <kevin@tyndur.org> Acked-by:
Matthew Iselin <matthew@theiselins.net>
-
Kevin Wolf authored
This extends the existing documentation for the storage module and adds an English translation. I consider cdi_storage_driver_register useless, so instead of documenting I removed it. If anyone has a use for it, please tell me and I'll try and find a reason why you're wrong. Signed-off-by:
Kevin Wolf <kevin@tyndur.org> Acked-by:
Matthew Iselin <matthew@theiselins.net>
-
- 16 Aug, 2010 1 commit
-
-
This patch makes the e1000 driver work in VirtualBox. I'm working towards getting the driver working in VMWare as well, but VMWare emulates a different chip (82545 rather than 82540). Those fixes and adjustments will come in a different patch, at a later date. The biggest change here is that the driver now supports the microwire interface for reading from the EEPROM as well as the EERD. Signed-off-by:
Matthew Iselin <matthew@theiselins.net> Signed-off-by:
Kevin Wolf <kevin@tyndur.org>
-