File Index
Files and directories
Sign in
FILE

rnpgbe_mbx_fw.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/mucse/rnpgbe/rnpgbe_mbx_fw.h C
 1/* SPDX-License-Identifier: GPL-2.0 */
 2/* Copyright(c) 2020 - 2025 Mucse Corporation. */
 3
 4#ifndef _RNPGBE_MBX_FW_H
 5#define _RNPGBE_MBX_FW_H
 6
 7#include <linux/types.h>
 8
 9#include "rnpgbe.h"
10
11#define MUCSE_MBX_REQ_HDR_LEN 24
12
13enum MUCSE_FW_CMD {
14	GET_HW_INFO     = 0x0601,
15	GET_MAC_ADDRESS = 0x0602,
16	RESET_HW        = 0x0603,
17	POWER_UP        = 0x0803,
18};
19
20struct mucse_hw_info {
21	u8 link_stat;
22	u8 port_mask;
23	__le32 speed;
24	__le16 phy_type;
25	__le16 nic_mode;
26	__le16 pfnum;
27	__le32 fw_version;
28	__le32 axi_mhz;
29	union {
30		u8 port_id[4];
31		__le32 port_ids;
32	};
33	__le32 bd_uid;
34	__le32 phy_id;
35	__le32 wol_status;
36	__le32 ext_info;
37} __packed;
38
39struct mbx_fw_cmd_req {
40	__le16 flags;
41	__le16 opcode;
42	__le16 datalen;
43	__le16 ret_value;
44	__le32 cookie_lo;
45	__le32 cookie_hi;
46	__le32 reply_lo;
47	__le32 reply_hi;
48	union {
49		u8 data[32];
50		struct {
51			__le32 version;
52			__le32 status;
53		} powerup;
54		struct {
55			__le32 port_mask;
56			__le32 pfvf_num;
57		} get_mac_addr;
58	};
59} __packed;
60
61struct mbx_fw_cmd_reply {
62	__le16 flags;
63	__le16 opcode;
64	__le16 error_code;
65	__le16 datalen;
66	__le32 cookie_lo;
67	__le32 cookie_hi;
68	union {
69		u8 data[40];
70		struct mac_addr {
71			__le32 ports;
72			struct _addr {
73				/* for macaddr:01:02:03:04:05:06
74				 * mac-hi=0x01020304 mac-lo=0x05060000
75				 */
76				u8 mac[8];
77			} addrs[4];
78		} mac_addr;
79		struct mucse_hw_info hw_info;
80	};
81} __packed;
82
83int mucse_mbx_sync_fw(struct mucse_hw *hw);
84int mucse_mbx_powerup(struct mucse_hw *hw, bool is_powerup);
85int mucse_mbx_reset_hw(struct mucse_hw *hw);
86int mucse_mbx_get_macaddr(struct mucse_hw *hw, int pfvfnum,
87			  u8 *mac_addr, int port);
88#endif /* _RNPGBE_MBX_FW_H */
~/ Read-only file preview.