xref: /openbmc/linux/drivers/net/fddi/skfp/h/targethw.h (revision 75bf465f0bc33e9b776a46d6a1b9b990f5fb7c37)
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