diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-16 18:20:36 -0400 |
commit | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch) | |
tree | 0bba044c4ce775e45a88a51686b5d9f90697ea9d /drivers/net/ixgb/ixgb_ee.h |
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history,
even though we have it. We can create a separate "historical" git
archive of that later if we want to, and in the meantime it's about
3.2GB when imported into git - space that would just make the early
git days unnecessarily complicated, when we don't have a lot of good
infrastructure for it.
Let it rip!
Diffstat (limited to 'drivers/net/ixgb/ixgb_ee.h')
-rw-r--r-- | drivers/net/ixgb/ixgb_ee.h | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/drivers/net/ixgb/ixgb_ee.h b/drivers/net/ixgb/ixgb_ee.h new file mode 100644 index 000000000000..5190aa8761a2 --- /dev/null +++ b/drivers/net/ixgb/ixgb_ee.h | |||
@@ -0,0 +1,106 @@ | |||
1 | /******************************************************************************* | ||
2 | |||
3 | |||
4 | Copyright(c) 1999 - 2005 Intel Corporation. All rights reserved. | ||
5 | |||
6 | This program is free software; you can redistribute it and/or modify it | ||
7 | under the terms of the GNU General Public License as published by the Free | ||
8 | Software Foundation; either version 2 of the License, or (at your option) | ||
9 | any later version. | ||
10 | |||
11 | This program is distributed in the hope that it will be useful, but WITHOUT | ||
12 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||
13 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for | ||
14 | more details. | ||
15 | |||
16 | You should have received a copy of the GNU General Public License along with | ||
17 | this program; if not, write to the Free Software Foundation, Inc., 59 | ||
18 | Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||
19 | |||
20 | The full GNU General Public License is included in this distribution in the | ||
21 | file called LICENSE. | ||
22 | |||
23 | Contact Information: | ||
24 | Linux NICS <linux.nics@intel.com> | ||
25 | Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 | ||
26 | |||
27 | *******************************************************************************/ | ||
28 | |||
29 | #ifndef _IXGB_EE_H_ | ||
30 | #define _IXGB_EE_H_ | ||
31 | |||
32 | #define IXGB_EEPROM_SIZE 64 /* Size in words */ | ||
33 | |||
34 | #define IXGB_ETH_LENGTH_OF_ADDRESS 6 | ||
35 | |||
36 | /* EEPROM Commands */ | ||
37 | #define EEPROM_READ_OPCODE 0x6 /* EERPOM read opcode */ | ||
38 | #define EEPROM_WRITE_OPCODE 0x5 /* EERPOM write opcode */ | ||
39 | #define EEPROM_ERASE_OPCODE 0x7 /* EERPOM erase opcode */ | ||
40 | #define EEPROM_EWEN_OPCODE 0x13 /* EERPOM erase/write enable */ | ||
41 | #define EEPROM_EWDS_OPCODE 0x10 /* EERPOM erast/write disable */ | ||
42 | |||
43 | /* EEPROM MAP (Word Offsets) */ | ||
44 | #define EEPROM_IA_1_2_REG 0x0000 | ||
45 | #define EEPROM_IA_3_4_REG 0x0001 | ||
46 | #define EEPROM_IA_5_6_REG 0x0002 | ||
47 | #define EEPROM_COMPATIBILITY_REG 0x0003 | ||
48 | #define EEPROM_PBA_1_2_REG 0x0008 | ||
49 | #define EEPROM_PBA_3_4_REG 0x0009 | ||
50 | #define EEPROM_INIT_CONTROL1_REG 0x000A | ||
51 | #define EEPROM_SUBSYS_ID_REG 0x000B | ||
52 | #define EEPROM_SUBVEND_ID_REG 0x000C | ||
53 | #define EEPROM_DEVICE_ID_REG 0x000D | ||
54 | #define EEPROM_VENDOR_ID_REG 0x000E | ||
55 | #define EEPROM_INIT_CONTROL2_REG 0x000F | ||
56 | #define EEPROM_SWDPINS_REG 0x0020 | ||
57 | #define EEPROM_CIRCUIT_CTRL_REG 0x0021 | ||
58 | #define EEPROM_D0_D3_POWER_REG 0x0022 | ||
59 | #define EEPROM_FLASH_VERSION 0x0032 | ||
60 | #define EEPROM_CHECKSUM_REG 0x003F | ||
61 | |||
62 | /* Mask bits for fields in Word 0x0a of the EEPROM */ | ||
63 | |||
64 | #define EEPROM_ICW1_SIGNATURE_MASK 0xC000 | ||
65 | #define EEPROM_ICW1_SIGNATURE_VALID 0x4000 | ||
66 | #define EEPROM_ICW1_SIGNATURE_CLEAR 0x0000 | ||
67 | |||
68 | /* For checksumming, the sum of all words in the EEPROM should equal 0xBABA. */ | ||
69 | #define EEPROM_SUM 0xBABA | ||
70 | |||
71 | /* EEPROM Map Sizes (Byte Counts) */ | ||
72 | #define PBA_SIZE 4 | ||
73 | |||
74 | /* EEPROM Map defines (WORD OFFSETS)*/ | ||
75 | |||
76 | /* EEPROM structure */ | ||
77 | struct ixgb_ee_map_type { | ||
78 | uint8_t mac_addr[IXGB_ETH_LENGTH_OF_ADDRESS]; | ||
79 | uint16_t compatibility; | ||
80 | uint16_t reserved1[4]; | ||
81 | uint32_t pba_number; | ||
82 | uint16_t init_ctrl_reg_1; | ||
83 | uint16_t subsystem_id; | ||
84 | uint16_t subvendor_id; | ||
85 | uint16_t device_id; | ||
86 | uint16_t vendor_id; | ||
87 | uint16_t init_ctrl_reg_2; | ||
88 | uint16_t oem_reserved[16]; | ||
89 | uint16_t swdpins_reg; | ||
90 | uint16_t circuit_ctrl_reg; | ||
91 | uint8_t d3_power; | ||
92 | uint8_t d0_power; | ||
93 | uint16_t reserved2[28]; | ||
94 | uint16_t checksum; | ||
95 | }; | ||
96 | |||
97 | /* EEPROM Functions */ | ||
98 | uint16_t ixgb_read_eeprom(struct ixgb_hw *hw, uint16_t reg); | ||
99 | |||
100 | boolean_t ixgb_validate_eeprom_checksum(struct ixgb_hw *hw); | ||
101 | |||
102 | void ixgb_update_eeprom_checksum(struct ixgb_hw *hw); | ||
103 | |||
104 | void ixgb_write_eeprom(struct ixgb_hw *hw, uint16_t reg, uint16_t data); | ||
105 | |||
106 | #endif /* IXGB_EE_H */ | ||