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 } ; 57 #endif /* MULT_OEM */ 58 59 60 struct s_smt_hw { 61 /* 62 * global 63 */ 64 HW_PTR iop ; /* IO base address */ 65 short dma ; /* DMA channel */ 66 short irq ; /* IRQ level */ 67 short eprom ; /* FLASH prom */ 68 69 #ifndef SYNC 70 u_short n_a_send ; /* pending send requests */ 71 #endif 72 73 #if defined(PCI) 74 short slot ; /* slot number */ 75 short max_slots ; /* maximum number of slots */ 76 short wdog_used ; /* TRUE if the watch dog is used */ 77 #endif 78 79 #ifdef PCI 80 u_short pci_handle ; /* handle to access the BIOS func */ 81 u_long is_imask ; /* int maske for the int source reg */ 82 u_long phys_mem_addr ; /* physical memory address */ 83 u_short mc_dummy ; /* work around for MC compiler bug */ 84 /* 85 * state of the hardware 86 */ 87 u_short hw_state ; /* started or stopped */ 88 89 #define STARTED 1 90 #define STOPPED 0 91 92 int hw_is_64bit ; /* does we have a 64 bit adapter */ 93 #endif 94 95 #ifdef TAG_MODE 96 u_long pci_fix_value ; /* value parsed by PCIFIX */ 97 #endif 98 99 /* 100 * hwt.c 101 */ 102 u_long t_start ; /* HWT start */ 103 u_long t_stop ; /* HWT stop */ 104 u_short timer_activ ; /* HWT timer active */ 105 106 /* 107 * PIC 108 */ 109 u_char pic_a1 ; 110 u_char pic_21 ; 111 112 /* 113 * GENERIC ; do not modify beyond this line 114 */ 115 116 /* 117 * physical and canonical address 118 */ 119 struct fddi_addr fddi_home_addr ; 120 struct fddi_addr fddi_canon_addr ; 121 struct fddi_addr fddi_phys_addr ; 122 123 /* 124 * mac variables 125 */ 126 struct mac_parameter mac_pa ; /* tmin, tmax, tvx, treq .. */ 127 struct mac_counter mac_ct ; /* recv., lost, error */ 128 u_short mac_ring_is_up ; /* ring is up flag */ 129 130 struct s_smt_fp fp ; /* formac+ */ 131 132 #ifdef MULT_OEM 133 struct s_oem_ids *oem_id ; /* pointer to selected id */ 134 int oem_min_status ; /* IDs to take care of */ 135 #endif /* MULT_OEM */ 136 137 } ; 138 #endif 139