]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
octeontx2-af: npc: cn20k: Add default profile
authorSuman Ghosh <sumang@marvell.com>
Tue, 24 Feb 2026 07:59:59 +0000 (13:29 +0530)
committerJakub Kicinski <kuba@kernel.org>
Sat, 28 Feb 2026 18:29:25 +0000 (10:29 -0800)
Default mkex profile for cn20k silicon. This commit
changes attribute of objects to may_be_unused to
avoid compiler warning

Signed-off-by: Suman Ghosh <sumang@marvell.com>
Signed-off-by: Ratheesh Kannoth <rkannoth@marvell.com>
Link: https://patch.msgid.link/20260224080009.4147301-4-rkannoth@marvell.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.c
drivers/net/ethernet/marvell/octeontx2/af/cn20k/npc.h
drivers/net/ethernet/marvell/octeontx2/af/npc_profile.h

index f65db0698c33e2ffb8ee80d36164fe8b2a56b5a0..0dec50b1e84ffd3a69a4de3ab9a42d3f00623ee7 100644 (file)
@@ -7,9 +7,13 @@
 #include <linux/xarray.h>
 #include <linux/bitfield.h>
 
+#include "rvu.h"
+#include "npc.h"
+#include "npc_profile.h"
+#include "rvu_npc_hash.h"
+#include "rvu_npc.h"
 #include "cn20k/npc.h"
 #include "cn20k/reg.h"
-#include "rvu_npc.h"
 
 static struct npc_priv_t npc_priv = {
        .num_banks = MAX_NUM_BANKS,
@@ -21,6 +25,176 @@ static const char *npc_kw_name[NPC_MCAM_KEY_MAX] = {
        [NPC_MCAM_KEY_X4] = "X4",
 };
 
+#define KEX_EXTR_CFG(bytesm1, hdr_ofs, ena, key_ofs)           \
+                    (((bytesm1) << 16) | ((hdr_ofs) << 8) | ((ena) << 7) | \
+                    ((key_ofs) & 0x3F))
+
+static struct npc_mcam_kex_extr npc_mkex_extr_default = {
+       .mkex_sign = MKEX_SIGN,
+       .name = "default",
+       .kpu_version = NPC_KPU_PROFILE_VER,
+       .keyx_cfg = {
+               /* nibble: LA..LE (ltype only) + Error code + Channel */
+               [NIX_INTF_RX] = ((u64)NPC_MCAM_KEY_DYN << 32) |
+                       NPC_PARSE_NIBBLE_INTF_RX |
+                                NPC_PARSE_NIBBLE_ERRCODE,
+
+               /* nibble: LA..LE (ltype only) */
+               [NIX_INTF_TX] = ((u64)NPC_MCAM_KEY_X2 << 32) |
+                       NPC_PARSE_NIBBLE_INTF_TX,
+       },
+       .intf_extr_lid = {
+       /* Default RX MCAM KEX profile */
+       [NIX_INTF_RX] = { NPC_LID_LA, NPC_LID_LA, NPC_LID_LB, NPC_LID_LB,
+                         NPC_LID_LC, NPC_LID_LC, NPC_LID_LD },
+       [NIX_INTF_TX] = { NPC_LID_LA, NPC_LID_LA, NPC_LID_LB, NPC_LID_LB,
+                         NPC_LID_LC, NPC_LID_LD },
+       },
+       .intf_extr_lt = {
+       /* Default RX MCAM KEX profile */
+       [NIX_INTF_RX] = {
+               [0] = {
+                       /* Layer A: Ethernet: */
+                       [NPC_LT_LA_ETHER] =
+                               /* DMAC: 6 bytes, KW1[63:15] */
+                               KEX_EXTR_CFG(0x05, 0x0, 0x1,
+                                            NPC_KEXOF_DMAC + 1),
+                       [NPC_LT_LA_CPT_HDR] =
+                               /* DMAC: 6 bytes, KW1[63:15] */
+                               KEX_EXTR_CFG(0x05, 0x0, 0x1,
+                                            NPC_KEXOF_DMAC + 1),
+               },
+               [1] = {
+                       /* Layer A: Ethernet: */
+                       [NPC_LT_LA_ETHER] =
+                               /* Ethertype: 2 bytes, KW0[63:48] */
+                               KEX_EXTR_CFG(0x01, 0xc, 0x1, 0x6),
+                       [NPC_LT_LA_CPT_HDR] =
+                               /* Ethertype: 2 bytes, KW0[63:48] */
+                               KEX_EXTR_CFG(0x01, 0xc, 0x1, 0x6),
+               },
+               [2] = {
+                       /* Layer B: Single VLAN (CTAG) */
+                       [NPC_LT_LB_CTAG] =
+                               /* CTAG VLAN: 2 bytes, KW1[15:0] */
+                               KEX_EXTR_CFG(0x01, 0x2, 0x1, 0x8),
+                       /* Layer B: Stacked VLAN (STAG|QinQ) */
+                       [NPC_LT_LB_STAG_QINQ] =
+                               /* Outer VLAN: 2 bytes, KW1[15:0] */
+                               KEX_EXTR_CFG(0x01, 0x2, 0x1, 0x8),
+                       [NPC_LT_LB_FDSA] =
+                               /* SWITCH PORT: 1 byte, KW1[7:0] */
+                               KEX_EXTR_CFG(0x0, 0x1, 0x1, 0x8),
+               },
+               [3] = {
+                       [NPC_LT_LB_CTAG] =
+                               /* Ethertype: 2 bytes, KW0[63:48] */
+                               KEX_EXTR_CFG(0x01, 0x4, 0x1, 0x6),
+                       [NPC_LT_LB_STAG_QINQ] =
+                               /* Ethertype: 2 bytes, KW0[63:48] */
+                               KEX_EXTR_CFG(0x01, 0x8, 0x1, 0x6),
+                       [NPC_LT_LB_FDSA] =
+                               /* Ethertype: 2 bytes, KW0[63:48] */
+                               KEX_EXTR_CFG(0x01, 0x4, 0x1, 0x6),
+               },
+               [4] = {
+                       /* Layer C: IPv4 */
+                       [NPC_LT_LC_IP] =
+                               /* SIP+DIP: 8 bytes, KW3[7:0], KW2[63:8] */
+                               KEX_EXTR_CFG(0x07, 0xc, 0x1, 0x11),
+                       /* Layer C: IPv6 */
+                       [NPC_LT_LC_IP6] =
+                               /* Everything up to SADDR: 8 bytes, KW3[7:0],
+                                * KW2[63:8]
+                                */
+                               KEX_EXTR_CFG(0x07, 0x0, 0x1, 0x11),
+               },
+               [5] = {
+                       [NPC_LT_LC_IP] =
+                               /* TOS: 1 byte, KW2[7:0] */
+                               KEX_EXTR_CFG(0x0, 0x1, 0x1, 0x10),
+               },
+               [6] = {
+                       /* Layer D:UDP */
+                       [NPC_LT_LD_UDP] =
+                               /* SPORT+DPORT: 4 bytes, KW3[39:8] */
+                               KEX_EXTR_CFG(0x3, 0x0, 0x1, 0x19),
+                       /* Layer D:TCP */
+                       [NPC_LT_LD_TCP] =
+                               /* SPORT+DPORT: 4 bytes, KW3[39:8] */
+                               KEX_EXTR_CFG(0x3, 0x0, 0x1, 0x19),
+               },
+       },
+       /* Default TX MCAM KEX profile */
+       [NIX_INTF_TX] = {
+               [0] = {
+                       /* Layer A: NIX_INST_HDR_S + Ethernet */
+                       /* NIX appends 8 bytes of NIX_INST_HDR_S at the
+                        * start of each TX packet supplied to NPC.
+                        */
+                       [NPC_LT_LA_IH_NIX_ETHER] =
+                               /* PF_FUNC: 2B , KW0 [47:32] */
+                               KEX_EXTR_CFG(0x01, 0x0, 0x1, 0x4),
+                       /* Layer A: HiGig2: */
+                       [NPC_LT_LA_IH_NIX_HIGIG2_ETHER] =
+                               /* PF_FUNC: 2B , KW0 [47:32] */
+                               KEX_EXTR_CFG(0x01, 0x0, 0x1, 0x4),
+               },
+               [1] = {
+                       [NPC_LT_LA_IH_NIX_ETHER] =
+                               /* SQ_ID 3 bytes, KW1[63:16] */
+                               KEX_EXTR_CFG(0x02, 0x02, 0x1, 0xa),
+                       [NPC_LT_LA_IH_NIX_HIGIG2_ETHER] =
+                               /* VID: 2 bytes, KW1[31:16] */
+                               KEX_EXTR_CFG(0x01, 0x10, 0x1, 0xa),
+               },
+               [2] = {
+                       /* Layer B: Single VLAN (CTAG) */
+                       [NPC_LT_LB_CTAG] =
+                               /* CTAG VLAN[2..3] KW0[63:48] */
+                               KEX_EXTR_CFG(0x01, 0x2, 0x1, 0x6),
+                       /* Layer B: Stacked VLAN (STAG|QinQ) */
+                       [NPC_LT_LB_STAG_QINQ] =
+                               /* Outer VLAN: 2 bytes, KW0[63:48] */
+                               KEX_EXTR_CFG(0x01, 0x2, 0x1, 0x6),
+               },
+               [3] = {
+                       [NPC_LT_LB_CTAG] =
+                               /* CTAG VLAN[2..3] KW1[15:0] */
+                               KEX_EXTR_CFG(0x01, 0x4, 0x1, 0x8),
+                       [NPC_LT_LB_STAG_QINQ] =
+                               /* Outer VLAN: 2 Bytes, KW1[15:0] */
+                               KEX_EXTR_CFG(0x01, 0x8, 0x1, 0x8),
+               },
+               [4] = {
+                       /* Layer C: IPv4 */
+                       [NPC_LT_LC_IP] =
+                               /* SIP+DIP: 8 bytes, KW2[63:0] */
+                               KEX_EXTR_CFG(0x07, 0xc, 0x1, 0x10),
+                       /* Layer C: IPv6 */
+                       [NPC_LT_LC_IP6] =
+                               /* Everything up to SADDR: 8 bytes, KW2[63:0] */
+                               KEX_EXTR_CFG(0x07, 0x0, 0x1, 0x10),
+               },
+               [5] = {
+                       /* Layer D:UDP */
+                       [NPC_LT_LD_UDP] =
+                               /* SPORT+DPORT: 4 bytes, KW3[31:0] */
+                               KEX_EXTR_CFG(0x3, 0x0, 0x1, 0x18),
+                       /* Layer D:TCP */
+                       [NPC_LT_LD_TCP] =
+                               /* SPORT+DPORT: 4 bytes, KW3[31:0] */
+                               KEX_EXTR_CFG(0x3, 0x0, 0x1, 0x18),
+               },
+       },
+       },
+};
+
+struct npc_mcam_kex_extr *npc_mkex_extr_default_get(void)
+{
+       return &npc_mkex_extr_default;
+}
+
 static void npc_config_kpmcam(struct rvu *rvu, int blkaddr,
                              const struct npc_kpu_profile_cam *kpucam,
                              int kpm, int entry)
index fb4d5f4634618d2b41636b93f64ba2cb1cf937f2..7cfca5cfe5fac6bbf3fc8df51d60a3035d8bd707 100644 (file)
@@ -130,6 +130,23 @@ struct npc_kpm_action0 {
 #endif
 };
 
+struct npc_mcam_kex_extr {
+       /* MKEX Profle Header */
+       u64 mkex_sign; /* "mcam-kex-profile" (8 bytes/ASCII characters) */
+       u8 name[MKEX_NAME_LEN];   /* MKEX Profile name */
+       u64 cpu_model;   /* Format as profiled by CPU hardware */
+       u64 kpu_version; /* KPU firmware/profile version */
+       u64 reserved; /* Reserved for extension */
+
+       /* MKEX Profle Data */
+       u64 keyx_cfg[NPC_MAX_INTF]; /* NPC_AF_INTF(0..1)_KEX_CFG */
+#define NPC_MAX_EXTRACTOR      24
+       /* MKEX Extractor data */
+       u64 intf_extr_lid[NPC_MAX_INTF][NPC_MAX_EXTRACTOR];
+       /* KEX configuration per extractor */
+       u64 intf_extr_lt[NPC_MAX_INTF][NPC_MAX_EXTRACTOR][NPC_MAX_LT];
+} __packed;
+
 struct rvu;
 
 struct npc_priv_t *npc_priv_get(void);
@@ -144,4 +161,5 @@ int npc_cn20k_ref_idx_alloc(struct rvu *rvu, int pcifunc, int key_type,
                            bool contig, int count);
 int npc_cn20k_idx_free(struct rvu *rvu, u16 *mcam_idx, int count);
 void npc_cn20k_parser_profile_init(struct rvu *rvu, int blkaddr);
+struct npc_mcam_kex_extr *npc_mkex_extr_default_get(void);
 #endif /* NPC_CN20K_H */
index 41de72c8607f07b248f3f55a96a93095300d901c..561b01fcdbdef3e95428d233604bac098eec7b69 100644 (file)
@@ -489,7 +489,7 @@ enum NPC_ERRLEV_E {
                0, 0, 0, 0,                     \
        }
 
-static struct npc_kpu_profile_action ikpu_action_entries[] = {
+static struct npc_kpu_profile_action ikpu_action_entries[] __maybe_unused = {
        {
                NPC_ERRLEV_RE, NPC_EC_NOERR,
                12, 16, 20, 0, 0,
@@ -1068,7 +1068,7 @@ static struct npc_kpu_profile_action ikpu_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu1_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu1_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -1878,7 +1878,7 @@ static struct npc_kpu_profile_cam kpu1_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu2_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu2_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -2823,7 +2823,7 @@ static struct npc_kpu_profile_cam kpu2_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu3_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu3_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -3804,7 +3804,7 @@ static struct npc_kpu_profile_cam kpu3_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu4_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu4_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -4119,7 +4119,7 @@ static struct npc_kpu_profile_cam kpu4_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu5_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu5_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -5172,7 +5172,7 @@ static struct npc_kpu_profile_cam kpu5_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu6_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu6_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -5901,7 +5901,7 @@ static struct npc_kpu_profile_cam kpu6_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu7_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu7_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -6252,7 +6252,7 @@ static struct npc_kpu_profile_cam kpu7_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu8_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu8_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -7089,7 +7089,7 @@ static struct npc_kpu_profile_cam kpu8_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu9_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu9_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -7575,7 +7575,7 @@ static struct npc_kpu_profile_cam kpu9_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu10_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu10_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -7746,7 +7746,7 @@ static struct npc_kpu_profile_cam kpu10_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu11_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu11_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -8061,7 +8061,7 @@ static struct npc_kpu_profile_cam kpu11_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu12_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu12_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -8322,7 +8322,7 @@ static struct npc_kpu_profile_cam kpu12_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu13_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu13_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -8340,7 +8340,7 @@ static struct npc_kpu_profile_cam kpu13_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu14_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu14_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -8358,7 +8358,7 @@ static struct npc_kpu_profile_cam kpu14_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu15_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu15_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -8565,7 +8565,7 @@ static struct npc_kpu_profile_cam kpu15_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_cam kpu16_cam_entries[] = {
+static struct npc_kpu_profile_cam kpu16_cam_entries[] __maybe_unused = {
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
        NPC_KPU_NOP_CAM,
@@ -8628,7 +8628,7 @@ static struct npc_kpu_profile_cam kpu16_cam_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu1_action_entries[] = {
+static struct npc_kpu_profile_action kpu1_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -9368,7 +9368,7 @@ static struct npc_kpu_profile_action kpu1_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu2_action_entries[] = {
+static struct npc_kpu_profile_action kpu2_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -10209,7 +10209,7 @@ static struct npc_kpu_profile_action kpu2_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu3_action_entries[] = {
+static struct npc_kpu_profile_action kpu3_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -11082,7 +11082,7 @@ static struct npc_kpu_profile_action kpu3_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu4_action_entries[] = {
+static struct npc_kpu_profile_action kpu4_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -11363,7 +11363,7 @@ static struct npc_kpu_profile_action kpu4_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu5_action_entries[] = {
+static struct npc_kpu_profile_action kpu5_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -12300,7 +12300,7 @@ static struct npc_kpu_profile_action kpu5_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu6_action_entries[] = {
+static struct npc_kpu_profile_action kpu6_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -12949,7 +12949,7 @@ static struct npc_kpu_profile_action kpu6_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu7_action_entries[] = {
+static struct npc_kpu_profile_action kpu7_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -13262,7 +13262,7 @@ static struct npc_kpu_profile_action kpu7_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu8_action_entries[] = {
+static struct npc_kpu_profile_action kpu8_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -14007,7 +14007,7 @@ static struct npc_kpu_profile_action kpu8_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu9_action_entries[] = {
+static struct npc_kpu_profile_action kpu9_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -14440,7 +14440,7 @@ static struct npc_kpu_profile_action kpu9_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu10_action_entries[] = {
+static struct npc_kpu_profile_action kpu10_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -14593,7 +14593,7 @@ static struct npc_kpu_profile_action kpu10_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu11_action_entries[] = {
+static struct npc_kpu_profile_action kpu11_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -14874,7 +14874,7 @@ static struct npc_kpu_profile_action kpu11_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu12_action_entries[] = {
+static struct npc_kpu_profile_action kpu12_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -15107,7 +15107,7 @@ static struct npc_kpu_profile_action kpu12_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu13_action_entries[] = {
+static struct npc_kpu_profile_action kpu13_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -15124,7 +15124,7 @@ static struct npc_kpu_profile_action kpu13_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu14_action_entries[] = {
+static struct npc_kpu_profile_action kpu14_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -15141,7 +15141,7 @@ static struct npc_kpu_profile_action kpu14_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu15_action_entries[] = {
+static struct npc_kpu_profile_action kpu15_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -15326,7 +15326,7 @@ static struct npc_kpu_profile_action kpu15_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile_action kpu16_action_entries[] = {
+static struct npc_kpu_profile_action kpu16_action_entries[] __maybe_unused = {
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
        NPC_KPU_NOP_ACTION,
@@ -15383,7 +15383,7 @@ static struct npc_kpu_profile_action kpu16_action_entries[] = {
        },
 };
 
-static struct npc_kpu_profile npc_kpu_profiles[] = {
+static struct npc_kpu_profile npc_kpu_profiles[] __maybe_unused = {
        {
                ARRAY_SIZE(kpu1_cam_entries),
                ARRAY_SIZE(kpu1_action_entries),
@@ -15482,7 +15482,7 @@ static struct npc_kpu_profile npc_kpu_profiles[] = {
        },
 };
 
-static struct npc_lt_def_cfg npc_lt_defaults = {
+static struct npc_lt_def_cfg npc_lt_defaults __maybe_unused = {
        .rx_ol2 = {
                .lid = NPC_LID_LA,
                .ltype_match = NPC_LT_LA_ETHER,
@@ -15604,7 +15604,7 @@ static struct npc_lt_def_cfg npc_lt_defaults = {
        },
 };
 
-static struct npc_mcam_kex npc_mkex_default = {
+static struct npc_mcam_kex npc_mkex_default __maybe_unused = {
        .mkex_sign = MKEX_SIGN,
        .name = "default",
        .kpu_version = NPC_KPU_PROFILE_VER,