Skip to content

Commit df69ba4

Browse files
emuslndavem330
authored andcommitted
ionic: Add basic framework for IONIC Network device driver
This patch adds a basic driver framework for the Pensando IONIC network device. There is no functionality right now other than the ability to load and unload. Signed-off-by: Shannon Nelson <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 7d5aa9a commit df69ba4

File tree

14 files changed

+272
-0
lines changed

14 files changed

+272
-0
lines changed

Documentation/networking/device_drivers/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Contents:
2323
intel/ice
2424
google/gve
2525
mellanox/mlx5
26+
pensando/ionic
2627

2728
.. only:: subproject
2829

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
.. SPDX-License-Identifier: GPL-2.0+
2+
3+
==========================================================
4+
Linux* Driver for the Pensando(R) Ethernet adapter family
5+
==========================================================
6+
7+
Pensando Linux Ethernet driver.
8+
Copyright(c) 2019 Pensando Systems, Inc
9+
10+
Contents
11+
========
12+
13+
- Identifying the Adapter
14+
- Support
15+
16+
Identifying the Adapter
17+
=======================
18+
19+
To find if one or more Pensando PCI Ethernet devices are installed on the
20+
host, check for the PCI devices::
21+
22+
$ lspci -d 1dd8:
23+
b5:00.0 Ethernet controller: Device 1dd8:1002
24+
b6:00.0 Ethernet controller: Device 1dd8:1002
25+
26+
If such devices are listed as above, then the ionic.ko driver should find
27+
and configure them for use. There should be log entries in the kernel
28+
messages such as these::
29+
30+
$ dmesg | grep ionic
31+
ionic Pensando Ethernet NIC Driver, ver 0.15.0-k
32+
ionic 0000:b5:00.0 enp181s0: renamed from eth0
33+
ionic 0000:b6:00.0 enp182s0: renamed from eth0
34+
35+
Support
36+
=======
37+
For general Linux networking support, please use the netdev mailing
38+
list, which is monitored by Pensando personnel::
39+
40+
41+
For more specific support needs, please use the Pensando driver support
42+
email::
43+

MAINTAINERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12608,6 +12608,14 @@ L: [email protected]
1260812608
S: Maintained
1260912609
F: drivers/platform/x86/peaq-wmi.c
1261012610

12611+
PENSANDO ETHERNET DRIVERS
12612+
M: Shannon Nelson <[email protected]>
12613+
M: Pensando Drivers <[email protected]>
12614+
12615+
S: Supported
12616+
F: Documentation/networking/device_drivers/pensando/ionic.rst
12617+
F: drivers/net/ethernet/pensando/
12618+
1261112619
PER-CPU MEMORY ALLOCATOR
1261212620
M: Dennis Zhou <[email protected]>
1261312621
M: Tejun Heo <[email protected]>

drivers/net/ethernet/Kconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,7 @@ config ETHOC
168168

169169
source "drivers/net/ethernet/packetengines/Kconfig"
170170
source "drivers/net/ethernet/pasemi/Kconfig"
171+
source "drivers/net/ethernet/pensando/Kconfig"
171172
source "drivers/net/ethernet/qlogic/Kconfig"
172173
source "drivers/net/ethernet/qualcomm/Kconfig"
173174
source "drivers/net/ethernet/rdc/Kconfig"

drivers/net/ethernet/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,4 @@ obj-$(CONFIG_NET_VENDOR_WIZNET) += wiznet/
9797
obj-$(CONFIG_NET_VENDOR_XILINX) += xilinx/
9898
obj-$(CONFIG_NET_VENDOR_XIRCOM) += xircom/
9999
obj-$(CONFIG_NET_VENDOR_SYNOPSYS) += synopsys/
100+
obj-$(CONFIG_NET_VENDOR_PENSANDO) += pensando/
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
# Copyright (c) 2019 Pensando Systems, Inc
3+
#
4+
# Pensando device configuration
5+
#
6+
7+
config NET_VENDOR_PENSANDO
8+
bool "Pensando devices"
9+
default y
10+
help
11+
If you have a network (Ethernet) card belonging to this class, say Y.
12+
13+
Note that the answer to this question doesn't directly affect the
14+
kernel: saying N will just cause the configurator to skip all
15+
the questions about Pensando cards. If you say Y, you will be asked
16+
for your specific card in the following questions.
17+
18+
if NET_VENDOR_PENSANDO
19+
20+
config IONIC
21+
tristate "Pensando Ethernet IONIC Support"
22+
depends on 64BIT && PCI
23+
help
24+
This enables the support for the Pensando family of Ethernet
25+
adapters. More specific information on this driver can be
26+
found in
27+
<file:Documentation/networking/device_drivers/pensando/ionic.rst>.
28+
29+
To compile this driver as a module, choose M here. The module
30+
will be called ionic.
31+
32+
endif # NET_VENDOR_PENSANDO
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
#
3+
# Makefile for the Pensando network device drivers.
4+
#
5+
6+
obj-$(CONFIG_IONIC) += ionic/
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# SPDX-License-Identifier: GPL-2.0
2+
# Copyright(c) 2017 - 2019 Pensando Systems, Inc
3+
4+
obj-$(CONFIG_IONIC) := ionic.o
5+
6+
ionic-y := ionic_main.o ionic_bus_pci.o ionic_devlink.o
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
/* Copyright(c) 2017 - 2019 Pensando Systems, Inc */
3+
4+
#ifndef _IONIC_H_
5+
#define _IONIC_H_
6+
7+
#include "ionic_devlink.h"
8+
9+
#define IONIC_DRV_NAME "ionic"
10+
#define IONIC_DRV_DESCRIPTION "Pensando Ethernet NIC Driver"
11+
#define IONIC_DRV_VERSION "0.15.0-k"
12+
13+
#define PCI_VENDOR_ID_PENSANDO 0x1dd8
14+
15+
#define PCI_DEVICE_ID_PENSANDO_IONIC_ETH_PF 0x1002
16+
#define PCI_DEVICE_ID_PENSANDO_IONIC_ETH_VF 0x1003
17+
18+
#define IONIC_SUBDEV_ID_NAPLES_25 0x4000
19+
#define IONIC_SUBDEV_ID_NAPLES_100_4 0x4001
20+
#define IONIC_SUBDEV_ID_NAPLES_100_8 0x4002
21+
22+
struct ionic {
23+
struct pci_dev *pdev;
24+
struct device *dev;
25+
};
26+
27+
#endif /* _IONIC_H_ */
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/* SPDX-License-Identifier: GPL-2.0 */
2+
/* Copyright(c) 2017 - 2019 Pensando Systems, Inc */
3+
4+
#ifndef _IONIC_BUS_H_
5+
#define _IONIC_BUS_H_
6+
7+
int ionic_bus_register_driver(void);
8+
void ionic_bus_unregister_driver(void);
9+
10+
#endif /* _IONIC_BUS_H_ */

0 commit comments

Comments
 (0)