4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * CDDL HEADER START
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * The contents of this file are subject to the terms of the
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * Common Development and Distribution License (the "License").
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * You may not use this file except in compliance with the License.
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * or http://www.opensolaris.org/os/licensing.
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * See the License for the specific language governing permissions
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * and limitations under the License.
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * When distributing Covered Code, include this CDDL HEADER in each
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * If applicable, add the following below this CDDL HEADER, with the
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * fields enclosed by brackets "[]" replaced with your own identifying
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * information: Portions Copyright [yyyy] [name of copyright owner]
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * CDDL HEADER END
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore/* Copyright © 2003-2011 Emulex. All rights reserved. */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * Header file containing the command structures for Hardware
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* PCI CSR offsets */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define IMAGE_TRANSFER_SIZE (32 * 1024) /* 32K at a time */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* CSR register offsets */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* POST status reg struct */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define POST_STAGE_AWAITING_HOST_RDY 0x01
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* DOORBELL registers */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* EQE completion types */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* Link Status field values */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PHY_LINK_SPEED_ZERO 0x0 /* No link */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_10MBPS 0x1 /* (10 Mbps) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_100MBPS 0x2 /* (100 Mbps) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_1GBPS 0x3 /* (1 Gbps) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_10GBPS 0x4 /* (10 Gbps) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_ZERO 0x0 /* (No link.) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_10MBPS 0x1 /* (10 Mbps) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_100MBPS 0x2 /* (100 Mbps) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_1GBPS 0x3 /* (1 Gbps) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_SPEED_10GBPS 0x4 /* (10 Gbps) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* Hardware Address types */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MAC_ADDRESS_TYPE_STORAGE 0x0 /* (Storage MAC Address) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MAC_ADDRESS_TYPE_NETWORK 0x1 /* (Network MAC Address) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MAC_ADDRESS_TYPE_PD 0x2 /* (Protection Domain MAC Addr) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MAC_ADDRESS_TYPE_MANAGEMENT 0x3 /* (Management MAC Address) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MAC_ADDRESS_TYPE_FCOE 0x4 /* (FCoE MAC Address) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* CREATE_IFACE capability and cap_en flags */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_VLAN_PROMISCUOUS 0x80
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MBX_RX_IFACE_FLAGS_MCAST_PROMISCUOUS 0x200
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MQ_RING_CONTEXT_SIZE_16 0x5 /* (16 entries) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MQ_RING_CONTEXT_SIZE_32 0x6 /* (32 entries) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MQ_RING_CONTEXT_SIZE_64 0x7 /* (64 entries) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MQ_RING_CONTEXT_SIZE_128 0x8 /* (128 entries) */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan/* port link_status */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan/* Logical Link Status */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* Rx filter bits */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* max SGE per mbx */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* physical address structure to be used in MBX */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* RX doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* TX doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* CQ doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* EQ doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* bootstrap mbox doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* MQ ring doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * Event Queue Entry
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* MQ scatter gather entry. Array of these make an SGL */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * payload can contain an SGL or an embedded array of upto 59 dwords
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * MQ MBX structure
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* completion queue entry for MQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* MQ mailbox structure */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* ---[ MBXs start here ]---------------------------------------------- */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* MBXs sub system codes */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* common ioctl opcodes */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_QUERY_COMMON_MAX_MBX_BUFFER_SIZE = 8,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_ADD_TEMPLATE_HEADER_BUFFERS = 24,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_REMOVE_TEMPLATE_HEADER_BUFFERS = 25,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_ENABLE_DISABLE_DOMAINS = 43,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_GET_PORT_EQUALIZATION = 47,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_SET_PORT_EQUALIZATION = 48,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_CEV_MODIFY_MSI_MESSAGES = 52,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_QUERY_COMMON_FIRMWARE_CONFIG = 58,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* common ioctl header */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define OCE_MBX_RRHDR_SZ sizeof (struct mbx_hdr)
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define OCE_MBX_ADDL_STATUS(_MHDR) ((_MHDR)->u0.rsp.additional_status)
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define OCE_MBX_STATUS(_MHDR) ((_MHDR)->u0.rsp.status)
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [05] OPCODE_QUERY_COMMON_LINK_STATUS */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [57] OPCODE_SET_COMMON_LINK_SPEED */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [01] OPCODE_QUERY_COMMON_IFACE_MAC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [02] OPCODE_SET_COMMON_IFACE_MAC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [03] OPCODE_SET_COMMON_IFACE_MULTICAST */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [50] OPCODE_CREATE_COMMON_IFACE */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [51] OPCODE_DESTROY_COMMON_IFACE */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* event queue context structure */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [13] OPCODE_CREATE_COMMON_EQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [55] OPCODE_DESTROY_COMMON_EQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [12] OPCODE_CREATE_COMMON_CQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [54] OPCODE_DESTROY_COMMON_CQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [21] OPCODE_CREATE_COMMON_MQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [53] OPCODE_DESTROY_COMMON_MQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [35] OPCODE_GET_COMMON_ FW_VERSION */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [52] OPCODE_COMMON_CEV_MODIFY_MSI_MESSAGES */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_common_cev_modify_msi_messages {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [36] OPCODE_SET_COMMON_FLOW_CONTROL */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [37] OPCODE_GET_COMMON_FLOW_CONTROL */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [06] OPCODE_READ_COMMON_FLASHROM */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [07] OPCODE_WRITE_COMMON_FLASHROM */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t data_buffer[4]; /* + IMAGE_TRANSFER_SIZE */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan/* ULP MODE SUPPORTED */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan/* Function Mode Supported */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ISCSI_INI_MODE = 0x10, /* iSCSI initiator */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ISCSI_TGT_MODE = 0x20, /* iSCSI target plus initiator */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan FCOE_INI_MODE = 0x40, /* FCoE Initiator */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan FLEX10_MODE = 0x400, /* FLEX-10 or VNIC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t port_id; /* used for stats retrieval */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [34] OPCODE_COMMON_NTWK_RX_FILTER */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [41] OPCODE_MODIFY_COMMON_EQ_DELAY */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [59] OPCODE_ADD_COMMON_IFACE_MAC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [60] OPCODE_DEL_COMMON_IFACE_MAC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [8] OPCODE_QUERY_COMMON_MAX_MBX_BUFFER_SIZE */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_query_common_max_mbx_buffer_size {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [61] OPCODE_COMMON_FUNCTION_RESET */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [80] OPCODE_COMMON_FUNCTION_LINK_CONFIG */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif /* _OCE_HW_H_ */