Skip to content

Commit 032c5e8

Browse files
tlfalcondavem330
authored andcommitted
Driver for IBM System i/p VNIC protocol
This is a new device driver for a high performance SR-IOV assisted virtual network for IBM System p and IBM System i systems. The SR-IOV VF will be attached to the VIOS partition and mapped to the Linux client via the hypervisor's VNIC protocol that this driver implements. This driver is able to perform basic tx and rx, new features and improvements will be added as they are being developed and tested. Signed-off-by: Thomas Falcon <[email protected]> Signed-off-by: John Allen <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 7b752fd commit 032c5e8

File tree

6 files changed

+4669
-0
lines changed

6 files changed

+4669
-0
lines changed

MAINTAINERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5292,6 +5292,13 @@ L: [email protected]
52925292
S: Supported
52935293
F: drivers/net/ethernet/ibm/ibmveth.*
52945294

5295+
IBM Power SRIOV Virtual NIC Device Driver
5296+
M: Thomas Falcon <[email protected]>
5297+
M: John Allen <[email protected]>
5298+
5299+
S: Supported
5300+
F: drivers/net/ethernet/ibm/ibmvnic.*
5301+
52955302
IBM Power Virtual SCSI Device Drivers
52965303
M: Tyrel Datwyler <[email protected]>
52975304

arch/powerpc/include/asm/hvcall.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,11 +258,16 @@
258258
#define H_DEL_CONN 0x288
259259
#define H_JOIN 0x298
260260
#define H_VASI_STATE 0x2A4
261+
#define H_VIOCTL 0x2A8
261262
#define H_ENABLE_CRQ 0x2B0
262263
#define H_GET_EM_PARMS 0x2B8
263264
#define H_SET_MPP 0x2D0
264265
#define H_GET_MPP 0x2D4
266+
#define H_REG_SUB_CRQ 0x2DC
265267
#define H_HOME_NODE_ASSOCIATIVITY 0x2EC
268+
#define H_FREE_SUB_CRQ 0x2E0
269+
#define H_SEND_SUB_CRQ 0x2E4
270+
#define H_SEND_SUB_CRQ_INDIRECT 0x2E8
266271
#define H_BEST_ENERGY 0x2F4
267272
#define H_XIRR_X 0x2FC
268273
#define H_RANDOM 0x300
@@ -271,6 +276,21 @@
271276
#define H_SET_MODE 0x31C
272277
#define MAX_HCALL_OPCODE H_SET_MODE
273278

279+
/* H_VIOCTL functions */
280+
#define H_GET_VIOA_DUMP_SIZE 0x01
281+
#define H_GET_VIOA_DUMP 0x02
282+
#define H_GET_ILLAN_NUM_VLAN_IDS 0x03
283+
#define H_GET_ILLAN_VLAN_ID_LIST 0x04
284+
#define H_GET_ILLAN_SWITCH_ID 0x05
285+
#define H_DISABLE_MIGRATION 0x06
286+
#define H_ENABLE_MIGRATION 0x07
287+
#define H_GET_PARTNER_INFO 0x08
288+
#define H_GET_PARTNER_WWPN_LIST 0x09
289+
#define H_DISABLE_ALL_VIO_INTS 0x0A
290+
#define H_DISABLE_VIO_INTERRUPT 0x0B
291+
#define H_ENABLE_VIO_INTERRUPT 0x0C
292+
293+
274294
/* Platform specific hcalls, used by KVM */
275295
#define H_RTAS 0xf000
276296

drivers/net/ethernet/ibm/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,14 @@ config EHEA
3737
To compile the driver as a module, choose M here. The module
3838
will be called ehea.
3939

40+
config IBMVNIC
41+
tristate "IBM Virtual NIC support"
42+
depends on PPC_PSERIES
43+
---help---
44+
This driver supports Virtual NIC adapters on IBM i and IBM System p
45+
systems.
46+
47+
To compile this driver as a module, choose M here. The module will
48+
be called ibmvnic.
49+
4050
endif # NET_VENDOR_IBM

drivers/net/ethernet/ibm/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@
33
#
44

55
obj-$(CONFIG_IBMVETH) += ibmveth.o
6+
obj-$(CONFIG_IBMVNIC) += ibmvnic.o
67
obj-$(CONFIG_IBM_EMAC) += emac/
78
obj-$(CONFIG_EHEA) += ehea/

0 commit comments

Comments
 (0)