History log of /haiku-fatelf/src/add-ons/kernel/busses/scsi/ahci/ahci.c
Revision Date Author Comments
# 581f28eb 07-Jun-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

ahci: Add pretty name to AHCI devices

* Naming is a little rough, but I can't think of
anything better.
* Two less "Unknown Devices" in Device application


# 2e43bcca 30-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

added new Nvidia, Marvell, and Intel AHCI controlers.. please test if you have the hardware

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


# 8d71819a 23-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Restrict B_DMA_HIGH_ADDRESS to 4 GB. AHCI can generally support 64 bit DMA,
but whether the respective controller does is indicated by a capability flag,
which we can't easily access at this point.


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


# 2219c13e 10-Sep-2009 Marcus Overhagen <marcusoverhagen@gmail.com>

cleanup, remove color codes


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


# 70e2d4ac 14-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Replaced the B_BLOCK_DEVICE_* defines with B_DMA_* defines that better match
our dma_restrictions structure (but we're using blocks instead of bytes,
since unlike the block size, the restrictions attributes are constant).
* We might want to use blocks for the dma_restrictions structure as well in
the future...
* Fixed another bug in the device_node variant of DMAResource::Init(): the max
segment size was specified in blocks as well.
* Removed the "hardcode" block_io module and header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26973 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


# 368167ed 26-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
- legacy SATA and ISA IDE support is disabled, the drivers haven't been
ported yet.
- The not yet used ATA bus manager hasn't been ported yet, either.
- AHCI changes have not been tested.
- the listdev command has been removed from the build (as it currently
doesn't work anymore).
- device manager generated IDs currently are not freed anymore when a device
node is removed.
- generic drivers can't yet use the new driver architecture.
- simple busses that do not support device types won't work yet.
- legacy driver publishing/unpublishing (ie. what USB needs) has not been
tested, and may be broken.


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


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

Implemented ExecuteSataRequest() to execute all ATA and (later) ATAPI commands.
Converted Identify Device and Read / Write commands, they now create a sata_request
and pass it to ExecuteSataRequest. Added support for cache flushing.



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


# f41613d5 10-Nov-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Removed non-AHCI id. Reverts bugreport #1599 change.


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


# a00a1f41 05-Nov-2007 Axel Dörfler <axeld@pinc-software.de>

* Added the device/vendor pair of the ICH7 used in the MacBooks, courtesy of
"chrisjp", see bug #1599.
* Minor cleanup.


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


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

added more IDs, removed Intel IDE mode ID due to possible collision with a physical PATA interface


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


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

Added PCI ids from Freebsd, Netbsd and Openbsd pcidevs files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22420 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


# 747c1927 28-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

removed conditional testing code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22352 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


# e63ca93e 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

compile fix for gcc 2.95


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


# 183bd9f4 26-Aug-2007 Jérôme Duval <korli@users.berlios.de>

black on black isn't easy to read : it's better to switch to the default color


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


# 48a55608 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added a completely broken way to get the pci_device


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


# 9f8f7442 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

pci_device can't be made static, it identifies the individual controller PCI device


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


# a53e060c 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

set scsi target id maximum to 33 (32 devices + controller) for ahci controller


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


# ddf18870 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Moved PCI access code, but the compiler refuses to convert 'device_node_info*' to 'pci_device_info*' in argument passing...


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


# 8eca44fa 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added more debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22063 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


# 581f28eb9b5821a3de816a7d1c795f218d2e4fd9 07-Jun-2012 Alexander von Gluck IV <kallisti5@unixzen.com>

ahci: Add pretty name to AHCI devices

* Naming is a little rough, but I can't think of
anything better.
* Two less "Unknown Devices" in Device application


# 2e43bcca244ce032997fc9d074c1d1367a4908fa 30-Mar-2011 Alexander von Gluck IV <kallisti5@unixzen.com>

added new Nvidia, Marvell, and Intel AHCI controlers.. please test if you have the hardware

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


# 8d71819a013064685f960b5957358b19f4a60dfe 23-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Restrict B_DMA_HIGH_ADDRESS to 4 GB. AHCI can generally support 64 bit DMA,
but whether the respective controller does is indicated by a capability flag,
which we can't easily access at this point.


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


# 2219c13eec208943c2653ab228c9837a515e97bb 10-Sep-2009 Marcus Overhagen <marcusoverhagen@gmail.com>

cleanup, remove color codes


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


# 70e2d4ac43aa54d8c567ec12e6b24155d3171dd9 14-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Replaced the B_BLOCK_DEVICE_* defines with B_DMA_* defines that better match
our dma_restrictions structure (but we're using blocks instead of bytes,
since unlike the block size, the restrictions attributes are constant).
* We might want to use blocks for the dma_restrictions structure as well in
the future...
* Fixed another bug in the device_node variant of DMAResource::Init(): the max
segment size was specified in blocks as well.
* Removed the "hardcode" block_io module and header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26973 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


# 368167ede8118f72da8c9ac5bb98ce9b46a8a639 26-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
- legacy SATA and ISA IDE support is disabled, the drivers haven't been
ported yet.
- The not yet used ATA bus manager hasn't been ported yet, either.
- AHCI changes have not been tested.
- the listdev command has been removed from the build (as it currently
doesn't work anymore).
- device manager generated IDs currently are not freed anymore when a device
node is removed.
- generic drivers can't yet use the new driver architecture.
- simple busses that do not support device types won't work yet.
- legacy driver publishing/unpublishing (ie. what USB needs) has not been
tested, and may be broken.


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


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

Implemented ExecuteSataRequest() to execute all ATA and (later) ATAPI commands.
Converted Identify Device and Read / Write commands, they now create a sata_request
and pass it to ExecuteSataRequest. Added support for cache flushing.



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


# f41613d5b27eb645ebd3a6a07ff65c06c414a889 10-Nov-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Removed non-AHCI id. Reverts bugreport #1599 change.


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


# a00a1f4144274e7357e36d82ea05ae441b1b7607 05-Nov-2007 Axel Dörfler <axeld@pinc-software.de>

* Added the device/vendor pair of the ICH7 used in the MacBooks, courtesy of
"chrisjp", see bug #1599.
* Minor cleanup.


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


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

added more IDs, removed Intel IDE mode ID due to possible collision with a physical PATA interface


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


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

Added PCI ids from Freebsd, Netbsd and Openbsd pcidevs files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22420 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


# 747c1927fdbfebead39c44442005f6b437dc8cae 28-Sep-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

removed conditional testing code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22352 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


# e63ca93e6a2c7c4377cee36b05b51095e7fb1cf3 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

compile fix for gcc 2.95


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


# 183bd9f43432c8cb5cf41e21bfe113e48c171e05 26-Aug-2007 Jérôme Duval <korli@users.berlios.de>

black on black isn't easy to read : it's better to switch to the default color


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


# 48a55608e6e5e34e123d00c5e7f07581fcf70473 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added a completely broken way to get the pci_device


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


# 9f8f7442f349b08d383b83ed8b4704df31ccefd8 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

pci_device can't be made static, it identifies the individual controller PCI device


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


# a53e060c17316afe2c56eac8ce999c9800eea872 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

set scsi target id maximum to 33 (32 devices + controller) for ahci controller


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


# ddf188703a85ec5f8b0a9bffa71ff6048f7260a5 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Moved PCI access code, but the compiler refuses to convert 'device_node_info*' to 'pci_device_info*' in argument passing...


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


# 8eca44fa7ebb9ab3c2e96510ca9ef6d24fe4f958 26-Aug-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

added more debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22063 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