1 /******************************************************************************* 2 3 Intel PRO/1000 Linux driver 4 Copyright(c) 1999 - 2006 Intel Corporation. 5 6 This program is free software; you can redistribute it and/or modify it 7 under the terms and conditions of the GNU General Public License, 8 version 2, as published by the Free Software Foundation. 9 10 This program is distributed in the hope it will be useful, but WITHOUT 11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 more details. 14 15 You should have received a copy of the GNU General Public License along with 16 this program; if not, write to the Free Software Foundation, Inc., 17 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 18 19 The full GNU General Public License is included in this distribution in 20 the file called "COPYING". 21 22 Contact Information: 23 Linux NICS <linux.nics (at) intel.com> 24 e1000-devel Mailing List <e1000-devel (at) lists.sourceforge.net> 25 Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 26 27 *******************************************************************************/ 28 29 FILE_LICENCE ( GPL2_ONLY ); 30 31 /* glue for the OS independent part of e1000 32 * includes register access macros 33 */ 34 35 #ifndef _E1000_OSDEP_H_ 36 #define _E1000_OSDEP_H_ 37 38 #include <stdint.h> 39 #include <stdlib.h> 40 #include <stdio.h> 41 #include <gpxe/io.h> 42 #include <errno.h> 43 #include <unistd.h> 44 #include <byteswap.h> 45 #include <gpxe/pci.h> 46 #include <gpxe/if_ether.h> 47 #include <gpxe/ethernet.h> 48 #include <gpxe/iobuf.h> 49 #include <gpxe/netdevice.h> 50 51 typedef enum { 52 #undef FALSE 53 FALSE = 0, 54 #undef TRUE 55 TRUE = 1 56 } boolean_t; 57 58 /* Debugging #defines */ 59 60 #if 1 61 #define DEBUGFUNC(F) DBG(F "\n") 62 #else 63 #define DEBUGFUNC(F) 64 #endif 65 66 #if 1 67 #define DEBUGOUT(S) DBG(S) 68 #define DEBUGOUT1(S, A...) DBG(S, A) 69 #else 70 #define DEBUGOUT(S) 71 #define DEBUGOUT1(S, A...) 72 #endif 73 74 #define DEBUGOUT2 DEBUGOUT1 75 #define DEBUGOUT3 DEBUGOUT1 76 #define DEBUGOUT7 DEBUGOUT1 77 78 #define E1000_WRITE_REG(a, reg, value) \ 79 writel((value), ((a)->hw_addr + \ 80 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg))) 81 82 #define E1000_READ_REG(a, reg) \ 83 readl((a)->hw_addr + \ 84 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg)) 85 86 #define E1000_WRITE_REG_ARRAY(a, reg, offset, value) \ 87 writel((value), ((a)->hw_addr + \ 88 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 89 ((offset) << 2))) 90 91 #define E1000_READ_REG_ARRAY(a, reg, offset) \ 92 readl((a)->hw_addr + \ 93 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 94 ((offset) << 2)) 95 96 #define E1000_READ_REG_ARRAY_DWORD E1000_READ_REG_ARRAY 97 #define E1000_WRITE_REG_ARRAY_DWORD E1000_WRITE_REG_ARRAY 98 99 #define E1000_WRITE_REG_ARRAY_WORD(a, reg, offset, value) \ 100 writew((value), ((a)->hw_addr + \ 101 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 102 ((offset) << 1))) 103 104 #define E1000_READ_REG_ARRAY_WORD(a, reg, offset) \ 105 readw((a)->hw_addr + \ 106 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 107 ((offset) << 1)) 108 109 #define E1000_WRITE_REG_ARRAY_BYTE(a, reg, offset, value) \ 110 writeb((value), ((a)->hw_addr + \ 111 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 112 (offset))) 113 114 #define E1000_READ_REG_ARRAY_BYTE(a, reg, offset) \ 115 readb((a)->hw_addr + \ 116 (((a)->mac_type >= e1000_82543) ? E1000_##reg : E1000_82542_##reg) + \ 117 (offset)) 118 119 #define E1000_WRITE_FLUSH(a) E1000_READ_REG(a, STATUS) 120 121 #define E1000_WRITE_ICH_FLASH_REG(a, reg, value) \ 122 writel((value), ((a)->flash_address + reg)) 123 124 #define E1000_READ_ICH_FLASH_REG(a, reg) \ 125 readl((a)->flash_address + reg) 126 127 #define E1000_WRITE_ICH_FLASH_REG16(a, reg, value) \ 128 writew((value), ((a)->flash_address + reg)) 129 130 #define E1000_READ_ICH_FLASH_REG16(a, reg) \ 131 readw((a)->flash_address + reg) 132 133 #define msleep(n) mdelay(n) 134 135 #endif /* _E1000_OSDEP_H_ */ 136 137 /* 138 * Local variables: 139 * c-basic-offset: 8 140 * c-indent-level: 8 141 * tab-width: 8 142 * End: 143 */ 144