PCI: moved IDE api flags to PCI.h

This commit is contained in:
Jérôme Duval
2013-11-28 18:38:45 +01:00
parent 3746e83482
commit e4e1cf9aff
5 changed files with 16 additions and 22 deletions
+12
View File
@@ -327,6 +327,18 @@ struct pci_module_info {
#define PCI_nvm 0x08 /* NVM Express controller */
#define PCI_mass_storage_other 0x80 /* other mass storage controller */
/* ---
bit mask of the class_api field for
class_base = 0x01 (mass storage)
class_sub = 0x01 (IDE controller)
--- */
#define PCI_ide_primary_native 0x01 /* primary channel is in native mode */
#define PCI_ide_primary_fixed 0x02 /* primary channel can be switched to native mode */
#define PCI_ide_secondary_native 0x04 /* secondary channel is in native mode */
#define PCI_ide_secondary_fixed 0x08 /* secondary channel can be switched to native mode */
#define PCI_ide_master 0x80 /* master device */
/* ---
values of the class_api field for
class_base = 0x01 (mass storage)
-9
View File
@@ -55,15 +55,6 @@ enum {
// offset of PRDT register; content must be dword-aligned
};
// bit mask in class_api of PCI configuration
// (for adapters that can run in compatability mode)
enum {
ATA_API_PRIMARY_NATIVE = 1, // primary channel is in native mode
ATA_API_PRIMARY_FIXED = 2, // primary channel can be switched to native mode
ATA_API_SECONDARY_NATIVE = 4, // secondary channel is in native mode
ATA_API_SECONDARY_FIXED = 8 // secondary channel can be switched to native mode
};
// (maximum) size of S/G table
// there are so many restrictions that we want to keep it inside one page
-9
View File
@@ -56,15 +56,6 @@ enum {
// offset of PRDT register; content must be dword-aligned
};
// bit mask in class_api of PCI configuration
// (for adapters that can run in compatability mode)
enum {
IDE_API_PRIMARY_NATIVE = 1, // primary channel is in native mode
IDE_API_PRIMARY_FIXED = 2, // primary channel can be switched to native mode
IDE_API_SECONDARY_NATIVE = 4, // secondary channel is in native mode
IDE_API_SECONDARY_FIXED = 8 // secondary channel can be switched to native mode
};
// (maximum) size of S/G table
// there are so many restrictions that we want to keep it inside one page
@@ -538,14 +538,14 @@ ata_adapter_detect_channel(pci_device_module_info *pci, pci_device *pci_device,
api = pci->read_pci_config(pci_device, PCI_class_api, 1);
if (supports_compatibility_mode
&& channel_index == 0 && (api & ATA_API_PRIMARY_NATIVE) == 0) {
&& channel_index == 0 && (api & PCI_ide_primary_native) == 0) {
command_block_base = 0x1f0;
control_block_base = 0x3f6;
intnum = 14;
TRACE("PCI-ATA: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n",
command_block_base, control_block_base, intnum);
} else if (supports_compatibility_mode
&& channel_index == 1 && (api & ATA_API_SECONDARY_NATIVE) == 0) {
&& channel_index == 1 && (api & PCI_ide_secondary_native) == 0) {
command_block_base = 0x170;
control_block_base = 0x376;
intnum = 15;
@@ -518,14 +518,14 @@ ide_adapter_detect_channel(pci_device_module_info *pci, pci_device *pci_device,
api = pci->read_pci_config(pci_device, PCI_class_api, 1);
if (supports_compatibility_mode
&& channel_index == 0 && (api & IDE_API_PRIMARY_NATIVE) == 0) {
&& channel_index == 0 && (api & PCI_ide_primary_native) == 0) {
command_block_base = 0x1f0;
control_block_base = 0x3f6;
intnum = 14;
TRACE("PCI-IDE: Controller in legacy mode: cmd %#x, ctrl %#x, irq %d\n",
command_block_base, control_block_base, intnum);
} else if (supports_compatibility_mode
&& channel_index == 1 && (api & IDE_API_SECONDARY_NATIVE) == 0) {
&& channel_index == 1 && (api & PCI_ide_secondary_native) == 0) {
command_block_base = 0x170;
control_block_base = 0x376;
intnum = 15;