History log of /fuchsia/zircon/system/dev/ethernet/intel-ethernet/ethernet.c
Revision Date Author Comments
# 0f79a7ce 01-Aug-2018 James Tucker <raggi@google.com>

[intel-ethernet] add another did

Test: manual against a device with this nic

Change-Id: Ibcec3fdc213005a4fcb015d518cc14b97568b7db


# 84c6997c 05-Aug-2018 Tim Kilbourn <tkilbourn@google.com>

[intel-ethernet] Query link status during bind

The interrupt will only fire on future link status changes, so we need
to see what the initial state is when the device is bound.

NET-713
Test: tested on QEMU with the 'set_link' monitor command

Change-Id: I30c65dd93990c4e194ab9f97c55a0ca05490a9ab


# ee627b1b 26-Jun-2018 Xu Zhongxing <xuzhongxing@gmail.com>

[dev][ethernet] Add support for Intel 82579LM.

Test: runs on an old PC.

Change-Id: Ib585b22246dba6eb38ec83caf756c46c8f64e609


# 948f9fc3 02-Jul-2018 Carl Norum <cjn@google.com>

[intel-ethernet] better support intel I211 ethernet

- ZX-2062
- ZX-2061

Updated initialization sequence to handle I211 explicitly, modified
other intel init a bit too, nothing too crazy.

Test: checked networking in qemu, I211 and I219 parts on toulouse, and a couple of NUCs
Change-Id: Id400772f10972410401a59ed9def66f761a6a6ec


# 937a9826 30-Apr-2018 Brijen Raval <braval@google.com>

[interrupts][syscall] Rename syscalls zx_irq_* to zx_interrupt_*

Change-Id: Ie01f65f29c1fd6171463340e2a5c103ff8e704b6


# cca25b86 26-Apr-2018 Brijen Raval <braval@google.com>

[syscall][irq] Remove (disabled) old irq syscall implementations

Change-Id: I2f4a4f42e174dbab5ac4eb84255955fa805cd75d


# 46b12f5f 04-Apr-2018 Brijen Raval <braval@google.com>

[interrupt][syscalls] Adapt to new interrupt syscalls

ZX-2024
Change-Id: I534d4087d0dcf199ea38ced0fd2f0af98548b719


# d14bfadf 20-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[ddk][io-buffer] Rename callsites of io_buffer_init*_with_bti

ZX-1804 #comment Move all zircon callsites to final name

Change-Id: Ie35de5654841e84653582126dc1f976664c0f49d


# af3c0b25 08-Mar-2018 Brian Swetland <swetland@google.com>

[ddk][ethernet] rename PROTOCOL_ETHERMAC to PROTOCOL_ETHERNET_IMPL

Change-Id: Iebcd11d56559e55e4d83bbe861535200cd246ba5


# 70eac323 06-Mar-2018 Todd Eisenberger <teisenbe@google.com>

[dev][intel-ethernet] Teach Intel eth about BTIs

ZX-693 #comment

Change-Id: Ibb4fb272614c658f96720ece18571f7b71701814


# 8acf43e9 26-Jan-2018 Tim Kilbourn <tkilbourn@google.com>

[dev][ethernet] Add Intel I211-AT id

Change-Id: I72750dcf64f863a139e0cd15f166817084d277c5


# e0aa6aa6 13-Dec-2017 Christopher Anderson <cja@google.com>

[pci] Rebuild kpci to use rpc and a proxy devhost

- pci_get_resource -> pci_get_bar
This is used for bars now that everyone is expected to use
pci_config_read for reading from their config.
- Removed PCI_BAR_[0-5] constants. Now that the only valid members
of the resource enum are bars it does not make sense to map
PCI_BAR_X to Xu and so on. Callers to the protocol can pass the
bar numbers directly now.
- pci_map_resource has been renamed to pci_map_bar
- zx_pci_get_config has been removed because it is obsolete
now that mapping is just for bars.
- zx_pci_get_bar has been refactored to manage the user handle
more cleanly thanks to Roland's change.
- Update some old code to call the pci_* protocol methods rather
than the device ops directly.
- Remove all privileged calls from the proxy devhost for pci
- Remove (nearly) all uses of the root resource from the proxy devhost
- Split kpci initialization into two disparate parts: the driver
that binds to the root complexes and creates upper devhosts,
and a proxy driver that creates lower/proxy devhosts for drivers
to interact with.
- Remove overlapping functionality in kpci and separate into two
proper driver "files".
- Ran clang-format on everything

Change-Id: I46740e76855f5ec11b634635e88d62263bef6f9f


# 038c9dc5 27-Dec-2017 Mike Voydanoff <voydanoff@google.com>

[syscalls][ddk] Interrupt syscall improvements:

It is now possible to wait for multiple interrupts on a single interrupt handle.
The zx_interrupt_bind() syscall is used to bind an interrupt vector to
an interrupt handle, allowing up to 62 interrupt vectors per handle.

The zx_interrupt_get_timestamp() syscall can now be used to retrieve a
timestamp for an interrupt.

Virtual interrupts are now supported. zx_interrupt_bind() can be used to
designate an interrupt slot as a virtual interrupt, and the virtual interrupt
can be signaled using the zx_interrupt_signal() syscall.

The zx_interrupt_complete() syscall has been removed.
Instead, zx_interrupt_wait() now handles unmasking the interrupt
at the right time depending on whether the interrupt is edge or level triggered.

Slot ZX_INTERRUPT_SLOT_USER is reserved as a virtual interrupt, and is typically
used with zx_interrupt_signal() to unblock interrupt threads so they can exit
at driver shutdown or to perform periodic work.

Currently PCI interrupt handles can only be bound to a single interrupt vector,
but it is possible to bind virtual interrupts to PCI interrupt handles.

ZX-1469 #done
ZX-1471 #done

Change-Id: I48c14183c1b9ecd437c8b1ce0d25326b7532e973


# acac33d3 09-Jan-2018 Chris Phoenix <cphoenix@google.com>

[dev][ethernet] Bit-twiddling for promiscuous mode

Add bit-twiddling to turn promiscuous on and off for AX88179, AX887722b,
Realtek 8111, and intel-ethernet drivers.

Test: builds; ethernet still works.

NET-9

Change-Id: I3683685c8e2969096621599f92e6d01f68fed404


# 53613185 08-Jan-2018 Chris Phoenix <cphoenix@google.com>

[dev][ethernet] Add set_param() to ethermac

Allows setting params (such as promiscuous mode) on ethernet drivers.

Test: builds; ethernet still works

NET-9

Change-Id: I4670dd0fe724a45881623304d3eeff50acf7d45e


# 03bfa9b0 28-Dec-2017 Petr Hosek <phosek@google.com>

[intel-ethernet] Add support for Dawson Canyon NUC

Dawson Canyon NUC uses I219-LM which is slightly different from
I219-V used by regular Kaby Lake NUC, most notable difference being
the Intel vPro support.

Change-Id: I922b26c42688f2fe1c148f92f73e6824c2031919


# 03691e72 13-Dec-2017 Josh Conner <joshconner@google.com>

[intel-ethernet] Disable bus mastering as needed

On release or error, disable PCI bus mastering.

NET-333

Change-Id: Iefb1f3a28bc5c727dae18feaee04ba0beede1813


# a28859b5 09-Dec-2017 Josh Conner <joshconner@google.com>

[intel-ethernet] Add support for suspend/resume

On suspend, disable rx and tx queues and power down the PHY.

ZX-1420

Change-Id: I47d776f04ff981aa4bb52f3611817f62d2a3993c


# 2e0fc961 05-Nov-2017 Mike Voydanoff <voydanoff@google.com>

[ddk] Remove driver bind() cookie and unbind() callback

Also removed "owner" and "owner_cookie" from internal zx_device_t struct

Adjusted intel-hda audio drivers to create devices to hold driver context
rather than using the driver bind cookie.

Change-Id: I0eca7f6fa3b155be71843291812e7aa9fea5bf55


# 19b662ca 27-Oct-2017 Josh Conner <joshconner@google.com>

[intel-ethernet] Set mtu to 1500

Don't use buffer size to determine mtu -- hardcode it to 1500.

NET-205
NET-238

Change-Id: I9a3eca3f9f2ac364da43a3eb71079fd5c8fb49ec


# f09ad7d2 13-Oct-2017 Josh Conner <joshconner@google.com>

[ethernet] Add support for asynchronous eth tx

queue_tx replaces send as the interface for both synchronous and
asynchronous transmissions. Tx data is now passed using ethmac_netbuf_t
structures. If the driver chooses to hold on to the netbuf until
buffer space is available, it can return ZX_ERR_SHOULD_WAIT from queue_tx
and call the ethmac complete_tx() callback when the netbuf is no longer
needed.

NET-212

Change-Id: I2da2c503a12fbea0f8c74d8d1e05b83161a15f4a


# 0bdd813f 14-Sep-2017 Mike Voydanoff <voydanoff@google.com>

[ddk][io-buffer] Add support for creating non-contiguous IO buffers

IO buffers are now non-contiguous by default.
Buffers are allocated contiguously if the IO_BUFFER_CONTIG flag is passed
and the buffer size is greater than one page.

Change-Id: I5d069b80df3bcbe9b148639c6c2b60f2442109a9


# dacc1d80 12-Sep-2017 Mike Voydanoff <voydanoff@google.com>

[dev] Rename "mxdev" to "zxdev" in ddktl and various drivers.

Change-Id: I000e42c26d9f8379de40447690694a35f6be93e2


# f3e2126c 12-Sep-2017 Roland McGrath <mcgrathr@google.com>

[zx] Magenta -> Zircon

The Great Renaming is here!

Change-Id: I3229bdeb2a3d0e40fb4db6fec8ca7d971fbffb94


# 9b8d0e57 30-Jun-2017 Robert Hahn <hahnr@google.com>

[eth-intel] Reports link status for intel ethernet

Change-Id: Iba796a41d2fa1f4cd289375fe4a17ec51b98d489


# 7ad80b9a 05-Jul-2017 Mike Voydanoff <voydanoff@google.com>

[ddk][pci] Add inline wrappers for PCI protocol ops

Change-Id: I3e7bcfa2bb297656b802c98b66b4c44b325ae8aa


# 47c02055 22-Jun-2017 Christopher Anderson <cja@google.com>

[pci] Remove device claiming.

Now that the device coordinator provides a central method for
handing devices to drivers there is no longer a need to
explicitly claim a device exclusively. This has the added benefit
of simplifying the work that needs to be done when a driver is
killed or unloaded.

Change-Id: I5d0b810464ee0858430a08821b233e08a3b7abe6


# 9c7e9bc1 14-Jun-2017 Brian Swetland <swetland@google.com>

[ddk][pci] new protocol support (10 of n)

Convert MX_PROTOCOL_PCI to new style.

Change-Id: I72a7dcc0552e74b007199bbfea07cac51a7f780c


# 46d0900b 14-Jun-2017 Brian Swetland <swetland@google.com>

[ddk] new protocol support (1 of n)

This is the start of migration of device protocols from an vtable
structure to a structure with the vtable (ops) and context pointer
(ctx). These will look like:

typedef struct {
protocol_xyz_ops_t* ops;
void* ctx;
} protocol_xyz_t;

The new device_get_protocol(...) fills out a structure of that
style. The legacy device_op_get_protocol() works as before.
Once we've migrated all protocols, providers or protocols, and
consumers of protocols to the new style, we'll remove the legacy
interface.

The device hook get_protocol() is not used by any devices, so we
will convert it to the new style API now.

It's no longer possible to get the DEVICE protocol because that's
private between the devhost and the device and should not be
accessible to arbitrary clients. Nothing depends on this.

This also converts MX_PROTOCOL_ETHERMAC and WLANMAC to the new
style and updates the DDKTL's wrappers of device, ethermac, etc.

Change-Id: I023c645312102066d301e605881055ee8b3086b7


# c3196323 08-Jun-2017 Tim Kilbourn <tkilbourn@google.com>

[dev][ethernet] Use new magenta errors

Change-Id: Iffc06176ac9cbb9e539aad8884b10eec8d919bf0


# 45b42da5 07-Jun-2017 Brian Swetland <swetland@google.com>

[udev][intel-ethernet] rename

Change-Id: Ia58bcb7fc7ae82d66bb3714b12f372cc3ad235bd