drivers/net/ethernet/marvell/octeontx2/af/cgx_fw_if.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/marvell/octeontx2/af/cgx_fw_if.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/marvell/octeontx2/af/cgx_fw_if.h
Extension
.h
Size
7745 bytes
Lines
296
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct cgx_lnk_sts {
	uint64_t reserved1:9;
	uint64_t link_up:1;
	uint64_t full_duplex:1;
	uint64_t speed:4;		/* cgx_link_speed */
	uint64_t err_type:10;
	uint64_t an:1;			/* AN supported or not */
	uint64_t fec:2;			/* FEC type if enabled, if not 0 */
	uint64_t port:8;
	uint64_t reserved2:28;
};

#define RESP_LINKSTAT_UP		GENMASK_ULL(9, 9)
#define RESP_LINKSTAT_FDUPLEX		GENMASK_ULL(10, 10)
#define RESP_LINKSTAT_SPEED		GENMASK_ULL(14, 11)
#define RESP_LINKSTAT_ERRTYPE		GENMASK_ULL(24, 15)
#define RESP_LINKSTAT_AN		GENMASK_ULL(25, 25)
#define RESP_LINKSTAT_FEC		GENMASK_ULL(27, 26)
#define RESP_LINKSTAT_PORT		GENMASK_ULL(35, 28)

/* scratchx(1) CSR used for non-secure SW->ATF communication
 * This CSR acts as a command register
 */
#define CMDREG_OWN	BIT_ULL(0)
#define CMDREG_ID	GENMASK_ULL(7, 2)

/* Any command using enable/disable as an argument need
 * to set this bitfield.
 * Ex: Loopback, HiGig...
 */
#define CMDREG_ENABLE	BIT_ULL(8)

/* command argument to be passed for cmd ID - CGX_CMD_SET_MTU */
#define CMDMTU_SIZE	GENMASK_ULL(23, 8)

/* command argument to be passed for cmd ID - CGX_CMD_LINK_CHANGE */
#define CMDLINKCHANGE_LINKUP	BIT_ULL(8)
#define CMDLINKCHANGE_FULLDPLX	BIT_ULL(9)
#define CMDLINKCHANGE_SPEED	GENMASK_ULL(13, 10)

#define CMDSETFEC			GENMASK_ULL(9, 8)
/* command argument to be passed for cmd ID - CGX_CMD_MODE_CHANGE */
#define CMDMODECHANGE_SPEED		GENMASK_ULL(11, 8)
#define CMDMODECHANGE_DUPLEX		GENMASK_ULL(12, 12)
#define CMDMODECHANGE_AN		GENMASK_ULL(13, 13)
/* this field categorize the mode ID(FLAGS) range to accommodate
 * more modes.
 * To specify mode ID range of 0 - 41, this field will be 0.
 * To specify mode ID range of 42 - 83, this field will be 1.
 */
#define CMDMODECHANGE_MODE_BASEIDX	GENMASK_ULL(21, 20)
#define CMDMODECHANGE_FLAGS		GENMASK_ULL(63, 22)

/* LINK_BRING_UP command timeout */
#define LINKCFG_TIMEOUT		GENMASK_ULL(21, 8)
#endif /* __CGX_FW_INTF_H__ */

Annotation

Implementation Notes