Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
aic7xxx_pci.c File Reference
#include <dev/aic7xxx/aic7xxx_osm.h>
#include <dev/aic7xxx/aic7xxx_inline.h>
#include <dev/aic7xxx/aic7xxx_93cx6.h>
#include "aic7xxx_pci.h"

Go to the source code of this file.

Macros

#define AHC_PCI_IOADDR   PCIR_MAPS /* I/O Address */
 
#define AHC_PCI_MEMADDR   (PCIR_MAPS + 4) /* Mem I/O Address */
 
#define DEVID_9005_TYPE(id)   ((id) & 0xF)
 
#define DEVID_9005_TYPE_HBA   0x0 /* Standard Card */
 
#define DEVID_9005_TYPE_AAA   0x3 /* RAID Card */
 
#define DEVID_9005_TYPE_SISL   0x5 /* Container ROMB */
 
#define DEVID_9005_TYPE_MB   0xF /* On Motherboard */
 
#define DEVID_9005_MAXRATE(id)   (((id) & 0x30) >> 4)
 
#define DEVID_9005_MAXRATE_U160   0x0
 
#define DEVID_9005_MAXRATE_ULTRA2   0x1
 
#define DEVID_9005_MAXRATE_ULTRA   0x2
 
#define DEVID_9005_MAXRATE_FAST   0x3
 
#define DEVID_9005_MFUNC(id)   (((id) & 0x40) >> 6)
 
#define DEVID_9005_CLASS(id)   (((id) & 0xFF00) >> 8)
 
#define DEVID_9005_CLASS_SPI   0x0 /* Parallel SCSI */
 
#define SUBID_9005_TYPE(id)   ((id) & 0xF)
 
#define SUBID_9005_TYPE_MB   0xF /* On Motherboard */
 
#define SUBID_9005_TYPE_CARD   0x0 /* Standard Card */
 
#define SUBID_9005_TYPE_LCCARD   0x1 /* Low Cost Card */
 
#define SUBID_9005_TYPE_RAID   0x3 /* Combined with Raid */
 
#define SUBID_9005_TYPE_KNOWN(id)
 
#define SUBID_9005_MAXRATE(id)   (((id) & 0x30) >> 4)
 
#define SUBID_9005_MAXRATE_ULTRA2   0x0
 
#define SUBID_9005_MAXRATE_ULTRA   0x1
 
#define SUBID_9005_MAXRATE_U160   0x2
 
#define SUBID_9005_MAXRATE_RESERVED   0x3
 
#define SUBID_9005_SEEPTYPE(id)
 
#define SUBID_9005_SEEPTYPE_NONE   0x0
 
#define SUBID_9005_SEEPTYPE_1K   0x1
 
#define SUBID_9005_SEEPTYPE_2K_4K   0x2
 
#define SUBID_9005_SEEPTYPE_RESERVED   0x3
 
#define SUBID_9005_AUTOTERM(id)
 
#define SUBID_9005_NUMCHAN(id)
 
#define SUBID_9005_LEGACYCONN(id)
 
#define SUBID_9005_MFUNCENB(id)
 
#define SUBID_9005_CARD_SCSIWIDTH_MASK   0x2000
 
#define SUBID_9005_CARD_PCIWIDTH_MASK   0x4000
 
#define SUBID_9005_CARD_SEDIFF_MASK   0x8000
 
#define AHC_394X_SLOT_CHANNEL_A   4
 
#define AHC_394X_SLOT_CHANNEL_B   5
 
#define AHC_398X_SLOT_CHANNEL_A   4
 
#define AHC_398X_SLOT_CHANNEL_B   8
 
#define AHC_398X_SLOT_CHANNEL_C   12
 
#define AHC_494X_SLOT_CHANNEL_A   4
 
#define AHC_494X_SLOT_CHANNEL_B   5
 
#define AHC_494X_SLOT_CHANNEL_C   6
 
#define AHC_494X_SLOT_CHANNEL_D   7
 
#define DEVCONFIG   0x40
 
#define PCIERRGENDIS   0x80000000ul
 
#define SCBSIZE32   0x00010000ul /* aic789X only */
 
#define REXTVALID   0x00001000ul /* ultra cards only */
 
#define MPORTMODE   0x00000400ul /* aic7870+ only */
 
#define RAMPSM   0x00000200ul /* aic7870+ only */
 
#define VOLSENSE   0x00000100ul
 
#define PCI64BIT   0x00000080ul /* 64Bit PCI bus (Ultra2 Only)*/
 
#define SCBRAMSEL   0x00000080ul
 
#define MRDCEN   0x00000040ul
 
#define EXTSCBTIME   0x00000020ul /* aic7870 only */
 
#define EXTSCBPEN   0x00000010ul /* aic7870 only */
 
#define BERREN   0x00000008ul
 
#define DACEN   0x00000004ul
 
#define STPWLEVEL   0x00000002ul
 
#define DIFACTNEGEN   0x00000001ul /* aic7870 only */
 
#define CSIZE_LATTIME   0x0c
 
#define CACHESIZE   0x0000003ful /* only 5 bits */
 
#define LATTIME   0x0000ff00ul
 
#define DPE   0x80
 
#define SSE   0x40
 
#define RMA   0x20
 
#define RTA   0x10
 
#define STA   0x08
 
#define DPR   0x01
 

Functions

struct ahc_pci_identityahc_find_pci_device (ahc_dev_softc_t pci)
 
int ahc_pci_config (struct ahc_softc *ahc, const struct ahc_pci_identity *entry)
 
int ahc_pci_test_register_access (struct ahc_softc *ahc)
 
int ahc_acquire_seeprom (struct ahc_softc *ahc, struct seeprom_descriptor *sd)
 
void ahc_release_seeprom (struct seeprom_descriptor *sd)
 

Macro Definition Documentation

#define AHC_394X_SLOT_CHANNEL_A   4

Definition at line 563 of file aic7xxx_pci.c.

#define AHC_394X_SLOT_CHANNEL_B   5

Definition at line 564 of file aic7xxx_pci.c.

#define AHC_398X_SLOT_CHANNEL_A   4

Definition at line 566 of file aic7xxx_pci.c.

#define AHC_398X_SLOT_CHANNEL_B   8

Definition at line 567 of file aic7xxx_pci.c.

#define AHC_398X_SLOT_CHANNEL_C   12

Definition at line 568 of file aic7xxx_pci.c.

#define AHC_494X_SLOT_CHANNEL_A   4

Definition at line 570 of file aic7xxx_pci.c.

#define AHC_494X_SLOT_CHANNEL_B   5

Definition at line 571 of file aic7xxx_pci.c.

#define AHC_494X_SLOT_CHANNEL_C   6

Definition at line 572 of file aic7xxx_pci.c.

#define AHC_494X_SLOT_CHANNEL_D   7

Definition at line 573 of file aic7xxx_pci.c.

#define AHC_PCI_IOADDR   PCIR_MAPS /* I/O Address */

Definition at line 70 of file aic7xxx_pci.c.

#define AHC_PCI_MEMADDR   (PCIR_MAPS + 4) /* Mem I/O Address */

Definition at line 71 of file aic7xxx_pci.c.

#define BERREN   0x00000008ul

Definition at line 587 of file aic7xxx_pci.c.

#define CACHESIZE   0x0000003ful /* only 5 bits */

Definition at line 593 of file aic7xxx_pci.c.

#define CSIZE_LATTIME   0x0c

Definition at line 592 of file aic7xxx_pci.c.

#define DACEN   0x00000004ul

Definition at line 588 of file aic7xxx_pci.c.

#define DEVCONFIG   0x40

Definition at line 575 of file aic7xxx_pci.c.

#define DEVID_9005_CLASS (   id)    (((id) & 0xFF00) >> 8)

Definition at line 87 of file aic7xxx_pci.c.

#define DEVID_9005_CLASS_SPI   0x0 /* Parallel SCSI */

Definition at line 88 of file aic7xxx_pci.c.

#define DEVID_9005_MAXRATE (   id)    (((id) & 0x30) >> 4)

Definition at line 79 of file aic7xxx_pci.c.

#define DEVID_9005_MAXRATE_FAST   0x3

Definition at line 83 of file aic7xxx_pci.c.

#define DEVID_9005_MAXRATE_U160   0x0

Definition at line 80 of file aic7xxx_pci.c.

#define DEVID_9005_MAXRATE_ULTRA   0x2

Definition at line 82 of file aic7xxx_pci.c.

#define DEVID_9005_MAXRATE_ULTRA2   0x1

Definition at line 81 of file aic7xxx_pci.c.

#define DEVID_9005_MFUNC (   id)    (((id) & 0x40) >> 6)

Definition at line 85 of file aic7xxx_pci.c.

#define DEVID_9005_TYPE (   id)    ((id) & 0xF)

Definition at line 73 of file aic7xxx_pci.c.

#define DEVID_9005_TYPE_AAA   0x3 /* RAID Card */

Definition at line 75 of file aic7xxx_pci.c.

#define DEVID_9005_TYPE_HBA   0x0 /* Standard Card */

Definition at line 74 of file aic7xxx_pci.c.

#define DEVID_9005_TYPE_MB   0xF /* On Motherboard */

Definition at line 77 of file aic7xxx_pci.c.

#define DEVID_9005_TYPE_SISL   0x5 /* Container ROMB */

Definition at line 76 of file aic7xxx_pci.c.

#define DIFACTNEGEN   0x00000001ul /* aic7870 only */

Definition at line 590 of file aic7xxx_pci.c.

#define DPE   0x80

Definition at line 597 of file aic7xxx_pci.c.

#define DPR   0x01

Definition at line 602 of file aic7xxx_pci.c.

#define EXTSCBPEN   0x00000010ul /* aic7870 only */

Definition at line 586 of file aic7xxx_pci.c.

#define EXTSCBTIME   0x00000020ul /* aic7870 only */

Definition at line 585 of file aic7xxx_pci.c.

#define LATTIME   0x0000ff00ul

Definition at line 594 of file aic7xxx_pci.c.

#define MPORTMODE   0x00000400ul /* aic7870+ only */

Definition at line 579 of file aic7xxx_pci.c.

#define MRDCEN   0x00000040ul

Definition at line 584 of file aic7xxx_pci.c.

#define PCI64BIT   0x00000080ul /* 64Bit PCI bus (Ultra2 Only)*/

Definition at line 582 of file aic7xxx_pci.c.

#define PCIERRGENDIS   0x80000000ul

Definition at line 576 of file aic7xxx_pci.c.

#define RAMPSM   0x00000200ul /* aic7870+ only */

Definition at line 580 of file aic7xxx_pci.c.

#define REXTVALID   0x00001000ul /* ultra cards only */

Definition at line 578 of file aic7xxx_pci.c.

#define RMA   0x20

Definition at line 599 of file aic7xxx_pci.c.

#define RTA   0x10

Definition at line 600 of file aic7xxx_pci.c.

#define SCBRAMSEL   0x00000080ul

Definition at line 583 of file aic7xxx_pci.c.

#define SCBSIZE32   0x00010000ul /* aic789X only */

Definition at line 577 of file aic7xxx_pci.c.

#define SSE   0x40

Definition at line 598 of file aic7xxx_pci.c.

#define STA   0x08

Definition at line 601 of file aic7xxx_pci.c.

#define STPWLEVEL   0x00000002ul

Definition at line 589 of file aic7xxx_pci.c.

#define SUBID_9005_AUTOTERM (   id)
Value:
? (((id) & 0x400) >> 10) == 0 \
: (((id) & 0x40) >> 6) == 0)

Definition at line 116 of file aic7xxx_pci.c.

#define SUBID_9005_CARD_PCIWIDTH_MASK   0x4000

Definition at line 140 of file aic7xxx_pci.c.

#define SUBID_9005_CARD_SCSIWIDTH_MASK   0x2000

Definition at line 139 of file aic7xxx_pci.c.

#define SUBID_9005_CARD_SEDIFF_MASK   0x8000

Definition at line 141 of file aic7xxx_pci.c.

#define SUBID_9005_LEGACYCONN (   id)
Value:
? 0 \
: ((id) & 0x80) >> 7)

Definition at line 126 of file aic7xxx_pci.c.

#define SUBID_9005_MAXRATE (   id)    (((id) & 0x30) >> 4)

Definition at line 102 of file aic7xxx_pci.c.

#define SUBID_9005_MAXRATE_RESERVED   0x3

Definition at line 106 of file aic7xxx_pci.c.

#define SUBID_9005_MAXRATE_U160   0x2

Definition at line 105 of file aic7xxx_pci.c.

#define SUBID_9005_MAXRATE_ULTRA   0x1

Definition at line 104 of file aic7xxx_pci.c.

#define SUBID_9005_MAXRATE_ULTRA2   0x0

Definition at line 103 of file aic7xxx_pci.c.

#define SUBID_9005_MFUNCENB (   id)
Value:
? ((id) & 0x800) >> 11 \
: ((id) & 0x1000) >> 12)

Definition at line 131 of file aic7xxx_pci.c.

#define SUBID_9005_NUMCHAN (   id)
Value:
? ((id) & 0x300) >> 8 \
: ((id) & 0xC00) >> 10)

Definition at line 121 of file aic7xxx_pci.c.

#define SUBID_9005_SEEPTYPE (   id)
Value:
? ((id) & 0xC0) >> 6 \
: ((id) & 0x300) >> 8)

Definition at line 108 of file aic7xxx_pci.c.

#define SUBID_9005_SEEPTYPE_1K   0x1

Definition at line 113 of file aic7xxx_pci.c.

#define SUBID_9005_SEEPTYPE_2K_4K   0x2

Definition at line 114 of file aic7xxx_pci.c.

#define SUBID_9005_SEEPTYPE_NONE   0x0

Definition at line 112 of file aic7xxx_pci.c.

#define SUBID_9005_SEEPTYPE_RESERVED   0x3

Definition at line 115 of file aic7xxx_pci.c.

#define SUBID_9005_TYPE (   id)    ((id) & 0xF)

Definition at line 90 of file aic7xxx_pci.c.

#define SUBID_9005_TYPE_CARD   0x0 /* Standard Card */

Definition at line 92 of file aic7xxx_pci.c.

#define SUBID_9005_TYPE_KNOWN (   id)
Value:
((((id) & 0xF) == SUBID_9005_TYPE_MB) \
|| (((id) & 0xF) == SUBID_9005_TYPE_CARD) \
|| (((id) & 0xF) == SUBID_9005_TYPE_LCCARD) \
|| (((id) & 0xF) == SUBID_9005_TYPE_RAID))

Definition at line 96 of file aic7xxx_pci.c.

#define SUBID_9005_TYPE_LCCARD   0x1 /* Low Cost Card */

Definition at line 93 of file aic7xxx_pci.c.

#define SUBID_9005_TYPE_MB   0xF /* On Motherboard */

Definition at line 91 of file aic7xxx_pci.c.

#define SUBID_9005_TYPE_RAID   0x3 /* Combined with Raid */

Definition at line 94 of file aic7xxx_pci.c.

#define VOLSENSE   0x00000100ul

Definition at line 581 of file aic7xxx_pci.c.

Function Documentation

int ahc_acquire_seeprom ( struct ahc_softc ahc,
struct seeprom_descriptor sd 
)

Definition at line 1839 of file aic7xxx_pci.c.

struct ahc_pci_identity* ahc_find_pci_device ( ahc_dev_softc_t  pci)
read

Definition at line 671 of file aic7xxx_pci.c.

int ahc_pci_config ( struct ahc_softc ahc,
const struct ahc_pci_identity entry 
)

Definition at line 712 of file aic7xxx_pci.c.

int ahc_pci_test_register_access ( struct ahc_softc ahc)

Definition at line 1171 of file aic7xxx_pci.c.

void ahc_release_seeprom ( struct seeprom_descriptor sd)

Definition at line 1867 of file aic7xxx_pci.c.