| Author | Tokens | Token Proportion | Commits | Commit Proportion |
|---|---|---|---|---|
| 319 | 100.00% | 4 | 100.00% | |
| Total | 319 | 4 |
| Author | Tokens | Token Proportion | Commits | Commit Proportion |
|---|---|---|---|---|
| Dong Yibo | 319 | 100.00% | 4 | 100.00% |
| Total | 319 | 4 |
/* SPDX-License-Identifier: GPL-2.0 */ /* Copyright(c) 2020 - 2025 Mucse Corporation. */ #ifndef _RNPGBE_MBX_FW_H #define _RNPGBE_MBX_FW_H #include <linux/types.h> #include "rnpgbe.h" #define MUCSE_MBX_REQ_HDR_LEN 24 enum MUCSE_FW_CMD { GET_HW_INFO = 0x0601, GET_MAC_ADDRESS = 0x0602, RESET_HW = 0x0603, POWER_UP = 0x0803, }; struct mucse_hw_info { u8 link_stat; u8 port_mask; __le32 speed; __le16 phy_type; __le16 nic_mode; __le16 pfnum; __le32 fw_version; __le32 axi_mhz; union { u8 port_id[4]; __le32 port_ids; }; __le32 bd_uid; __le32 phy_id; __le32 wol_status; __le32 ext_info; } __packed; struct mbx_fw_cmd_req { __le16 flags; __le16 opcode; __le16 datalen; __le16 ret_value; __le32 cookie_lo; __le32 cookie_hi; __le32 reply_lo; __le32 reply_hi; union { u8 data[32]; struct { __le32 version; __le32 status; } powerup; struct { __le32 port_mask; __le32 pfvf_num; } get_mac_addr; }; } __packed; struct mbx_fw_cmd_reply { __le16 flags; __le16 opcode; __le16 error_code; __le16 datalen; __le32 cookie_lo; __le32 cookie_hi; union { u8 data[40]; struct mac_addr { __le32 ports; struct _addr { /* for macaddr:01:02:03:04:05:06 * mac-hi=0x01020304 mac-lo=0x05060000 */ u8 mac[8]; } addrs[4]; } mac_addr; struct mucse_hw_info hw_info; }; } __packed; /* Union wrappers to expose struct as __le32 dword array for mailbox * transport, eliminating the need for pointer casts. The __packed * structs have no padding, so dwords[] overlays the fields exactly. */ union mbx_fw_cmd_req_u { struct mbx_fw_cmd_req r; __le32 dwords[sizeof(struct mbx_fw_cmd_req) / sizeof(__le32)]; }; union mbx_fw_cmd_reply_u { struct mbx_fw_cmd_reply r; __le32 dwords[sizeof(struct mbx_fw_cmd_reply) / sizeof(__le32)]; }; int mucse_mbx_sync_fw(struct mucse_hw *hw); int mucse_mbx_powerup(struct mucse_hw *hw, bool is_powerup); int mucse_mbx_reset_hw(struct mucse_hw *hw); int mucse_mbx_get_macaddr(struct mucse_hw *hw, int pfvfnum, u8 *mac_addr, int port); #endif /* _RNPGBE_MBX_FW_H */