1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
8 static inline struct mbox *
9 get_mbox(struct roc_nix *roc_nix)
11 struct nix *nix = roc_nix_to_nix_priv(roc_nix);
12 struct dev *dev = &nix->dev;
18 roc_nix_npc_promisc_ena_dis(struct roc_nix *roc_nix, int enable)
20 struct mbox *mbox = get_mbox(roc_nix);
21 struct nix_rx_mode *req;
24 if (roc_nix_is_vf_or_sdp(roc_nix))
27 req = mbox_alloc_msg_nix_set_rx_mode(mbox);
32 req->mode = NIX_RX_MODE_UCAST | NIX_RX_MODE_PROMISC;
34 return mbox_process(mbox);
38 roc_nix_npc_mac_addr_set(struct roc_nix *roc_nix, uint8_t addr[])
40 struct mbox *mbox = get_mbox(roc_nix);
41 struct nix_set_mac_addr *req;
43 req = mbox_alloc_msg_nix_set_mac_addr(mbox);
44 mbox_memcpy(req->mac_addr, addr, PLT_ETHER_ADDR_LEN);
45 return mbox_process(mbox);
49 roc_nix_npc_mac_addr_get(struct roc_nix *roc_nix, uint8_t *addr)
51 struct mbox *mbox = get_mbox(roc_nix);
52 struct nix_get_mac_addr_rsp *rsp;
55 mbox_alloc_msg_nix_get_mac_addr(mbox);
56 rc = mbox_process_msg(mbox, (void *)&rsp);
60 mbox_memcpy(addr, rsp->mac_addr, PLT_ETHER_ADDR_LEN);
65 roc_nix_npc_rx_ena_dis(struct roc_nix *roc_nix, bool enable)
67 struct mbox *mbox = get_mbox(roc_nix);
71 mbox_alloc_msg_nix_lf_start_rx(mbox);
73 mbox_alloc_msg_nix_lf_stop_rx(mbox);
75 rc = mbox_process(mbox);
77 roc_nix->io_enabled = enable;
82 roc_nix_npc_mcast_config(struct roc_nix *roc_nix, bool mcast_enable,
86 struct mbox *mbox = get_mbox(roc_nix);
87 struct nix_rx_mode *req;
90 if (roc_nix_is_vf_or_sdp(roc_nix))
93 req = mbox_alloc_msg_nix_set_rx_mode(mbox);
98 req->mode = NIX_RX_MODE_ALLMULTI;
100 req->mode = NIX_RX_MODE_PROMISC;
102 return mbox_process(mbox);