The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/dpaa2/dpaa2_cmd_if.m

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 #-
    2 # SPDX-License-Identifier: BSD-2-Clause
    3 #
    4 # Copyright © 2021-2022 Dmitry Salychev
    5 #
    6 # Redistribution and use in source and binary forms, with or without
    7 # modification, are permitted provided that the following conditions
    8 # are met:
    9 # 1. Redistributions of source code must retain the above copyright
   10 #    notice, this list of conditions and the following disclaimer.
   11 # 2. Redistributions in binary form must reproduce the above copyright
   12 #    notice, this list of conditions and the following disclaimer in the
   13 #    documentation and/or other materials provided with the distribution.
   14 #
   15 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
   16 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   17 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   18 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
   19 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   20 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   21 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   22 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   23 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   24 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   25 # SUCH DAMAGE.
   26 #
   27 
   28 #include <machine/bus.h>
   29 #include <dev/dpaa2/dpaa2_types.h>
   30 #include <dev/dpaa2/dpaa2_mc.h>
   31 #include <dev/dpaa2/dpaa2_mcp.h>
   32 
   33 /**
   34  * @brief DPAA2 MC command interface.
   35  *
   36  * The primary purpose of the MC provided DPAA2 objects is to simplify DPAA2
   37  * hardware block usage through abstraction and encapsulation.
   38  */
   39 INTERFACE dpaa2_cmd;
   40 
   41 #
   42 # Default implementation of the commands.
   43 #
   44 CODE {
   45         static void
   46         panic_on_mc(device_t dev)
   47         {
   48                 if (strcmp(device_get_name(dev), "dpaa2_mc") == 0)
   49                         panic("No one can handle a command above DPAA2 MC");
   50         }
   51 
   52         static int
   53         bypass_mng_get_version(device_t dev, device_t child, struct dpaa2_cmd *cmd,
   54                 uint32_t *major, uint32_t *minor, uint32_t *rev)
   55         {
   56                 panic_on_mc(dev);
   57                 if (device_get_parent(dev) != NULL)
   58                         return (DPAA2_CMD_MNG_GET_VERSION(device_get_parent(dev), child,
   59                                 cmd, major, minor, rev));
   60                 return (ENXIO);
   61         }
   62         static int
   63         bypass_mng_get_soc_version(device_t dev, device_t child, struct dpaa2_cmd *cmd,
   64                 uint32_t *pvr, uint32_t *svr)
   65         {
   66                 panic_on_mc(dev);
   67                 if (device_get_parent(dev) != NULL)
   68                         return (DPAA2_CMD_MNG_GET_SOC_VERSION(
   69                                 device_get_parent(dev), child, cmd, pvr, svr));
   70                 return (ENXIO);
   71         }
   72         static int
   73         bypass_mng_get_container_id(device_t dev, device_t child, struct dpaa2_cmd *cmd,
   74                 uint32_t *cont_id)
   75         {
   76                 panic_on_mc(dev);
   77                 if (device_get_parent(dev) != NULL)
   78                         return (DPAA2_CMD_MNG_GET_CONTAINER_ID(
   79                                 device_get_parent(dev), child, cmd, cont_id));
   80                 return (ENXIO);
   81         }
   82         static int
   83         bypass_rc_open(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint32_t cont_id,
   84                 uint16_t *token)
   85         {
   86                 panic_on_mc(dev);
   87                 if (device_get_parent(dev) != NULL)
   88                         return (DPAA2_CMD_RC_OPEN(
   89                                 device_get_parent(dev), child, cmd, cont_id, token));
   90                 return (ENXIO);
   91         }
   92         static int
   93         bypass_rc_close(device_t dev, device_t child, struct dpaa2_cmd *cmd)
   94         {
   95                 panic_on_mc(dev);
   96                 if (device_get_parent(dev) != NULL)
   97                         return (DPAA2_CMD_RC_CLOSE(
   98                                 device_get_parent(dev), child, cmd));
   99                 return (ENXIO);
  100         }
  101         static int
  102         bypass_rc_get_obj_count(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  103                 uint32_t *obj_count)
  104         {
  105                 panic_on_mc(dev);
  106                 if (device_get_parent(dev) != NULL)
  107                         return (DPAA2_CMD_RC_GET_OBJ_COUNT(
  108                                 device_get_parent(dev), child, cmd, obj_count));
  109                 return (ENXIO);
  110         }
  111         static int
  112         bypass_rc_get_obj(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint32_t obj_idx,
  113                 struct dpaa2_obj *obj)
  114         {
  115                 panic_on_mc(dev);
  116                 if (device_get_parent(dev) != NULL)
  117                         return (DPAA2_CMD_RC_GET_OBJ(
  118                                 device_get_parent(dev), child, cmd, obj_idx, obj));
  119                 return (ENXIO);
  120         }
  121         static int
  122         bypass_rc_get_obj_descriptor(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  123                 uint32_t obj_id, enum dpaa2_dev_type type, struct dpaa2_obj *obj)
  124         {
  125                 panic_on_mc(dev);
  126                 if (device_get_parent(dev) != NULL)
  127                         return (DPAA2_CMD_RC_GET_OBJ_DESCRIPTOR(
  128                                 device_get_parent(dev), child, cmd, obj_id, type, obj));
  129                 return (ENXIO);
  130         }
  131         static int
  132         bypass_rc_get_attributes(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  133                 struct dpaa2_rc_attr *attr)
  134         {
  135                 panic_on_mc(dev);
  136                 if (device_get_parent(dev) != NULL)
  137                         return (DPAA2_CMD_RC_GET_ATTRIBUTES(
  138                                 device_get_parent(dev), child, cmd, attr));
  139                 return (ENXIO);
  140         }
  141         static int
  142         bypass_rc_get_obj_region(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  143                 uint32_t obj_id, uint8_t reg_idx, enum dpaa2_dev_type type,
  144                 struct dpaa2_rc_obj_region *reg)
  145         {
  146                 panic_on_mc(dev);
  147                 if (device_get_parent(dev) != NULL)
  148                         return (DPAA2_CMD_RC_GET_OBJ_REGION(
  149                                 device_get_parent(dev), child, cmd, obj_id, reg_idx,
  150                                 type, reg));
  151                 return (ENXIO);
  152         }
  153         static int
  154         bypass_rc_get_api_version(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  155                 uint16_t *major, uint16_t *minor)
  156         {
  157                 panic_on_mc(dev);
  158                 if (device_get_parent(dev) != NULL)
  159                         return (DPAA2_CMD_RC_GET_API_VERSION(
  160                                 device_get_parent(dev), child, cmd, major, minor));
  161                 return (ENXIO);
  162         }
  163         static int
  164         bypass_rc_set_irq_enable(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  165                 uint8_t irq_idx, uint8_t enable)
  166         {
  167                 panic_on_mc(dev);
  168                 if (device_get_parent(dev) != NULL)
  169                         return (DPAA2_CMD_RC_SET_IRQ_ENABLE(
  170                                 device_get_parent(dev), child, cmd, irq_idx, enable));
  171                 return (ENXIO);
  172         }
  173         static int
  174         bypass_rc_set_obj_irq(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  175                 uint8_t irq_idx, uint64_t addr, uint32_t data, uint32_t irq_usr,
  176                 uint32_t obj_id, enum dpaa2_dev_type type)
  177         {
  178                 panic_on_mc(dev);
  179                 if (device_get_parent(dev) != NULL)
  180                         return (DPAA2_CMD_RC_SET_OBJ_IRQ(
  181                                 device_get_parent(dev), child, cmd, irq_idx, addr, data,
  182                                 irq_usr, obj_id, type));
  183                 return (ENXIO);
  184         }
  185         static int
  186         bypass_rc_get_conn(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  187                 struct dpaa2_ep_desc *ep1_desc, struct dpaa2_ep_desc *ep2_desc,
  188                 uint32_t *link_stat)
  189         {
  190                 panic_on_mc(dev);
  191                 if (device_get_parent(dev) != NULL)
  192                         return (DPAA2_CMD_RC_GET_CONN(
  193                                 device_get_parent(dev), child, cmd, ep1_desc, ep2_desc,
  194                                 link_stat));
  195                 return (ENXIO);
  196         }
  197 
  198         static int
  199         bypass_ni_open(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint32_t dpni_id,
  200                 uint16_t *token)
  201         {
  202                 panic_on_mc(dev);
  203                 if (device_get_parent(dev) != NULL)
  204                         return (DPAA2_CMD_NI_OPEN(
  205                                 device_get_parent(dev), child, cmd, dpni_id, token));
  206                 return (ENXIO);
  207         }
  208         static int
  209         bypass_ni_close(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  210         {
  211                 panic_on_mc(dev);
  212                 if (device_get_parent(dev) != NULL)
  213                         return (DPAA2_CMD_NI_CLOSE(
  214                                 device_get_parent(dev), child, cmd));
  215                 return (ENXIO);
  216         }
  217         static int
  218         bypass_ni_enable(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  219         {
  220                 panic_on_mc(dev);
  221                 if (device_get_parent(dev) != NULL)
  222                         return (DPAA2_CMD_NI_ENABLE(
  223                                 device_get_parent(dev), child, cmd));
  224                 return (ENXIO);
  225         }
  226         static int
  227         bypass_ni_disable(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  228         {
  229                 panic_on_mc(dev);
  230                 if (device_get_parent(dev) != NULL)
  231                         return (DPAA2_CMD_NI_DISABLE(
  232                                 device_get_parent(dev), child, cmd));
  233                 return (ENXIO);
  234         }
  235         static int
  236         bypass_ni_get_api_version(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  237                 uint16_t *major, uint16_t *minor)
  238         {
  239                 panic_on_mc(dev);
  240                 if (device_get_parent(dev) != NULL)
  241                         return (DPAA2_CMD_NI_GET_API_VERSION(
  242                                 device_get_parent(dev), child, cmd, major, minor));
  243                 return (ENXIO);
  244         }
  245         static int
  246         bypass_ni_reset(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  247         {
  248                 panic_on_mc(dev);
  249                 if (device_get_parent(dev) != NULL)
  250                         return (DPAA2_CMD_NI_RESET(
  251                                 device_get_parent(dev), child, cmd));
  252                 return (ENXIO);
  253         }
  254         static int
  255         bypass_ni_get_attributes(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  256                 struct dpaa2_ni_attr *attr)
  257         {
  258                 panic_on_mc(dev);
  259                 if (device_get_parent(dev) != NULL)
  260                         return (DPAA2_CMD_NI_GET_ATTRIBUTES(
  261                                 device_get_parent(dev), child, cmd, attr));
  262                 return (ENXIO);
  263         }
  264         static int
  265         bypass_ni_set_buf_layout(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  266                 struct dpaa2_ni_buf_layout *bl)
  267         {
  268                 panic_on_mc(dev);
  269                 if (device_get_parent(dev) != NULL)
  270                         return (DPAA2_CMD_NI_SET_BUF_LAYOUT(
  271                                 device_get_parent(dev), child, cmd, bl));
  272                 return (ENXIO);
  273         }
  274         static int
  275         bypass_ni_get_tx_data_off(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  276                 uint16_t *offset)
  277         {
  278                 panic_on_mc(dev);
  279                 if (device_get_parent(dev) != NULL)
  280                         return (DPAA2_CMD_NI_GET_TX_DATA_OFF(
  281                                 device_get_parent(dev), child, cmd, offset));
  282                 return (ENXIO);
  283         }
  284         static int
  285         bypass_ni_set_link_cfg(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  286                 struct dpaa2_ni_link_cfg *cfg)
  287         {
  288                 panic_on_mc(dev);
  289                 if (device_get_parent(dev) != NULL)
  290                         return (DPAA2_CMD_NI_SET_LINK_CFG(
  291                                 device_get_parent(dev), child, cmd, cfg));
  292                 return (ENXIO);
  293         }
  294         static int
  295         bypass_ni_get_link_cfg(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  296                 struct dpaa2_ni_link_cfg *cfg)
  297         {
  298                 panic_on_mc(dev);
  299                 if (device_get_parent(dev) != NULL)
  300                         return (DPAA2_CMD_NI_GET_LINK_CFG(
  301                                 device_get_parent(dev), child, cmd, cfg));
  302                 return (ENXIO);
  303         }
  304         static int
  305         bypass_ni_get_link_state(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  306                 struct dpaa2_ni_link_state *state)
  307         {
  308                 panic_on_mc(dev);
  309                 if (device_get_parent(dev) != NULL)
  310                         return (DPAA2_CMD_NI_GET_LINK_STATE(
  311                                 device_get_parent(dev), child, cmd, state));
  312                 return (ENXIO);
  313         }
  314         static int
  315         bypass_ni_get_port_mac_addr(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  316                 uint8_t *mac)
  317         {
  318                 panic_on_mc(dev);
  319                 if (device_get_parent(dev) != NULL)
  320                         return (DPAA2_CMD_NI_GET_PORT_MAC_ADDR(
  321                                 device_get_parent(dev), child, cmd, mac));
  322                 return (ENXIO);
  323         }
  324         static int
  325         bypass_ni_set_prim_mac_addr(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  326                 uint8_t *mac)
  327         {
  328                 panic_on_mc(dev);
  329                 if (device_get_parent(dev) != NULL)
  330                         return (DPAA2_CMD_NI_SET_PRIM_MAC_ADDR(
  331                                 device_get_parent(dev), child, cmd, mac));
  332                 return (ENXIO);
  333         }
  334         static int
  335         bypass_ni_get_prim_mac_addr(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  336                 uint8_t *mac)
  337         {
  338                 panic_on_mc(dev);
  339                 if (device_get_parent(dev) != NULL)
  340                         return (DPAA2_CMD_NI_GET_PRIM_MAC_ADDR(
  341                                 device_get_parent(dev), child, cmd, mac));
  342                 return (ENXIO);
  343         }
  344         static int
  345         bypass_ni_set_qos_table(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  346                 struct dpaa2_ni_qos_table *tbl)
  347         {
  348                 panic_on_mc(dev);
  349                 if (device_get_parent(dev) != NULL)
  350                         return (DPAA2_CMD_NI_SET_QOS_TABLE(
  351                                 device_get_parent(dev), child, cmd, tbl));
  352                 return (ENXIO);
  353         }
  354         static int
  355         bypass_ni_clear_qos_table(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  356         {
  357                 panic_on_mc(dev);
  358                 if (device_get_parent(dev) != NULL)
  359                         return (DPAA2_CMD_NI_CLEAR_QOS_TABLE(
  360                                 device_get_parent(dev), child, cmd));
  361                 return (ENXIO);
  362         }
  363         static int
  364         bypass_ni_set_pools(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  365                 struct dpaa2_ni_pools_cfg *cfg)
  366         {
  367                 panic_on_mc(dev);
  368                 if (device_get_parent(dev) != NULL)
  369                         return (DPAA2_CMD_NI_SET_POOLS(
  370                                 device_get_parent(dev), child, cmd, cfg));
  371                 return (ENXIO);
  372         }
  373         static int
  374         bypass_ni_set_err_behavior(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  375                 struct dpaa2_ni_err_cfg *cfg)
  376         {
  377                 panic_on_mc(dev);
  378                 if (device_get_parent(dev) != NULL)
  379                         return (DPAA2_CMD_NI_SET_ERR_BEHAVIOR(
  380                                 device_get_parent(dev), child, cmd, cfg));
  381                 return (ENXIO);
  382         }
  383         static int
  384         bypass_ni_get_queue(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  385                 struct dpaa2_ni_queue_cfg *cfg)
  386         {
  387                 panic_on_mc(dev);
  388                 if (device_get_parent(dev) != NULL)
  389                         return (DPAA2_CMD_NI_GET_QUEUE(
  390                                 device_get_parent(dev), child, cmd, cfg));
  391                 return (ENXIO);
  392         }
  393         static int
  394         bypass_ni_set_queue(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  395                 struct dpaa2_ni_queue_cfg *cfg)
  396         {
  397                 panic_on_mc(dev);
  398                 if (device_get_parent(dev) != NULL)
  399                         return (DPAA2_CMD_NI_SET_QUEUE(
  400                                 device_get_parent(dev), child, cmd, cfg));
  401                 return (ENXIO);
  402         }
  403         static int
  404         bypass_ni_get_qdid(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  405                 enum dpaa2_ni_queue_type type, uint16_t *qdid)
  406         {
  407                 panic_on_mc(dev);
  408                 if (device_get_parent(dev) != NULL)
  409                         return (DPAA2_CMD_NI_GET_QDID(
  410                                 device_get_parent(dev), child, cmd, type, qdid));
  411                 return (ENXIO);
  412         }
  413         static int
  414         bypass_ni_add_mac_addr(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  415                 uint8_t *mac)
  416         {
  417                 panic_on_mc(dev);
  418                 if (device_get_parent(dev) != NULL)
  419                         return (DPAA2_CMD_NI_ADD_MAC_ADDR(
  420                                 device_get_parent(dev), child, cmd, mac));
  421                 return (ENXIO);
  422         }
  423         static int
  424         bypass_ni_remove_mac_addr(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  425                 uint8_t *mac)
  426         {
  427                 panic_on_mc(dev);
  428                 if (device_get_parent(dev) != NULL)
  429                         return (DPAA2_CMD_NI_REMOVE_MAC_ADDR(
  430                                 device_get_parent(dev), child, cmd, mac));
  431                 return (ENXIO);
  432         }
  433         static int
  434         bypass_ni_clear_mac_filters(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  435                 bool rm_uni, bool rm_multi)
  436         {
  437                 panic_on_mc(dev);
  438                 if (device_get_parent(dev) != NULL)
  439                         return (DPAA2_CMD_NI_CLEAR_MAC_FILTERS(
  440                                 device_get_parent(dev), child, cmd, rm_uni, rm_multi));
  441                 return (ENXIO);
  442         }
  443         static int
  444         bypass_ni_set_mfl(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint16_t length)
  445         {
  446                 panic_on_mc(dev);
  447                 if (device_get_parent(dev) != NULL)
  448                         return (DPAA2_CMD_NI_SET_MFL(
  449                                 device_get_parent(dev), child, cmd, length));
  450                 return (ENXIO);
  451         }
  452         static int
  453         bypass_ni_set_offload(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  454                 enum dpaa2_ni_ofl_type ofl_type, bool en)
  455         {
  456                 panic_on_mc(dev);
  457                 if (device_get_parent(dev) != NULL)
  458                         return (DPAA2_CMD_NI_SET_OFFLOAD(
  459                                 device_get_parent(dev), child, cmd, ofl_type, en));
  460                 return (ENXIO);
  461         }
  462         static int
  463         bypass_ni_set_irq_mask(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  464                 uint8_t irq_idx, uint32_t mask)
  465         {
  466                 panic_on_mc(dev);
  467                 if (device_get_parent(dev) != NULL)
  468                         return (DPAA2_CMD_NI_SET_IRQ_MASK(
  469                                 device_get_parent(dev), child, cmd, irq_idx, mask));
  470                 return (ENXIO);
  471         }
  472         static int
  473         bypass_ni_set_irq_enable(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  474                 uint8_t irq_idx, bool en)
  475         {
  476                 panic_on_mc(dev);
  477                 if (device_get_parent(dev) != NULL)
  478                         return (DPAA2_CMD_NI_SET_IRQ_ENABLE(
  479                                 device_get_parent(dev), child, cmd, irq_idx, en));
  480                 return (ENXIO);
  481         }
  482         static int
  483         bypass_ni_get_irq_status(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  484                 uint8_t irq_idx, uint32_t *status)
  485         {
  486                 panic_on_mc(dev);
  487                 if (device_get_parent(dev) != NULL)
  488                         return (DPAA2_CMD_NI_GET_IRQ_STATUS(
  489                                 device_get_parent(dev), child, cmd, irq_idx, status));
  490                 return (ENXIO);
  491         }
  492         static int
  493         bypass_ni_set_uni_promisc(device_t dev, device_t child, struct dpaa2_cmd *cmd, bool en)
  494         {
  495                 panic_on_mc(dev);
  496                 if (device_get_parent(dev) != NULL)
  497                         return (DPAA2_CMD_NI_SET_UNI_PROMISC(
  498                                 device_get_parent(dev), child, cmd, en));
  499                 return (ENXIO);
  500         }
  501         static int
  502         bypass_ni_set_multi_promisc(device_t dev, device_t child, struct dpaa2_cmd *cmd, bool en)
  503         {
  504                 panic_on_mc(dev);
  505                 if (device_get_parent(dev) != NULL)
  506                         return (DPAA2_CMD_NI_SET_MULTI_PROMISC(
  507                                 device_get_parent(dev), child, cmd, en));
  508                 return (ENXIO);
  509         }
  510         static int
  511         bypass_ni_get_statistics(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  512                 uint8_t page, uint16_t param, uint64_t *cnt)
  513         {
  514                 panic_on_mc(dev);
  515                 if (device_get_parent(dev) != NULL)
  516                         return (DPAA2_CMD_NI_GET_STATISTICS(
  517                                 device_get_parent(dev), child, cmd, page, param, cnt));
  518                 return (ENXIO);
  519         }
  520         static int
  521         bypass_ni_set_rx_tc_dist(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  522                 uint16_t dist_size, uint8_t tc, enum dpaa2_ni_dist_mode dist_mode,
  523                 bus_addr_t key_cfg_buf)
  524         {
  525                 panic_on_mc(dev);
  526                 if (device_get_parent(dev) != NULL)
  527                         return (DPAA2_CMD_NI_SET_RX_TC_DIST(
  528                                 device_get_parent(dev), child, cmd, dist_size, tc,
  529                                 dist_mode, key_cfg_buf));
  530                 return (ENXIO);
  531         }
  532 
  533         static int
  534         bypass_io_open(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint32_t dpio_id,
  535                 uint16_t *token)
  536         {
  537                 panic_on_mc(dev);
  538                 if (device_get_parent(dev) != NULL)
  539                         return (DPAA2_CMD_IO_OPEN(
  540                                 device_get_parent(dev), child, cmd, dpio_id, token));
  541                 return (ENXIO);
  542         }
  543         static int
  544         bypass_io_close(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  545         {
  546                 panic_on_mc(dev);
  547                 if (device_get_parent(dev) != NULL)
  548                         return (DPAA2_CMD_IO_CLOSE(
  549                                 device_get_parent(dev), child, cmd));
  550                 return (ENXIO);
  551         }
  552         static int
  553         bypass_io_enable(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  554         {
  555                 panic_on_mc(dev);
  556                 if (device_get_parent(dev) != NULL)
  557                         return (DPAA2_CMD_IO_ENABLE(
  558                                 device_get_parent(dev), child, cmd));
  559                 return (ENXIO);
  560         }
  561         static int
  562         bypass_io_disable(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  563         {
  564                 panic_on_mc(dev);
  565                 if (device_get_parent(dev) != NULL)
  566                         return (DPAA2_CMD_IO_DISABLE(
  567                                 device_get_parent(dev), child, cmd));
  568                 return (ENXIO);
  569         }
  570         static int
  571         bypass_io_reset(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  572         {
  573                 panic_on_mc(dev);
  574                 if (device_get_parent(dev) != NULL)
  575                         return (DPAA2_CMD_IO_RESET(
  576                                 device_get_parent(dev), child, cmd));
  577                 return (ENXIO);
  578         }
  579         static int
  580         bypass_io_get_attributes(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  581                 struct dpaa2_io_attr *attr)
  582         {
  583                 panic_on_mc(dev);
  584                 if (device_get_parent(dev) != NULL)
  585                         return (DPAA2_CMD_IO_GET_ATTRIBUTES(
  586                                 device_get_parent(dev), child, cmd, attr));
  587                 return (ENXIO);
  588         }
  589         static int
  590         bypass_io_set_irq_mask(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  591                 uint8_t irq_idx, uint32_t mask)
  592         {
  593                 panic_on_mc(dev);
  594                 if (device_get_parent(dev) != NULL)
  595                         return (DPAA2_CMD_IO_SET_IRQ_MASK(
  596                                 device_get_parent(dev), child, cmd, irq_idx, mask));
  597                 return (ENXIO);
  598         }
  599         static int
  600         bypass_io_get_irq_status(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  601                 uint8_t irq_idx, uint32_t *status)
  602         {
  603                 panic_on_mc(dev);
  604                 if (device_get_parent(dev) != NULL)
  605                         return (DPAA2_CMD_IO_GET_IRQ_STATUS(
  606                                 device_get_parent(dev), child, cmd, irq_idx, status));
  607                 return (ENXIO);
  608         }
  609         static int
  610         bypass_io_set_irq_enable(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  611                 uint8_t irq_idx, bool en)
  612         {
  613                 panic_on_mc(dev);
  614                 if (device_get_parent(dev) != NULL)
  615                         return (DPAA2_CMD_IO_SET_IRQ_ENABLE(
  616                                 device_get_parent(dev), child, cmd, irq_idx, en));
  617                 return (ENXIO);
  618         }
  619         static int
  620         bypass_io_add_static_dq_chan(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  621                 uint32_t dpcon_id, uint8_t *chan_idx)
  622         {
  623                 panic_on_mc(dev);
  624                 if (device_get_parent(dev) != NULL)
  625                         return (DPAA2_CMD_IO_ADD_STATIC_DQ_CHAN(
  626                                 device_get_parent(dev), child, cmd, dpcon_id, chan_idx));
  627                 return (ENXIO);
  628         }
  629 
  630         static int
  631         bypass_bp_open(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint32_t dpbp_id,
  632                 uint16_t *token)
  633         {
  634                 panic_on_mc(dev);
  635                 if (device_get_parent(dev) != NULL)
  636                         return (DPAA2_CMD_BP_OPEN(
  637                                 device_get_parent(dev), child, cmd, dpbp_id, token));
  638                 return (ENXIO);
  639         }
  640         static int
  641         bypass_bp_close(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  642         {
  643                 panic_on_mc(dev);
  644                 if (device_get_parent(dev) != NULL)
  645                         return (DPAA2_CMD_BP_CLOSE(
  646                                 device_get_parent(dev), child, cmd));
  647                 return (ENXIO);
  648         }
  649         static int
  650         bypass_bp_enable(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  651         {
  652                 panic_on_mc(dev);
  653                 if (device_get_parent(dev) != NULL)
  654                         return (DPAA2_CMD_BP_ENABLE(
  655                                 device_get_parent(dev), child, cmd));
  656                 return (ENXIO);
  657         }
  658         static int
  659         bypass_bp_disable(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  660         {
  661                 panic_on_mc(dev);
  662                 if (device_get_parent(dev) != NULL)
  663                         return (DPAA2_CMD_BP_DISABLE(
  664                                 device_get_parent(dev), child, cmd));
  665                 return (ENXIO);
  666         }
  667         static int
  668         bypass_bp_reset(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  669         {
  670                 panic_on_mc(dev);
  671                 if (device_get_parent(dev) != NULL)
  672                         return (DPAA2_CMD_BP_RESET(
  673                                 device_get_parent(dev), child, cmd));
  674                 return (ENXIO);
  675         }
  676         static int
  677         bypass_bp_get_attributes(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  678                 struct dpaa2_bp_attr *attr)
  679         {
  680                 panic_on_mc(dev);
  681                 if (device_get_parent(dev) != NULL)
  682                         return (DPAA2_CMD_BP_GET_ATTRIBUTES(
  683                                 device_get_parent(dev), child, cmd, attr));
  684                 return (ENXIO);
  685         }
  686 
  687         static int
  688         bypass_mac_open(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint32_t dpmac_id,
  689                 uint16_t *token)
  690         {
  691                 panic_on_mc(dev);
  692                 if (device_get_parent(dev) != NULL)
  693                         return (DPAA2_CMD_MAC_OPEN(
  694                                 device_get_parent(dev), child, cmd, dpmac_id, token));
  695                 return (ENXIO);
  696         }
  697         static int
  698         bypass_mac_close(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  699         {
  700                 panic_on_mc(dev);
  701                 if (device_get_parent(dev) != NULL)
  702                         return (DPAA2_CMD_MAC_CLOSE(
  703                                 device_get_parent(dev), child, cmd));
  704                 return (ENXIO);
  705         }
  706         static int
  707         bypass_mac_reset(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  708         {
  709                 panic_on_mc(dev);
  710                 if (device_get_parent(dev) != NULL)
  711                         return (DPAA2_CMD_MAC_RESET(
  712                                 device_get_parent(dev), child, cmd));
  713                 return (ENXIO);
  714         }
  715         static int
  716         bypass_mac_mdio_read(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint8_t phy,
  717                 uint16_t reg, uint16_t *val)
  718         {
  719                 panic_on_mc(dev);
  720                 if (device_get_parent(dev) != NULL)
  721                         return (DPAA2_CMD_MAC_MDIO_READ(
  722                                 device_get_parent(dev), child, cmd, phy, reg, val));
  723                 return (ENXIO);
  724         }
  725         static int
  726         bypass_mac_mdio_write(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint8_t phy,
  727                 uint16_t reg, uint16_t val)
  728         {
  729                 panic_on_mc(dev);
  730                 if (device_get_parent(dev) != NULL)
  731                         return (DPAA2_CMD_MAC_MDIO_WRITE(
  732                                 device_get_parent(dev), child, cmd, phy, reg, val));
  733                 return (ENXIO);
  734         }
  735         static int
  736         bypass_mac_get_addr(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint8_t *mac)
  737         {
  738                 panic_on_mc(dev);
  739                 if (device_get_parent(dev) != NULL)
  740                         return (DPAA2_CMD_MAC_GET_ADDR(
  741                                 device_get_parent(dev), child, cmd, mac));
  742                 return (ENXIO);
  743         }
  744         static int
  745         bypass_mac_get_attributes(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  746                 struct dpaa2_mac_attr *attr)
  747         {
  748                 panic_on_mc(dev);
  749                 if (device_get_parent(dev) != NULL)
  750                         return (DPAA2_CMD_MAC_GET_ATTRIBUTES(
  751                                 device_get_parent(dev), child, cmd, attr));
  752                 return (ENXIO);
  753         }
  754         static int
  755         bypass_mac_set_link_state(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  756                 struct dpaa2_mac_link_state *state)
  757         {
  758                 panic_on_mc(dev);
  759                 if (device_get_parent(dev) != NULL)
  760                         return (DPAA2_CMD_MAC_SET_LINK_STATE(
  761                                 device_get_parent(dev), child, cmd, state));
  762                 return (ENXIO);
  763         }
  764         static int
  765         bypass_mac_set_irq_mask(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  766                 uint8_t irq_idx, uint32_t mask)
  767         {
  768                 panic_on_mc(dev);
  769                 if (device_get_parent(dev) != NULL)
  770                         return (DPAA2_CMD_MAC_SET_IRQ_MASK(
  771                                 device_get_parent(dev), child, cmd, irq_idx, mask));
  772                 return (ENXIO);
  773         }
  774         static int
  775         bypass_mac_set_irq_enable(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  776                 uint8_t irq_idx, bool en)
  777         {
  778                 panic_on_mc(dev);
  779                 if (device_get_parent(dev) != NULL)
  780                         return (DPAA2_CMD_MAC_SET_IRQ_ENABLE(
  781                                 device_get_parent(dev), child, cmd, irq_idx, en));
  782                 return (ENXIO);
  783         }
  784         static int
  785         bypass_mac_get_irq_status(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  786                 uint8_t irq_idx, uint32_t *status)
  787         {
  788                 panic_on_mc(dev);
  789                 if (device_get_parent(dev) != NULL)
  790                         return (DPAA2_CMD_MAC_GET_IRQ_STATUS(
  791                                 device_get_parent(dev), child, cmd, irq_idx, status));
  792                 return (ENXIO);
  793         }
  794 
  795         static int
  796         bypass_con_open(device_t dev, device_t child, struct dpaa2_cmd *cmd, uint32_t dpcon_id,
  797                 uint16_t *token)
  798         {
  799                 panic_on_mc(dev);
  800                 if (device_get_parent(dev) != NULL)
  801                         return (DPAA2_CMD_CON_OPEN(
  802                                 device_get_parent(dev), child, cmd, dpcon_id, token));
  803                 return (ENXIO);
  804         }
  805         static int
  806         bypass_con_close(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  807         {
  808                 panic_on_mc(dev);
  809                 if (device_get_parent(dev) != NULL)
  810                         return (DPAA2_CMD_CON_CLOSE(
  811                                 device_get_parent(dev), child, cmd));
  812                 return (ENXIO);
  813         }
  814         static int
  815         bypass_con_reset(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  816         {
  817                 panic_on_mc(dev);
  818                 if (device_get_parent(dev) != NULL)
  819                         return (DPAA2_CMD_CON_RESET(
  820                                 device_get_parent(dev), child, cmd));
  821                 return (ENXIO);
  822         }
  823         static int
  824         bypass_con_enable(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  825         {
  826                 panic_on_mc(dev);
  827                 if (device_get_parent(dev) != NULL)
  828                         return (DPAA2_CMD_CON_ENABLE(
  829                                 device_get_parent(dev), child, cmd));
  830                 return (ENXIO);
  831         }
  832         static int
  833         bypass_con_disable(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  834         {
  835                 panic_on_mc(dev);
  836                 if (device_get_parent(dev) != NULL)
  837                         return (DPAA2_CMD_CON_DISABLE(
  838                                 device_get_parent(dev), child, cmd));
  839                 return (ENXIO);
  840         }
  841         static int
  842         bypass_con_get_attributes(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  843                 struct dpaa2_con_attr *attr)
  844         {
  845                 panic_on_mc(dev);
  846                 if (device_get_parent(dev) != NULL)
  847                         return (DPAA2_CMD_CON_GET_ATTRIBUTES(
  848                                 device_get_parent(dev), child, cmd, attr));
  849                 return (ENXIO);
  850         }
  851         static int
  852         bypass_con_set_notif(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  853                 struct dpaa2_con_notif_cfg *cfg)
  854         {
  855                 panic_on_mc(dev);
  856                 if (device_get_parent(dev) != NULL)
  857                         return (DPAA2_CMD_CON_SET_NOTIF(
  858                                 device_get_parent(dev), child, cmd, cfg));
  859                 return (ENXIO);
  860         }
  861 
  862         /* Data Path MC Portal (DPMCP) commands. */
  863 
  864         static int
  865         bypass_mcp_create(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  866                 uint32_t portal_id, uint32_t options, uint32_t *dpmcp_id)
  867         {
  868                 panic_on_mc(dev);
  869                 if (device_get_parent(dev) != NULL)
  870                         return (DPAA2_CMD_MCP_CREATE(
  871                                 device_get_parent(dev), child, cmd, portal_id,
  872                                 options, dpmcp_id));
  873                 return (ENXIO);
  874         }
  875         static int
  876         bypass_mcp_destroy(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  877                 uint32_t dpmcp_id)
  878         {
  879                 panic_on_mc(dev);
  880                 if (device_get_parent(dev) != NULL)
  881                         return (DPAA2_CMD_MCP_DESTROY(
  882                                 device_get_parent(dev), child, cmd, dpmcp_id));
  883                 return (ENXIO);
  884         }
  885         static int
  886         bypass_mcp_open(device_t dev, device_t child, struct dpaa2_cmd *cmd,
  887                 uint32_t dpmcp_id, uint16_t *token)
  888         {
  889                 panic_on_mc(dev);
  890                 if (device_get_parent(dev) != NULL)
  891                         return (DPAA2_CMD_MCP_OPEN(
  892                                 device_get_parent(dev), child, cmd, dpmcp_id,
  893                                 token));
  894                 return (ENXIO);
  895         }
  896         static int
  897         bypass_mcp_close(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  898         {
  899                 panic_on_mc(dev);
  900                 if (device_get_parent(dev) != NULL)
  901                         return (DPAA2_CMD_MCP_CLOSE(
  902                                 device_get_parent(dev), child, cmd));
  903                 return (ENXIO);
  904         }
  905         static int
  906         bypass_mcp_reset(device_t dev, device_t child, struct dpaa2_cmd *cmd)
  907         {
  908                 panic_on_mc(dev);
  909                 if (device_get_parent(dev) != NULL)
  910                         return (DPAA2_CMD_MCP_RESET(
  911                                 device_get_parent(dev), child, cmd));
  912                 return (ENXIO);
  913         }
  914 };
  915 
  916 /**
  917  * @brief Data Path Management (DPMNG) commands.
  918  */
  919 
  920 METHOD int mng_get_version {
  921         device_t         dev;
  922         device_t         child;
  923         struct dpaa2_cmd *cmd;
  924         uint32_t        *major;
  925         uint32_t        *minor;
  926         uint32_t        *rev;
  927 } DEFAULT bypass_mng_get_version;
  928 
  929 METHOD int mng_get_soc_version {
  930         device_t         dev;
  931         device_t         child;
  932         struct dpaa2_cmd *cmd;
  933         uint32_t        *pvr;
  934         uint32_t        *svr;
  935 } DEFAULT bypass_mng_get_soc_version;
  936 
  937 METHOD int mng_get_container_id {
  938         device_t         dev;
  939         device_t         child;
  940         struct dpaa2_cmd *cmd;
  941         uint32_t        *cont_id;
  942 } DEFAULT bypass_mng_get_container_id;
  943 
  944 /**
  945  * @brief Data Path Resource Containter (DPRC) commands.
  946  */
  947 
  948 METHOD int rc_open {
  949         device_t         dev;
  950         device_t         child;
  951         struct dpaa2_cmd *cmd;
  952         uint32_t         cont_id;
  953         uint16_t        *token;
  954 } DEFAULT bypass_rc_open;
  955 
  956 METHOD int rc_close {
  957         device_t         dev;
  958         device_t         child;
  959         struct dpaa2_cmd *cmd;
  960 } DEFAULT bypass_rc_close;
  961 
  962 METHOD int rc_get_obj_count {
  963         device_t         dev;
  964         device_t         child;
  965         struct dpaa2_cmd *cmd;
  966         uint32_t        *obj_count;
  967 } DEFAULT bypass_rc_get_obj_count;
  968 
  969 METHOD int rc_get_obj {
  970         device_t         dev;
  971         device_t         child;
  972         struct dpaa2_cmd *cmd;
  973         uint32_t         obj_idx;
  974         struct dpaa2_obj *obj;
  975 } DEFAULT bypass_rc_get_obj;
  976 
  977 METHOD int rc_get_obj_descriptor {
  978         device_t         dev;
  979         device_t         child;
  980         struct dpaa2_cmd *cmd;
  981         uint32_t         obj_id;
  982         enum dpaa2_dev_type type;
  983         struct dpaa2_obj *obj;
  984 } DEFAULT bypass_rc_get_obj_descriptor;
  985 
  986 METHOD int rc_get_attributes {
  987         device_t         dev;
  988         device_t         child;
  989         struct dpaa2_cmd *cmd;
  990         struct dpaa2_rc_attr *attr;
  991 } DEFAULT bypass_rc_get_attributes;
  992 
  993 METHOD int rc_get_obj_region {
  994         device_t         dev;
  995         device_t         child;
  996         struct dpaa2_cmd *cmd;
  997         uint32_t         obj_id;
  998         uint8_t          reg_idx;
  999         enum dpaa2_dev_type type;
 1000         struct dpaa2_rc_obj_region *reg;
 1001 } DEFAULT bypass_rc_get_obj_region;
 1002 
 1003 METHOD int rc_get_api_version {
 1004         device_t         dev;
 1005         device_t         child;
 1006         struct dpaa2_cmd *cmd;
 1007         uint16_t        *major;
 1008         uint16_t        *minor;
 1009 } DEFAULT bypass_rc_get_api_version;
 1010 
 1011 METHOD int rc_set_irq_enable {
 1012         device_t         dev;
 1013         device_t         child;
 1014         struct dpaa2_cmd *cmd;
 1015         uint8_t          irq_idx;
 1016         uint8_t          enable;
 1017 } DEFAULT bypass_rc_set_irq_enable;
 1018 
 1019 METHOD int rc_set_obj_irq {
 1020         device_t         dev;
 1021         device_t         child;
 1022         struct dpaa2_cmd *cmd;
 1023         uint8_t          irq_idx;
 1024         uint64_t         addr;
 1025         uint32_t         data;
 1026         uint32_t         irq_usr;
 1027         uint32_t         obj_id;
 1028         enum dpaa2_dev_type type;
 1029 } DEFAULT bypass_rc_set_obj_irq;
 1030 
 1031 METHOD int rc_get_conn {
 1032         device_t         dev;
 1033         device_t         child;
 1034         struct dpaa2_cmd *cmd;
 1035         struct dpaa2_ep_desc *ep1_desc;
 1036         struct dpaa2_ep_desc *ep2_desc;
 1037         uint32_t        *link_stat;
 1038 } DEFAULT bypass_rc_get_conn;
 1039 
 1040 /**
 1041  * @brief Data Path Network Interface (DPNI) commands.
 1042  */
 1043 
 1044 METHOD int ni_open {
 1045         device_t         dev;
 1046         device_t         child;
 1047         struct dpaa2_cmd *cmd;
 1048         uint32_t         dpni_id;
 1049         uint16_t        *token;
 1050 } DEFAULT bypass_ni_open;
 1051 
 1052 METHOD int ni_close {
 1053         device_t         dev;
 1054         device_t         child;
 1055         struct dpaa2_cmd *cmd;
 1056 } DEFAULT bypass_ni_close;
 1057 
 1058 METHOD int ni_enable {
 1059         device_t         dev;
 1060         device_t         child;
 1061         struct dpaa2_cmd *cmd;
 1062 } DEFAULT bypass_ni_enable;
 1063 
 1064 METHOD int ni_disable {
 1065         device_t         dev;
 1066         device_t         child;
 1067         struct dpaa2_cmd *cmd;
 1068 } DEFAULT bypass_ni_disable;
 1069 
 1070 METHOD int ni_get_api_version {
 1071         device_t         dev;
 1072         device_t         child;
 1073         struct dpaa2_cmd *cmd;
 1074         uint16_t        *major;
 1075         uint16_t        *minor;
 1076 } DEFAULT bypass_ni_get_api_version;
 1077 
 1078 METHOD int ni_reset {
 1079         device_t         dev;
 1080         device_t         child;
 1081         struct dpaa2_cmd *cmd;
 1082 } DEFAULT bypass_ni_reset;
 1083 
 1084 METHOD int ni_get_attributes {
 1085         device_t         dev;
 1086         device_t         child;
 1087         struct dpaa2_cmd *cmd;
 1088         struct dpaa2_ni_attr *attr;
 1089 } DEFAULT bypass_ni_get_attributes;
 1090 
 1091 METHOD int ni_set_buf_layout {
 1092         device_t         dev;
 1093         device_t         child;
 1094         struct dpaa2_cmd *cmd;
 1095         struct dpaa2_ni_buf_layout *bl;
 1096 } DEFAULT bypass_ni_set_buf_layout;
 1097 
 1098 METHOD int ni_get_tx_data_off {
 1099         device_t         dev;
 1100         device_t         child;
 1101         struct dpaa2_cmd *cmd;
 1102         uint16_t        *offset;
 1103 } DEFAULT bypass_ni_get_tx_data_off;
 1104 
 1105 METHOD int ni_set_link_cfg {
 1106         device_t         dev;
 1107         device_t         child;
 1108         struct dpaa2_cmd *cmd;
 1109         struct dpaa2_ni_link_cfg *cfg;
 1110 } DEFAULT bypass_ni_set_link_cfg;
 1111 
 1112 METHOD int ni_get_link_cfg {
 1113         device_t         dev;
 1114         device_t         child;
 1115         struct dpaa2_cmd *cmd;
 1116         struct dpaa2_ni_link_cfg *cfg;
 1117 } DEFAULT bypass_ni_get_link_cfg;
 1118 
 1119 METHOD int ni_get_link_state {
 1120         device_t         dev;
 1121         device_t         child;
 1122         struct dpaa2_cmd *cmd;
 1123         struct dpaa2_ni_link_state *state;
 1124 } DEFAULT bypass_ni_get_link_state;
 1125 
 1126 METHOD int ni_get_port_mac_addr {
 1127         device_t         dev;
 1128         device_t         child;
 1129         struct dpaa2_cmd *cmd;
 1130         uint8_t         *mac;
 1131 } DEFAULT bypass_ni_get_port_mac_addr;
 1132 
 1133 METHOD int ni_set_prim_mac_addr {
 1134         device_t         dev;
 1135         device_t         child;
 1136         struct dpaa2_cmd *cmd;
 1137         uint8_t         *mac;
 1138 } DEFAULT bypass_ni_set_prim_mac_addr;
 1139 
 1140 METHOD int ni_get_prim_mac_addr {
 1141         device_t         dev;
 1142         device_t         child;
 1143         struct dpaa2_cmd *cmd;
 1144         uint8_t         *mac;
 1145 } DEFAULT bypass_ni_get_prim_mac_addr;
 1146 
 1147 METHOD int ni_set_qos_table {
 1148         device_t         dev;
 1149         device_t         child;
 1150         struct dpaa2_cmd *cmd;
 1151         struct dpaa2_ni_qos_table *tbl;
 1152 } DEFAULT bypass_ni_set_qos_table;
 1153 
 1154 METHOD int ni_clear_qos_table {
 1155         device_t         dev;
 1156         device_t         child;
 1157         struct dpaa2_cmd *cmd;
 1158 } DEFAULT bypass_ni_clear_qos_table;
 1159 
 1160 METHOD int ni_set_pools {
 1161         device_t         dev;
 1162         device_t         child;
 1163         struct dpaa2_cmd *cmd;
 1164         struct dpaa2_ni_pools_cfg *cfg;
 1165 } DEFAULT bypass_ni_set_pools;
 1166 
 1167 METHOD int ni_set_err_behavior {
 1168         device_t         dev;
 1169         device_t         child;
 1170         struct dpaa2_cmd *cmd;
 1171         struct dpaa2_ni_err_cfg *cfg;
 1172 } DEFAULT bypass_ni_set_err_behavior;
 1173 
 1174 METHOD int ni_get_queue {
 1175         device_t         dev;
 1176         device_t         child;
 1177         struct dpaa2_cmd *cmd;
 1178         struct dpaa2_ni_queue_cfg *cfg;
 1179 } DEFAULT bypass_ni_get_queue;
 1180 
 1181 METHOD int ni_set_queue {
 1182         device_t         dev;
 1183         device_t         child;
 1184         struct dpaa2_cmd *cmd;
 1185         struct dpaa2_ni_queue_cfg *cfg;
 1186 } DEFAULT bypass_ni_set_queue;
 1187 
 1188 METHOD int ni_get_qdid {
 1189         device_t         dev;
 1190         device_t         child;
 1191         struct dpaa2_cmd *cmd;
 1192         enum dpaa2_ni_queue_type type;
 1193         uint16_t        *qdid;
 1194 } DEFAULT bypass_ni_get_qdid;
 1195 
 1196 METHOD int ni_add_mac_addr {
 1197         device_t         dev;
 1198         device_t         child;
 1199         struct dpaa2_cmd *cmd;
 1200         uint8_t         *mac;
 1201 } DEFAULT bypass_ni_add_mac_addr;
 1202 
 1203 METHOD int ni_remove_mac_addr {
 1204         device_t         dev;
 1205         device_t         child;
 1206         struct dpaa2_cmd *cmd;
 1207         uint8_t         *mac;
 1208 } DEFAULT bypass_ni_remove_mac_addr;
 1209 
 1210 METHOD int ni_clear_mac_filters {
 1211         device_t         dev;
 1212         device_t         child;
 1213         struct dpaa2_cmd *cmd;
 1214         bool             rm_uni;
 1215         bool             rm_multi;
 1216 } DEFAULT bypass_ni_clear_mac_filters;
 1217 
 1218 METHOD int ni_set_mfl {
 1219         device_t         dev;
 1220         device_t         child;
 1221         struct dpaa2_cmd *cmd;
 1222         uint16_t         length;
 1223 } DEFAULT bypass_ni_set_mfl;
 1224 
 1225 METHOD int ni_set_offload {
 1226         device_t         dev;
 1227         device_t         child;
 1228         struct dpaa2_cmd *cmd;
 1229         enum dpaa2_ni_ofl_type ofl_type;
 1230         bool             en;
 1231 } DEFAULT bypass_ni_set_offload;
 1232 
 1233 METHOD int ni_set_irq_mask {
 1234         device_t         dev;
 1235         device_t         child;
 1236         struct dpaa2_cmd *cmd;
 1237         uint8_t          irq_idx;
 1238         uint32_t         mask;
 1239 } DEFAULT bypass_ni_set_irq_mask;
 1240 
 1241 METHOD int ni_set_irq_enable {
 1242         device_t         dev;
 1243         device_t         child;
 1244         struct dpaa2_cmd *cmd;
 1245         uint8_t          irq_idx;
 1246         bool             en;
 1247 } DEFAULT bypass_ni_set_irq_enable;
 1248 
 1249 METHOD int ni_get_irq_status {
 1250         device_t         dev;
 1251         device_t         child;
 1252         struct dpaa2_cmd *cmd;
 1253         uint8_t          irq_idx;
 1254         uint32_t        *status;
 1255 } DEFAULT bypass_ni_get_irq_status;
 1256 
 1257 METHOD int ni_set_uni_promisc {
 1258         device_t         dev;
 1259         device_t         child;
 1260         struct dpaa2_cmd *cmd;
 1261         bool             en;
 1262 } DEFAULT bypass_ni_set_uni_promisc;
 1263 
 1264 METHOD int ni_set_multi_promisc {
 1265         device_t         dev;
 1266         device_t         child;
 1267         struct dpaa2_cmd *cmd;
 1268         bool             en;
 1269 } DEFAULT bypass_ni_set_multi_promisc;
 1270 
 1271 METHOD int ni_get_statistics {
 1272         device_t         dev;
 1273         device_t         child;
 1274         struct dpaa2_cmd *cmd;
 1275         uint8_t          page;
 1276         uint16_t         param;
 1277         uint64_t        *cnt;
 1278 } DEFAULT bypass_ni_get_statistics;
 1279 
 1280 METHOD int ni_set_rx_tc_dist {
 1281         device_t         dev;
 1282         device_t         child;
 1283         struct dpaa2_cmd *cmd;
 1284         uint16_t         dist_size;
 1285         uint8_t          tc;
 1286         enum dpaa2_ni_dist_mode dist_mode;
 1287         bus_addr_t       key_cfg_buf;
 1288 } DEFAULT bypass_ni_set_rx_tc_dist;
 1289 
 1290 /**
 1291  * @brief Data Path I/O (DPIO) commands.
 1292  */
 1293 
 1294 METHOD int io_open {
 1295         device_t         dev;
 1296         device_t         child;
 1297         struct dpaa2_cmd *cmd;
 1298         uint32_t         dpio_id;
 1299         uint16_t        *token;
 1300 } DEFAULT bypass_io_open;
 1301 
 1302 METHOD int io_close {
 1303         device_t         dev;
 1304         device_t         child;
 1305         struct dpaa2_cmd *cmd;
 1306 } DEFAULT bypass_io_close;
 1307 
 1308 METHOD int io_enable {
 1309         device_t         dev;
 1310         device_t         child;
 1311         struct dpaa2_cmd *cmd;
 1312 } DEFAULT bypass_io_enable;
 1313 
 1314 METHOD int io_disable {
 1315         device_t         dev;
 1316         device_t         child;
 1317         struct dpaa2_cmd *cmd;
 1318 } DEFAULT bypass_io_disable;
 1319 
 1320 METHOD int io_reset {
 1321         device_t         dev;
 1322         device_t         child;
 1323         struct dpaa2_cmd *cmd;
 1324 } DEFAULT bypass_io_reset;
 1325 
 1326 METHOD int io_get_attributes {
 1327         device_t         dev;
 1328         device_t         child;
 1329         struct dpaa2_cmd *cmd;
 1330         struct dpaa2_io_attr *attr;
 1331 } DEFAULT bypass_io_get_attributes;
 1332 
 1333 METHOD int io_set_irq_mask {
 1334         device_t         dev;
 1335         device_t         child;
 1336         struct dpaa2_cmd *cmd;
 1337         uint8_t          irq_idx;
 1338         uint32_t         mask;
 1339 } DEFAULT bypass_io_set_irq_mask;
 1340 
 1341 METHOD int io_get_irq_status {
 1342         device_t         dev;
 1343         device_t         child;
 1344         struct dpaa2_cmd *cmd;
 1345         uint8_t          irq_idx;
 1346         uint32_t        *status;
 1347 } DEFAULT bypass_io_get_irq_status;
 1348 
 1349 METHOD int io_set_irq_enable {
 1350         device_t         dev;
 1351         device_t         child;
 1352         struct dpaa2_cmd *cmd;
 1353         uint8_t          irq_idx;
 1354         bool             en;
 1355 } DEFAULT bypass_io_set_irq_enable;
 1356 
 1357 METHOD int io_add_static_dq_chan {
 1358         device_t         dev;
 1359         device_t         child;
 1360         struct dpaa2_cmd *cmd;
 1361         uint32_t         dpcon_id;
 1362         uint8_t         *chan_idx;
 1363 } DEFAULT bypass_io_add_static_dq_chan;
 1364 
 1365 /**
 1366  * @brief Data Path Buffer Pool (DPBP) commands.
 1367  */
 1368 
 1369 METHOD int bp_open {
 1370         device_t         dev;
 1371         device_t         child;
 1372         struct dpaa2_cmd *cmd;
 1373         uint32_t         dpbp_id;
 1374         uint16_t        *token;
 1375 } DEFAULT bypass_bp_open;
 1376 
 1377 METHOD int bp_close {
 1378         device_t         dev;
 1379         device_t         child;
 1380         struct dpaa2_cmd *cmd;
 1381 } DEFAULT bypass_bp_close;
 1382 
 1383 METHOD int bp_enable {
 1384         device_t         dev;
 1385         device_t         child;
 1386         struct dpaa2_cmd *cmd;
 1387 } DEFAULT bypass_bp_enable;
 1388 
 1389 METHOD int bp_disable {
 1390         device_t         dev;
 1391         device_t         child;
 1392         struct dpaa2_cmd *cmd;
 1393 } DEFAULT bypass_bp_disable;
 1394 
 1395 METHOD int bp_reset {
 1396         device_t         dev;
 1397         device_t         child;
 1398         struct dpaa2_cmd *cmd;
 1399 } DEFAULT bypass_bp_reset;
 1400 
 1401 METHOD int bp_get_attributes {
 1402         device_t         dev;
 1403         device_t         child;
 1404         struct dpaa2_cmd *cmd;
 1405         struct dpaa2_bp_attr *attr;
 1406 } DEFAULT bypass_bp_get_attributes;
 1407 
 1408 /**
 1409  * @brief Data Path MAC (DPMAC) commands.
 1410  */
 1411 
 1412 METHOD int mac_open {
 1413         device_t         dev;
 1414         device_t         child;
 1415         struct dpaa2_cmd *cmd;
 1416         uint32_t         dpmac_id;
 1417         uint16_t        *token;
 1418 } DEFAULT bypass_mac_open;
 1419 
 1420 METHOD int mac_close {
 1421         device_t         dev;
 1422         device_t         child;
 1423         struct dpaa2_cmd *cmd;
 1424 } DEFAULT bypass_mac_close;
 1425 
 1426 METHOD int mac_reset {
 1427         device_t         dev;
 1428         device_t         child;
 1429         struct dpaa2_cmd *cmd;
 1430 } DEFAULT bypass_mac_reset;
 1431 
 1432 METHOD int mac_mdio_read {
 1433         device_t         dev;
 1434         device_t         child;
 1435         struct dpaa2_cmd *cmd;
 1436         uint8_t          phy;
 1437         uint16_t         reg;
 1438         uint16_t        *val;
 1439 } DEFAULT bypass_mac_mdio_read;
 1440 
 1441 METHOD int mac_mdio_write {
 1442         device_t         dev;
 1443         device_t         child;
 1444         struct dpaa2_cmd *cmd;
 1445         uint8_t          phy;
 1446         uint16_t         reg;
 1447         uint16_t         val;
 1448 } DEFAULT bypass_mac_mdio_write;
 1449 
 1450 METHOD int mac_get_addr {
 1451         device_t         dev;
 1452         device_t         child;
 1453         struct dpaa2_cmd *cmd;
 1454         uint8_t         *mac;
 1455 } DEFAULT bypass_mac_get_addr;
 1456 
 1457 METHOD int mac_get_attributes {
 1458         device_t         dev;
 1459         device_t         child;
 1460         struct dpaa2_cmd *cmd;
 1461         struct dpaa2_mac_attr *attr;
 1462 } DEFAULT bypass_mac_get_attributes;
 1463 
 1464 METHOD int mac_set_link_state {
 1465         device_t         dev;
 1466         device_t         child;
 1467         struct dpaa2_cmd *cmd;
 1468         struct dpaa2_mac_link_state *state;
 1469 } DEFAULT bypass_mac_set_link_state;
 1470 
 1471 METHOD int mac_set_irq_mask {
 1472         device_t         dev;
 1473         device_t         child;
 1474         struct dpaa2_cmd *cmd;
 1475         uint8_t          irq_idx;
 1476         uint32_t         mask;
 1477 } DEFAULT bypass_mac_set_irq_mask;
 1478 
 1479 METHOD int mac_set_irq_enable {
 1480         device_t         dev;
 1481         device_t         child;
 1482         struct dpaa2_cmd *cmd;
 1483         uint8_t          irq_idx;
 1484         bool             en;
 1485 } DEFAULT bypass_mac_set_irq_enable;
 1486 
 1487 METHOD int mac_get_irq_status {
 1488         device_t         dev;
 1489         device_t         child;
 1490         struct dpaa2_cmd *cmd;
 1491         uint8_t          irq_idx;
 1492         uint32_t        *status;
 1493 } DEFAULT bypass_mac_get_irq_status;
 1494 
 1495 /**
 1496  * @brief Data Path Concentrator (DPCON) commands.
 1497  */
 1498 
 1499 METHOD int con_open {
 1500         device_t         dev;
 1501         device_t         child;
 1502         struct dpaa2_cmd *cmd;
 1503         uint32_t         dpcon_id;
 1504         uint16_t        *token;
 1505 } DEFAULT bypass_con_open;
 1506 
 1507 METHOD int con_close {
 1508         device_t         dev;
 1509         device_t         child;
 1510         struct dpaa2_cmd *cmd;
 1511 } DEFAULT bypass_con_close;
 1512 
 1513 METHOD int con_reset {
 1514         device_t         dev;
 1515         device_t         child;
 1516         struct dpaa2_cmd *cmd;
 1517 } DEFAULT bypass_con_reset;
 1518 
 1519 METHOD int con_enable {
 1520         device_t         dev;
 1521         device_t         child;
 1522         struct dpaa2_cmd *cmd;
 1523 } DEFAULT bypass_con_enable;
 1524 
 1525 METHOD int con_disable {
 1526         device_t         dev;
 1527         device_t         child;
 1528         struct dpaa2_cmd *cmd;
 1529 } DEFAULT bypass_con_disable;
 1530 
 1531 METHOD int con_get_attributes {
 1532         device_t         dev;
 1533         device_t         child;
 1534         struct dpaa2_cmd *cmd;
 1535         struct dpaa2_con_attr *attr;
 1536 } DEFAULT bypass_con_get_attributes;
 1537 
 1538 METHOD int con_set_notif {
 1539         device_t         dev;
 1540         device_t         child;
 1541         struct dpaa2_cmd *cmd;
 1542         struct dpaa2_con_notif_cfg *cfg;
 1543 } DEFAULT bypass_con_set_notif;
 1544 
 1545 /**
 1546  * @brief Data Path MC Portal (DPMCP) commands.
 1547  */
 1548 
 1549 METHOD int mcp_create {
 1550         device_t         dev;
 1551         device_t         child;
 1552         struct dpaa2_cmd *cmd;
 1553         uint32_t         portal_id;
 1554         uint32_t         options;
 1555         uint32_t        *dpmcp_id;
 1556 } DEFAULT bypass_mcp_create;
 1557 
 1558 METHOD int mcp_destroy {
 1559         device_t         dev;
 1560         device_t         child;
 1561         struct dpaa2_cmd *cmd;
 1562         uint32_t         dpmcp_id;
 1563 } DEFAULT bypass_mcp_destroy;
 1564 
 1565 METHOD int mcp_open {
 1566         device_t         dev;
 1567         device_t         child;
 1568         struct dpaa2_cmd *cmd;
 1569         uint32_t         dpmcp_id;
 1570         uint16_t        *token;
 1571 } DEFAULT bypass_mcp_open;
 1572 
 1573 METHOD int mcp_close {
 1574         device_t         dev;
 1575         device_t         child;
 1576         struct dpaa2_cmd *cmd;
 1577 } DEFAULT bypass_mcp_close;
 1578 
 1579 METHOD int mcp_reset {
 1580         device_t         dev;
 1581         device_t         child;
 1582         struct dpaa2_cmd *cmd;
 1583 } DEFAULT bypass_mcp_reset;

Cache object: 2f41beb2793f4f93e6178cc3478471aa


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.