From bb756eebdac6fd24e8919e2c43f7d2c8c4091f59 Mon Sep 17 00:00:00 2001 From: RajithaY Date: Tue, 25 Apr 2017 03:31:15 -0700 Subject: Adding qemu as a submodule of KVMFORNFV This Patch includes the changes to add qemu as a submodule to kvmfornfv repo and make use of the updated latest qemu for the execution of all testcase Change-Id: I1280af507a857675c7f81d30c95255635667bdd7 Signed-off-by:RajithaY --- .../src/drivers/net/phantom/nxhal_nic_interface.h | 501 --------------------- 1 file changed, 501 deletions(-) delete mode 100644 qemu/roms/ipxe/src/drivers/net/phantom/nxhal_nic_interface.h (limited to 'qemu/roms/ipxe/src/drivers/net/phantom/nxhal_nic_interface.h') diff --git a/qemu/roms/ipxe/src/drivers/net/phantom/nxhal_nic_interface.h b/qemu/roms/ipxe/src/drivers/net/phantom/nxhal_nic_interface.h deleted file mode 100644 index f487624bf..000000000 --- a/qemu/roms/ipxe/src/drivers/net/phantom/nxhal_nic_interface.h +++ /dev/null @@ -1,501 +0,0 @@ -FILE_LICENCE ( GPL2_ONLY ); - -/* - * Data types and structure for HAL - NIC interface. - * - */ - -#ifndef _NXHAL_NIC_INTERFACE_H_ -#define _NXHAL_NIC_INTERFACE_H_ - -/***************************************************************************** - * Simple Types - *****************************************************************************/ - -typedef U32 nx_reg_addr_t; - -/***************************************************************************** - * Root crb-based firmware commands - *****************************************************************************/ - -/* CRB Root Command - - A single set of crbs is used across all physical/virtual - functions for capability queries, initialization, and - context creation/destruction. - - There are 4 CRBS: - Command/Response CRB - Argument1 CRB - Argument2 CRB - Argument3 CRB - Signature CRB - - The cmd/rsp crb is always intiated by the host via - a command code and always responded by the card with - a response code. The cmd and rsp codes are disjoint. - The sequence of use is always CMD, RSP, CLEAR CMD. - - The arguments are for passing in command specific - and response specific parameters/data. - - The signature is composed of a magic value, the - pci function id, and a command sequence id: - [7:0] = pci function - [15:8] = version - [31:16] = magic of 0xcafe - - The pci function allows the card to take correct - action for the given particular commands. - The firmware will attempt to detect - an errant driver that has died while holding - the root crb hardware lock. Such an error condition - shows up as the cmd/rsp crb stuck in a non-clear state. - - Interface Sequence: - Host always makes requests and firmware always responds. - Note that data field is always set prior to command field. - - [READ] CMD/RSP CRB ARGUMENT FIELD - Host grab lock - Host -> CMD optional parameter - FW <- (Good) RSP-OK DATA - FW <- (Fail) RSP-FAIL optional failure code - Host -> CLEAR - Host release lock - - [WRITE] CMD/RSP CRB ARGUMENT FIELD - Host grab lock - Host -> CMD DATA - FW <- (Good) RSP-OK optional write status - FW <- (Write) RSP-FAIL optional failure code - Host -> CLEAR - Host release lock - -*/ - - -/***************************************************************************** - * CMD/RSP - *****************************************************************************/ - -#define NX_CDRP_SIGNATURE_TO_PCIFN(sign) ((sign) & 0xff) -#define NX_CDRP_SIGNATURE_TO_VERSION(sign) (((sign)>>8) & 0xff) -#define NX_CDRP_SIGNATURE_TO_MAGIC(sign) (((sign)>>16) & 0xffff) -#define NX_CDRP_SIGNATURE_VALID(sign) \ - ( NX_CDRP_SIGNATURE_TO_MAGIC(sign) == 0xcafe && \ - NX_CDRP_SIGNATURE_TO_PCIFN(sign) < 8) -#define NX_CDRP_SIGNATURE_MAKE(pcifn,version) \ - ( ((pcifn) & 0xff) | \ - (((version) & 0xff) << 8) | \ - (0xcafe << 16) ) - -#define NX_CDRP_CLEAR 0x00000000 -#define NX_CDRP_CMD_BIT 0x80000000 - -/* All responses must have the NX_CDRP_CMD_BIT cleared - * in the crb NX_CDRP_CRB_OFFSET. */ -#define NX_CDRP_FORM_RSP(rsp) (rsp) -#define NX_CDRP_IS_RSP(rsp) (((rsp) & NX_CDRP_CMD_BIT) == 0) - -#define NX_CDRP_RSP_OK 0x00000001 -#define NX_CDRP_RSP_FAIL 0x00000002 -#define NX_CDRP_RSP_TIMEOUT 0x00000003 - -/* All commands must have the NX_CDRP_CMD_BIT set in - * the crb NX_CDRP_CRB_OFFSET. - * The macros below do not have it explicitly set to - * allow their use in lookup tables */ -#define NX_CDRP_FORM_CMD(cmd) (NX_CDRP_CMD_BIT | (cmd)) -#define NX_CDRP_IS_CMD(cmd) (((cmd) & NX_CDRP_CMD_BIT) != 0) - -/* [CMD] Capability Vector [RSP] Capability Vector */ -#define NX_CDRP_CMD_SUBMIT_CAPABILITIES 0x00000001 - -/* [CMD] - [RSP] Query Value */ -#define NX_CDRP_CMD_READ_MAX_RDS_PER_CTX 0x00000002 - -/* [CMD] - [RSP] Query Value */ -#define NX_CDRP_CMD_READ_MAX_SDS_PER_CTX 0x00000003 - -/* [CMD] - [RSP] Query Value */ -#define NX_CDRP_CMD_READ_MAX_RULES_PER_CTX 0x00000004 - -/* [CMD] - [RSP] Query Value */ -#define NX_CDRP_CMD_READ_MAX_RX_CTX 0x00000005 - -/* [CMD] - [RSP] Query Value */ -#define NX_CDRP_CMD_READ_MAX_TX_CTX 0x00000006 - -/* [CMD] Rx Config DMA Addr [RSP] rcode */ -#define NX_CDRP_CMD_CREATE_RX_CTX 0x00000007 - -/* [CMD] Rx Context Handle, Reset Kind [RSP] rcode */ -#define NX_CDRP_CMD_DESTROY_RX_CTX 0x00000008 - -/* [CMD] Tx Config DMA Addr [RSP] rcode */ -#define NX_CDRP_CMD_CREATE_TX_CTX 0x00000009 - -/* [CMD] Tx Context Handle, Reset Kind [RSP] rcode */ -#define NX_CDRP_CMD_DESTROY_TX_CTX 0x0000000a - -/* [CMD] Stat setup dma addr - [RSP] Handle, rcode */ -#define NX_CDRP_CMD_SETUP_STATISTICS 0x0000000e - -/* [CMD] Handle - [RSP] rcode */ -#define NX_CDRP_CMD_GET_STATISTICS 0x0000000f - -/* [CMD] Handle - [RSP] rcode */ -#define NX_CDRP_CMD_DELETE_STATISTICS 0x00000010 - -#define NX_CDRP_CMD_MAX 0x00000011 - -/***************************************************************************** - * Capabilities - *****************************************************************************/ - -#define NX_CAP_BIT(class, bit) (1 << bit) - -/* Class 0 (i.e. ARGS 1) - */ -#define NX_CAP0_LEGACY_CONTEXT NX_CAP_BIT(0, 0) -#define NX_CAP0_MULTI_CONTEXT NX_CAP_BIT(0, 1) -#define NX_CAP0_LEGACY_MN NX_CAP_BIT(0, 2) -#define NX_CAP0_LEGACY_MS NX_CAP_BIT(0, 3) -#define NX_CAP0_CUT_THROUGH NX_CAP_BIT(0, 4) -#define NX_CAP0_LRO NX_CAP_BIT(0, 5) -#define NX_CAP0_LSO NX_CAP_BIT(0, 6) - -/* Class 1 (i.e. ARGS 2) - */ -#define NX_CAP1_NIC NX_CAP_BIT(1, 0) -#define NX_CAP1_PXE NX_CAP_BIT(1, 1) -#define NX_CAP1_CHIMNEY NX_CAP_BIT(1, 2) -#define NX_CAP1_LSA NX_CAP_BIT(1, 3) -#define NX_CAP1_RDMA NX_CAP_BIT(1, 4) -#define NX_CAP1_ISCSI NX_CAP_BIT(1, 5) -#define NX_CAP1_FCOE NX_CAP_BIT(1, 6) - -/* Class 2 (i.e. ARGS 3) - */ - -/***************************************************************************** - * Rules - *****************************************************************************/ - -typedef U32 nx_rx_rule_type_t; - -#define NX_RX_RULETYPE_DEFAULT 0 -#define NX_RX_RULETYPE_MAC 1 -#define NX_RX_RULETYPE_MAC_VLAN 2 -#define NX_RX_RULETYPE_MAC_RSS 3 -#define NX_RX_RULETYPE_MAC_VLAN_RSS 4 -#define NX_RX_RULETYPE_MAX 5 - -typedef U32 nx_rx_rule_cmd_t; - -#define NX_RX_RULECMD_ADD 0 -#define NX_RX_RULECMD_REMOVE 1 -#define NX_RX_RULECMD_MAX 2 - -typedef struct nx_rx_rule_arg_s { - union { - struct { - char mac[6]; - } m; - struct { - char mac[6]; - char vlan; - } mv; - struct { - char mac[6]; - } mr; - struct { - char mac[6]; - char vlan; - } mvr; - }; - /* will be union of all the different args for rules */ - U64 data; -} nx_rx_rule_arg_t; - -typedef struct nx_rx_rule_s { - U32 id; - U32 active; - nx_rx_rule_arg_t arg; - nx_rx_rule_type_t type; -} nx_rx_rule_t; - -/* MSG - REQUIRES TX CONTEXT */ - -/* The rules can be added/deleted from both the - * host and card sides so rq/rsp are similar. - */ -typedef struct nx_hostmsg_rx_rule_s { - nx_rx_rule_cmd_t cmd; - nx_rx_rule_t rule; -} nx_hostmsg_rx_rule_t; - -typedef struct nx_cardmsg_rx_rule_s { - nx_rcode_t rcode; - nx_rx_rule_cmd_t cmd; - nx_rx_rule_t rule; -} nx_cardmsg_rx_rule_t; - - -/***************************************************************************** - * Common to Rx/Tx contexts - *****************************************************************************/ - -/* - * Context states - */ - -typedef U32 nx_host_ctx_state_t; - -#define NX_HOST_CTX_STATE_FREED 0 /* Invalid state */ -#define NX_HOST_CTX_STATE_ALLOCATED 1 /* Not committed */ -/* The following states imply FW is aware of context */ -#define NX_HOST_CTX_STATE_ACTIVE 2 -#define NX_HOST_CTX_STATE_DISABLED 3 -#define NX_HOST_CTX_STATE_QUIESCED 4 -#define NX_HOST_CTX_STATE_MAX 5 - -/* - * Interrupt mask crb use must be set identically on the Tx - * and Rx context configs across a pci function - */ - -/* Rx and Tx have unique interrupt/crb */ -#define NX_HOST_INT_CRB_MODE_UNIQUE 0 -/* Rx and Tx share a common interrupt/crb */ -#define NX_HOST_INT_CRB_MODE_SHARED 1 /* <= LEGACY */ -/* Rx does not use a crb */ -#define NX_HOST_INT_CRB_MODE_NORX 2 -/* Tx does not use a crb */ -#define NX_HOST_INT_CRB_MODE_NOTX 3 -/* Neither Rx nor Tx use a crb */ -#define NX_HOST_INT_CRB_MODE_NORXTX 4 - -/* - * Destroy Rx/Tx - */ - -#define NX_DESTROY_CTX_RESET 0 -#define NX_DESTROY_CTX_D3_RESET 1 -#define NX_DESTROY_CTX_MAX 2 - - -/***************************************************************************** - * Tx - *****************************************************************************/ - -/* - * Components of the host-request for Tx context creation. - * CRB - DOES NOT REQUIRE Rx/TX CONTEXT - */ - -typedef struct nx_hostrq_cds_ring_s { - U64 host_phys_addr; /* Ring base addr */ - U32 ring_size; /* Ring entries */ - U32 rsvd; /* Padding */ -} nx_hostrq_cds_ring_t; - -typedef struct nx_hostrq_tx_ctx_s { - U64 host_rsp_dma_addr; /* Response dma'd here */ - U64 cmd_cons_dma_addr; /* */ - U64 dummy_dma_addr; /* */ - U32 capabilities[4]; /* Flag bit vector */ - U32 host_int_crb_mode; /* Interrupt crb usage */ - U32 rsvd1; /* Padding */ - U16 rsvd2; /* Padding */ - U16 interrupt_ctl; - U16 msi_index; - U16 rsvd3; /* Padding */ - nx_hostrq_cds_ring_t cds_ring; /* Desc of cds ring */ - U8 reserved[128]; /* future expansion */ -} nx_hostrq_tx_ctx_t; - -typedef struct nx_cardrsp_cds_ring_s { - U32 host_producer_crb; /* Crb to use */ - U32 interrupt_crb; /* Crb to use */ -} nx_cardrsp_cds_ring_t; - -typedef struct nx_cardrsp_tx_ctx_s { - U32 host_ctx_state; /* Starting state */ - U16 context_id; /* Handle for context */ - U8 phys_port; /* Physical id of port */ - U8 virt_port; /* Virtual/Logical id of port */ - nx_cardrsp_cds_ring_t cds_ring; /* Card cds settings */ - U8 reserved[128]; /* future expansion */ -} nx_cardrsp_tx_ctx_t; - -#define SIZEOF_HOSTRQ_TX(HOSTRQ_TX) \ - ( sizeof(HOSTRQ_TX)) - -#define SIZEOF_CARDRSP_TX(CARDRSP_TX) \ - ( sizeof(CARDRSP_TX)) - -/***************************************************************************** - * Rx - *****************************************************************************/ - -/* - * RDS ring mapping to producer crbs - */ - -/* Each ring has a unique crb */ -#define NX_HOST_RDS_CRB_MODE_UNIQUE 0 /* <= LEGACY */ - -/* All configured RDS Rings share common crb: - 1 Ring - same as unique - 2 Rings - 16, 16 - 3 Rings - 10, 10, 10 */ -#define NX_HOST_RDS_CRB_MODE_SHARED 1 - -/* Bit usage is specified per-ring using the - ring's size. Sum of bit lengths must be <= 32. - Packing is [Ring N] ... [Ring 1][Ring 0] */ -#define NX_HOST_RDS_CRB_MODE_CUSTOM 2 -#define NX_HOST_RDS_CRB_MODE_MAX 3 - - -/* - * RDS Ting Types - */ - -#define NX_RDS_RING_TYPE_NORMAL 0 -#define NX_RDS_RING_TYPE_JUMBO 1 -#define NX_RDS_RING_TYPE_LRO 2 -#define NX_RDS_RING_TYPE_MAX 3 - -/* - * Components of the host-request for Rx context creation. - * CRB - DOES NOT REQUIRE Rx/TX CONTEXT - */ - -typedef struct nx_hostrq_sds_ring_s { - U64 host_phys_addr; /* Ring base addr */ - U32 ring_size; /* Ring entries */ - U16 msi_index; - U16 rsvd; /* Padding */ -} nx_hostrq_sds_ring_t; - -typedef struct nx_hostrq_rds_ring_s { - U64 host_phys_addr; /* Ring base addr */ - U64 buff_size; /* Packet buffer size */ - U32 ring_size; /* Ring entries */ - U32 ring_kind; /* Class of ring */ -} nx_hostrq_rds_ring_t; - -typedef struct nx_hostrq_rx_ctx_s { - U64 host_rsp_dma_addr; /* Response dma'd here */ - U32 capabilities[4]; /* Flag bit vector */ - U32 host_int_crb_mode; /* Interrupt crb usage */ - U32 host_rds_crb_mode; /* RDS crb usage */ - /* These ring offsets are relative to data[0] below */ - U32 rds_ring_offset; /* Offset to RDS config */ - U32 sds_ring_offset; /* Offset to SDS config */ - U16 num_rds_rings; /* Count of RDS rings */ - U16 num_sds_rings; /* Count of SDS rings */ - U16 rsvd1; /* Padding */ - U16 rsvd2; /* Padding */ - U8 reserved[128]; /* reserve space for future expansion*/ - /* MUST BE 64-bit aligned. - The following is packed: - - N hostrq_rds_rings - - N hostrq_sds_rings */ - char data[0]; -} nx_hostrq_rx_ctx_t; - -typedef struct nx_cardrsp_rds_ring_s { - U32 host_producer_crb; /* Crb to use */ - U32 rsvd1; /* Padding */ -} nx_cardrsp_rds_ring_t; - -typedef struct nx_cardrsp_sds_ring_s { - U32 host_consumer_crb; /* Crb to use */ - U32 interrupt_crb; /* Crb to use */ -} nx_cardrsp_sds_ring_t; - -typedef struct nx_cardrsp_rx_ctx_s { - /* These ring offsets are relative to data[0] below */ - U32 rds_ring_offset; /* Offset to RDS config */ - U32 sds_ring_offset; /* Offset to SDS config */ - U32 host_ctx_state; /* Starting State */ - U32 num_fn_per_port; /* How many PCI fn share the port */ - U16 num_rds_rings; /* Count of RDS rings */ - U16 num_sds_rings; /* Count of SDS rings */ - U16 context_id; /* Handle for context */ - U8 phys_port; /* Physical id of port */ - U8 virt_port; /* Virtual/Logical id of port */ - U8 reserved[128]; /* save space for future expansion */ - /* MUST BE 64-bit aligned. - The following is packed: - - N cardrsp_rds_rings - - N cardrs_sds_rings */ - char data[0]; -} nx_cardrsp_rx_ctx_t; - -#define SIZEOF_HOSTRQ_RX(HOSTRQ_RX, rds_rings, sds_rings) \ - ( sizeof(HOSTRQ_RX) + \ - (rds_rings)*(sizeof (nx_hostrq_rds_ring_t)) + \ - (sds_rings)*(sizeof (nx_hostrq_sds_ring_t)) ) - -#define SIZEOF_CARDRSP_RX(CARDRSP_RX, rds_rings, sds_rings) \ - ( sizeof(CARDRSP_RX) + \ - (rds_rings)*(sizeof (nx_cardrsp_rds_ring_t)) + \ - (sds_rings)*(sizeof (nx_cardrsp_sds_ring_t)) ) - - -/***************************************************************************** - * Statistics - *****************************************************************************/ - -/* - * The model of statistics update to use - */ - -#define NX_STATISTICS_MODE_INVALID 0 - -/* Permanent setup; Updates are only sent on explicit request - (NX_CDRP_CMD_GET_STATISTICS) */ -#define NX_STATISTICS_MODE_PULL 1 - -/* Permanent setup; Updates are sent automatically and on - explicit request (NX_CDRP_CMD_GET_STATISTICS) */ -#define NX_STATISTICS_MODE_PUSH 2 - -/* One time stat update. */ -#define NX_STATISTICS_MODE_SINGLE_SHOT 3 - -#define NX_STATISTICS_MODE_MAX 4 - -/* - * What set of stats - */ -#define NX_STATISTICS_TYPE_INVALID 0 -#define NX_STATISTICS_TYPE_NIC_RX_CORE 1 -#define NX_STATISTICS_TYPE_NIC_TX_CORE 2 -#define NX_STATISTICS_TYPE_NIC_RX_ALL 3 -#define NX_STATISTICS_TYPE_NIC_TX_ALL 4 -#define NX_STATISTICS_TYPE_MAX 5 - - -/* - * Request to setup statistics gathering. - * CRB - DOES NOT REQUIRE Rx/TX CONTEXT - */ - -typedef struct nx_hostrq_stat_setup_s { - U64 host_stat_buffer; /* Where to dma stats */ - U32 host_stat_size; /* Size of stat buffer */ - U16 context_id; /* Which context */ - U16 stat_type; /* What class of stats */ - U16 stat_mode; /* When to update */ - U16 stat_interval; /* Frequency of update */ -} nx_hostrq_stat_setup_t; - - - -#endif /* _NXHAL_NIC_INTERFACE_H_ */ -- cgit 1.2.3-korg