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