1e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny/* Intel(R) Gigabit Ethernet Linux driver 2e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * Copyright(c) 2007-2014 Intel Corporation. 3e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * 4e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * This program is free software; you can redistribute it and/or modify it 5e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * under the terms and conditions of the GNU General Public License, 6e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * version 2, as published by the Free Software Foundation. 7e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * 8e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * This program is distributed in the hope it will be useful, but WITHOUT 9e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 10e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 11e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * more details. 12e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * 13e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * You should have received a copy of the GNU General Public License along with 14e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * this program; if not, see <http://www.gnu.org/licenses/>. 15e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * 16e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * The full GNU General Public License is included in this distribution in 17e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * the file called "COPYING". 18e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * 19e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * Contact Information: 20e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * e1000-devel Mailing List <e1000-devel@lists.sourceforge.net> 21e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny * Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 22e52c0f960cbc2c691cbb809ac0bfec2becfe6da9Carolyn Wyborny */ 239d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 249d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#ifndef _E1000_NVM_H_ 259d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#define _E1000_NVM_H_ 269d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 279d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_acquire_nvm(struct e1000_hw *hw); 289d5c824399dea881779d78a6c147288bf2dccb6bAuke Kokvoid igb_release_nvm(struct e1000_hw *hw); 299d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_read_mac_addr(struct e1000_hw *hw); 309d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_read_part_num(struct e1000_hw *hw, u32 *part_num); 319835fd7321a67feba6432e63bf2cba43f5a56bd9Carolyn Wybornys32 igb_read_part_string(struct e1000_hw *hw, u8 *part_num, 329005df38615bb3545cb6e4db59db73b27b6c0140Carolyn Wyborny u32 part_num_size); 339d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_read_nvm_eerd(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 344322e561a93ec7ee034b603a6c610e7be90d4e8aCarolyn Wybornys32 igb_read_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 359d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_write_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); 369d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_validate_nvm_checksum(struct e1000_hw *hw); 379d5c824399dea881779d78a6c147288bf2dccb6bAuke Koks32 igb_update_nvm_checksum(struct e1000_hw *hw); 389d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok 390b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wybornystruct e1000_fw_version { 400b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u32 etrack_id; 410b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u16 eep_major; 420b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u16 eep_minor; 437dc98a623392b39f8670755d4b65968b80f01716Carolyn Wyborny u16 eep_build; 440b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny 450b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u8 invm_major; 460b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u8 invm_minor; 470b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u8 invm_img_type; 480b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny 490b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny bool or_valid; 500b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u16 or_major; 510b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u16 or_build; 520b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny u16 or_patch; 530b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny}; 540b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wybornyvoid igb_get_fw_version(struct e1000_hw *hw, struct e1000_fw_version *fw_vers); 550b1a6f2ee85d77d02e73ea8be43e1a9d8d97cceeCarolyn Wyborny 569d5c824399dea881779d78a6c147288bf2dccb6bAuke Kok#endif 57