Linux-2.6.12-rc2
[linux-2.6.git] / drivers / net / skfp / h / targethw.h
1 /******************************************************************************
2  *
3  *      (C)Copyright 1998,1999 SysKonnect,
4  *      a business unit of Schneider & Koch & Co. Datensysteme GmbH.
5  *
6  *      This program is free software; you can redistribute it and/or modify
7  *      it under the terms of the GNU General Public License as published by
8  *      the Free Software Foundation; either version 2 of the License, or
9  *      (at your option) any later version.
10  *
11  *      The information in this file is provided "AS IS" without warranty.
12  *
13  ******************************************************************************/
14
15 #ifndef _TARGETHW_
16 #define _TARGETHW_
17
18         /*
19          *  PCI Watermark definition
20          */
21 #ifdef  PCI
22 #define RX_WATERMARK    24
23 #define TX_WATERMARK    24
24 #define SK_ML_ID_1      0x20
25 #define SK_ML_ID_2      0x30
26 #endif
27
28 #include        "h/skfbi.h"
29 #ifndef TAG_MODE        
30 #include        "h/fplus.h"
31 #else
32 #include        "h/fplustm.h"
33 #endif
34
35 #ifndef HW_PTR
36 #define HW_PTR  void __iomem *
37 #endif
38
39 #ifdef MULT_OEM
40 #define OI_STAT_LAST            0       /* end of OEM data base */
41 #define OI_STAT_PRESENT         1       /* entry present but not empty */
42 #define OI_STAT_VALID           2       /* holds valid ID, but is not active */ 
43 #define OI_STAT_ACTIVE          3       /* holds valid ID, entry is active */
44                                         /* active = adapter is supported */
45
46 /* Memory representation of IDs must match representation in adapter. */
47 struct  s_oem_ids {
48         u_char  oi_status ;             /* Stat: last, present, valid, active */
49         u_char  oi_mark[5] ;            /* "PID00" .. "PID07" ..        */
50         u_char  oi_id[4] ;              /* id bytes, representation as  */
51                                         /* defined by hardware,         */      
52 #ifdef PCI
53         u_char  oi_sub_id[4] ;          /* sub id bytes, representation as */
54                                         /* defined by hardware,         */
55 #endif
56 #ifdef ISA
57         u_char  oi_logo_len ;           /* the length of the adapter logo */    
58         u_char  oi_logo[6] ;            /* the adapter logo             */
59         u_char  oi_reserved1 ;
60 #endif  /* ISA */
61 } ;
62 #endif  /* MULT_OEM */
63
64
65 struct s_smt_hw {
66         /*
67          * global
68          */
69         HW_PTR  iop ;                   /* IO base address */
70         short   dma ;                   /* DMA channel */
71         short   irq ;                   /* IRQ level */
72         short   eprom ;                 /* FLASH prom */
73 #ifndef PCI
74         short   DmaWriteExtraBytes ;    /* add bytes for DMA write */
75 #endif
76
77 #ifndef SYNC
78         u_short n_a_send ;              /* pending send requests */
79 #endif
80
81 #if     (defined(EISA) || defined(MCA) || defined(PCI))
82         short   slot ;                  /* slot number */
83         short   max_slots ;             /* maximum number of slots */
84 #endif
85
86 #if     (defined(PCI) || defined(MCA))
87         short   wdog_used ;             /* TRUE if the watch dog is used */
88 #endif
89
90 #ifdef  MCA
91         short   slot_32 ;               /* 32bit slot (1) or 16bit slot (0) */
92         short   rev ;                   /* Board revision (FMx_REV). */
93         short   VFullRead ;             /* V_full value for DMA read */
94         short   VFullWrite ;            /* V_full value for DMA write */
95 #endif
96
97 #ifdef  EISA
98         short   led ;                   /* LED for FE card */
99
100         short   dma_rmode ;             /* read mode */
101         short   dma_wmode ;             /* write mode */
102         short   dma_emode ;             /* extend mode */
103
104         /* DMA controller channel dependent io addresses */
105         u_short dma_base_word_count ;
106         u_short dma_base_address ;
107         u_short dma_base_address_page ;
108 #endif
109
110 #ifdef  PCI
111         u_short pci_handle ;            /* handle to access the BIOS func */
112         u_long  is_imask ;              /* int maske for the int source reg */
113         u_long  phys_mem_addr ;         /* physical memory address */
114         u_short mc_dummy ;              /* work around for MC compiler bug */   
115         /*
116          * state of the hardware
117          */
118         u_short hw_state ;              /* started or stopped */
119
120 #define STARTED         1
121 #define STOPPED         0
122
123         int     hw_is_64bit ;           /* does we have a 64 bit adapter */
124 #endif
125
126 #ifdef  TAG_MODE
127         u_long  pci_fix_value ;         /* value parsed by PCIFIX */
128 #endif
129
130         /*
131          * hwt.c
132          */
133         u_long  t_start ;               /* HWT start */
134         u_long  t_stop ;                /* HWT stop */
135         u_short timer_activ ;           /* HWT timer active */
136
137         /*
138          * PIC
139          */
140         u_char  pic_a1 ;
141         u_char  pic_21 ;
142
143         /*
144          * GENERIC ; do not modify beyond this line
145          */
146
147         /*
148          * physical and canonical address
149          */
150         struct fddi_addr fddi_home_addr ;
151         struct fddi_addr fddi_canon_addr ;
152         struct fddi_addr fddi_phys_addr ;
153
154         /*
155          * mac variables
156          */
157         struct mac_parameter mac_pa ;   /* tmin, tmax, tvx, treq .. */
158         struct mac_counter mac_ct ;     /* recv., lost, error  */
159         u_short mac_ring_is_up ;        /* ring is up flag */
160
161         struct s_smt_fp fp ;            /* formac+ */
162
163 #ifdef MULT_OEM
164         struct s_oem_ids *oem_id ;      /* pointer to selected id */
165         int oem_min_status ;            /* IDs to take care of */
166 #endif  /* MULT_OEM */
167
168 } ;
169 #endif