Hi Jakub, On Thu, Oct 15, 2020 at 9:02 PM Jakub Kicinski <k...@kernel.org> wrote: > > On Thu, 15 Oct 2020 17:53:07 +0530 sundeep subbaraya wrote: > > Hi Jakub, > > > > On Thu, Oct 15, 2020 at 8:18 AM Jakub Kicinski <k...@kernel.org> wrote: > > > > > > On Tue, 13 Oct 2020 15:56:28 +0530 sundeep.l...@gmail.com wrote: > > > > -static const struct npc_mcam_kex npc_mkex_default = { > > > > +static struct npc_mcam_kex npc_mkex_default = { > > > > .mkex_sign = MKEX_SIGN, > > > > .name = "default", > > > > .kpu_version = NPC_KPU_PROFILE_VER, > > > > > > Why is this no longer constant? Are you modifying global data based > > > on the HW discovered in the system? > > > > Yes. Due to an errata present on earlier silicons > > npc_mkex_default.keyx_cfg[NIX_INTF_TX] > > and npc_mkex_default.keyx_cfg[NIX_INTF_RX] needs to be identical. > > Does this run on the SoC? Is there no possibility that the same kernel > will have to drive two different pieces of hardware?
If kernel runs on SoC with errata present then npc_mkex_default.keyx_cfg[NIX_INTF_TX] is modified to be same as npc_mkex_default.keyx_cfg[NIX_INTF_RX]. And if errata is not applicable to SoC then npc_mkex_default.keyx_cfg[NIX_INTF_TX] is unchanged and the values present in TX and RX are programmed to TX and RX interface registers. Thanks, Sundeep