xref: /openbmc/qemu/docs/system/devices/igb.rst (revision 6c1e3906)
1.. SPDX-License-Identifier: GPL-2.0-or-later
2.. _igb:
3
4igb
5---
6
7igb is a family of Intel's gigabit ethernet controllers. In QEMU, 82576
8emulation is implemented in particular. Its datasheet is available at [1]_.
9
10This implementation is expected to be useful to test SR-IOV networking without
11requiring physical hardware.
12
13Limitations
14===========
15
16This igb implementation was tested with Linux Test Project [2]_ and Windows HLK
17[3]_ during the initial development. The command used when testing with LTP is:
18
19.. code-block:: shell
20
21  network.sh -6mta
22
23Be aware that this implementation lacks many functionalities available with the
24actual hardware, and you may experience various failures if you try to use it
25with a different operating system other than Linux and Windows or if you try
26functionalities not covered by the tests.
27
28Using igb
29=========
30
31Using igb should be nothing different from using another network device. See
32:ref:`Network_emulation` in general.
33
34However, you may also need to perform additional steps to activate SR-IOV
35feature on your guest. For Linux, refer to [4]_.
36
37Developing igb
38==============
39
40igb is the successor of e1000e, and e1000e is the successor of e1000 in turn.
41As these devices are very similar, if you make a change for igb and the same
42change can be applied to e1000e and e1000, please do so.
43
44Please do not forget to run tests before submitting a change. As tests included
45in QEMU is very minimal, run some application which is likely to be affected by
46the change to confirm it works in an integrated system.
47
48Testing igb
49===========
50
51A qtest of the basic functionality is available. Run the below at the build
52directory:
53
54.. code-block:: shell
55
56  meson test qtest-x86_64/qos-test
57
58ethtool can test register accesses, interrupts, etc. It is automated as an
59Avocado test and can be ran with the following command:
60
61.. code:: shell
62
63  make check-avocado AVOCADO_TESTS=tests/avocado/igb.py
64
65References
66==========
67
68.. [1] https://www.intel.com/content/dam/www/public/us/en/documents/datasheets/82576eb-gigabit-ethernet-controller-datasheet.pdf
69.. [2] https://github.com/linux-test-project/ltp
70.. [3] https://learn.microsoft.com/en-us/windows-hardware/test/hlk/
71.. [4] https://docs.kernel.org/PCI/pci-iov-howto.html
72