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_num(struct e1000_hw *hw, u32 *part_num); 11 s32 igb_read_part_string(struct e1000_hw *hw, u8 *part_num, 12 u32 part_num_size); 13 s32 igb_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 14 s32 igb_read_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 15 s32 igb_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 16 s32 igb_validate_nvm_checksum(struct e1000_hw *hw); 17 s32 igb_update_nvm_checksum(struct e1000_hw *hw); 18 19 struct e1000_fw_version { 20 u32 etrack_id; 21 u16 eep_major; 22 u16 eep_minor; 23 u16 eep_build; 24 25 u8 invm_major; 26 u8 invm_minor; 27 u8 invm_img_type; 28 29 bool or_valid; 30 u16 or_major; 31 u16 or_build; 32 u16 or_patch; 33 }; 34 void igb_get_fw_version(struct e1000_hw *hw, struct e1000_fw_version *fw_vers); 35 36 #endif 37