#
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
|