* Change the drivers that use the ATA stack (ata_adapter) to publish

themselves in busses/ata instead of busses/ide.
* Re-introduce Francois change to install these drivers in busses/ata
  when building with HAIKU_ATA_STACK = 1.
* Adopted the device manager to look for drivers in busses/ata
  additionally to busses/ide.

This change works fine with a clean installation on a computer where I can
(and indeed have to) use the new ATA stack.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30695 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2009-05-10 09:22:35 +00:00
parent 8f014243f3
commit f04362eac3
8 changed files with 25 additions and 14 deletions
+11 -2
View File
@@ -165,8 +165,17 @@ AddFilesToHaikuImage system add-ons kernel bus_managers
: $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
AddFilesToHaikuImage system add-ons kernel busses agp_gart
: $(X86_ONLY)<agp_gart>intel ;
AddFilesToHaikuImage system add-ons kernel busses ide
: generic_ide_pci it8211 legacy_sata silicon_image_3112 $(X86_ONLY)ide_isa ;
if $(HAIKU_ATA_STACK) = 1 {
AddFilesToHaikuImage system add-ons kernel busses ata
: generic_ide_pci it8211 legacy_sata silicon_image_3112
$(X86_ONLY)ide_isa ;
} else {
AddFilesToHaikuImage system add-ons kernel busses ide
: generic_ide_pci it8211 legacy_sata silicon_image_3112
$(X86_ONLY)ide_isa ;
}
AddFilesToHaikuImage system add-ons kernel busses scsi
: ahci ;
AddFilesToHaikuImage system add-ons kernel busses usb
@@ -11,8 +11,8 @@
#include <ide_adapter.h>
#define GENERIC_IDE_PCI_CONTROLLER_MODULE_NAME "busses/ide/generic_ide_pci/driver_v1"
#define GENERIC_IDE_PCI_CHANNEL_MODULE_NAME "busses/ide/generic_ide_pci/channel/v1"
#define GENERIC_IDE_PCI_CONTROLLER_MODULE_NAME "busses/ata/generic_ide_pci/driver_v1"
#define GENERIC_IDE_PCI_CHANNEL_MODULE_NAME "busses/ata/generic_ide_pci/channel/v1"
#define IDE_PCI_CONTROLLER_TYPE_NAME "ide pci controller"
@@ -30,7 +30,7 @@
#endif
#define IDE_ISA_MODULE_NAME "busses/ide/ide_isa/driver_v1"
#define IDE_ISA_MODULE_NAME "busses/ata/ide_isa/driver_v1"
// private node item:
// io address of command block
@@ -8,8 +8,8 @@
#include <ide_adapter.h>
#define IT8211_CONTROLLER_MODULE_NAME "busses/ide/it8211/driver_v1"
#define IT8211_CHANNEL_MODULE_NAME "busses/ide/it8211/channel/v1"
#define IT8211_CONTROLLER_MODULE_NAME "busses/ata/it8211/driver_v1"
#define IT8211_CHANNEL_MODULE_NAME "busses/ata/it8211/channel/v1"
#define PCI_VENDOR_ITE 0x1283
#define PCI_DEVICE_ITE_IT8211 0x8211
@@ -13,7 +13,7 @@
#define DRIVER_PRETTY_NAME "Legacy SATA"
#define CONTROLLER_NAME DRIVER_PRETTY_NAME
#define CONTROLLER_MODULE_NAME "busses/ide/legacy_sata/driver_v1"
#define CONTROLLER_MODULE_NAME "busses/ata/legacy_sata/driver_v1"
#define CHANNEL_MODULE_NAME "busses/ide/legacy_sata/channel/v1"
#define TRACE(a...) dprintf(DRIVER_PRETTY_NAME ": " a)
@@ -21,8 +21,8 @@
#include "wrapper.h"
#define PROMISE_TX2_CONTROLLER_MODULE_NAME "busses/ide/promise_tx2/device_v1"
#define PROMISE_TX2_CHANNEL_MODULE_NAME "busses/ide/promise_tx2/channel/v1"
#define PROMISE_TX2_CONTROLLER_MODULE_NAME "busses/ata/promise_tx2/device_v1"
#define PROMISE_TX2_CHANNEL_MODULE_NAME "busses/ata/promise_tx2/channel/v1"
static ide_for_controller_interface *ide;
@@ -19,8 +19,8 @@
#define DRIVER_PRETTY_NAME "Silicon Image SATA"
#define CONTROLLER_NAME DRIVER_PRETTY_NAME
#define CONTROLLER_MODULE_NAME "busses/ide/silicon_image_3112/driver_v1"
#define CHANNEL_MODULE_NAME "busses/ide/silicon_image_3112/channel/v1"
#define CONTROLLER_MODULE_NAME "busses/ata/silicon_image_3112/driver_v1"
#define CHANNEL_MODULE_NAME "busses/ata/silicon_image_3112/channel/v1"
enum asic_type {
ASIC_SI3112 = 0,
@@ -765,7 +765,7 @@ dma_finish(void *channelCookie)
command = *channel->bm_command_reg;
*channel->bm_command_reg = command & ~IDE_BM_COMMAND_START_STOP;
channel->dma_active = false;
*channel->bm_status_reg = status | IDE_BM_STATUS_ERROR;
@@ -774,7 +774,7 @@ dma_finish(void *channelCookie)
if ((status & IDE_BM_STATUS_ACTIVE) != 0) {
TRACE("dma_finish: buffer too large\n");
return B_DEV_DATA_OVERRUN;
}
}
if ((status & IDE_BM_STATUS_ERROR) != 0) {
FLOW("dma_finish: failed\n");
return B_ERROR;
@@ -1521,11 +1521,13 @@ device_node::_GetNextDriverPath(void*& cookie, KPath& _path)
_AddPath(*stack, "busses", "scsi");
break;
case PCI_ide:
_AddPath(*stack, "busses", "ata");
_AddPath(*stack, "busses", "ide");
break;
case PCI_sata:
// TODO: check for ahci interface
_AddPath(*stack, "busses", "scsi");
_AddPath(*stack, "busses", "ata");
_AddPath(*stack, "busses", "ide");
break;
default: