diff options
author | Michael Brown | 2015-05-16 15:35:13 +0200 |
---|---|---|
committer | Michael Brown | 2015-05-16 15:54:37 +0200 |
commit | bb1e1048f681c7b3cb0daf04a210ced3222089ee (patch) | |
tree | fffd1a0d0e471ba3b4d2050c5d8d21d68360dca0 /src/drivers/net/intel.h | |
parent | [intel] Allow for the use of advanced TX descriptors (diff) | |
download | ipxe-bb1e1048f681c7b3cb0daf04a210ced3222089ee.tar.gz ipxe-bb1e1048f681c7b3cb0daf04a210ced3222089ee.tar.xz ipxe-bb1e1048f681c7b3cb0daf04a210ced3222089ee.zip |
[intel] Add support for mailbox used by virtual functions
Virtual functions use a mailbox to communicate with the physical
function driver: this covers functionality such as obtaining the MAC
address.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/drivers/net/intel.h')
-rw-r--r-- | src/drivers/net/intel.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/drivers/net/intel.h b/src/drivers/net/intel.h index 2656cda5..ce9e3f46 100644 --- a/src/drivers/net/intel.h +++ b/src/drivers/net/intel.h @@ -243,6 +243,29 @@ intel_init_ring ( struct intel_ring *ring, unsigned int count, unsigned int reg, ring->describe = describe; } +/** An Intel virtual function mailbox */ +struct intel_mailbox { + /** Mailbox control register */ + unsigned int ctrl; + /** Mailbox memory base */ + unsigned int mem; +}; + +/** + * Initialise mailbox + * + * @v mbox Mailbox + * @v ctrl Mailbox control register + * @v mem Mailbox memory register base + */ +static inline __attribute__ (( always_inline )) void +intel_init_mbox ( struct intel_mailbox *mbox, unsigned int ctrl, + unsigned int mem ) { + + mbox->ctrl = ctrl; + mbox->mem = mem; +} + /** An Intel network card */ struct intel_nic { /** Registers */ @@ -261,6 +284,9 @@ struct intel_nic { /** EEPROM address shift */ unsigned int eerd_addr_shift; + /** Mailbox */ + struct intel_mailbox mbox; + /** Transmit descriptor ring */ struct intel_ring tx; /** Receive descriptor ring */ |