|
@@ -5062,6 +5062,45 @@ static inline void mlxsw_reg_sbsr_rec_unpack(char *payload, int rec_index,
|
|
|
mlxsw_reg_sbsr_rec_max_buff_occupancy_get(payload, rec_index);
|
|
mlxsw_reg_sbsr_rec_max_buff_occupancy_get(payload, rec_index);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/* SBIB - Shared Buffer Internal Buffer Register
|
|
|
|
|
+ * ---------------------------------------------
|
|
|
|
|
+ * The SBIB register configures per port buffers for internal use. The internal
|
|
|
|
|
+ * buffers consume memory on the port buffers (note that the port buffers are
|
|
|
|
|
+ * used also by PBMC).
|
|
|
|
|
+ *
|
|
|
|
|
+ * For Spectrum this is used for egress mirroring.
|
|
|
|
|
+ */
|
|
|
|
|
+#define MLXSW_REG_SBIB_ID 0xB006
|
|
|
|
|
+#define MLXSW_REG_SBIB_LEN 0x10
|
|
|
|
|
+
|
|
|
|
|
+static const struct mlxsw_reg_info mlxsw_reg_sbib = {
|
|
|
|
|
+ .id = MLXSW_REG_SBIB_ID,
|
|
|
|
|
+ .len = MLXSW_REG_SBIB_LEN,
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+/* reg_sbib_local_port
|
|
|
|
|
+ * Local port number
|
|
|
|
|
+ * Not supported for CPU port and router port
|
|
|
|
|
+ * Access: Index
|
|
|
|
|
+ */
|
|
|
|
|
+MLXSW_ITEM32(reg, sbib, local_port, 0x00, 16, 8);
|
|
|
|
|
+
|
|
|
|
|
+/* reg_sbib_buff_size
|
|
|
|
|
+ * Units represented in cells
|
|
|
|
|
+ * Allowed range is 0 to (cap_max_headroom_size - 1)
|
|
|
|
|
+ * Default is 0
|
|
|
|
|
+ * Access: RW
|
|
|
|
|
+ */
|
|
|
|
|
+MLXSW_ITEM32(reg, sbib, buff_size, 0x08, 0, 24);
|
|
|
|
|
+
|
|
|
|
|
+static inline void mlxsw_reg_sbib_pack(char *payload, u8 local_port,
|
|
|
|
|
+ u32 buff_size)
|
|
|
|
|
+{
|
|
|
|
|
+ MLXSW_REG_ZERO(sbib, payload);
|
|
|
|
|
+ mlxsw_reg_sbib_local_port_set(payload, local_port);
|
|
|
|
|
+ mlxsw_reg_sbib_buff_size_set(payload, buff_size);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
static inline const char *mlxsw_reg_id_str(u16 reg_id)
|
|
static inline const char *mlxsw_reg_id_str(u16 reg_id)
|
|
|
{
|
|
{
|
|
|
switch (reg_id) {
|
|
switch (reg_id) {
|
|
@@ -5179,6 +5218,8 @@ static inline const char *mlxsw_reg_id_str(u16 reg_id)
|
|
|
return "SBMM";
|
|
return "SBMM";
|
|
|
case MLXSW_REG_SBSR_ID:
|
|
case MLXSW_REG_SBSR_ID:
|
|
|
return "SBSR";
|
|
return "SBSR";
|
|
|
|
|
+ case MLXSW_REG_SBIB_ID:
|
|
|
|
|
+ return "SBIB";
|
|
|
default:
|
|
default:
|
|
|
return "*UNKNOWN*";
|
|
return "*UNKNOWN*";
|
|
|
}
|
|
}
|