1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /* Copyright(c) 2007 - 2018 Intel Corporation. */ 3 4 #ifndef _E1000_NVM_H_ 5 #define _E1000_NVM_H_ 6 7 s32 igb_acquire_nvm(struct e1000_hw *hw); 8 void igb_release_nvm(struct e1000_hw *hw); 9 s32 igb_read_mac_addr(struct e1000_hw *hw); 10 s32 igb_read_part_string(struct e1000_hw *hw, u8 *part_num, 11 u32 part_num_size); 12 s32 igb_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 13 s32 igb_read_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 14 s32 igb_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 15 s32 igb_validate_nvm_checksum(struct e1000_hw *hw); 16 s32 igb_update_nvm_checksum(struct e1000_hw *hw); 17 18 struct e1000_fw_version { 19 u32 etrack_id; 20 u16 eep_major; 21 u16 eep_minor; 22 u16 eep_build; 23 24 u8 invm_major; 25 u8 invm_minor; 26 u8 invm_img_type; 27 28 bool or_valid; 29 u16 or_major; 30 u16 or_build; 31 u16 or_patch; 32 }; 33 void igb_get_fw_version(struct e1000_hw *hw, struct e1000_fw_version *fw_vers); 34 35 #endif 36