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