All of lore.kernel.org
 help / color / mirror / Atom feed
From: ZHIZHIKIN Andrey <andrey.zhizhikin@leica-geosystems.com>
To: Gaurav Jain <gaurav.jain@nxp.com>,
	"u-boot@lists.denx.de" <u-boot@lists.denx.de>,
	Stefano Babic <sbabic@denx.de>,
	Fabio Estevam <festevam@gmail.com>,
	Tommaso Merciai <tommaso.merciai@amarulasolutions.com>,
	 Michael Trimarchi <michael@amarulasolutions.com>,
	Marek Vasut <marex@denx.de>, Simon Glass <sjg@chromium.org>,
	Patrick Delaunay <patrick.delaunay@foss.st.com>,
	Stefan Roese <sr@denx.de>, Horia Geanta <horia.geanta@nxp.com>,
	Pankaj Gupta <pankaj.gupta@nxp.com>,
	Varun Sethi <V.Sethi@nxp.com>, Ye Li <ye.li@nxp.com>,
	Michael Walle <michael@walle.cc>
Cc: dl-uboot-imx <uboot-imx@nxp.com>
Subject: RE: [EXT] RE: [PATCH] i.MX8M: crypto: disable JR0 in SPL, U-Boot
Date: Thu, 9 Jun 2022 17:29:34 +0000	[thread overview]
Message-ID: <AM6PR06MB4691D1EA628FFD96170CC390A6A79@AM6PR06MB4691.eurprd06.prod.outlook.com> (raw)
In-Reply-To: <VI1PR04MB5342C700A9E274632694FD8CE7A79@VI1PR04MB5342.eurprd04.prod.outlook.com>

Hello Gaurav,

> -----Original Message-----
> From: U-Boot <u-boot-bounces@lists.denx.de> On Behalf Of Gaurav Jain
> Sent: Thursday, June 9, 2022 3:13 PM
> To: ZHIZHIKIN Andrey <andrey.zhizhikin@leica-geosystems.com>; u-
> boot@lists.denx.de; Stefano Babic <sbabic@denx.de>; Fabio Estevam
> <festevam@gmail.com>; Tommaso Merciai <tommaso.merciai@amarulasolutions.com>;
> Michael Trimarchi <michael@amarulasolutions.com>; Marek Vasut <marex@denx.de>;
> Simon Glass <sjg@chromium.org>; Patrick Delaunay <patrick.delaunay@foss.st.com>;
> Stefan Roese <sr@denx.de>; Horia Geanta <horia.geanta@nxp.com>; Pankaj Gupta
> <pankaj.gupta@nxp.com>; Varun Sethi <V.Sethi@nxp.com>; Ye Li <ye.li@nxp.com>;
> Michael Walle <michael@walle.cc>
> Cc: dl-uboot-imx <uboot-imx@nxp.com>
> Subject: RE: [EXT] RE: [PATCH] i.MX8M: crypto: disable JR0 in SPL, U-Boot
> 
> Hello Andrey
> 
> > -----Original Message-----
> > From: ZHIZHIKIN Andrey <andrey.zhizhikin@leica-geosystems.com>
> > Sent: Wednesday, June 8, 2022 8:31 PM
> > To: Gaurav Jain <gaurav.jain@nxp.com>; u-boot@lists.denx.de; Stefano Babic
> > <sbabic@denx.de>; Fabio Estevam <festevam@gmail.com>; Tommaso Merciai
> > <tommaso.merciai@amarulasolutions.com>; Michael Trimarchi
> > <michael@amarulasolutions.com>; Marek Vasut <marex@denx.de>; Simon
> > Glass <sjg@chromium.org>; Patrick Delaunay <patrick.delaunay@foss.st.com>;
> > Stefan Roese <sr@denx.de>; Horia Geanta <horia.geanta@nxp.com>; Pankaj
> > Gupta <pankaj.gupta@nxp.com>; Varun Sethi <V.Sethi@nxp.com>; Ye Li
> > <ye.li@nxp.com>; Michael Walle <michael@walle.cc>
> > Cc: dl-uboot-imx <uboot-imx@nxp.com>
> > Subject: [EXT] RE: [PATCH] i.MX8M: crypto: disable JR0 in SPL, U-Boot
> >
> > Caution: EXT Email
> >
> > Hello Gaurav,
> >
> > Cc: Michael Walle here.
> >
> > I guess this is a re-incarnation of the previous discussions we had regarding
> the
> > JR reservation, see [1].
> >
> > > -----Original Message-----
> > > From: Gaurav Jain <gaurav.jain@nxp.com>
> > > Sent: Wednesday, June 8, 2022 3:34 PM
> > > To: u-boot@lists.denx.de; Stefano Babic <sbabic@denx.de>; Fabio
> > > Estevam <festevam@gmail.com>; Tommaso Merciai
> > > <tommaso.merciai@amarulasolutions.com>;
> > > ZHIZHIKIN Andrey <andrey.zhizhikin@leica-geosystems.com>; Michael
> > > Trimarchi <michael@amarulasolutions.com>; Marek Vasut <marex@denx.de>;
> > > Simon Glass <sjg@chromium.org>; Patrick Delaunay
> > > <patrick.delaunay@foss.st.com>; Stefan Roese <sr@denx.de>; Horia
> > > Geanta <horia.geanta@nxp.com>; Pankaj Gupta <pankaj.gupta@nxp.com>;
> > > Varun Sethi <V.Sethi@nxp.com>; Ye Li <ye.li@nxp.com>
> > > Cc: NXP i . MX U-Boot Team <uboot-imx@nxp.com>; Gaurav Jain
> > > <gaurav.jain@nxp.com>
> > > Subject: [PATCH] i.MX8M: crypto: disable JR0 in SPL, U-Boot
> > >
> > > disabled use of JR0 in SPL and uboot, as JR0 is reserved for HAB in
> > > TF-A.
> > >
> > > Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
> > > ---
> > >  arch/arm/dts/imx8mm-evk-u-boot.dtsi        |  1 +
> > >  arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi   |  1 +
> > >  arch/arm/dts/imx8mp-evk-u-boot.dtsi        |  1 +
> > >  arch/arm/dts/imx8mq-evk-u-boot.dtsi        |  4 ++++
> >
> > Shall those DTB changes be sync'd with Kernel?
> >
> > Now that the JR0 reservation is done in both upstream and downstream TF-A -
> > Kernel would fail to initialize the JR0.
> >
> > This is what Fabio just noted and posted as a comment. :-)
> >
> > I suggest that this is submitted into Kernel, and then picked up during the
> next
> > DTB re-sync.
> 
> Ok. Fabio has already submitted a patch for this.

Great! Then I think DTB part will not be required in this patch.

> >
> > >  arch/arm/include/asm/arch-imx8m/imx-regs.h |  1 +
> > >  drivers/crypto/fsl/jr.c                    | 14 +++++++++++---
> > >  scripts/config_whitelist.txt               |  1 +
> > >  7 files changed, 20 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > > b/arch/arm/dts/imx8mm-evk-u- boot.dtsi index e9fbf7b802..8cd37b5205
> > > 100644
> > > --- a/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > > +++ b/arch/arm/dts/imx8mm-evk-u-boot.dtsi
> > > @@ -74,6 +74,7 @@
> > >
> > >  &sec_jr0 {
> > >         u-boot,dm-spl;
> > > +       status = "disabled";
> > >  };
> > >
> > >  &sec_jr1 {
> > > diff --git a/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > > b/arch/arm/dts/imx8mn-ddr4- evk-u-boot.dtsi index
> > > 4d0ecb07d4..0c31f2737a 100644
> > > --- a/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > > +++ b/arch/arm/dts/imx8mn-ddr4-evk-u-boot.dtsi
> > > @@ -114,6 +114,7 @@
> > >
> > >  &sec_jr0 {
> > >         u-boot,dm-spl;
> > > +       status = "disabled";
> > >  };
> > >
> > >  &sec_jr1 {
> > > diff --git a/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > > b/arch/arm/dts/imx8mp-evk-u- boot.dtsi index f43eb6238d..28dce55fb9
> > > 100644
> > > --- a/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > > +++ b/arch/arm/dts/imx8mp-evk-u-boot.dtsi
> > > @@ -77,6 +77,7 @@
> > >
> > >  &sec_jr0 {
> > >         u-boot,dm-spl;
> > > +       status = "disabled";
> > >  };
> > >
> > >  &sec_jr1 {
> > > diff --git a/arch/arm/dts/imx8mq-evk-u-boot.dtsi
> > > b/arch/arm/dts/imx8mq-evk-u- boot.dtsi index 67da69a2eb..37364eb6b4
> > > 100644
> > > --- a/arch/arm/dts/imx8mq-evk-u-boot.dtsi
> > > +++ b/arch/arm/dts/imx8mq-evk-u-boot.dtsi
> > > @@ -18,3 +18,7 @@
> > >  &uart1 {
> > >         u-boot,dm-spl;
> > >  };
> > > +
> > > +&sec_jr0 {
> > > +       status = "disabled";
> > > +};
> > > diff --git a/arch/arm/include/asm/arch-imx8m/imx-regs.h
> > > b/arch/arm/include/asm/arch-imx8m/imx-regs.h
> > > index 1da75528d4..e6e2974df3 100644
> > > --- a/arch/arm/include/asm/arch-imx8m/imx-regs.h
> > > +++ b/arch/arm/include/asm/arch-imx8m/imx-regs.h
> > > @@ -89,6 +89,7 @@
> > >  #define CONFIG_SYS_FSL_SEC_ADDR         (CAAM_IPS_BASE_ADDR + \
> > >                                          CONFIG_SYS_FSL_SEC_OFFSET)
> > >  #define CONFIG_SYS_FSL_JR0_OFFSET       (0x1000)
> > > +#define CONFIG_SYS_FSL_JR1_OFFSET      (0x2000)

This shall be converted to config option, as each SoC family defines this
now differently.

Ideally, only JR ID shall be provided by config option, ADDR and OFFSET
can then be deducted based on the index.

> > >  #define CONFIG_SYS_FSL_JR0_ADDR         (CONFIG_SYS_FSL_SEC_ADDR + \
> > >                                          CONFIG_SYS_FSL_JR0_OFFSET)
> > >  #define CONFIG_SYS_FSL_MAX_NUM_OF_SEC   1
> > > diff --git a/drivers/crypto/fsl/jr.c b/drivers/crypto/fsl/jr.c index
> > > acd29924f7..66dd9cf365 100644
> > > --- a/drivers/crypto/fsl/jr.c
> > > +++ b/drivers/crypto/fsl/jr.c
> > > @@ -44,9 +44,17 @@ struct udevice *caam_dev;  #define SEC_ADDR(idx)  \
> > >         (ulong)((CONFIG_SYS_FSL_SEC_ADDR + sec_offset[idx]))
> > >
> > > -#define SEC_JR0_ADDR(idx)      \
> > > +#ifndef CONFIG_IMX8M
> > > +#define SEC_JR_ADDR(idx)       \
> > >         (ulong)(SEC_ADDR(idx) + \
> > >          (CONFIG_SYS_FSL_JR0_OFFSET - CONFIG_SYS_FSL_SEC_OFFSET))
> > > +#define JR_ID 0
> > > +#else
> > > +#define SEC_JR_ADDR(idx)       \
> > > +       (ulong)(SEC_ADDR(idx) + \
> > > +       (CONFIG_SYS_FSL_JR1_OFFSET - CONFIG_SYS_FSL_SEC_OFFSET))
> > > +#define JR_ID 1 #endif
> >

Once config option is introduced, it can be used here instead of macro.
Reserved JR ID can be used to deduct both ADDR and OFFSET parameters.
Then this re-use would not be necessary.

> > I believe this whole macro can be simplified, isn't it?
> 
> I reused the old macro to define for JR1.
> How you want to simplify?

See suggestions above.

> 
> Regards
> Gaurav Jain
> >
> > >  struct caam_regs caam_st;
> > >  #endif
> > >
> > > @@ -685,8 +693,8 @@ int sec_init_idx(uint8_t sec_idx)
> > >         caam = dev_get_priv(caam_dev);  #else
> > >         caam_st.sec = (void *)SEC_ADDR(sec_idx);
> > > -       caam_st.regs = (struct jr_regs *)SEC_JR0_ADDR(sec_idx);
> > > -       caam_st.jrid = 0;
> > > +       caam_st.regs = (struct jr_regs *)SEC_JR_ADDR(sec_idx);
> > > +       caam_st.jrid = JR_ID;
> > >         caam = &caam_st;
> > >  #endif
> > >  #if CONFIG_IS_ENABLED(OF_CONTROL)
> > > diff --git a/scripts/config_whitelist.txt
> > > b/scripts/config_whitelist.txt index cecdda6781..b99aeacbc4 100644
> > > --- a/scripts/config_whitelist.txt
> > > +++ b/scripts/config_whitelist.txt
> > > @@ -1040,6 +1040,7 @@ CONFIG_SYS_FSL_IFC_LE
> > CONFIG_SYS_FSL_ISBC_VER
> > > CONFIG_SYS_FSL_JR0_ADDR  CONFIG_SYS_FSL_JR0_OFFSET
> > > +CONFIG_SYS_FSL_JR1_OFFSET

This will not be necessary, and shall rather be replaced by JR ID config option.

> > >  CONFIG_SYS_FSL_LS1_CLK_ADDR
> > >  CONFIG_SYS_FSL_LSCH3_SERDES_ADDR
> > >  CONFIG_SYS_FSL_MAX_NUM_OF_SEC
> > > --
> > > 2.25.1
> >
> >
> > Link: [1]:
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flore.kern
> > el.org%2Fu-
> > boot%2FVI1PR04MB53426E0295D8E2508BA01302E7089%40VI1PR04MB5342.e
> > urprd04.prod.outlook.com%2F&amp;data=05%7C01%7Cgaurav.jain%40nxp.co
> > m%7Cc387babc3fed40edb32f08da495fa3f4%7C686ea1d3bc2b4c6fa92cd99c5c3
> > 01635%7C0%7C0%7C637902972380396116%7CUnknown%7CTWFpbGZsb3d8ey
> > JWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C
> > 3000%7C%7C%7C&amp;sdata=WETAijFtyFGHnrimKkeT4jICk0OQSXfMbRb8vWsK
> > Mp0%3D&amp;reserved=0
> > -- andrey

-- andrey

  reply	other threads:[~2022-06-09 17:29 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-08 13:34 [PATCH] i.MX8M: crypto: disable JR0 in SPL, U-Boot Gaurav Jain
2022-06-08 13:56 ` Fabio Estevam
2022-06-08 14:52   ` Fabio Estevam
2022-06-08 15:00 ` ZHIZHIKIN Andrey
2022-06-08 17:05   ` Fabio Estevam
2022-06-09 13:12   ` [EXT] " Gaurav Jain
2022-06-09 17:29     ` ZHIZHIKIN Andrey [this message]
2022-06-09 20:06     ` Fabio Estevam
2022-06-10 11:51       ` Gaurav Jain
2022-06-10 12:04         ` Fabio Estevam

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AM6PR06MB4691D1EA628FFD96170CC390A6A79@AM6PR06MB4691.eurprd06.prod.outlook.com \
    --to=andrey.zhizhikin@leica-geosystems.com \
    --cc=V.Sethi@nxp.com \
    --cc=festevam@gmail.com \
    --cc=gaurav.jain@nxp.com \
    --cc=horia.geanta@nxp.com \
    --cc=marex@denx.de \
    --cc=michael@amarulasolutions.com \
    --cc=michael@walle.cc \
    --cc=pankaj.gupta@nxp.com \
    --cc=patrick.delaunay@foss.st.com \
    --cc=sbabic@denx.de \
    --cc=sjg@chromium.org \
    --cc=sr@denx.de \
    --cc=tommaso.merciai@amarulasolutions.com \
    --cc=u-boot@lists.denx.de \
    --cc=uboot-imx@nxp.com \
    --cc=ye.li@nxp.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.