1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(C) 2021 Marvell.
5 #ifndef _ROC_BPHY_CGX_PRIV_H_
6 #define _ROC_BPHY_CGX_PRIV_H_
14 ETH_LINK_2HG, /* 2.5 Gbps */
26 /* Supported LINK MODE enums
27 * Each link mode is a bit mask of these
28 * enums which are represented as bits
31 ETH_MODE_SGMII_BIT = 0,
32 ETH_MODE_1000_BASEX_BIT,
36 ETH_MODE_10G_KR_BIT, /* = 5 */
40 ETH_MODE_25G_2_C2C_BIT,
41 ETH_MODE_25G_CR_BIT, /* = 10 */
46 ETH_MODE_40G_KR4_BIT, /* = 15 */
47 ETH_MODE_40GAUI_C2C_BIT,
50 ETH_MODE_50G_4_C2C_BIT,
51 ETH_MODE_50G_CR_BIT, /* = 20 */
53 ETH_MODE_80GAUI_C2C_BIT,
54 ETH_MODE_100G_C2C_BIT,
55 ETH_MODE_100G_C2M_BIT,
56 ETH_MODE_100G_CR4_BIT, /* = 25 */
57 ETH_MODE_100G_KR4_BIT,
58 ETH_MODE_MAX_BIT /* = 27 */
61 /* REQUEST ID types. Input to firmware */
63 ETH_CMD_GET_LINK_STS = 4,
64 ETH_CMD_LINK_BRING_UP = 5,
65 ETH_CMD_LINK_BRING_DOWN = 6,
66 ETH_CMD_INTERNAL_LBK = 7,
67 ETH_CMD_MODE_CHANGE = 11, /* hot plug support */
68 ETH_CMD_INTF_SHUTDOWN = 12,
69 ETH_CMD_GET_SUPPORTED_FEC = 18,
71 ETH_CMD_SET_PTP_MODE = 34,
72 ETH_CMD_CPRI_MODE_CHANGE = 35,
73 ETH_CMD_CPRI_TX_CONTROL = 36,
74 ETH_CMD_CPRI_MISC = 42,
77 /* event types - cause of interrupt */
89 /* default ownership with kernel/uefi/u-boot */
90 ETH_OWN_NON_SECURE_SW,
91 /* set by kernel/uefi/u-boot after posting a new request to ATF */
95 /* scratchx(0) CSR used for ATF->non-secure SW communication.
96 * This acts as the status register
97 * Provides details on command ack/status, link status, error details
100 /* struct eth_evt_sts_s */
101 #define SCR0_ETH_EVT_STS_S_ACK BIT_ULL(0)
102 #define SCR0_ETH_EVT_STS_S_EVT_TYPE BIT_ULL(1)
103 #define SCR0_ETH_EVT_STS_S_STAT BIT_ULL(2)
104 #define SCR0_ETH_EVT_STS_S_ID GENMASK_ULL(8, 3)
106 /* struct eth_lnk_sts_s */
107 #define SCR0_ETH_LNK_STS_S_LINK_UP BIT_ULL(9)
108 #define SCR0_ETH_LNK_STS_S_FULL_DUPLEX BIT_ULL(10)
109 #define SCR0_ETH_LNK_STS_S_SPEED GENMASK_ULL(14, 11)
110 #define SCR0_ETH_LNK_STS_S_ERR_TYPE GENMASK_ULL(24, 15)
111 #define SCR0_ETH_LNK_STS_S_AN BIT_ULL(25)
112 #define SCR0_ETH_LNK_STS_S_FEC GENMASK_ULL(27, 26)
113 #define SCR0_ETH_LNK_STS_S_LMAC_TYPE GENMASK_ULL(35, 28)
114 #define SCR0_ETH_LNK_STS_S_MODE GENMASK_ULL(43, 36)
116 /* struct eth_fec_types_s */
117 #define SCR0_ETH_FEC_TYPES_S_FEC GENMASK_ULL(10, 9)
119 /* scratchx(1) CSR used for non-secure SW->ATF communication
120 * This CSR acts as a command register
124 #define SCR1_ETH_CMD_ID GENMASK_ULL(7, 2)
126 /* struct eth_ctl_args */
127 #define SCR1_ETH_CTL_ARGS_ENABLE BIT_ULL(8)
129 /* struct eth_mode_change_args */
130 #define SCR1_ETH_MODE_CHANGE_ARGS_SPEED GENMASK_ULL(11, 8)
131 #define SCR1_ETH_MODE_CHANGE_ARGS_DUPLEX BIT_ULL(12)
132 #define SCR1_ETH_MODE_CHANGE_ARGS_AN BIT_ULL(13)
133 #define SCR1_ETH_MODE_CHANGE_ARGS_PORT GENMASK_ULL(21, 14)
134 #define SCR1_ETH_MODE_CHANGE_ARGS_MODE GENMASK_ULL(63, 22)
136 /* struct eth_set_fec_args */
137 #define SCR1_ETH_SET_FEC_ARGS GENMASK_ULL(9, 8)
139 /* struct eth_cpri_mode_change_args */
140 #define SCR1_CPRI_MODE_CHANGE_ARGS_GSERC_IDX GENMASK_ULL(11, 8)
141 #define SCR1_CPRI_MODE_CHANGE_ARGS_LANE_IDX GENMASK_ULL(15, 12)
142 #define SCR1_CPRI_MODE_CHANGE_ARGS_RATE GENMASK_ULL(31, 16)
143 #define SCR1_CPRI_MODE_CHANGE_ARGS_DISABLE_LEQ BIT_ULL(32)
144 #define SCR1_CPRI_MODE_CHANGE_ARGS_DISABLE_DFE BIT_ULL(33)
146 /* struct cpri_mode_tx_ctrl_args */
147 #define SCR1_CPRI_MODE_TX_CTRL_ARGS_GSERC_IDX GENMASK_ULL(11, 8)
148 #define SCR1_CPRI_MODE_TX_CTRL_ARGS_LANE_IDX GENMASK_ULL(15, 12)
149 #define SCR1_CPRI_MODE_TX_CTRL_ARGS_ENABLE BIT_ULL(16)
151 /* struct cpri_mode_misc_args */
152 #define SCR1_CPRI_MODE_MISC_ARGS_GSERC_IDX GENMASK_ULL(11, 8)
153 #define SCR1_CPRI_MODE_MISC_ARGS_LANE_IDX GENMASK_ULL(15, 12)
154 #define SCR1_CPRI_MODE_MISC_ARGS_FLAGS GENMASK_ULL(17, 16)
156 #define SCR1_OWN_STATUS GENMASK_ULL(1, 0)
158 #endif /* _ROC_BPHY_CGX_PRIV_H_ */