4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/*
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * CDDL HEADER START
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan *
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 *
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 *
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 *
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * CDDL HEADER END
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore/* Copyright © 2003-2011 Emulex. All rights reserved. */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/*
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * Header file containing the command structures for Hardware
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifndef _OCE_HW_H_
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define _OCE_HW_H_
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef __cplusplus
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanextern "C" {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#include <sys/types.h>
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#pragma pack(1)
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define OC_CNA_GEN2 0x2
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define OC_CNA_GEN3 0x3
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define DEVID_TIGERSHARK 0x700
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define DEVID_TOMCAT 0x710
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* PCI CSR offsets */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PCICFG_F1_CSR 0x0 /* F1 for NIC */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PCICFG_SEMAPHORE 0xbc
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PCICFG_SOFT_RESET 0x5c
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PCICFG_UE_STATUS_HI_MASK 0xac
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PCICFG_UE_STATUS_LO_MASK 0xa8
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PCICFG_ONLINE0 0xb0
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PCICFG_ONLINE1 0xb4
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define INTR_EN 0x20000000
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define IMAGE_TRANSFER_SIZE (32 * 1024) /* 32K at a time */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* CSR register offsets */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MPU_EP_CONTROL 0
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MPU_EP_SEMAPHORE 0xac
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PCICFG_INTR_CTRL 0xfc
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define HOSTINTR_MASK (1 << 29)
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define HOSTINTR_PFUNC_SHIFT 26
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define HOSTINTR_PFUNC_MASK 7
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* POST status reg struct */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define POST_STAGE_POWER_ON_RESET 0x00
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define POST_STAGE_AWAITING_HOST_RDY 0x01
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define POST_STAGE_HOST_RDY 0x02
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define POST_STAGE_CHIP_RESET 0x03
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define POST_STAGE_ARMFW_READY 0xc000
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define POST_STAGE_ARMFW_UE 0xf000
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* DOORBELL registers */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PD_RXULP_DB 0x0100
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PD_TXULP_DB 0x0060
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define DB_RQ_ID_MASK 0x3FF
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PD_CQ_DB 0x0120
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PD_EQ_DB PD_CQ_DB
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PD_MPU_MBOX_DB 0x0160
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PD_MQ_DB 0x0140
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* EQE completion types */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define EQ_MINOR_CODE_COMPLETION 0x00
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define EQ_MINOR_CODE_OTHER 0x01
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define EQ_MAJOR_CODE_COMPLETION 0x00
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* Link Status field values */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define PHY_LINK_FAULT_NONE 0x0
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_FAULT_LOCAL 0x01
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_FAULT_REMOTE 0x02
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
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
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_DUPLEX_NONE 0x0
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_DUPLEX_HALF 0x1
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define PHY_LINK_DUPLEX_FULL 0x2
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define NTWK_PORT_A 0x0 /* (Port A) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define NTWK_PORT_B 0x1 /* (Port B) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
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
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
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* CREATE_IFACE capability and cap_en flags */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_RSS 0x4
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_PROMISCUOUS 0x8
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_BROADCAST 0x10
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_UNTAGGED 0x20
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_ULP 0x40
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_VLAN_PROMISCUOUS 0x80
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_VLAN 0x100
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define MBX_RX_IFACE_FLAGS_MCAST_PROMISCUOUS 0x200
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_PASS_L2 0x400
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_RX_IFACE_FLAGS_PASS_L3L4 0x800
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
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) */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_DB_READY_BIT 0x1
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MBX_DB_HI_BIT 0x2
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define ASYNC_EVENT_CODE_LINK_STATE 0x1
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define ASYNC_EVENT_LINK_UP 0x1
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define ASYNC_EVENT_LINK_DOWN 0x0
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan/* port link_status */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan#define ASYNC_EVENT_LOGICAL 0x02
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan/* Logical Link Status */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan#define NTWK_LOGICAL_LINK_DOWN 0
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan#define NTWK_LOGICAL_LINK_UP 1
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* Rx filter bits */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define NTWK_RX_FILTER_IP_CKSUM 0x1
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define NTWK_RX_FILTER_TCP_CKSUM 0x2
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define NTWK_RX_FILTER_UDP_CKSUM 0x4
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define NTWK_RX_FILTER_STRIP_CRC 0x8
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* max SGE per mbx */
3abb112f8485b33b6b9b52b340bede0a333c10bfGarrett D'Amore#define MAX_MBX_SGE 19
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* physical address structure to be used in MBX */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct phys_addr {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t lo;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t hi;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union pcicfg_intr_ctl_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t winselect:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t hostintr:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pfnum:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t vf_cev_int_line_en:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t winaddr:23;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t membarwinen:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t membarwinen:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t winaddr:23;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t vf_cev_int_line_en:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pfnum:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t hostintr:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t winselect:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan } bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}pcicfg_intr_ctl_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union pcicfg_semaphore_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd:31;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t lock:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t lock:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd:31;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}pcicfg_semaphore_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union pcicfg_soft_reset_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t nec_ll_rcvdetect:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dbg_all_reqs_62_49:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t scratchpad0:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t exception_oe:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t soft_reset:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:7;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:7;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t soft_reset:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t exception_oe:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t scratchpad0:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dbg_all_reqs_62_49:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t nec_ll_rcvdetect:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}pcicfg_soft_reset_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union pcicfg_online1_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host8_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host7_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host6_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host5_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host4_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host3_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host2_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t ipc_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t arm_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t txp_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t xaui_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rxpp_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t txpb_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rr_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pmem_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pctl1_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pctl0_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pcs1online_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mpu_iram_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pcs0online_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mgmt_mac_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t lpcmemhost_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t lpcmemhost_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mgmt_mac_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pcs0online_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mpu_iram_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pcs1online_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pctl0_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pctl1_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pmem_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rr_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t txpb_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rxpp_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t xaui_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t txp_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t arm_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t ipc_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host2_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host3_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host4_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host5_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host6_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host7_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t host8_online:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}pcicfg_online1_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union mpu_ep_semaphore_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t error:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t backup_fw:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t iscsi_no_ip:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t iscsi_ip_conflict:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t option_rom_installed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t iscsi_drv_loaded:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t stage:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t stage:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t iscsi_drv_loaded:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t option_rom_installed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t iscsi_ip_conflict:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t iscsi_no_ip:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t backup_fw:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t error:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}mpu_ep_semaphore_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union mpu_ep_control_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cpu_reset:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:15;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t ep_ram_init_status:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:12;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t m2_rxpbuf:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t m1_rxpbuf:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t m0_rxpbuf:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t m0_rxpbuf:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t m1_rxpbuf:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t m2_rxpbuf:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:12;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t ep_ram_init_status:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:15;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cpu_reset:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}mpu_ep_control_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* RX doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union pd_rxulp_db_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_posted:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t invalidate:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t qid:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t qid:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t invalidate:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_posted:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}pd_rxulp_db_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* TX doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union pd_txulp_db_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_posted:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:6;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t qid:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t qid:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:6;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_posted:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}pd_txulp_db_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* CQ doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union cq_db_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rearm:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_popped:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t qid:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t qid:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_popped:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rearm:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}cq_db_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* EQ doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union eq_db_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rearm:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_popped:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t clrint:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t qid:9;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t qid:9;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t clrint:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_popped:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rearm:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}eq_db_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* bootstrap mbox doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union pd_mpu_mbox_db_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t address:30;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t hi:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t ready:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t ready:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t hi:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t address:30;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}pd_mpu_mbox_db_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* MQ ring doorbell */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathantypedef union pd_mq_db_u {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_posted:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mq_id:11;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mq_id:11;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_posted:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }bits;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}pd_mq_db_t;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/*
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * Event Queue Entry
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_eqe {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t resource_id:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t minor_code:12;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t major_code:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t major_code:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t minor_code:12;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t resource_id:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }s;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* MQ scatter gather entry. Array of these make an SGL */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_mq_sge {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pa_lo;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pa_hi;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t length;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/*
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * payload can contain an SGL or an embedded array of upto 59 dwords
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_mbx_payload {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct oce_mq_sge sgl[MAX_MBX_SGE];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t embedded[59];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw[59];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/*
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan * MQ MBX structure
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_mbx {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t special : 8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1 : 16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t sge_count : 5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0 : 2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t embedded : 1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t embedded:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t sge_count:5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t special:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }s;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t payload_length;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t tag[2];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd2[1];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct oce_mbx_payload payload;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* completion queue entry for MQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_mq_cqe {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t extended_status:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t completion_status:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 dw2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mq_tag[2];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw3 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t async_event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t hpi_buffer_cmpl:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t completed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t consumed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:27;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t completion_status:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t extended_status:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 dw2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mq_tag[2];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw3 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:27;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t consumed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t completed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t hpi_buffer_cmpl:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t async_event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }s;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw[4];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_async_cqe_link_state {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t speed;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t duplex;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t link_status;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t phy_port;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t rsvd0[3];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t fault;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event_tag;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw3 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t async_event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd2:6;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event_type:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event_code:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t phy_port;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t link_status;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t duplex;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t speed;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t fault;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t rsvd0[3];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event_tag;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw3 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event_code:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t event_type:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd2:6;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t async_event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }s;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw[4];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* MQ mailbox structure */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_bmbx {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct oce_mbx mbx;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct oce_mq_cqe cqe;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* ---[ MBXs start here ]---------------------------------------------- */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* MBXs sub system codes */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanenum {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_RSVD = 0,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_COMMON = 1,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_COMMON_ISCSI = 2,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_NIC = 3,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_TOE = 4,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_PXE_UNDI = 5,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_ISCSI_INI = 6,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_ISCSI_TGT = 7,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_MILI_PTL = 8,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_MILI_TMD = 9,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_RDMA = 10,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_LOWLEVEL = 11,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MBX_SUBSYSTEM_LRO = 13,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan IOCBMBX_SUBSYSTEM_DCBX = 15,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan IOCBMBX_SUBSYSTEM_DIAG = 16,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan IOCBMBX_SUBSYSTEM_VENDOR = 17
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* common ioctl opcodes */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanenum {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_QUERY_COMMON_IFACE_MAC = 1,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_SET_COMMON_IFACE_MAC = 2,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_SET_COMMON_IFACE_MULTICAST = 3,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_CONFIG_COMMON_IFACE_VLAN = 4,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_QUERY_COMMON_LINK_STATUS = 5,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_READ_COMMON_FLASHROM = 6,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_WRITE_COMMON_FLASHROM = 7,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_QUERY_COMMON_MAX_MBX_BUFFER_SIZE = 8,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_ADD_COMMON_PAGE_TABLES = 9,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_REMOVE_COMMON_PAGE_TABLES = 10,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_CREATE_COMMON_CQ = 12,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_CREATE_COMMON_EQ = 13,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_CREATE_COMMON_MQ = 21,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_JELL_CONFIG = 22,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_ADD_TEMPLATE_HEADER_BUFFERS = 24,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_REMOVE_TEMPLATE_HEADER_BUFFERS = 25,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_POST_ZERO_BUFFER = 26,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_GET_QOS = 27,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_SET_QOS = 28,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_TCP_GET_STATISTICS = 29,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_READ_COMMON_SEEPROM = 30,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_TCP_STATE_QUERY = 31,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_GET_COMMON_CNTL_ATTRIBUTES = 32,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_NOP = 33,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_NTWK_RX_FILTER = 34,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_GET_COMMON_FW_VERSION = 35,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_SET_COMMON_FLOW_CONTROL = 36,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_GET_COMMON_FLOW_CONTROL = 37,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_SET_TCP_PARAMETERS = 38,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_SET_COMMON_FRAME_SIZE = 39,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_GET_FAT = 40,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_MODIFY_COMMON_EQ_DELAY = 41,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_FIRMWARE_CONFIG = 42,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_ENABLE_DISABLE_DOMAINS = 43,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_GET_DOMAIN_CONFIG = 44,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_GET_PORT_EQUALIZATION = 47,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_SET_PORT_EQUALIZATION = 48,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_RED_CONFIG = 49,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_CREATE_COMMON_IFACE = 50,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_DESTROY_COMMON_IFACE = 51,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_CEV_MODIFY_MSI_MESSAGES = 52,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_DESTROY_COMMON_MQ = 53,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_DESTROY_COMMON_CQ = 54,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_DESTROY_COMMON_EQ = 55,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_TCP_UPL_OAD = 56,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_SET_COMMON_LINK_SPEED = 57,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_QUERY_COMMON_FIRMWARE_CONFIG = 58,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_ADD_COMMON_IFACE_MAC = 59,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_DEL_COMMON_IFACE_MAC = 60,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_FUNCTION_RESET = 61,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan OPCODE_COMMON_FUNCTION_LINK_CONFIG = 80
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* common ioctl header */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_hdr {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t domain;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t port_number;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t subsystem;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t opcode;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t opcode;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t subsystem;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t port_number;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t domain;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t timeout;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t request_length;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t opcode;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t subsystem;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t domain;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t status;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t additional_status;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsp_length;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t actual_rsp_length;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw[4];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#define OCE_BMBX_RHDR_SZ 20
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
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [05] OPCODE_QUERY_COMMON_LINK_STATUS */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_query_common_link_status {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t physical_port;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_duplex;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_speed;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_fault;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mgmt_mac_duplex;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mgmt_mac_speed;
8d738d7d1f42180d941afa8b9a7310a2a437d17cSukumar Swaminathan uint16_t qos_link_speed;
8d738d7d1f42180d941afa8b9a7310a2a437d17cSukumar Swaminathan uint32_t logical_link_status;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [57] OPCODE_SET_COMMON_LINK_SPEED */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_set_common_link_speed {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_speed;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t virtual_port;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t physical_port;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t physical_port;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t virtual_port;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_speed;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mac_address_format {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t size_of_struct;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_addr[6];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [01] OPCODE_QUERY_COMMON_IFACE_MAC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_query_common_iface_mac {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t permanent;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t type;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t type;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t permanent;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mac_address_format mac;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [02] OPCODE_SET_COMMON_IFACE_MAC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_set_common_iface_mac {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t invalidate;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t type;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t type;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t invalidate;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mac_address_format mac;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw[2];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [03] OPCODE_SET_COMMON_IFACE_MULTICAST */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_set_common_iface_multicast {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t num_mac;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t promiscuous;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 1-48 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t byte[6];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan } mac[32];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw[49];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct qinq_vlan {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t inner;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t outer;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t outer;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t inner;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct normal_vlan {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t vtag;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct ntwk_if_vlan_tag {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct normal_vlan normal;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct qinq_vlan qinq;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [50] OPCODE_CREATE_COMMON_IFACE */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_create_common_iface {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t version;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cap_flags;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t enable_flags;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_addr[6];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_invalid;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct ntwk_if_vlan_tag vlan_tag;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pmac_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw[4];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [51] OPCODE_DESTROY_COMMON_IFACE */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_destroy_common_iface {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* event queue context structure */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_eq_ctx {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t size:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t epidx:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cidx:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t armed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t stalled:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t sol_event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t count:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pd:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd2:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pidx:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd6:4;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t nodelay:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t phase:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd5:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t delay_mult:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd4:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t function:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd3:4;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 3 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd7;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cidx:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t epidx:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t size:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pidx:13;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd2:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pd:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t count:3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t sol_event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t stalled:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t armed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd3:4;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t function:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd4:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t delay_mult:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd5:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t phase:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t nodelay:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd6:4;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw3 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd7;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [13] OPCODE_CREATE_COMMON_EQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_create_common_eq {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t num_pages;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t num_pages;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct oce_eq_ctx eq_ctx;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct phys_addr pages[8];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t eq_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [55] OPCODE_DESTROY_COMMON_EQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_destroy_common_eq {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct oce_cq_ctx {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t eventable:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t sol_event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t count:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t epidx:11;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t nodelay:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t coalesce_wm:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cidx:11;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t armed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t stalled:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t eq_id:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pd:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd2:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pidx:11;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd4:20;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t function:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd3:4;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cidx:11;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t coalesce_wm:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t nodelay:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t epidx:11;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t count:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t sol_event:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t eventable:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pidx:11;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd2:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pd:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t eq_id:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t stalled:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t armed:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd3:4;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t function:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd4:20;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd5;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [12] OPCODE_CREATE_COMMON_CQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_create_common_cq {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t num_pages;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t num_pages;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct oce_cq_ctx cq_ctx;
8d738d7d1f42180d941afa8b9a7310a2a437d17cSukumar Swaminathan struct phys_addr pages[4];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t cq_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [54] OPCODE_DESTROY_COMMON_CQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_destroy_common_cq {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mq_ring_ctx {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cq_id:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t fetch_r2t:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t fetch_wrb:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t ring_size:4;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t con_index:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pdid:9;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t fid:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t prod_index:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:21;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t async_cq_id:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t async_cq_valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 0 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t con_index:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:2;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t ring_size:4;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t fetch_wrb:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t fetch_r2t:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t cq_id:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw1 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t prod_index:14;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t fid:8;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pdid:9;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw 2 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t async_cq_valid:1;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t async_cq_id:10;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd1:21;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan /* dw3 */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd3;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }s;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dw[4];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }u0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [21] OPCODE_CREATE_COMMON_MQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_create_common_mq {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t num_pages;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t num_pages;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mq_ring_ctx context;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct phys_addr pages[8];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t mq_id:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0:16;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [53] OPCODE_DESTROY_COMMON_MQ */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_destroy_common_mq {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [35] OPCODE_GET_COMMON_ FW_VERSION */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_get_common_fw_version {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t fw_ver_str[32];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t fw_on_flash_ver_str[32];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [52] OPCODE_COMMON_CEV_MODIFY_MSI_MESSAGES */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_common_cev_modify_msi_messages {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_msi_msgs;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [36] OPCODE_SET_COMMON_FLOW_CONTROL */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [37] OPCODE_GET_COMMON_FLOW_CONTROL */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_common_get_set_flow_control {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t tx_flow_control;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rx_flow_control;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t rx_flow_control;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint16_t tx_flow_control;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanenum e_flash_opcode {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MGMT_FLASHROM_OPCODE_FLASH = 1,
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan MGMT_FLASHROM_OPCODE_SAVE = 2
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [06] OPCODE_READ_COMMON_FLASHROM */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [07] OPCODE_WRITE_COMMON_FLASHROM */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_common_read_write_flashrom {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t flash_op_code;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t flash_op_type;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t data_buffer_size;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t data_offset;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t data_buffer[4]; /* + IMAGE_TRANSFER_SIZE */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan/* ULP MODE SUPPORTED */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathanenum {
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_TOE_MODE = 0x1,
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_NIC_MODE = 0x2,
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_RDMA_MODE = 0x4,
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_ISCSI_INI_MODE = 0x10,
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_ISCSI_TGT_MODE = 0x20,
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_FCOE_INI_MODE = 0x40,
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_FCOE_TGT_MODE = 0x80,
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_DAL_MODE = 0x100,
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan ULP_LRO_MODE = 0x200
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan};
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan/* Function Mode Supported */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathanenum {
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan TOE_MODE = 0x1, /* TCP offload */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan NIC_MODE = 0x2, /* Raw Ethernet */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan RDMA_MODE = 0x4, /* RDMA */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan VM_MODE = 0x8, /* VM */
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 FCOE_TGT_MODE = 0x80, /* FCoE target */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan DAL_MODE = 0x100, /* DAL */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan LRO_MODE = 0x200, /* LRO */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan FLEX10_MODE = 0x400, /* FLEX-10 or VNIC */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan NCSI_MODE = 0x800, /* NCSI */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan INVALID_MODE = 0x8000 /* Invalid */
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan};
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_common_query_fw_config {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0[30];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t config_number;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t asic_revision;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t port_id; /* used for stats retrieval */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t function_mode;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan struct {
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t mode;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t wq_base;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t wq_count;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t sq_base;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t sq_count;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t rq_base;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t rq_count;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t dq_base;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t dq_count;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t lro_base;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t lro_count;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t icd_base;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t icd_count;
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan } ulp[2];
5b9d3151a4426af9ad6ef2c2a178f13476b884b3Sukumar Swaminathan uint32_t function_caps;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_common_config_vlan {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef _BIG_ENDIAN
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t num_vlans;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t untagged;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t promisc;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#else
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t promisc;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t untagged;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t num_vlans;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct normal_vlan normal_vlans[64];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct qinq_vlan qinq_vlans[32];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }tags;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [34] OPCODE_COMMON_NTWK_RX_FILTER */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_set_common_ntwk_rx_filter {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t global_flags_mask;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t global_flags;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t iface_flags_mask;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t iface_flags;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_mcast;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t byte[6];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }mac[32];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [41] OPCODE_MODIFY_COMMON_EQ_DELAY */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_modify_common_eq_delay {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t num_eq;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t eq_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t phase;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t dm;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }delay[8];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [59] OPCODE_ADD_COMMON_IFACE_MAC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_add_common_iface_mac {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t mac_address[6];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint8_t rsvd0[2];
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pmac_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan } params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [60] OPCODE_DEL_COMMON_IFACE_MAC */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_del_common_iface_mac {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t if_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t pmac_id;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan } params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [8] OPCODE_QUERY_COMMON_MAX_MBX_BUFFER_SIZE */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_query_common_max_mbx_buffer_size {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t max_ioctl_bufsz;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan } rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [61] OPCODE_COMMON_FUNCTION_RESET */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct ioctl_common_function_reset {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan/* [80] OPCODE_COMMON_FUNCTION_LINK_CONFIG */
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathanstruct mbx_common_func_link_cfg {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct mbx_hdr hdr;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan union {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t enable;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }req;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan struct {
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan uint32_t rsvd0;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan }rsp;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan } params;
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan};
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#pragma pack()
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#ifdef __cplusplus
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan}
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan
4d0e50075058332ce0cd62bc2669a8a4dea45da0Sukumar Swaminathan#endif /* _OCE_HW_H_ */