[BACK]Return to ixgb_ee.h CVS log [TXT][DIR] Up to [local] / sys / dev / pci

Annotation of sys/dev/pci/ixgb_ee.h, Revision 1.1.1.1

1.1       nbrk        1: /*******************************************************************************
                      2:
                      3:   Copyright (c) 2001-2005, Intel Corporation
                      4:   All rights reserved.
                      5:
                      6:   Redistribution and use in source and binary forms, with or without
                      7:   modification, are permitted provided that the following conditions are met:
                      8:
                      9:    1. Redistributions of source code must retain the above copyright notice,
                     10:       this list of conditions and the following disclaimer.
                     11:
                     12:    2. Redistributions in binary form must reproduce the above copyright
                     13:       notice, this list of conditions and the following disclaimer in the
                     14:       documentation and/or other materials provided with the distribution.
                     15:
                     16:    3. Neither the name of the Intel Corporation nor the names of its
                     17:       contributors may be used to endorse or promote products derived from
                     18:       this software without specific prior written permission.
                     19:
                     20:   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
                     21:   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     22:   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     23:   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
                     24:   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
                     25:   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
                     26:   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
                     27:   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
                     28:   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                     29:   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     30:   POSSIBILITY OF SUCH DAMAGE.
                     31:
                     32: *******************************************************************************/
                     33:
                     34: /* $OpenBSD: ixgb_ee.h,v 1.1 2005/11/14 23:25:43 brad Exp $ */
                     35:
                     36: #ifndef _IXGB_EE_H_
                     37: #define _IXGB_EE_H_
                     38:
                     39: #define IXGB_EEPROM_SIZE    64             /* Size in words */
                     40:
                     41: #define IXGB_ETH_LENGTH_OF_ADDRESS   6
                     42:
                     43: /* EEPROM Commands */
                     44: #define EEPROM_READ_OPCODE  0x6                    /* EEPROM read opcode */
                     45: #define EEPROM_WRITE_OPCODE 0x5                    /* EEPROM write opcode */
                     46: #define EEPROM_ERASE_OPCODE 0x7                    /* EEPROM erase opcode */
                     47: #define EEPROM_EWEN_OPCODE  0x13           /* EEPROM erase/write enable */
                     48: #define EEPROM_EWDS_OPCODE  0x10           /* EEPROM erase/write disable */
                     49:
                     50: /* EEPROM MAP (Word Offsets) */
                     51: #define EEPROM_IA_1_2_REG        0x0000
                     52: #define EEPROM_IA_3_4_REG        0x0001
                     53: #define EEPROM_IA_5_6_REG        0x0002
                     54: #define EEPROM_COMPATIBILITY_REG 0x0003
                     55: #define EEPROM_PBA_1_2_REG       0x0008
                     56: #define EEPROM_PBA_3_4_REG       0x0009
                     57: #define EEPROM_INIT_CONTROL1_REG 0x000A
                     58: #define EEPROM_SUBSYS_ID_REG     0x000B
                     59: #define EEPROM_SUBVEND_ID_REG    0x000C
                     60: #define EEPROM_DEVICE_ID_REG     0x000D
                     61: #define EEPROM_VENDOR_ID_REG     0x000E
                     62: #define EEPROM_INIT_CONTROL2_REG 0x000F
                     63: #define EEPROM_SWDPINS_REG       0x0020
                     64: #define EEPROM_CIRCUIT_CTRL_REG  0x0021
                     65: #define EEPROM_D0_D3_POWER_REG   0x0022
                     66: #define EEPROM_FLASH_VERSION     0x0032
                     67: #define EEPROM_CHECKSUM_REG      0x003F
                     68:
                     69: /* Mask bits for fields in Word 0x0a of the EEPROM */
                     70:
                     71: #define EEPROM_ICW1_SIGNATURE_MASK  0xC000
                     72: #define EEPROM_ICW1_SIGNATURE_VALID 0x4000
                     73: #define EEPROM_ICW1_SIGNATURE_CLEAR 0x0000
                     74:
                     75: /* For checksumming, the sum of all words in the EEPROM should equal 0xBABA. */
                     76: #define EEPROM_SUM 0xBABA
                     77:
                     78: /* EEPROM Map Sizes (Byte Counts) */
                     79: #define PBA_SIZE 4
                     80:
                     81: /* EEPROM Map defines (WORD OFFSETS)*/
                     82:
                     83: /* EEPROM structure */
                     84: struct ixgb_ee_map_type {
                     85:        uint8_t  mac_addr[IXGB_ETH_LENGTH_OF_ADDRESS];
                     86:        uint16_t compatibility;
                     87:        uint16_t reserved1[4];
                     88:        uint32_t pba_number;
                     89:        uint16_t init_ctrl_reg_1;
                     90:        uint16_t subsystem_id;
                     91:        uint16_t subvendor_id;
                     92:        uint16_t device_id;
                     93:        uint16_t vendor_id;
                     94:        uint16_t init_ctrl_reg_2;
                     95:        uint16_t oem_reserved[16];
                     96:        uint16_t swdpins_reg;
                     97:        uint16_t circuit_ctrl_reg;
                     98:        uint8_t  d3_power;
                     99:        uint8_t  d0_power;
                    100:        uint16_t reserved2[28];
                    101:        uint16_t checksum;
                    102: };
                    103:
                    104: /* EEPROM Functions */
                    105: uint16_t ixgb_read_eeprom(struct ixgb_hw *hw, uint16_t reg);
                    106:
                    107: boolean_t ixgb_validate_eeprom_checksum(struct ixgb_hw *hw);
                    108:
                    109: void ixgb_update_eeprom_checksum(struct ixgb_hw *hw);
                    110:
                    111: void ixgb_write_eeprom(struct ixgb_hw *hw, uint16_t reg, uint16_t data);
                    112:
                    113: #endif /* IXGB_EE_H */

CVSweb