targethw.h 3.3 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
/******************************************************************************
 *
 *	(C)Copyright 1998,1999 SysKonnect,
 *	a business unit of Schneider & Koch & Co. Datensysteme GmbH.
 *
 *	This program is free software; you can redistribute it and/or modify
 *	it under the terms of the GNU General Public License as published by
 *	the Free Software Foundation; either version 2 of the License, or
 *	(at your option) any later version.
 *
 *	The information in this file is provided "AS IS" without warranty.
 *
 ******************************************************************************/

#ifndef	_TARGETHW_
#define _TARGETHW_

	/*
	 *  PCI Watermark definition
	 */
#ifdef	PCI
#define	RX_WATERMARK	24
#define TX_WATERMARK	24
#define SK_ML_ID_1	0x20
#define SK_ML_ID_2	0x30
#endif

28
#include	"skfbi.h"
L
Linus Torvalds 已提交
29
#ifndef TAG_MODE	
30
#include	"fplus.h"
L
Linus Torvalds 已提交
31
#else
32
#include	"fplustm.h"
L
Linus Torvalds 已提交
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
#endif

#ifndef	HW_PTR
#define HW_PTR  void __iomem *
#endif

#ifdef MULT_OEM
#define	OI_STAT_LAST		0	/* end of OEM data base */
#define	OI_STAT_PRESENT		1	/* entry present but not empty */
#define	OI_STAT_VALID		2	/* holds valid ID, but is not active */ 
#define	OI_STAT_ACTIVE		3	/* holds valid ID, entry is active */
					/* active = adapter is supported */

/* Memory representation of IDs must match representation in adapter. */
struct	s_oem_ids {
	u_char	oi_status ;		/* Stat: last, present, valid, active */
	u_char	oi_mark[5] ;		/* "PID00" .. "PID07" ..	*/
	u_char 	oi_id[4] ;		/* id bytes, representation as	*/
					/* defined by hardware,		*/	
#ifdef PCI
	u_char 	oi_sub_id[4] ;		/* sub id bytes, representation as */
					/* defined by hardware,		*/
#endif
} ;
#endif	/* MULT_OEM */


struct s_smt_hw {
	/*
	 * global
	 */
	HW_PTR	iop ;			/* IO base address */
	short	dma ;			/* DMA channel */
	short	irq ;			/* IRQ level */
	short	eprom ;			/* FLASH prom */

#ifndef SYNC
	u_short	n_a_send ;		/* pending send requests */
#endif

73
#if	defined(PCI)
L
Linus Torvalds 已提交
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
	short	slot ;			/* slot number */
	short   max_slots ;		/* maximum number of slots */
	short	wdog_used ;		/* TRUE if the watch dog is used */
#endif

#ifdef	PCI
	u_short	pci_handle ;		/* handle to access the BIOS func */
	u_long	is_imask ;		/* int maske for the int source reg */
	u_long	phys_mem_addr ;		/* physical memory address */
	u_short	mc_dummy ;		/* work around for MC compiler bug */	
	/*
	 * state of the hardware
	 */
	u_short hw_state ;		/* started or stopped */

#define	STARTED		1
#define	STOPPED		0

	int	hw_is_64bit ;		/* does we have a 64 bit adapter */
#endif

#ifdef	TAG_MODE
	u_long	pci_fix_value ;		/* value parsed by PCIFIX */
#endif

	/*
	 * hwt.c
	 */
	u_long	t_start ;		/* HWT start */
	u_long	t_stop ;		/* HWT stop */
	u_short	timer_activ ;		/* HWT timer active */

	/*
	 * PIC
	 */
	u_char	pic_a1 ;
	u_char	pic_21 ;

	/*
	 * GENERIC ; do not modify beyond this line
	 */

	/*
	 * physical and canonical address
	 */
	struct fddi_addr fddi_home_addr ;
	struct fddi_addr fddi_canon_addr ;
	struct fddi_addr fddi_phys_addr ;

	/*
	 * mac variables
	 */
	struct mac_parameter mac_pa ;	/* tmin, tmax, tvx, treq .. */
	struct mac_counter mac_ct ;	/* recv., lost, error  */
	u_short	mac_ring_is_up ;	/* ring is up flag */

	struct s_smt_fp	fp ;		/* formac+ */

#ifdef MULT_OEM
	struct s_oem_ids *oem_id ;	/* pointer to selected id */
	int oem_min_status ;		/* IDs to take care of */
#endif	/* MULT_OEM */

} ;
#endif