#
fffea1ae |
| 20-Feb-2024 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: support vdev for embedded applications
Add support for running DPDK applications directly on AMD Pensando embedded HW. The platform exposes the device BARs through UIO. The UIO code in th
net/ionic: support vdev for embedded applications
Add support for running DPDK applications directly on AMD Pensando embedded HW. The platform exposes the device BARs through UIO. The UIO code in the common/ionic library walks the sysfs filesystem to identify the relevant BARs and map them into process memory.
The SoCs are named 'Capri' and 'Elba'.
The vdev device interface code is located in ionic_dev_vdev.c.
Some datapath operations are #ifdef-ed out to save on resources when running in embedded mode.
Some control path operations are skipped by the ionic_is_embedded() helper function.
Before ringing the doorbell, use an ARM 'dsb st' barrier. The normal barrier inside rte_write64() is insufficient on these devices due to a chip errata.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Signed-off-by: Neel Patel <neel.patel@amd.com> Signed-off-by: R Mohamed Shah <mohamedshah.r@amd.com> Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com> Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
show more ...
|
#
484027bf |
| 20-Feb-2024 |
Andrew Boyer <andrew.boyer@amd.com> |
common/ionic: create common code library
Move definitions that will be shared by net/ionic and crypto/ionic. Add the code used for discovering UIO vdevs.
Signed-off-by: Andrew Boyer <andrew.boyer@a
common/ionic: create common code library
Move definitions that will be shared by net/ionic and crypto/ionic. Add the code used for discovering UIO vdevs.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Acked-by: Ferruh Yigit <ferruh.yigit@amd.com>
show more ...
|
#
7bb08900 |
| 07-Feb-2024 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: optimize device stop
Split the queue_stop operation into first-half and second-half helpers. Move the command context from the stack into each Rx/Tx queue struct. Expose some needed admin
net/ionic: optimize device stop
Split the queue_stop operation into first-half and second-half helpers. Move the command context from the stack into each Rx/Tx queue struct. Expose some needed adminq interfaces.
This allows us to batch up the queue commands during dev_stop(), reducing the outage window when restarting the process by about 1ms per queue.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
show more ...
|
#
9de21005 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: add Q-in-CMB option
When 'ionic_cmb' is set to '1', queue memory will be allocated from the device's onboard memory (Controller Memory Buffer). In some configurations, this will dramatica
net/ionic: add Q-in-CMB option
When 'ionic_cmb' is set to '1', queue memory will be allocated from the device's onboard memory (Controller Memory Buffer). In some configurations, this will dramatically reduce packet latency and increase PPS.
Add the WC_ACTIVATE flag to the PCI driver flags. Write combining must be enabled to achieve the maximum PPS.
When the queue is in the CMB, descriptors cannot be prefetched.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Signed-off-by: Neel Patel <neel.patel@amd.com>
show more ...
|
#
8eaafff3 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: move PCI-specific code to separate file
For future support of virtual devices, move the PCI code to its own file. Create a new device interface, struct ionic_dev_intf, to plug in to commo
net/ionic: move PCI-specific code to separate file
For future support of virtual devices, move the PCI code to its own file. Create a new device interface, struct ionic_dev_intf, to plug in to common code.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com> Signed-off-by: Neel Patel <neel.patel@amd.com> Signed-off-by: R Mohamed Shah <mohamedshah.r@amd.com>
show more ...
|
#
2233544b |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: remove unused identifiers
These bits are not used. Remove them to simplify the code. Fix the spacing on the IONIC_ALIGN #define.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
|
#
76668754 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: update license terms to remove GPL
Remove GPL2 and leave only BSD-3-Clause. This is more in line with the norms of the DPDK community.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
|
#
a5205992 |
| 18-Oct-2022 |
Andrew Boyer <andrew.boyer@amd.com> |
net/ionic: update documentation and copyrights
Pensando Systems has been acquired by AMD. Update all copyright strings and email addresses.
Signed-off-by: Andrew Boyer <andrew.boyer@amd.com>
|
#
1f37cb2b |
| 28-Jul-2022 |
David Marchand <david.marchand@redhat.com> |
bus/pci: make driver-only headers private
The pci bus interface is for drivers only. Mark as internal and move the header in the driver headers list.
While at it, cleanup the code: - fix indentatio
bus/pci: make driver-only headers private
The pci bus interface is for drivers only. Mark as internal and move the header in the driver headers list.
While at it, cleanup the code: - fix indentation, - remove unneeded reference to bus specific singleton object, - remove unneeded list head structure type, - reorder the definitions and macro manipulating the bus singleton object, - remove inclusion of rte_bus.h and fix the code that relied on implicit inclusion,
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Acked-by: Rosen Xu <rosen.xu@intel.com>
show more ...
|
#
750aebd5 |
| 16-Feb-2021 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: consolidate adminq code
The adminq is the only caller of ionic_q_service(), so absorb it into ionic_adminq_service(). Move all of the adminq code together into ionic_main.c. Staticize a f
net/ionic: consolidate adminq code
The adminq is the only caller of ionic_q_service(), so absorb it into ionic_adminq_service(). Move all of the adminq code together into ionic_main.c. Staticize a few things.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
show more ...
|
#
00b65da5 |
| 16-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: remove multi-LIF support
This feature is unused, so remove it.
There is exactly one adapter / lif / ethdev per port.
Signed-off-by: Andrew Boyer <aboyer@pensando.io>
|
#
4ae96cb8 |
| 10-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: do minor logging fixups
Expose ionic_opcode_to_str() so it can be used for dev cmds, too. Store the device name in struct adapter.
Switch to memcpy() to work around gcc false positives.
net/ionic: do minor logging fixups
Expose ionic_opcode_to_str() so it can be used for dev cmds, too. Store the device name in struct adapter.
Switch to memcpy() to work around gcc false positives.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
show more ...
|
#
1abf69fc |
| 10-Dec-2020 |
Andrew Boyer <aboyer@pensando.io> |
net/ionic: remove some unused fields
This conserves resources.
Signed-off-by: Andrew Boyer <aboyer@pensando.io> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
|
#
eec10fb0 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: support FW version
Add support for reading the firmware version.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
|
#
598f6726 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: add basic port operations
Add support for port start/stop and handle basic features including MTU and link up/down.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by:
net/ionic: add basic port operations
Add support for port start/stop and handle basic features including MTU and link up/down.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|
#
27b942c8 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: support notify queue
Add support for the notify queue, which is used for events published by the NIC.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelso
net/ionic: support notify queue
Add support for the notify queue, which is used for events published by the NIC.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|
#
01a6c311 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: support admin queue
Add support for the admin queue, which is used for most of the NIC configurations.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nels
net/ionic: support admin queue
Add support for the admin queue, which is used for most of the NIC configurations.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|
#
669c8de6 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: support basic LIF
Initialize LIFs (Logical Interfaces) which represents external connections. The NIC can multiplex many LIFs to a single port, but in most setups, LIF0 is the primary con
net/ionic: support basic LIF
Initialize LIFs (Logical Interfaces) which represents external connections. The NIC can multiplex many LIFs to a single port, but in most setups, LIF0 is the primary control for the port. Create a device for each LIF.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|
#
23bf4ddb |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: add port management commands
Add port management commands that apply to the physical ports associated with the PCI device, which might be shared among several logical interfaces.
Signed-
net/ionic: add port management commands
Add port management commands that apply to the physical ports associated with the PCI device, which might be shared among several logical interfaces.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|
#
5ef51809 |
| 19-Jan-2020 |
Alfredo Cardigliano <cardigliano@ntop.org> |
net/ionic: register and initialize adapter
Register the Pensando ionic PMD (net_ionic) and define initial probe and remove callbacks with adapter initialization.
Signed-off-by: Alfredo Cardigliano
net/ionic: register and initialize adapter
Register the Pensando ionic PMD (net_ionic) and define initial probe and remove callbacks with adapter initialization.
Signed-off-by: Alfredo Cardigliano <cardigliano@ntop.org> Reviewed-by: Shannon Nelson <snelson@pensando.io>
show more ...
|