1*4d027880SJerin Jacob /* 2*4d027880SJerin Jacob * BSD LICENSE 3*4d027880SJerin Jacob * 4*4d027880SJerin Jacob * Copyright (C) Cavium Inc. 2017. All rights reserved. 5*4d027880SJerin Jacob * 6*4d027880SJerin Jacob * Redistribution and use in source and binary forms, with or without 7*4d027880SJerin Jacob * modification, are permitted provided that the following conditions 8*4d027880SJerin Jacob * are met: 9*4d027880SJerin Jacob * 10*4d027880SJerin Jacob * * Redistributions of source code must retain the above copyright 11*4d027880SJerin Jacob * notice, this list of conditions and the following disclaimer. 12*4d027880SJerin Jacob * * Redistributions in binary form must reproduce the above copyright 13*4d027880SJerin Jacob * notice, this list of conditions and the following disclaimer in 14*4d027880SJerin Jacob * the documentation and/or other materials provided with the 15*4d027880SJerin Jacob * distribution. 16*4d027880SJerin Jacob * * Neither the name of Cavium networks nor the names of its 17*4d027880SJerin Jacob * contributors may be used to endorse or promote products derived 18*4d027880SJerin Jacob * from this software without specific prior written permission. 19*4d027880SJerin Jacob * 20*4d027880SJerin Jacob * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 21*4d027880SJerin Jacob * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22*4d027880SJerin Jacob * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 23*4d027880SJerin Jacob * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 24*4d027880SJerin Jacob * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 25*4d027880SJerin Jacob * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 26*4d027880SJerin Jacob * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 27*4d027880SJerin Jacob * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 28*4d027880SJerin Jacob * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29*4d027880SJerin Jacob * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 30*4d027880SJerin Jacob * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31*4d027880SJerin Jacob */ 32*4d027880SJerin Jacob 33*4d027880SJerin Jacob #ifndef __OCTEONTX_BGX_H__ 34*4d027880SJerin Jacob #define __OCTEONTX_BGX_H__ 35*4d027880SJerin Jacob 36*4d027880SJerin Jacob #include <stddef.h> 37*4d027880SJerin Jacob #include <stdint.h> 38*4d027880SJerin Jacob 39*4d027880SJerin Jacob #include <rte_pmd_octeontx_ssovf.h> 40*4d027880SJerin Jacob 41*4d027880SJerin Jacob #define OCTEONTX_BGX_COPROC 6 42*4d027880SJerin Jacob 43*4d027880SJerin Jacob /* BGX messages */ 44*4d027880SJerin Jacob #define MBOX_BGX_PORT_OPEN 0 45*4d027880SJerin Jacob #define MBOX_BGX_PORT_CLOSE 1 46*4d027880SJerin Jacob #define MBOX_BGX_PORT_START 2 47*4d027880SJerin Jacob #define MBOX_BGX_PORT_STOP 3 48*4d027880SJerin Jacob 49*4d027880SJerin Jacob /* BGX port configuration parameters: */ 50*4d027880SJerin Jacob typedef struct octeontx_mbox_bgx_port_conf { 51*4d027880SJerin Jacob uint8_t enable; 52*4d027880SJerin Jacob uint8_t promisc; 53*4d027880SJerin Jacob uint8_t bpen; 54*4d027880SJerin Jacob uint8_t macaddr[6]; /* MAC address.*/ 55*4d027880SJerin Jacob uint8_t fcs_strip; 56*4d027880SJerin Jacob uint8_t bcast_mode; 57*4d027880SJerin Jacob uint8_t mcast_mode; 58*4d027880SJerin Jacob uint8_t node; /* CPU node */ 59*4d027880SJerin Jacob uint16_t base_chan; 60*4d027880SJerin Jacob uint16_t num_chans; 61*4d027880SJerin Jacob uint16_t mtu; 62*4d027880SJerin Jacob uint8_t bgx; 63*4d027880SJerin Jacob uint8_t lmac; 64*4d027880SJerin Jacob uint8_t mode; 65*4d027880SJerin Jacob uint8_t pkind; 66*4d027880SJerin Jacob } octeontx_mbox_bgx_port_conf_t; 67*4d027880SJerin Jacob 68*4d027880SJerin Jacob int octeontx_bgx_port_open(int port, octeontx_mbox_bgx_port_conf_t *conf); 69*4d027880SJerin Jacob int octeontx_bgx_port_close(int port); 70*4d027880SJerin Jacob int octeontx_bgx_port_start(int port); 71*4d027880SJerin Jacob int octeontx_bgx_port_stop(int port); 72*4d027880SJerin Jacob 73*4d027880SJerin Jacob #endif /* __OCTEONTX_BGX_H__ */ 74*4d027880SJerin Jacob 75