History log of /haiku-fatelf/src/add-ons/kernel/busses/scsi/ahci/ahci_defs.h
Revision Date Author Comments
# 22e22417 02-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Fixed a race condition where the interrupt for a command happened before
the thread issuing the command called acquire_sem_etc() on the semaphore
that the interrupt handler would otherwise release. The semaphore is now
released unconditionally, but to prevent the race condition that the
B_RELEASE_IF_WAITING_ONLY was trying to avoid, it is released with the
spinlock held.
* The error interrupt handler did not reset the fCommandsActive flag, but
it seemed to us like it should do that.
* WaitForTransfer now also acquires the spinlock to reset fCommandsActive,
which may be unnecessary but does not harm either.
* Cleanup of some long lines, sorry for mixing that with the actual fix.

Fixes bug #2359 (long pauses when accessing the disk).


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


# 1a4dcbd8 28-May-2008 Axel Dörfler <axeld@pinc-software.de>

* gPCI was never set anymore after my changes. I replaced it now by a fPCI
member in AHCIController, since, at least in theory, every PCI device could
come with its own module.
* Fixed exported module names to indicate compliance with the new device
manager.
* Apparently, GCC4 doesn't like mixing C++/C linkage even for variables anymore,
though it really shouldn't care about that.


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


# d53ddcce 24-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Provide better sense data. Turn off auto-sense
for ATAPI, as we can't report anything.


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


# c3342cf8 24-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

added simple error handling


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


# 9cb5c9bf 18-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Fix the HI32 macro. This fixes bug #2021.


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


# b830be90 05-Jan-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Marked some bits as RWC and RW1.


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


# e50610ed 04-Jan-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

added defines for LBA limitations


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


# 0cc1690a 04-Jan-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Added a comment describing the command FIS layout, because AHCI, SATA and ATA/ATAPI standards use inconsitent terminology.


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


# 83447512 03-Oct-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Changed device detection. The driver now first uses device and vendor id to check
for devices. This allows using devices that are in IDE compatibility mode.


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


# 2ae9d564 28-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added scatter gather prd table setup, implement scsi inquiry command and emulate test unit ready


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


# 2745621c 27-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

use defines from PCI.h


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


# 20c8bc80 26-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

The Jmicron AHCI controller on my machine is always in PATA emulation mode,
despite using the "AHCI native" setting in the BIOS.
Added switching to AHCI mode during init, this makes it work.


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


# 63f9ffef 26-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

make sure PCI command register is setup correctly


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


# 4af29ec0 25-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Implemented a identify device command for further testing, works on Intel, doesn't work on Jmicron.


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


# 22cf14cf 24-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

perform port reset and wait for devices to be detected


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


# be30f131 24-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

fixed wrong port definition


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


# 8961bec0 23-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

try to activate link and spin up the device


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


# cb8be294 22-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Start and stop DMA engine and FIS receive, enable port interrupts.


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


# c542d2bb 22-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Fixed memory allocation and field alignment.


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


# 63399028 19-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Setup command list, command table, FIS and PRDT pointers.


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


# 9382f576 11-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

correct port number handling
allocate memory for command list and fis


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


# 105f6223 01-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

print proper values for zero-based numbers


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


# 1a941c2e 01-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added more definitions from specification


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


# 4f6fa362 27-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed driver initialization - you are supposed to call init_driver()
and uninit_driver() yourself. We're also using this to let the controller
access the pci_device object.
* Fixed some style violations for your pleasure ;-)


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


# 8be13cd5 23-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* SCSI SIM module driver shell for the AHCI driver for Marcus.
It is loaded on boot, and the SCSI bus manager tries to scan its bus which
of course fails at the moment. Hope that helps :-)
* Moved the driver to its new location; it's a SCSI bus controller, so it
should be placed in busses/scsi.


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


# 22e22417630a904747894120193428271ec41d98 02-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* Fixed a race condition where the interrupt for a command happened before
the thread issuing the command called acquire_sem_etc() on the semaphore
that the interrupt handler would otherwise release. The semaphore is now
released unconditionally, but to prevent the race condition that the
B_RELEASE_IF_WAITING_ONLY was trying to avoid, it is released with the
spinlock held.
* The error interrupt handler did not reset the fCommandsActive flag, but
it seemed to us like it should do that.
* WaitForTransfer now also acquires the spinlock to reset fCommandsActive,
which may be unnecessary but does not harm either.
* Cleanup of some long lines, sorry for mixing that with the actual fix.

Fixes bug #2359 (long pauses when accessing the disk).


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


# 1a4dcbd8dedf06b9625fcf6ad4c74b14cb796803 28-May-2008 Axel Dörfler <axeld@pinc-software.de>

* gPCI was never set anymore after my changes. I replaced it now by a fPCI
member in AHCIController, since, at least in theory, every PCI device could
come with its own module.
* Fixed exported module names to indicate compliance with the new device
manager.
* Apparently, GCC4 doesn't like mixing C++/C linkage even for variables anymore,
though it really shouldn't care about that.


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


# d53ddcce75d9c0dffc1ec1f1b30898a6d470080f 24-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Provide better sense data. Turn off auto-sense
for ATAPI, as we can't report anything.


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


# c3342cf811cdf0d1f51f56acd6d2737a278a6115 24-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

added simple error handling


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


# 9cb5c9bf8f176d235ec480894a81da7f5dab3155 18-May-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Fix the HI32 macro. This fixes bug #2021.


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


# b830be90e29060aa4638c07f73fbef8417d5103c 05-Jan-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Marked some bits as RWC and RW1.


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


# e50610ed4997393718fbd429f7d0a498eb583f49 04-Jan-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

added defines for LBA limitations


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


# 0cc1690a17ddbf4ef9a652e1a5434bdea2127471 04-Jan-2008 Marcus Overhagen <marcusoverhagen@gmail.com>

Added a comment describing the command FIS layout, because AHCI, SATA and ATA/ATAPI standards use inconsitent terminology.


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


# 83447512ed157f2fbe0165c57a924aad1de14c43 03-Oct-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Changed device detection. The driver now first uses device and vendor id to check
for devices. This allows using devices that are in IDE compatibility mode.


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


# 2ae9d56421f5bf78b767c8918bb8b4325d898340 28-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added scatter gather prd table setup, implement scsi inquiry command and emulate test unit ready


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


# 2745621c91ac19d3152ec700b7c4ba2d1dad9b10 27-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

use defines from PCI.h


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


# 20c8bc80d511b5cb81d6c6afba238c05bf16a32b 26-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

The Jmicron AHCI controller on my machine is always in PATA emulation mode,
despite using the "AHCI native" setting in the BIOS.
Added switching to AHCI mode during init, this makes it work.


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


# 63f9ffef37555f2178c9d1fd95dcfd0862ab01bd 26-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

make sure PCI command register is setup correctly


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


# 4af29ec0bd92d44cdcdec9bb22cbf652ee6b8e7f 25-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Implemented a identify device command for further testing, works on Intel, doesn't work on Jmicron.


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


# 22cf14cfbeb75dfc24947cb395368050f919b127 24-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

perform port reset and wait for devices to be detected


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


# be30f131848c28d28a870423cc826a62fa7357c7 24-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

fixed wrong port definition


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


# 8961bec039b0e54f171183f64ac91410eced8e1e 23-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

try to activate link and spin up the device


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


# cb8be2945773a37f4f569ce08c79d27af1a172df 22-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Start and stop DMA engine and FIS receive, enable port interrupts.


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


# c542d2bbf183288a3639d1c722521d0a6a37038e 22-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Fixed memory allocation and field alignment.


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


# 633990282e4296854a8e928132854aaba79b4473 19-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Setup command list, command table, FIS and PRDT pointers.


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


# 9382f576917776521166203d7a1ecde8aaab8341 11-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

correct port number handling
allocate memory for command list and fis


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


# 105f6223108a543bed34c92210b81edfd7173898 01-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

print proper values for zero-based numbers


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


# 1a941c2e0433e2857010d9877326c3837af19f9e 01-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added more definitions from specification


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


# 4f6fa362cfa47f22a0c789a42d35556d7ac25a31 27-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* Fixed driver initialization - you are supposed to call init_driver()
and uninit_driver() yourself. We're also using this to let the controller
access the pci_device object.
* Fixed some style violations for your pleasure ;-)


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


# 8be13cd585e975cdc5b0d07e1013cc749ad30b0a 23-Aug-2007 Axel Dörfler <axeld@pinc-software.de>

* SCSI SIM module driver shell for the AHCI driver for Marcus.
It is loaded on boot, and the SCSI bus manager tries to scan its bus which
of course fails at the moment. Hope that helps :-)
* Moved the driver to its new location; it's a SCSI bus controller, so it
should be placed in busses/scsi.


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