Loading...
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 28 29 30 31 32 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 73 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 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | /****************************************************************************** * * (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 #include "h/skfbi.h" #ifndef TAG_MODE #include "h/fplus.h" #else #include "h/fplustm.h" #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 #ifdef ISA u_char oi_logo_len ; /* the length of the adapter logo */ u_char oi_logo[6] ; /* the adapter logo */ u_char oi_reserved1 ; #endif /* ISA */ } ; #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 PCI short DmaWriteExtraBytes ; /* add bytes for DMA write */ #endif #ifndef SYNC u_short n_a_send ; /* pending send requests */ #endif #if (defined(EISA) || defined(MCA) || defined(PCI)) short slot ; /* slot number */ short max_slots ; /* maximum number of slots */ #endif #if (defined(PCI) || defined(MCA)) short wdog_used ; /* TRUE if the watch dog is used */ #endif #ifdef MCA short slot_32 ; /* 32bit slot (1) or 16bit slot (0) */ short rev ; /* Board revision (FMx_REV). */ short VFullRead ; /* V_full value for DMA read */ short VFullWrite ; /* V_full value for DMA write */ #endif #ifdef EISA short led ; /* LED for FE card */ short dma_rmode ; /* read mode */ short dma_wmode ; /* write mode */ short dma_emode ; /* extend mode */ /* DMA controller channel dependent io addresses */ u_short dma_base_word_count ; u_short dma_base_address ; u_short dma_base_address_page ; #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 |