1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | /****************************************************************************** |
3 | * |
4 | * (C)Copyright 1998,1999 SysKonnect, |
5 | * a business unit of Schneider & Koch & Co. Datensysteme GmbH. |
6 | * |
7 | * The information in this file is provided "AS IS" without warranty. |
8 | * |
9 | ******************************************************************************/ |
10 | |
11 | #ifndef _TARGETHW_ |
12 | #define _TARGETHW_ |
13 | |
14 | /* |
15 | * PCI Watermark definition |
16 | */ |
17 | #ifdef PCI |
18 | #define RX_WATERMARK 24 |
19 | #define TX_WATERMARK 24 |
20 | #define SK_ML_ID_1 0x20 |
21 | #define SK_ML_ID_2 0x30 |
22 | #endif |
23 | |
24 | #include "skfbi.h" |
25 | #ifndef TAG_MODE |
26 | #include "fplus.h" |
27 | #else |
28 | #include "fplustm.h" |
29 | #endif |
30 | |
31 | #ifndef HW_PTR |
32 | #define HW_PTR void __iomem * |
33 | #endif |
34 | |
35 | #ifdef MULT_OEM |
36 | #define OI_STAT_LAST 0 /* end of OEM data base */ |
37 | #define OI_STAT_PRESENT 1 /* entry present but not empty */ |
38 | #define OI_STAT_VALID 2 /* holds valid ID, but is not active */ |
39 | #define OI_STAT_ACTIVE 3 /* holds valid ID, entry is active */ |
40 | /* active = adapter is supported */ |
41 | |
42 | /* Memory representation of IDs must match representation in adapter. */ |
43 | struct s_oem_ids { |
44 | u_char oi_status ; /* Stat: last, present, valid, active */ |
45 | u_char oi_mark[5] ; /* "PID00" .. "PID07" .. */ |
46 | u_char oi_id[4] ; /* id bytes, representation as */ |
47 | /* defined by hardware, */ |
48 | #ifdef PCI |
49 | u_char oi_sub_id[4] ; /* sub id bytes, representation as */ |
50 | /* defined by hardware, */ |
51 | #endif |
52 | } ; |
53 | #endif /* MULT_OEM */ |
54 | |
55 | |
56 | struct s_smt_hw { |
57 | /* |
58 | * global |
59 | */ |
60 | HW_PTR iop ; /* IO base address */ |
61 | short dma ; /* DMA channel */ |
62 | short irq ; /* IRQ level */ |
63 | short eprom ; /* FLASH prom */ |
64 | |
65 | #ifndef SYNC |
66 | u_short n_a_send ; /* pending send requests */ |
67 | #endif |
68 | |
69 | #if defined(PCI) |
70 | short slot ; /* slot number */ |
71 | short max_slots ; /* maximum number of slots */ |
72 | short wdog_used ; /* TRUE if the watch dog is used */ |
73 | #endif |
74 | |
75 | #ifdef PCI |
76 | u_short pci_handle ; /* handle to access the BIOS func */ |
77 | u_long is_imask ; /* int maske for the int source reg */ |
78 | u_long phys_mem_addr ; /* physical memory address */ |
79 | u_short mc_dummy ; /* work around for MC compiler bug */ |
80 | /* |
81 | * state of the hardware |
82 | */ |
83 | u_short hw_state ; /* started or stopped */ |
84 | |
85 | #define STARTED 1 |
86 | #define STOPPED 0 |
87 | |
88 | int hw_is_64bit ; /* does we have a 64 bit adapter */ |
89 | #endif |
90 | |
91 | #ifdef TAG_MODE |
92 | u_long pci_fix_value ; /* value parsed by PCIFIX */ |
93 | #endif |
94 | |
95 | /* |
96 | * hwt.c |
97 | */ |
98 | u_long t_start ; /* HWT start */ |
99 | u_long t_stop ; /* HWT stop */ |
100 | u_short timer_activ ; /* HWT timer active */ |
101 | |
102 | /* |
103 | * PIC |
104 | */ |
105 | u_char pic_a1 ; |
106 | u_char pic_21 ; |
107 | |
108 | /* |
109 | * GENERIC ; do not modify beyond this line |
110 | */ |
111 | |
112 | /* |
113 | * physical and canonical address |
114 | */ |
115 | struct fddi_addr fddi_home_addr ; |
116 | struct fddi_addr fddi_canon_addr ; |
117 | struct fddi_addr fddi_phys_addr ; |
118 | |
119 | /* |
120 | * mac variables |
121 | */ |
122 | struct mac_parameter mac_pa ; /* tmin, tmax, tvx, treq .. */ |
123 | struct mac_counter mac_ct ; /* recv., lost, error */ |
124 | u_short mac_ring_is_up ; /* ring is up flag */ |
125 | |
126 | struct s_smt_fp fp ; /* formac+ */ |
127 | |
128 | #ifdef MULT_OEM |
129 | struct s_oem_ids *oem_id ; /* pointer to selected id */ |
130 | int oem_min_status ; /* IDs to take care of */ |
131 | #endif /* MULT_OEM */ |
132 | |
133 | } ; |
134 | #endif |
135 | |