AppleVIAATAHardware.h [plain text]
#ifndef _APPLEVIAATAHARDWARE_H
#define _APPLEVIAATAHARDWARE_H
#define kMaxDriveCount 2
#define kMaxChannelCount 2
#define PRI_CMD_ADDR 0x1f0
#define PRI_CTR_ADDR 0x3f4
#define SEC_CMD_ADDR 0x170
#define SEC_CTR_ADDR 0x374
#define PRI_ISA_IRQ 14
#define SEC_ISA_IRQ 15
#define PRI_CHANNEL_ID 0
#define SEC_CHANNEL_ID 1
#define PCI_CFID 0x00 // (32) PCI Device/Vendor ID
#define PCI_PCICMD 0x04 // (16) PCI command register
#define PCI_PCISTS 0x06 // (16) PCI device status register
#define PCI_RID 0x08 // (8) Revision ID register
#define PCI_PI 0x09 // (8) Programming interface
#define PCI_MLT 0x0d // (8) Master latency timer register
#define PCI_HEDT 0x0e // (8) Header type register
#define PCI_BMIBA 0x20 // (32) Bus-Master base address
#define PCI_BMIBA_RTE 0x01 // resource type indicator (I/O)
#define PCI_BMIBA_MASK 0xfff0 // base address mask
#define PCI_PCICMD_IOSE 0x01 // I/O space enable
#define PCI_PCICMD_BME 0x04 // bus-master enable
#define VIA_IDE_ENABLE 0x40
#define VIA_IDE_CONFIG 0x41
#define VIA_FIFO_CONFIG 0x43
#define VIA_MISC_1 0x44
#define VIA_MISC_2 0x45
#define VIA_MISC_3 0x46
#define VIA_DATA_TIMING 0x48
#define VIA_CMD_TIMING 0x4e
#define VIA_ADDRESS_SETUP 0x4c
#define VIA_ULTRA_TIMING 0x50
#define PCI_VIA_ID 0x1106
#define PCI_VIA_82C571 0x0571
#define PCI_VIA_82C586 0x0586
#define PCI_VIA_82C596 0x0596
#define PCI_VIA_82C686 0x0686
#define PCI_VIA_8231 0x8231
#define PCI_VIA_8233 0x3074
#define PCI_VIA_8233_C 0x3109
#define PCI_VIA_8233_A 0x3147
#define PCI_VIA_8235 0x3177
#define PCI_VIA_8237 0x3227
#define BM_COMMAND 0x00 // (8) Bus master command register
#define BM_STATUS 0x02 // (8) Bus master status register
#define BM_PRD_TABLE 0x04 // (32) Descriptor table register
#define BM_SEC_OFFSET 0x08 // offset to channel 1 registers
#define BM_ADDR_MASK 0xfff0 // BMIBA mask to get I/O base address
#define BM_STATUS_INT 0x04 // IDE device asserted its interrupt
enum {
VIA_HW_UDMA_NONE = 0,
VIA_HW_UDMA_33,
VIA_HW_UDMA_66,
VIA_HW_UDMA_100,
VIA_HW_UDMA_133,
VIA_HW_SATA,
VIA_HW_COUNT
};
#define kChannelNumberKey "Channel Number"
#define kCommandBlockAddressKey "Command Block Address"
#define kControlBlockAddressKey "Control Block Address"
#define kInterruptVectorKey "Interrupt Vector"
#define kSerialATAKey "Serial ATA"
#define kHardwareNameKey "Hardware Name"
#define kSelectedPIOModeKey "PIO Mode"
#define kSelectedDMAModeKey "DMA Mode"
#define kSelectedUltraDMAModeKey "Ultra DMA Mode"
#define kISABridgeMatchingKey "ISA Bridge Matching"
#endif