From patchwork Fri Oct 8 00:28:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marcel Ziswiler X-Patchwork-Id: 1538083 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4HQTc55gqJz9sR4 for ; Fri, 8 Oct 2021 11:30:13 +1100 (AEDT) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 118DA83586; Fri, 8 Oct 2021 02:29:44 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ziswiler.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Received: by phobos.denx.de (Postfix, from userid 109) id C49D983569; Fri, 8 Oct 2021 02:29:00 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,SPF_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from mout.perfora.net (mout.perfora.net [74.208.4.194]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 24F4E833C1 for ; Fri, 8 Oct 2021 02:28:41 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=none (p=none dis=none) header.from=ziswiler.com Authentication-Results: phobos.denx.de; spf=none smtp.mailfrom=marcel@ziswiler.com Received: from toolbox.toradex.int ([66.171.181.186]) by mrelay.perfora.net (mreueus002 [74.208.5.2]) with ESMTPSA (Nemesis) id 0LqBLK-1n3Hbf07lI-00dlNE; Fri, 08 Oct 2021 02:28:27 +0200 From: Marcel Ziswiler To: u-boot@lists.denx.de Cc: Fabio Estevam , Stefano Babic , Heiko Thiery , Frieder Schrempf , Marcel Ziswiler , Heiko Schocher , Igor Opaniuk , Ilko Iliev , Jaehoon Chung , Jagan Teki , Marek Vasut , Max Krummenacher , "NXP i.MX U-Boot Team" , Peng Fan , Simon Glass , Teresa Remmet Subject: [PATCH v5 04/10] verdin-imx8mm: switch to use binman to pack images Date: Fri, 8 Oct 2021 02:28:09 +0200 Message-Id: <20211008002815.870313-5-marcel@ziswiler.com> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20211008002815.870313-1-marcel@ziswiler.com> References: <20211008002815.870313-1-marcel@ziswiler.com> MIME-Version: 1.0 X-Provags-ID: V03:K1:yWaFS3DRX56B4N5MY8Vq1Va8lRjlMEQlkl0Iywlutr+p5h1M5n8 z/MKWyatBArCAajEKuuo5cHtUxQl1v2WeR1DA1r57pAH7qCUcfHkZovmQagOYX1q6zaQ7Nu pyMbQ7CdyDLdKmIY1V4nyipWAXCt6kIvi1MpxAWCzAk/XZAYpgaA/Jl4A0i98UNeb4W7ot/ mveJMS44qtJSgOXbIES1A== X-UI-Out-Filterresults: notjunk:1;V03:K0:6eoKXle1Utw=:PtJC61e10QXAMucHgjqPib ZCjAjNTVoYjX+Th/ms3hUzq+0Bn277oiy00ThK9WTnsTKAp7ypcEVtzoitJ8JCNGw3ngoVQPJ YZSU1Nt3I/jthSMb8NEZVzxjZJaal+2gZAV/vPXaIBeMnyviXSPiCOGx00mNvmkUMtG//9nnG Ebsi+YLY5j4ysvFa0j0jLxlnM5XW1K8xWSTpSvttzZQPeMIGNpa041ac15tg8pjrTC0Kcq6mc zm3UC9YvpAyJZ+eqdoq3QqiRvmIl0LtY+ChwFsbQVsb1lvvZuKPdLyojFigbZgPBj/gy8eSwM a1kMb3gK9qeOOeu/RYpO/Yvuq/+p8Sc55ZcAQW8Sctesflxy1GFcNtFxw+ozBNJefrRXjIsXg C06ewRH0+0S0u5F6cLn56OJ2wrWK410XxINKGnU73L2MWL5RvsEXv+F7EdsUOyG3hFhybjCH5 5SfmfNKNzfavk2ZY1mHqsn8TWqrOqvX6Pn+rF07xroLh7QAIRqnwQ7JHVXCkq/IIZbemUCzsa /SaiVAWQI5bAP9m0/TqtgyixsqH2FTnKzCCSTtguDFnRmOegkGvjfHm2ZfagXrKr6WyGcY/q8 SHecbXMOLEZpMQFksTinjzuwo17B80aO5PP/ODV8RnnLo3Ek6f0oSs63kdt1J2y9khJg+ohIc cktd8Ysx1g8q08Azdbnb4Qr99FgBJUVcMl4XlAduNOBcAD2L87tg350NAn02RiXL9QErlTadX sIaJMPsUJFMaYQ6GJRmNVb2PvVHIPQ+HLwWYtA== X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean From: Marcel Ziswiler Use binman to pack images. Signed-off-by: Marcel Ziswiler Reviewed-by: Heiko Thiery Reviewed-by: Fabio Estevam Reviewed-by: Heiko Schocher --- (no changes since v4) Changes in v4: - Add Heiko Schocher's reviewed-by tag. - Fix copyright periods. Changes in v3: - Case fold hex string. - Revert binman part of imx8mm-verdin-u-boot.dtsi to a plain copy from imx8mm-evk and postpone further improvements to after migrating to a common binman config as agreed with Frieder and Simon. Changes in v2: - Explicitly pass filename to binman when generating binaries as suggested by Heiko. - Use proper intermediate binary u-boot-spl-ddr.bin for imximage as pointed out by Heiko. arch/arm/dts/imx8mm-verdin-u-boot.dtsi | 124 ++++++++++++++++++++++- arch/arm/mach-imx/imx8m/Kconfig | 1 + board/toradex/verdin-imx8mm/imximage.cfg | 11 +- configs/verdin-imx8mm_defconfig | 2 +- doc/board/toradex/verdin-imx8mm.rst | 53 +++++----- 5 files changed, 157 insertions(+), 34 deletions(-) diff --git a/arch/arm/dts/imx8mm-verdin-u-boot.dtsi b/arch/arm/dts/imx8mm-verdin-u-boot.dtsi index a97626fa0c1..0c65070cd5f 100644 --- a/arch/arm/dts/imx8mm-verdin-u-boot.dtsi +++ b/arch/arm/dts/imx8mm-verdin-u-boot.dtsi @@ -1,11 +1,15 @@ // SPDX-License-Identifier: GPL-2.0+ OR MIT /* - * Copyright 2020 Toradex + * Copyright 2020-2021 Toradex */ #include "imx8mm-u-boot.dtsi" / { + binman: binman { + multiple-images; + }; + firmware { optee { compatible = "linaro,optee-tz"; @@ -91,3 +95,121 @@ &wdog1 { u-boot,dm-spl; }; + +&binman { + u-boot-spl-ddr { + filename = "u-boot-spl-ddr.bin"; + pad-byte = <0xff>; + align-size = <4>; + align = <4>; + + u-boot-spl { + align-end = <4>; + }; + + blob_1: blob-ext@1 { + filename = "lpddr4_pmu_train_1d_imem.bin"; + size = <0x8000>; + }; + + blob_2: blob-ext@2 { + filename = "lpddr4_pmu_train_1d_dmem.bin"; + size = <0x4000>; + }; + + blob_3: blob-ext@3 { + filename = "lpddr4_pmu_train_2d_imem.bin"; + size = <0x8000>; + }; + + blob_4: blob-ext@4 { + filename = "lpddr4_pmu_train_2d_dmem.bin"; + size = <0x4000>; + }; + }; + + spl { + filename = "spl.bin"; + + mkimage { + args = "-n spl/u-boot-spl.cfgout -T imx8mimage -e 0x7e1000"; + + blob { + filename = "u-boot-spl-ddr.bin"; + }; + }; + }; + + itb { + filename = "u-boot.itb"; + + fit { + description = "Configuration to load ATF before U-Boot"; + #address-cells = <1>; + fit,external-offset = ; + + images { + uboot { + description = "U-Boot (64-bit)"; + type = "standalone"; + arch = "arm64"; + compression = "none"; + load = ; + + uboot_blob: blob-ext { + filename = "u-boot-nodtb.bin"; + }; + }; + + atf { + description = "ARM Trusted Firmware"; + type = "firmware"; + arch = "arm64"; + compression = "none"; + load = <0x920000>; + entry = <0x920000>; + + atf_blob: blob-ext { + filename = "bl31.bin"; + }; + }; + + fdt { + description = "NAME"; + type = "flat_dt"; + compression = "none"; + + uboot_fdt_blob: blob-ext { + filename = "u-boot.dtb"; + }; + }; + }; + + configurations { + default = "conf"; + + conf { + description = "NAME"; + firmware = "uboot"; + loadables = "atf"; + fdt = "fdt"; + }; + }; + }; + }; + + imx-boot { + filename = "flash.bin"; + pad-byte = <0x00>; + + spl: blob-ext@1 { + offset = <0x0>; + filename = "spl.bin"; + }; + + uboot: blob-ext@2 { + offset = <0x5fc00>; + filename = "u-boot.itb"; + }; + }; +}; diff --git a/arch/arm/mach-imx/imx8m/Kconfig b/arch/arm/mach-imx/imx8m/Kconfig index 60a29cddda1..73976fa8177 100644 --- a/arch/arm/mach-imx/imx8m/Kconfig +++ b/arch/arm/mach-imx/imx8m/Kconfig @@ -106,6 +106,7 @@ config TARGET_PICO_IMX8MQ config TARGET_VERDIN_IMX8MM bool "Support Toradex Verdin iMX8M Mini module" + select BINMAN select IMX8MM select SUPPORT_SPL select IMX8M_LPDDR4 diff --git a/board/toradex/verdin-imx8mm/imximage.cfg b/board/toradex/verdin-imx8mm/imximage.cfg index b8b25ff4201..fcc92009f3b 100644 --- a/board/toradex/verdin-imx8mm/imximage.cfg +++ b/board/toradex/verdin-imx8mm/imximage.cfg @@ -1,16 +1,9 @@ /* SPDX-License-Identifier: GPL-2.0+ */ /* - * Copyright 2020 Toradex + * Copyright 2020-2021 Toradex */ #define __ASSEMBLY__ -FIT BOOT_FROM emmc_fastboot -LOADER spl/u-boot-spl-ddr.bin 0x7E1000 -SECOND_LOADER u-boot.itb 0x40200000 0x60000 - -DDR_FW lpddr4_pmu_train_1d_imem.bin -DDR_FW lpddr4_pmu_train_1d_dmem.bin -DDR_FW lpddr4_pmu_train_2d_imem.bin -DDR_FW lpddr4_pmu_train_2d_dmem.bin +LOADER u-boot-spl-ddr.bin 0x7e1000 diff --git a/configs/verdin-imx8mm_defconfig b/configs/verdin-imx8mm_defconfig index 98799994cea..1c8b505656a 100644 --- a/configs/verdin-imx8mm_defconfig +++ b/configs/verdin-imx8mm_defconfig @@ -23,7 +23,7 @@ CONFIG_SYS_LOAD_ADDR=0x40480000 CONFIG_FIT=y CONFIG_FIT_EXTERNAL_OFFSET=0x3000 CONFIG_SPL_LOAD_FIT=y -CONFIG_SPL_FIT_GENERATOR="arch/arm/mach-imx/mkimage_fit_atf.sh" +# CONFIG_USE_SPL_FIT_GENERATOR is not set CONFIG_OF_SYSTEM_SETUP=y # CONFIG_USE_BOOTCOMMAND is not set CONFIG_DEFAULT_FDT_FILE="fsl-imx8mm-verdin-dev.dtb" diff --git a/doc/board/toradex/verdin-imx8mm.rst b/doc/board/toradex/verdin-imx8mm.rst index b9f7dc39c96..a11c82da2f5 100644 --- a/doc/board/toradex/verdin-imx8mm.rst +++ b/doc/board/toradex/verdin-imx8mm.rst @@ -34,10 +34,10 @@ Get the DDR Firmware .. code-block:: bash $ cd .. - $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.4.1.bin - $ chmod +x firmware-imx-8.4.1.bin - $ ./firmware-imx-8.4.1.bin - $ cp firmware-imx-8.4.1/firmware/ddr/synopsys/lpddr4*.bin ./ + $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.10.1.bin + $ chmod +x firmware-imx-8.10.1.bin + $ ./firmware-imx-8.10.1.bin + $ cp firmware-imx-8.10.1/firmware/ddr/synopsys/lpddr4*.bin ./ Build U-Boot ------------ @@ -46,7 +46,7 @@ Build U-Boot $ export CROSS_COMPILE=aarch64-linux-gnu- $ export ATF_LOAD_ADDR=0x920000 $ make verdin-imx8mm_defconfig - $ make flash.bin + $ make Flash to eMMC ------------- @@ -78,21 +78,28 @@ Output: .. code-block:: bash - U-Boot SPL 2020.01-00187-gd411d164e5 (Jan 26 2020 - 04:47:26 +0100) - Normal Boot - Trying to boot from MMC1 - - U-Boot 2020.01-00187-gd411d164e5 (Jan 26 2020 - 04:47:26 +0100) - - CPU: Freescale i.MX8MMQ rev1.0 at 0 MHz - Reset cause: POR - DRAM: 2 GiB - MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 - Loading Environment from MMC... OK - In: serial - Out: serial - Err: serial - Model: Toradex Verdin iMX8M Mini Quad 2GB Wi-Fi / BT IT V1.0A, Serial: - Net: eth0: ethernet@30be0000 - Hit any key to stop autoboot: 0 - Verdin iMX8MM # +U-Boot SPL 2021.10-rc2-00028-gee010ba1129 (Aug 23 2021 - 16:56:02 +0200) +Normal Boot +WDT: Started with servicing (60s timeout) +Trying to boot from MMC1 +NOTICE: BL31: v2.2(release):rel_imx_5.4.70_2.3.2_rc1-5-g835a8f67b +NOTICE: BL31: Built : 18:02:12, Aug 16 2021 + + +U-Boot 2021.10-rc2-00028-gee010ba1129 (Aug 23 2021 - 16:56:02 +0200) + +CPU: Freescale i.MX8MMQ rev1.0 at 1200 MHz +Reset cause: POR +DRAM: 2 GiB +WDT: Started with servicing (60s timeout) +MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 +Loading Environment from MMC... OK +In: serial +Out: serial +Err: serial +Model: Toradex Verdin iMX8M Mini Quad 2GB Wi-Fi / BT IT V1.1A, Serial# 06760554 +Carrier: Toradex Verdin Development Board V1.1A, Serial# 10754333 +Setting variant to wifi +Net: eth0: ethernet@30be0000 +Hit any key to stop autoboot: 0 +Verdin iMX8MM #