History log of /haiku/src/add-ons/kernel/bus_managers/ata/ATAPIDevice.cpp
Revision Date Author Comments
# 1ce4890b 13-Mar-2018 Jérôme Duval <jerome.duval@gmail.com>

ata: DMA requires a SG list

READCD can actually be requested so that no SG list is prepared.
Should help with #13775


# ca68245e 19-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Wrote a new infoblock header according to ATA/ATAPI-6 that is cleaner and more
verbose than the old one. Removed the latter.
* Put some of the hardcoded values into defines for more clearity.
* Report more detailed device type for ATAPI devices and report removable
media based on the bit in the infoblock as well.
* Rename the channel ID attributes back to ide to let the hack in scsi_periph
work that then publishes the devices under the disk/ata[pi] tree.
* Also disable command queueing for ATAPI devices.
* Remove remnants of CHS support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30270 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a2bc102 18-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

For packet devices we want to actually return a check condition when the device
indicates an error. Also we then need to pass through the request sense command
to the device. This should fix media status reporting for ATAPI.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30253 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 93239012 18-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

Check the result after sending the packet, other error conditions like media
presence will be triggered there and we use FinishRequest() to catch those.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30250 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 827f849a 18-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Reworked device detection, we'll see how well this works...
* Reworked some of the transfer handling after reading the specs.
* Ensure that the device selection bit is set correctly for all commands.
* Generally disable interrupts and enable them only when expecting a DMA one.
* Renamed disk failure to device fault according to specs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33d80ba2 10-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Rework ATAPI handling, removing all PIO interrupts. As Marcus pointed out the
complication is not really worth it and it would in any case be unreliable
in the shared interrupt case (even though you could always check the poll
condition in the interrupt handler).
* Probably broke ATAPI with those changes though.
* Change blocksLeft to bytesLeft to allow using it for arbitrary ATAPI requests.
* Check some more error conditions and actually let those states get through
to the SCSI layer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22805aae 09-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

Adding ATAPI support to the new ATA bus_manager. Only tested in QEMU.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30080 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6bb01f71 09-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Adding/updating license headers.
* Add the standalone ata module to the Jamfile.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf9a3835 08-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Work in progress commit of a reworked ATA bus_manager. It's now object based,
but doesn't really do anything more than before.
* It also replaces everything IDE with ATA counterparts and cleans up a lot
of the definitions.
* Cleaning up the old ATA bus_manager as well as some license headers missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ca68245eb72cd2490a1e35ab97d0bf4837051d89 19-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Wrote a new infoblock header according to ATA/ATAPI-6 that is cleaner and more
verbose than the old one. Removed the latter.
* Put some of the hardcoded values into defines for more clearity.
* Report more detailed device type for ATAPI devices and report removable
media based on the bit in the infoblock as well.
* Rename the channel ID attributes back to ide to let the hack in scsi_periph
work that then publishes the devices under the disk/ata[pi] tree.
* Also disable command queueing for ATAPI devices.
* Remove remnants of CHS support.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30270 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6a2bc1027bc2e679655e319f5eb5d45702efee58 18-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

For packet devices we want to actually return a check condition when the device
indicates an error. Also we then need to pass through the request sense command
to the device. This should fix media status reporting for ATAPI.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30253 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9323901253f0488afe5762eed1e48ebeae9679ce 18-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

Check the result after sending the packet, other error conditions like media
presence will be triggered there and we use FinishRequest() to catch those.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30250 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 827f849a3434806b7ab0bcea89bc8791e4aa77ce 18-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Reworked device detection, we'll see how well this works...
* Reworked some of the transfer handling after reading the specs.
* Ensure that the device selection bit is set correctly for all commands.
* Generally disable interrupts and enable them only when expecting a DMA one.
* Renamed disk failure to device fault according to specs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 33d80ba202e1cda4c2b97b9888b1cee94bcb74e1 10-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Rework ATAPI handling, removing all PIO interrupts. As Marcus pointed out the
complication is not really worth it and it would in any case be unreliable
in the shared interrupt case (even though you could always check the poll
condition in the interrupt handler).
* Probably broke ATAPI with those changes though.
* Change blocksLeft to bytesLeft to allow using it for arbitrary ATAPI requests.
* Check some more error conditions and actually let those states get through
to the SCSI layer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30109 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22805aae7f88e4a16627e5a8f97edf7501f44b64 09-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

Adding ATAPI support to the new ATA bus_manager. Only tested in QEMU.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30080 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6bb01f71bc05b8280fa28bf0bc3d367a11bd57b0 09-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Adding/updating license headers.
* Add the standalone ata module to the Jamfile.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30053 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf9a38352439cea6594757b3c0c47e5151548d0d 08-Apr-2009 Michael Lotz <mmlr@mlotz.ch>

* Work in progress commit of a reworked ATA bus_manager. It's now object based,
but doesn't really do anything more than before.
* It also replaces everything IDE with ATA counterparts and cleans up a lot
of the definitions.
* Cleaning up the old ATA bus_manager as well as some license headers missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30049 a95241bf-73f2-0310-859d-f6bbb57e9c96