summaryrefslogtreecommitdiffstats
path: root/private/ntos/ndis/aic5900/hw.h
diff options
context:
space:
mode:
Diffstat (limited to 'private/ntos/ndis/aic5900/hw.h')
-rw-r--r--private/ntos/ndis/aic5900/hw.h502
1 files changed, 502 insertions, 0 deletions
diff --git a/private/ntos/ndis/aic5900/hw.h b/private/ntos/ndis/aic5900/hw.h
new file mode 100644
index 000000000..6347266e9
--- /dev/null
+++ b/private/ntos/ndis/aic5900/hw.h
@@ -0,0 +1,502 @@
+
+/*++
+
+Copyright (c) 1990-1995 Microsoft Corporation
+
+Module Name:
+
+ D:\nt\private\ntos\ndis\aic5900\hw.h
+
+Abstract:
+
+Author:
+
+ Kyle Brandon (KyleB)
+
+Environment:
+
+ Kernel mode
+
+Revision History:
+
+--*/
+
+#ifndef __HW_H
+#define __HW_H
+
+//
+// New types and forward pointers...
+//
+typedef struct _HARDWARE_INFO HARDWARE_INFO, *PHARDWARE_INFO;
+typedef struct _ADAPTER_BLOCK ADAPTER_BLOCK, *PADAPTER_BLOCK;
+typedef struct _VC_BLOCK VC_BLOCK, *PVC_BLOCK;
+
+typedef struct _XMIT_SEG_CHANNEL XMIT_SEG_CHANNEL, *PXMIT_SEG_CHANNEL;
+typedef struct _SAR_INFO SAR_INFO, *PSAR_INFO;
+
+typedef struct _MIDWAY_XMIT_REGISTERS MIDWAY_XMIT_REGISTERS, *PMIDWAY_XMIT_REGISTERS;
+typedef struct _MIDWAY_REGISTERS MIDWAY_REGISTERS, *PMIDWAY_REGISTERS;
+
+typedef volatile ULONG HWUL, *PHWUL;
+typedef volatile UCHAR HWUC, *PHWUC;
+
+#define BIT(x) (1 << (x))
+
+
+//
+// VC range supported by the aic5900
+//
+#define MAX_VCS 1024
+#define MIN_VCS 0
+
+//
+// NIC Cell clock rate.
+//
+//
+//
+#define CELL_CLOCK_25MHZ (25000000)
+#define CELL_CLOCK_16MHZ (16000000)
+
+//
+// PCI id's
+//
+#define ADAPTEC_PCI_VENDOR_ID 0x9004
+#define AIC5900_PCI_DEVICE_ID 0x5900
+
+//
+// Adaptec ATM adapter models supported.
+//
+#define ANA_5910 5
+#define ANA_5930 7
+#define ANA_5940 8
+
+#define ANA_INVALID (UINT)-1
+
+
+//
+//
+//
+//
+#define ATM_ADDRESS_LENGTH 6
+
+#define PCI_DEVICE_SPECIFIC_OFFSET 0x40
+
+typedef union _PCI_DEVICE_CONFIG
+{
+ struct
+ {
+ UCHAR SoftwareReset:1;
+ UCHAR EnableInterrupt:1;
+ UCHAR TargetSwapBytes:1;
+ UCHAR MasterSwapBytes:1;
+ UCHAR EnableIncrement:1;
+ UCHAR SoftwareInterrupt:1;
+ UCHAR TestDMA:1;
+ UCHAR Reserved:1;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_CONFIG,
+ *PPCI_DEVICE_CONFIG;
+
+typedef union _PCI_DEVICE_STATUS
+{
+ struct
+ {
+ UCHAR VoltageSense:1;
+ UCHAR IllegalByteEnable:1;
+ UCHAR IllegalWrite:1;
+ UCHAR IllegalOverlap:1;
+ UCHAR IllegalDescriptor:1;
+ UCHAR Reserved:3;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_STATUS,
+ *PPCI_DEVICE_STATUS;
+
+typedef union _PCI_DEVICE_INTERRUPT_STATUS
+{
+ struct
+ {
+ UCHAR DprInt:1;
+ UCHAR reserved:2;
+ UCHAR StaInt:1;
+ UCHAR RtaInt:1;
+ UCHAR RmaInt:1;
+ UCHAR SseInt:1;
+ UCHAR DpeInt:1;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_INTERRUPT_STATUS,
+ *PPCI_DEVICE_INTERRUPT_STATUS;
+
+typedef union _PCI_DEVICE_ENABLE_PCI_INTERRUPT
+{
+ struct
+ {
+ UCHAR EnableDprInt:1;
+ UCHAR reserved:2;
+ UCHAR EnableStaInt:1;
+ UCHAR EnableRtaInt:1;
+ UCHAR EnableRmaInt:1;
+ UCHAR EnableSseInt:1;
+ UCHAR EnableDpeInt:1;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_ENABLE_PCI_INTERRUPT,
+ *PPCI_DEVICE_ENABLE_PCI_INTERRUPT;
+
+typedef union _PCI_DEVICE_GENERAL_PURPOSE_IO_REGISTERS
+{
+ struct
+ {
+ UCHAR GPIOREG0:1;
+ UCHAR GPIOREG1:1;
+ UCHAR GPIOREG2:1;
+ UCHAR GPIOREG3:1;
+ UCHAR reserved:4;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_GENERAL_PURPOSE_IO_REGISTERS,
+ *PPCI_DEVICE_GENERAL_PURPOSE_IO_REGISTERS;
+
+typedef union _PCI_DEVICE_GENERAL_PURPOSE_IOCTL
+{
+ struct
+ {
+ UCHAR GPIOCTL0:1;
+ UCHAR GPIOCTL1:1;
+ UCHAR GPIOCTL2:1;
+ UCHAR GPIOCTL3:1;
+ UCHAR reserved:4;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_GENERAL_PURPOSE_IOCTL,
+ *PPCI_DEVICE_GENERAL_PURPOSE_IOCTL;
+
+typedef union _PCI_DEVICE_DMA_CONTROL
+{
+ struct
+ {
+ UCHAR StopOnPerr:1;
+ UCHAR DualAddressCycleEnable:1;
+ UCHAR CacheThresholdEnable:1;
+ UCHAR MemoryReadCmdEnable:1;
+ UCHAR Reserved:4;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_DMA_CONTROL,
+ *PPCI_DEVICE_DMA_CONTROL;
+
+typedef union _PCI_DEVICE_DMA_STATUS
+{
+ struct
+ {
+ UCHAR FifoEmpty:1;
+ UCHAR FifoFull:1;
+ UCHAR FifoThreshold:1;
+ UCHAR HostDmaDone:1;
+ UCHAR FifoCacheThreshold:1;
+ UCHAR Reserved:3;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_DMA_STATUS,
+ *PPCI_DEVICE_DMA_STATUS;
+
+typedef union _PCI_DEVICE_DMA_DIAG
+{
+ struct
+ {
+ UCHAR HostDmaEnable:1;
+ UCHAR DataPathDirection:1;
+ UCHAR Reserved:6;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_DMA_DIAG,
+ *PPCI_DEVICE_DMA_DIAG;
+
+typedef union _PCI_DEVICE_HOST_COUNT
+{
+ struct
+ {
+ ULONG hcLowLow:8;
+ ULONG hcLowHigh:8;
+ ULONG hcHighLow:8;
+ ULONG Reserved:8;
+ };
+
+ ULONG reg;
+}
+ PCI_DEVICE_HOST_COUNT,
+ *PPCI_DEVICE_HOST_COUNT;
+
+typedef union _PCI_DEVICE_DATA_FIFO_READ_ADDRESS
+{
+ struct
+ {
+ UCHAR MasterFifoPointer:7;
+ UCHAR Reserved:1;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_DATA_FIFO_READ_ADDRESS,
+ *PPCI_DEVICE_DATA_FIFO_READ_ADDRESS;
+
+typedef union _PCI_DEVICE_DATA_FIFO_WRITE_ADDRESS
+{
+ struct
+ {
+ UCHAR MasterFifoPointer:7;
+ UCHAR Reserved:1;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_DATA_FIFO_WRITE_ADDRESS,
+ *PPCI_DEVICE_DATA_FIFO_WRITE_ADDRESS;
+
+typedef union _PCI_DEVICE_DATA_FIFO_THRESHOLD
+{
+ struct
+ {
+ UCHAR Reserved0:2;
+ UCHAR DFTHRSH:4;
+ UCHAR Reserved1:2;
+ };
+
+ UCHAR reg;
+}
+ PCI_DEVICE_DATA_FIFO_THRESHOLD,
+ *PPCI_DEVICE_DATA_FIFO_THRESHOLD;
+
+typedef union _PCI_DEVICE_LOW_HOST_ADDRESS
+{
+ struct
+ {
+ UCHAR lhaLowLow;
+ UCHAR lhaLowHigh;
+ UCHAR lhaHighLow;
+ UCHAR lhaHighHigh;
+ };
+
+ ULONG reg;
+}
+ PCI_DEVICE_LOW_HOST_ADDRESS,
+ *PPCI_DEVICE_LOW_HOST_ADDRESS;
+
+typedef union _PCI_DEVICE_HIGH_HOST_ADDRESS
+{
+ struct
+ {
+ ULONG hhaLowLow:8;
+ ULONG hhaLowHigh:8;
+ ULONG hhaHighLow:8;
+ ULONG hhaHighHigh:8;
+ };
+
+ ULONG reg;
+}
+ PCI_DEVICE_HIGH_HOST_ADDRESS,
+ *PPCI_DEVICE_HIGH_HOST_ADDRESS;
+
+typedef union _PCI_DEVICE_FIFO_DATA_REGISTER
+{
+ struct
+ {
+ ULONG dfrLowLow:8;
+ ULONG dfrLowHigh:8;
+ ULONG dfrHighLow:8;
+ ULONG dfrHighHigh:8;
+ };
+
+ ULONG reg;
+}
+ PCI_DEVICE_FIFO_DATA_REGISTER,
+ *PPCI_DEVICE_FIFO_DATA_REGISTER;
+
+typedef union _PCI_DEVICE_DATA_ADDRESS
+{
+ struct
+ {
+ ULONG daLowLow:8;
+ ULONG daLowHigh:8;
+ ULONG daHighLow:8;
+ ULONG daHighHigh:8;
+ };
+
+ ULONG reg;
+}
+ PCI_DEVICE_DATA_ADDRESS,
+ *PPCI_DEVICE_DATA_ADDRESS;
+
+typedef union _PCI_DEVICE_DATA_PORT
+{
+ struct
+ {
+ ULONG dpLowLow:8;
+ ULONG dpLowHigh:8;
+ ULONG dpHighLow:8;
+ ULONG dpHighHigh:8;
+ };
+
+ ULONG reg;
+}
+ PCI_DEVICE_DATA_PORT,
+ *PPCI_DEVICE_DATA_PORT;
+
+#define PCI_DEVICE_CONFIG_OFFSET 0x40
+#define PCI_DEVICE_STATUS_OFFSET 0x41
+#define PCI_INTERRUPT_STATUS_OFFSET 0x44
+#define PCI_ENABLE_INTERRUPT_OFFSET 0x45
+#define PCI_GENERAL_PURPOSE_IO_PORT_OFFSET 0x46
+#define PCI_GENERAL_PURPOSE_IOCTL_OFFSET 0x47
+#define PCI_DMA_CONTROL_OFFSET 0x4C
+#define PCI_DMA_STATUS_OFFSET 0x4D
+#define PCI_DMA_DIAGNOSTIC_OFFSET 0x4E
+#define PCI_HOST_COUNT0_OFFSET 0x50
+#define PCI_HOST_COUNT1_OFFSET 0x51
+#define PCI_HOST_COUNT2_OFFSET 0x52
+#define PCI_DATA_FIFO_READ_ADDRESS_OFFSET 0x54
+#define PCI_DATA_FIFO_WRITE_ADDRESS_OFFSET 0x55
+#define PCI_DATA_FIFO_THRESHOLD_OFFSET 0x56
+#define PCI_LOW_HOST_ADDRESS0_OFFSET 0x58
+#define PCI_LOW_HOST_ADDRESS1_OFFSET 0x59
+#define PCI_LOW_HOST_ADDRESS2_OFFSET 0x5A
+#define PCI_LOW_HOST_ADDRESS3_OFFSET 0x5B
+#define PCI_HIGH_HOST_ADDRESS0_OFFSET 0x5C
+#define PCI_HIGH_HOST_ADDRESS1_OFFSET 0x5D
+#define PCI_HIGH_HOST_ADDRESS2_OFFSET 0x5E
+#define PCI_HIGH_HOST_ADDRESS3_OFFSET 0x5F
+#define PCI_FIFO_DATA_REGISTER0_OFFSET 0x60
+#define PCI_FIFO_DATA_REGISTER1_OFFSET 0x61
+#define PCI_FIFO_DATA_REGISTER2_OFFSET 0x62
+#define PCI_FIFO_DATA_REGISTER3_OFFSET 0x63
+
+
+#define SET_PCI_DEV_CFG(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DEVICE_CONFIG_OFFSET), (_reg))
+#define GET_PCI_DEV_CFG(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DEVICE_CONFIG_OFFSET), (PUCHAR)(_reg))
+
+
+#define SET_PCI_DEV_STATUS(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DEVICE_STATUS_OFFSET), (_reg))
+#define GET_PCI_DEV_STATUS(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DEVICE_STATUS_OFFSET), (PUCHAR)(_reg))
+
+#define SET_PCI_DEV_INT_STATUS(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_INTERRUPT_STATUS_OFFSET), (_reg))
+#define GET_PCI_DEV_INT_STATUS(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_INTERRUPT_STATUS_OFFSET), (PUCHAR)(_reg))
+
+#define SET_PCI_DEV_ENABLE_INT(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_ENABLE_INTERRUPT_OFFSET), (_reg))
+#define GET_PCI_DEV_ENABLE_INT(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_ENABLE_INTERRUPT_OFFSET), (PUCHAR)(_reg))
+
+
+#define SET_PCI_DEV_GP_IO_REG(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_GENERAL_PURPOSE_IO_PORT_OFFSET), (_reg))
+#define GET_PCI_DEV_GP_IO_REG(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_GENERAL_PURPOSE_IO_PORT_OFFSET), (PUCHAR)(_reg))
+
+#define SET_PCI_DEV_GP_IOCTL(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_GENERAL_PURPOSE_IOCTL_OFFSET), (_reg))
+#define GET_PCI_DEV_GP_IOCTL(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_GENERAL_PURPOSE_IOCTL_OFFSET), (PUCHAR)(_reg))
+
+#define SET_PCI_DEV_DMA_CONTROL(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DMA_CONTROL_OFFSET), (_reg))
+#define GET_PCI_DEV_DMA_CONTROL(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DMA_CONTROL_OFFSET), (PUCHAR)(_reg))
+
+#define SET_PCI_DEV_DMA_STATUS(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DMA_STATUS_OFFSET), (_reg))
+#define GET_PCI_DEV_DMA_STATUS(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DMA_STATUS_OFFSET), (PUCHAR)(_reg))
+
+
+#define SET_PCI_DEV_DMA_DIAG(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DMA_DIAGNOSTIC_OFFSET), (_reg))
+#define GET_PCI_DEV_DMA_DIAG(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DMA_DIAGNOSTIC_OFFSET), (PUCHAR)(_reg))
+
+#define SET_PCI_DEV_DATA_READ_ADDRESS(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DATA_FIFO_READ_ADDRESS_OFFSET), (_reg))
+#define GET_PCI_DEV_DATA_READ_ADDRESS(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DATA_FIFO_READ_ADDRESS_OFFSET), (PUCHAR)(_reg))
+
+#define SET_PCI_DEV_DATA_WRITE_ADDRESS(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DATA_FIFO_WRITE_ADDRESS_OFFSET), (_reg))
+#define GET_PCI_DEV_DATA_WRITE_ADDRESS(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DATA_FIFO_WRITE_ADDRESS_OFFSET), (PUCHAR)(_reg))
+
+#define SET_PCI_DEV_DATA_THRESHOLD(_HwInfo, _reg) NdisWriteRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DATA_FIFO_THRESHOLD_OFFSET), (_reg))
+#define GET_PCI_DEV_DATA_THRESHOLD(_HwInfo, _reg) NdisReadRegisterUchar(((_HwInfo)->PciConfigSpace + PCI_DATA_FIFO_THRESHOLD_OFFSET), (PUCHAR)(_reg))
+
+
+//////////////////////////////////////////////////////////////////////////
+//
+// SUNI REGISTER SET
+//
+//////////////////////////////////////////////////////////////////////////
+
+//
+// SUNI Master Reset and Identify register.
+//
+#define SUNI_MASTER_RESET_IDENTITY 0x00
+#define SET_SUNI_MASTER_RESET_IDEN(_HwInfo, _value) NdisWriteRegisterUchar(((_HwInfo)->Phy + SUNI_MASTER_RESET_IDENTITY), (_value))
+#define GET_SUNI_MASTER_RESET_IDEN(_HwInfo, _value) NdisReadRegisterUchar(((_HwInfo)->Phy + SUNI_MASTER_RESET_IDENTITY), (_value))
+
+#define fSUNI_MRI_RESET 0x80
+
+//
+// RACP Interrupt Enable/Status
+//
+#define SUNI_RACP_INTERRUPT_ENABLE_STATUS 0x144
+#define SET_SUNI_RACP_INT_ENABLE_STATUS(_HwInfo, _value) NdisWriteRegisterUchar(((_HwInfo)->Phy + SUNI_RACP_INTERRUPT_ENABLE_STATUS), (_value))
+#define GET_SUNI_RACP_INT_ENABLE_STATUS(_HwInfo, _value) NdisReadRegisterUchar(((_HwInfo)->Phy + SUNI_RACP_INTERRUPT_ENABLE_STATUS), (_value))
+
+#define fSUNI_RACP_IES_FUDRI 0x01
+#define fSUNI_RACP_IES_FOVRI 0x02
+#define fSUNI_RACP_IES_UHCSI 0x04
+#define fSUNI_RACP_IES_CHCSI 0x08
+#define fSUNI_RACP_IES_OOCDI 0x10
+#define fSUNI_RACP_IES_FIFOE 0x20
+#define fSUNI_RACP_IES_HCSE 0x40
+#define fSUNI_RACP_IES_OOCDE 0x80
+
+
+//
+// Master Test
+//
+#define SUNI_MASTER_TEST 0x200
+#define SET_SUNI_MASTER_TEST(_HwInfo, _value) NdisWriteRegisterUchar(((_HwInfo)->Phy + SUNI_MASTER_TEST), (_value))
+#define GET_SUNI_MASTER_TEST(_HwInfo, _value) NdisReadRegisterUchar(((_HwInfo)->Phy + SUNI_MASTER_TEST), (_value))
+
+//////////////////////////////////////////////////////////////////////////
+//
+// IBM 25Mbp TC chipset
+//
+//////////////////////////////////////////////////////////////////////////
+
+#define IBM_TC_STATUS 0x00
+#define SET_IBM_TC_STATUS(_HwInfo, _value) NdisWriteRegisterUchar(((_HwInfo)->Phy + IBM_TC_STATUS), (_value))
+#define GET_IBM_TC_STATUS(_HwInfo, _value) NdisReadRegisterUchar(((_HwInfo)->Phy + IBM_TC_STATUS), (_value))
+
+#define IBM_TC_MODE 0x00
+#define SET_IBM_TC_MODE(_HwInfo, _value) NdisWriteRegisterUchar(((_HwInfo)->Phy + IBM_TC_MODE), (_value))
+#define GET_IBM_TC_MODE(_HwInfo, _value) NdisReadRegisterUchar(((_HwInfo)->Phy + IBM_TC_MODE), (_value))
+
+#define IBM_TC_FLUSH_RECEIVE_FIFO 0x00
+#define SET_IBM_TC_FLUSH_RECEIVE_FIFO(_HwInfo, _value) NdisWriteRegisterUchar(((_HwInfo)->Phy + IBM_TC_FLUSH_RECEIVE_FIFO), (_value))
+#define GET_IBM_TC_FLUSH_RECEIVE_FIFO(_HwInfo, _value) NdisReadRegisterUchar(((_HwInfo)->Phy + IBM_TC_FLUSH_RECEIVE_FIFO), (_value))
+
+#define IBM_TC_SOFTWARE_RESET 0x00
+#define SET_IBM_TC_SOFTWARE_RESET(_HwInfo, _value) NdisWriteRegisterUchar(((_HwInfo)->Phy + IBM_TC_SOFTWARE_RESET), (_value))
+#define GET_IBM_TC_SOFTWARE_RESET(_HwInfo, _value) NdisReadRegisterUchar(((_HwInfo)->Phy + IBM_TC_SOFTWARE_RESET), (_value))
+
+#define IBM_TC_MASK 0x00
+#define SET_IBM_TC_MASK(_HwInfo, _value) NdisWriteRegisterUchar(((_HwInfo)->Phy + IBM_TC_MASK), (_value))
+#define GET_IBM_TC_MASK(_HwInfo, _value) NdisReadRegisterUchar(((_HwInfo)->Phy + IBM_TC_MASK), (_value))
+
+
+#endif // __HW_H
+
+