32 ******************************************************************************/
33 /*$FreeBSD$*/
34
35 #ifndef _E1000_I210_H_
36 #define _E1000_I210_H_
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 s32 e1000_update_flash_i210(struct e1000_hw *hw);
43 s32 e1000_update_nvm_checksum_i210(struct e1000_hw *hw);
44 s32 e1000_validate_nvm_checksum_i210(struct e1000_hw *hw);
45 s32 e1000_write_nvm_srwr_i210(struct e1000_hw *hw, u16 offset,
46 u16 words, u16 *data);
47 s32 e1000_read_nvm_srrd_i210(struct e1000_hw *hw, u16 offset,
48 u16 words, u16 *data);
49 s32 e1000_read_invm_i211(struct e1000_hw *hw, u8 address, u16 *data);
50 s32 e1000_acquire_swfw_sync_i210(struct e1000_hw *hw, u16 mask);
51 void e1000_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask);
52
53 #define E1000_STM_OPCODE 0xDB00
54 #define E1000_EEPROM_FLASH_SIZE_WORD 0x11
55
56 #define INVM_DWORD_TO_RECORD_TYPE(invm_dword) \
57 (u8)((invm_dword) & 0x7)
58 #define INVM_DWORD_TO_WORD_ADDRESS(invm_dword) \
59 (u8)(((invm_dword) & 0x0000FE00) >> 9)
60 #define INVM_DWORD_TO_WORD_DATA(invm_dword) \
61 (u16)(((invm_dword) & 0xFFFF0000) >> 16)
62
63 enum E1000_INVM_STRUCTURE_TYPE {
64 E1000_INVM_UNINITIALIZED_STRUCTURE = 0x00,
65 E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 0x01,
66 E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 0x02,
67 E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 0x03,
68 E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 0x04,
69 E1000_INVM_INVALIDATED_STRUCTURE = 0x0F,
70 };
71
|
32 ******************************************************************************/
33 /*$FreeBSD$*/
34
35 #ifndef _E1000_I210_H_
36 #define _E1000_I210_H_
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 s32 e1000_update_flash_i210(struct e1000_hw *hw);
43 s32 e1000_update_nvm_checksum_i210(struct e1000_hw *hw);
44 s32 e1000_validate_nvm_checksum_i210(struct e1000_hw *hw);
45 s32 e1000_write_nvm_srwr_i210(struct e1000_hw *hw, u16 offset,
46 u16 words, u16 *data);
47 s32 e1000_read_nvm_srrd_i210(struct e1000_hw *hw, u16 offset,
48 u16 words, u16 *data);
49 s32 e1000_read_invm_i211(struct e1000_hw *hw, u8 address, u16 *data);
50 s32 e1000_acquire_swfw_sync_i210(struct e1000_hw *hw, u16 mask);
51 void e1000_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask);
52 s32 e1000_read_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr,
53 u16 *data);
54 s32 e1000_write_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr,
55 u16 data);
56
57 #define E1000_STM_OPCODE 0xDB00
58 #define E1000_EEPROM_FLASH_SIZE_WORD 0x11
59
60 #define INVM_DWORD_TO_RECORD_TYPE(invm_dword) \
61 (u8)((invm_dword) & 0x7)
62 #define INVM_DWORD_TO_WORD_ADDRESS(invm_dword) \
63 (u8)(((invm_dword) & 0x0000FE00) >> 9)
64 #define INVM_DWORD_TO_WORD_DATA(invm_dword) \
65 (u16)(((invm_dword) & 0xFFFF0000) >> 16)
66
67 enum E1000_INVM_STRUCTURE_TYPE {
68 E1000_INVM_UNINITIALIZED_STRUCTURE = 0x00,
69 E1000_INVM_WORD_AUTOLOAD_STRUCTURE = 0x01,
70 E1000_INVM_CSR_AUTOLOAD_STRUCTURE = 0x02,
71 E1000_INVM_PHY_REGISTER_AUTOLOAD_STRUCTURE = 0x03,
72 E1000_INVM_RSA_KEY_SHA256_STRUCTURE = 0x04,
73 E1000_INVM_INVALIDATED_STRUCTURE = 0x0F,
74 };
75
|