New upstream version 18.02
[deb_dpdk.git] / kernel / linux / kni / ethtool / igb / e1000_nvm.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*******************************************************************************
3
4   Intel(R) Gigabit Ethernet Linux driver
5   Copyright(c) 2007-2013 Intel Corporation.
6
7   Contact Information:
8   e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>
9   Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
10
11 *******************************************************************************/
12
13 #ifndef _E1000_NVM_H_
14 #define _E1000_NVM_H_
15
16
17 struct e1000_fw_version {
18         u32 etrack_id;
19         u16 eep_major;
20         u16 eep_minor;
21         u16 eep_build;
22
23         u8 invm_major;
24         u8 invm_minor;
25         u8 invm_img_type;
26
27         bool or_valid;
28         u16 or_major;
29         u16 or_build;
30         u16 or_patch;
31 };
32
33
34 void e1000_init_nvm_ops_generic(struct e1000_hw *hw);
35 s32  e1000_null_read_nvm(struct e1000_hw *hw, u16 a, u16 b, u16 *c);
36 void e1000_null_nvm_generic(struct e1000_hw *hw);
37 s32  e1000_null_led_default(struct e1000_hw *hw, u16 *data);
38 s32  e1000_null_write_nvm(struct e1000_hw *hw, u16 a, u16 b, u16 *c);
39 s32  e1000_acquire_nvm_generic(struct e1000_hw *hw);
40
41 s32  e1000_poll_eerd_eewr_done(struct e1000_hw *hw, int ee_reg);
42 s32  e1000_read_mac_addr_generic(struct e1000_hw *hw);
43 s32  e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num,
44                                    u32 pba_num_size);
45 s32  e1000_read_pba_length_generic(struct e1000_hw *hw, u32 *pba_num_size);
46 s32  e1000_read_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data);
47 s32  e1000_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words,
48                          u16 *data);
49 s32  e1000_valid_led_default_generic(struct e1000_hw *hw, u16 *data);
50 s32  e1000_validate_nvm_checksum_generic(struct e1000_hw *hw);
51 s32  e1000_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words,
52                          u16 *data);
53 s32  e1000_update_nvm_checksum_generic(struct e1000_hw *hw);
54 void e1000_release_nvm_generic(struct e1000_hw *hw);
55 void e1000_get_fw_version(struct e1000_hw *hw,
56                           struct e1000_fw_version *fw_vers);
57
58 #define E1000_STM_OPCODE        0xDB00
59
60 #endif