diff mbox series

[U-Boot,5/5] pico-imx7d: Add bl33 config

Message ID 1553592073-20154-6-git-send-email-jun.nie@linaro.org
State Superseded
Delegated to: Stefano Babic
Headers show
Series pico-imx7d: Add support for BL33 case | expand

Commit Message

Jun Nie March 26, 2019, 9:21 a.m. UTC
Add default configuration to run u-boot as BL33 in the boot flow case
of ATF(ARM Trusted Firmware) -> OPTEE -> U-boot.

Signed-off-by: Jun Nie <jun.nie@linaro.org>
---
 board/technexion/pico-imx7d/imximage-512MB.cfg | 95 ++++++++++++++++++++++++++
 configs/pico-pi-imx7d_bl33_defconfig           | 61 +++++++++++++++++
 2 files changed, 156 insertions(+)
 create mode 100644 board/technexion/pico-imx7d/imximage-512MB.cfg
 create mode 100644 configs/pico-pi-imx7d_bl33_defconfig

Comments

Otavio Salvador March 26, 2019, 12:23 p.m. UTC | #1
On Tue, Mar 26, 2019 at 6:23 AM Jun Nie <jun.nie@linaro.org> wrote:
>
> Add default configuration to run u-boot as BL33 in the boot flow case
> of ATF(ARM Trusted Firmware) -> OPTEE -> U-boot.
>
> Signed-off-by: Jun Nie <jun.nie@linaro.org>

Please base it on pico-imx7d_defconfig so user is asked for the base
board to use and it provides more flexibility to test.
Jun Nie March 26, 2019, 3:11 p.m. UTC | #2
Otavio Salvador <otavio.salvador@ossystems.com.br> 于2019年3月26日周二 下午8:23写道:
>
> On Tue, Mar 26, 2019 at 6:23 AM Jun Nie <jun.nie@linaro.org> wrote:
> >
> > Add default configuration to run u-boot as BL33 in the boot flow case
> > of ATF(ARM Trusted Firmware) -> OPTEE -> U-boot.
> >
> > Signed-off-by: Jun Nie <jun.nie@linaro.org>
>
> Please base it on pico-imx7d_defconfig so user is asked for the base
> board to use and it provides more flexibility to test.

Thanks for pointing out this part. I should remove CONFIG_DEFAULT_FDT_FILE
actually. Because environment variable fdt_file does not impact what
fdt to use for
booting OS. The dtb file is specified by the argument of FIT
configuration feed to
bootm command in verified boot case with using FIT, such as
"bootm 0x83200000#conf@imx7d-pico.dtb"

>
> --
> Otavio Salvador                             O.S. Systems
> http://www.ossystems.com.br        http://code.ossystems.com.br
> Mobile: +55 (53) 9 9981-7854          Mobile: +1 (347) 903-9750
Jun Nie March 27, 2019, 4:05 a.m. UTC | #3
Otavio Salvador <otavio.salvador@ossystems.com.br> 于2019年3月26日周二 下午8:23写道:
>
> On Tue, Mar 26, 2019 at 6:23 AM Jun Nie <jun.nie@linaro.org> wrote:
> >
> > Add default configuration to run u-boot as BL33 in the boot flow case
> > of ATF(ARM Trusted Firmware) -> OPTEE -> U-boot.
> >
> > Signed-off-by: Jun Nie <jun.nie@linaro.org>
>
> Please base it on pico-imx7d_defconfig so user is asked for the base
> board to use and it provides more flexibility to test.

Or I misunderstand you and you suggest file name pico-imx7d_bl33_defconfig ?

Jun
>
> --
> Otavio Salvador                             O.S. Systems
> http://www.ossystems.com.br        http://code.ossystems.com.br
> Mobile: +55 (53) 9 9981-7854          Mobile: +1 (347) 903-9750
Otavio Salvador March 27, 2019, 11:43 a.m. UTC | #4
On Wed, Mar 27, 2019 at 1:06 AM Jun Nie <jun.nie@linaro.org> wrote:
> Otavio Salvador <otavio.salvador@ossystems.com.br> 于2019年3月26日周二 下午8:23写道:
> >
> > On Tue, Mar 26, 2019 at 6:23 AM Jun Nie <jun.nie@linaro.org> wrote:
> > >
> > > Add default configuration to run u-boot as BL33 in the boot flow case
> > > of ATF(ARM Trusted Firmware) -> OPTEE -> U-boot.
> > >
> > > Signed-off-by: Jun Nie <jun.nie@linaro.org>
> >
> > Please base it on pico-imx7d_defconfig so user is asked for the base
> > board to use and it provides more flexibility to test.
>
> Or I misunderstand you and you suggest file name pico-imx7d_bl33_defconfig ?

Yes and let user choose which dtb to use.
Fabio Estevam March 27, 2019, 11:52 a.m. UTC | #5
Hi Jun,

On Tue, Mar 26, 2019 at 6:21 AM Jun Nie <jun.nie@linaro.org> wrote:
>
> Add default configuration to run u-boot as BL33 in the boot flow case
> of ATF(ARM Trusted Firmware) -> OPTEE -> U-boot.
>
> Signed-off-by: Jun Nie <jun.nie@linaro.org>
> ---
>  board/technexion/pico-imx7d/imximage-512MB.cfg | 95 ++++++++++++++++++++++++++

This looks like a step in the wrong direction.

We have SPL support that can handle both 512MB and 1GB variants.

Why do we need to to go back to DCD table?
Jun Nie March 27, 2019, 11:59 a.m. UTC | #6
Fabio Estevam <festevam@gmail.com> 于2019年3月27日周三 下午7:52写道:
>
> Hi Jun,
>
> On Tue, Mar 26, 2019 at 6:21 AM Jun Nie <jun.nie@linaro.org> wrote:
> >
> > Add default configuration to run u-boot as BL33 in the boot flow case
> > of ATF(ARM Trusted Firmware) -> OPTEE -> U-boot.
> >
> > Signed-off-by: Jun Nie <jun.nie@linaro.org>
> > ---
> >  board/technexion/pico-imx7d/imximage-512MB.cfg | 95 ++++++++++++++++++++++++++
>
> This looks like a step in the wrong direction.
>
> We have SPL support that can handle both 512MB and 1GB variants.
>
> Why do we need to to go back to DCD table?

For ATF -> OPTEE -> U-BOOT case, we cannot run SPL.
Otavio Salvador March 27, 2019, 12:01 p.m. UTC | #7
On Wed, Mar 27, 2019 at 8:59 AM Jun Nie <jun.nie@linaro.org> wrote:
>
> Fabio Estevam <festevam@gmail.com> 于2019年3月27日周三 下午7:52写道:
> >
> > Hi Jun,
> >
> > On Tue, Mar 26, 2019 at 6:21 AM Jun Nie <jun.nie@linaro.org> wrote:
> > >
> > > Add default configuration to run u-boot as BL33 in the boot flow case
> > > of ATF(ARM Trusted Firmware) -> OPTEE -> U-boot.
> > >
> > > Signed-off-by: Jun Nie <jun.nie@linaro.org>
> > > ---
> > >  board/technexion/pico-imx7d/imximage-512MB.cfg | 95 ++++++++++++++++++++++++++
> >
> > This looks like a step in the wrong direction.
> >
> > We have SPL support that can handle both 512MB and 1GB variants.
> >
> > Why do we need to to go back to DCD table?
>
> For ATF -> OPTEE -> U-BOOT case, we cannot run SPL.

Why? the SPL might need to be changed but it should be doable.
Fabio Estevam March 27, 2019, 12:02 p.m. UTC | #8
On Wed, Mar 27, 2019 at 8:59 AM Jun Nie <jun.nie@linaro.org> wrote:

> For ATF -> OPTEE -> U-BOOT case, we cannot run SPL.

Why not? Please provide the details.

What about users that has the 1GB version of the board?
Jun Nie March 27, 2019, 2:17 p.m. UTC | #9
Fabio Estevam <festevam@gmail.com> 于2019年3月27日周三 下午8:03写道:
>
> On Wed, Mar 27, 2019 at 8:59 AM Jun Nie <jun.nie@linaro.org> wrote:
>
> > For ATF -> OPTEE -> U-BOOT case, we cannot run SPL.
>
> Why not? Please provide the details.
>
> What about users that has the 1GB version of the board?

I should say that SPL is not needed, not cannot run. u-boot is loaded
and run by ATF/OPTEE, so we do not need SPL. This is an initial
prototype of verified boot chain from ATF to Linux on ARM32. Only
512MB version is considered at this stage. Maybe we can add 1GB
version later if it is needed.
Fabio Estevam March 27, 2019, 2:57 p.m. UTC | #10
On Wed, Mar 27, 2019 at 11:18 AM Jun Nie <jun.nie@linaro.org> wrote:

> I should say that SPL is not needed, not cannot run. u-boot is loaded
> and run by ATF/OPTEE, so we do not need SPL. This is an initial
> prototype of verified boot chain from ATF to Linux on ARM32. Only
> 512MB version is considered at this stage. Maybe we can add 1GB
> version later if it is needed.

Sorry, but we cannot accept adding non-SPL code as this impacts maintenance.

Please add OPTEE support with the existing SPL infrastructure.

Thanks
Jun Nie March 27, 2019, 3:04 p.m. UTC | #11
Fabio Estevam <festevam@gmail.com> 于2019年3月27日周三 下午10:57写道:
>
> On Wed, Mar 27, 2019 at 11:18 AM Jun Nie <jun.nie@linaro.org> wrote:
>
> > I should say that SPL is not needed, not cannot run. u-boot is loaded
> > and run by ATF/OPTEE, so we do not need SPL. This is an initial
> > prototype of verified boot chain from ATF to Linux on ARM32. Only
> > 512MB version is considered at this stage. Maybe we can add 1GB
> > version later if it is needed.
>
> Sorry, but we cannot accept adding non-SPL code as this impacts maintenance.
>
> Please add OPTEE support with the existing SPL infrastructure.
>
> Thanks

The DCD file is only used by BL33 defconfig and is not coupled with
any other code.
Or you are suggesting to use ATF -> OPTEE -> SPL -> u-boot flow? SPL
is unnecessary
in this case. Could you elaborate more on maintenance impact? Thanks!
Otavio Salvador March 27, 2019, 3:05 p.m. UTC | #12
On Wed, Mar 27, 2019 at 11:57 AM Fabio Estevam <festevam@gmail.com> wrote:
>
> On Wed, Mar 27, 2019 at 11:18 AM Jun Nie <jun.nie@linaro.org> wrote:
>
> > I should say that SPL is not needed, not cannot run. u-boot is loaded
> > and run by ATF/OPTEE, so we do not need SPL. This is an initial
> > prototype of verified boot chain from ATF to Linux on ARM32. Only
> > 512MB version is considered at this stage. Maybe we can add 1GB
> > version later if it is needed.
>
> Sorry, but we cannot accept adding non-SPL code as this impacts maintenance.
>
> Please add OPTEE support with the existing SPL infrastructure.

Also, I'd say u-boot is not need, for some use cases ... so DDR and
direct OS loading can be done using SPL.
Fabio Estevam March 27, 2019, 4:43 p.m. UTC | #13
On Wed, Mar 27, 2019 at 12:04 PM Jun Nie <jun.nie@linaro.org> wrote:

> The DCD file is only used by BL33 defconfig and is not coupled with
> any other code.

Yes, correct. We don't want to add the DCD file for a single defconfig.

> Or you are suggesting to use ATF -> OPTEE -> SPL -> u-boot flow? SPL
> is unnecessary
> in this case. Could you elaborate more on maintenance impact? Thanks!

Once we add the DCD file in U-Boot then we need to maintain it forever.

Also, if someone wants to use Optee with the 1GB variant another DCD
file will be needed.

This simply does not scale.

pico-mx7d is capable of booting via SPL just fine. It boots 512MB and
1GB versions of the board, so we really don't need DCD for your
specific defconfig.

Again, just use SPL for your usecase.
diff mbox series

Patch

diff --git a/board/technexion/pico-imx7d/imximage-512MB.cfg b/board/technexion/pico-imx7d/imximage-512MB.cfg
new file mode 100644
index 0000000..2b7bbbc
--- /dev/null
+++ b/board/technexion/pico-imx7d/imximage-512MB.cfg
@@ -0,0 +1,95 @@ 
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2019 Arm Ltd.
+ *
+ * The DCD file for Pico-pi with 512MB DRAM memory.
+ * Refer doc/README.imximage for more details about how-to configure
+ * and create imximage boot image.
+ *
+ * The syntax is taken as close as possible with the kwbimage
+ */
+
+#define __ASSEMBLY__
+#include <config.h>
+
+IMAGE_VERSION	2
+#ifdef CONFIG_SECURE_BOOT
+CSF CONFIG_CSF_SIZE
+#endif
+
+BOOT_FROM	sd
+
+/*
+ * Device Configuration Data (DCD)
+ *
+ * Each entry must have the format:
+ * Addr-type           Address        Value
+ *
+ * where:
+ *	Addr-type register length (1,2 or 4 bytes)
+ *	Address	  absolute address of the register
+ *	value	  value to be stored in the register
+ */
+
+DATA 4 0x30340004 0x4F400005
+
+DATA 4 0x30391000 0x00000002
+DATA 4 0x307a0000 0x01040001
+DATA 4 0x307a0064 0x00400046
+DATA 4 0x307a0490 0x00000001
+DATA 4 0x307a00d4 0x00690000
+DATA 4 0x307a00d0 0x00020083
+DATA 4 0x307a00dc 0x09300004
+DATA 4 0x307a00e0 0x04080000
+DATA 4 0x307a00e4 0x00100004
+DATA 4 0x307a00f4 0x0000033f
+DATA 4 0x307a0100 0x09081109
+DATA 4 0x307a0104 0x0007020d
+DATA 4 0x307a0108 0x03040407
+DATA 4 0x307a010c 0x00002006
+DATA 4 0x307a0110 0x04020205
+DATA 4 0x307a0114 0x03030202
+DATA 4 0x307a0120 0x00000803
+
+DATA 4 0x307a0180 0x00800020
+DATA 4 0x307a0190 0x02098204
+DATA 4 0x307a0194 0x00030303
+DATA 4 0x307a01a0 0x80400003
+DATA 4 0x307a01a4 0x00100020
+DATA 4 0x307a01a8 0x80100004
+
+DATA 4 0x307a0200 0x0000001f
+DATA 4 0x307a0204 0x00080808
+DATA 4 0x307a0210 0x00000f0f
+DATA 4 0x307a0214 0x07070707
+DATA 4 0x307a0218 0x0f0f0707
+DATA 4 0x307a0240 0x06000604
+DATA 4 0x307a0244 0x00000001
+
+DATA 4 0x30391000 0x00000000
+DATA 4 0x30790000 0x17420f40
+DATA 4 0x30790004 0x10210100
+DATA 4 0x30790010 0x00060807
+DATA 4 0x307900b0 0x1010007e
+
+DATA 4 0x3079009c 0x00000d6e
+
+DATA 4 0x30790030 0x08080808
+DATA 4 0x30790020 0x08080808
+DATA 4 0x30790050 0x01000010
+DATA 4 0x30790050 0x00000010
+DATA 4 0x30790018 0x0000000f
+DATA 4 0x307900c0 0x0e407304
+DATA 4 0x307900c0 0x0e447304
+DATA 4 0x307900c0 0x0e447306
+DATA 4 0x307900c0 0x0e447304
+
+CHECK_BITS_SET 4 0x307900c4 0x1
+
+DATA 4 0x307900c0 0x0e447304
+
+DATA 4 0x30384130 0x00000000
+DATA 4 0x30340020 0x00000178
+DATA 4 0x30384130 0x00000002
+
+CHECK_BITS_SET 4 0x307a0004 0x1
diff --git a/configs/pico-pi-imx7d_bl33_defconfig b/configs/pico-pi-imx7d_bl33_defconfig
new file mode 100644
index 0000000..7d1ac18
--- /dev/null
+++ b/configs/pico-pi-imx7d_bl33_defconfig
@@ -0,0 +1,61 @@ 
+CONFIG_ARM=y
+CONFIG_ARCH_MX7=y
+CONFIG_SYS_TEXT_BASE=0x87800000
+CONFIG_SPL_GPIO_SUPPORT=y
+CONFIG_SPL_LIBCOMMON_SUPPORT=y
+CONFIG_SPL_LIBGENERIC_SUPPORT=y
+CONFIG_SECURE_BOOT=y
+CONFIG_TARGET_PICO_IMX7D=y
+CONFIG_SPL_MMC_SUPPORT=y
+CONFIG_SPL_SERIAL_SUPPORT=y
+CONFIG_SPL=y
+CONFIG_ARMV7_BOOT_SEC_DEFAULT=y
+CONFIG_FIT=y
+CONFIG_FIT_SIGNATURE=y
+CONFIG_FIT_VERBOSE=y
+CONFIG_SYS_EXTRA_OPTIONS="IMX_CONFIG=board/technexion/pico-imx7d/imximage-512MB.cfg"
+CONFIG_DEFAULT_FDT_FILE="imx7d-pico-pi.dtb"
+CONFIG_BOUNCE_BUFFER=y
+CONFIG_SPL_I2C_SUPPORT=y
+CONFIG_SPL_USB_HOST_SUPPORT=y
+CONFIG_SPL_USB_GADGET=y
+CONFIG_SPL_USB_SDP_SUPPORT=y
+CONFIG_HUSH_PARSER=y
+# CONFIG_CMD_BOOTD is not set
+CONFIG_CMD_BOOTZ=y
+CONFIG_CMD_SPL=y
+CONFIG_CMD_SPL_WRITE_SIZE=0x20000
+CONFIG_CMD_MEMTEST=y
+CONFIG_CMD_DFU=y
+CONFIG_CMD_GPIO=y
+CONFIG_CMD_GPT=y
+CONFIG_CMD_I2C=y
+CONFIG_CMD_MMC=y
+CONFIG_CMD_USB=y
+CONFIG_CMD_USB_SDP=y
+CONFIG_CMD_USB_MASS_STORAGE=y
+CONFIG_CMD_DHCP=y
+CONFIG_CMD_PXE=y
+CONFIG_CMD_CACHE=y
+CONFIG_CMD_FAT=y
+CONFIG_CMD_FS_GENERIC=y
+CONFIG_NET_RANDOM_ETHADDR=y
+CONFIG_DFU_MMC=y
+CONFIG_FSL_ESDHC=y
+CONFIG_PHYLIB=y
+CONFIG_MII=y
+CONFIG_USB=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_MXC_USB_OTG_HACTIVE=y
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_MANUFACTURER="FSL"
+CONFIG_USB_GADGET_VENDOR_NUM=0x0525
+CONFIG_USB_GADGET_PRODUCT_NUM=0xa4a5
+CONFIG_CI_UDC=y
+CONFIG_USB_GADGET_DOWNLOAD=y
+CONFIG_USB_ETHER=y
+CONFIG_USB_ETH_CDC=y
+CONFIG_USBNET_HOST_ADDR="de:ad:be:af:00:00"
+CONFIG_OF_LIBFDT=y
+CONFIG_OF_LIBFDT_OVERLAY=y
+CONFIG_OPTEE_TZDRAM_SIZE=0x2000000