summaryrefslogtreecommitdiffstats
path: root/sys/dev/e1000/e1000_nvm.h
diff options
context:
space:
mode:
authorjfv <jfv@FreeBSD.org>2013-02-21 00:25:45 +0000
committerjfv <jfv@FreeBSD.org>2013-02-21 00:25:45 +0000
commitbc67c0c4527ce6afb493c133aa64bce0a7e3c016 (patch)
treedeadb805b9a3f91a6d8def332a98bf84bffbbd5e /sys/dev/e1000/e1000_nvm.h
parent3c760430882730431f5870f23294cb580e98ea3f (diff)
downloadFreeBSD-src-bc67c0c4527ce6afb493c133aa64bce0a7e3c016.zip
FreeBSD-src-bc67c0c4527ce6afb493c133aa64bce0a7e3c016.tar.gz
Refresh on the shared code for the E1000 drivers.
- bear with me, there are lots of white space changes, I would not do them, but I am a mere consumer of this stuff and if these drivers are to stay in shape they need to be taken. em driver changes: support for the new i217/i218 interfaces igb driver changes: - TX mq start has a quick turnaround to the stack - Link/media handling improvement - When link status changes happen the current flow control state will now be displayed. - A few white space/style changes. lem driver changes: - the shared code uncovered a bogus write to the RLPML register (which does not exist in this hardware) in the vlan code,this is removed.
Diffstat (limited to 'sys/dev/e1000/e1000_nvm.h')
-rw-r--r--sys/dev/e1000/e1000_nvm.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/sys/dev/e1000/e1000_nvm.h b/sys/dev/e1000/e1000_nvm.h
index ed23eb3..34077b2 100644
--- a/sys/dev/e1000/e1000_nvm.h
+++ b/sys/dev/e1000/e1000_nvm.h
@@ -1,6 +1,6 @@
/******************************************************************************
- Copyright (c) 2001-2011, Intel Corporation
+ Copyright (c) 2001-2013, Intel Corporation
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -35,6 +35,14 @@
#ifndef _E1000_NVM_H_
#define _E1000_NVM_H_
+#if !defined(NO_READ_PBA_RAW) || !defined(NO_WRITE_PBA_RAW)
+struct e1000_pba {
+ u16 word[2];
+ u16 *pba_block;
+};
+#endif
+
+
void e1000_init_nvm_ops_generic(struct e1000_hw *hw);
s32 e1000_null_read_nvm(struct e1000_hw *hw, u16 a, u16 b, u16 *c);
void e1000_null_nvm_generic(struct e1000_hw *hw);
@@ -47,6 +55,13 @@ s32 e1000_read_mac_addr_generic(struct e1000_hw *hw);
s32 e1000_read_pba_string_generic(struct e1000_hw *hw, u8 *pba_num,
u32 pba_num_size);
s32 e1000_read_pba_length_generic(struct e1000_hw *hw, u32 *pba_num_size);
+s32 e1000_read_pba_raw(struct e1000_hw *hw, u16 *eeprom_buf,
+ u32 eeprom_buf_size, u16 max_pba_block_size,
+ struct e1000_pba *pba);
+s32 e1000_write_pba_raw(struct e1000_hw *hw, u16 *eeprom_buf,
+ u32 eeprom_buf_size, struct e1000_pba *pba);
+s32 e1000_get_pba_block_size(struct e1000_hw *hw, u16 *eeprom_buf,
+ u32 eeprom_buf_size, u16 *pba_block_size);
s32 e1000_read_nvm_spi(struct e1000_hw *hw, u16 offset, u16 words, u16 *data);
s32 e1000_read_nvm_microwire(struct e1000_hw *hw, u16 offset,
u16 words, u16 *data);
OpenPOWER on IntegriCloud