[PATCH v4 3/3] board: toradex: add verdin am62 support
Neha Malcom Francis
n-francis at ti.com
Fri Aug 4 07:33:14 CEST 2023
Hi Marcel
On 29/07/23 02:24, Marcel Ziswiler wrote:
> From: Marcel Ziswiler <marcel.ziswiler at toradex.com>
>
> This adds initial support for the Toradex Verdin AM62 Quad 1GB WB IT
> V1.0A module and subsequent V1.1 launch configuration SKUs. They are
> strapped to boot from their on-module eMMC. U-Boot supports booting
> from the on-module eMMC only, DFU support is disabled for now due to
> missing AM62x USB support.
>
> Boot sequence is:
> SYSFW ---> R5 SPL (both in tiboot3.bin) ---> ATF (TF-A) ---> OP-TEE
> ---> A53 SPL (part of tispl.bin) ---> U-boot proper (u-boot.img)
>
> Signed-off-by: Marcel Ziswiler <marcel.ziswiler at toradex.com>
>
> ---
[...]
> + mbox-names = "rx", "tx", "notify";
> + ti,host-id = <35>;
> + ti,secure-host;
> +};
> diff --git a/arch/arm/dts/k3-am625-verdin-wifi-dev-binman.dtsi b/arch/arm/dts/k3-am625-verdin-wifi-dev-binman.dtsi
> new file mode 100644
> index 00000000000..e8c926f48b9
> --- /dev/null
> +++ b/arch/arm/dts/k3-am625-verdin-wifi-dev-binman.dtsi
> @@ -0,0 +1,570 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Copyright 2023 Toradex
> + */
> +
> +#include "k3-binman.dtsi"
> +
> +&binman {
> + custMpk {
> + filename = "custMpk.pem";
> + blob-ext {
> + filename = "../../ti/keys/custMpk.pem";
> + };
> + };
> +
> + ti-degenerate-key {
> + filename = "ti-degenerate-key.pem";
> + blob-ext {
> + filename = "../../ti/keys/ti-degenerate-key.pem";
> + };
> + };
> +};
> +
> +#ifndef CONFIG_ARM64
> +
> +&binman {
> + board-cfg {
> + filename = "board-cfg.bin";
> + bcfg_yaml: ti-board-config {
> + config = "board-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + };
> + pm-cfg {
> + filename = "pm-cfg.bin";
> + rcfg_yaml: ti-board-config {
> + config = "pm-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + };
> + rm-cfg {
> + filename = "rm-cfg.bin";
> + pcfg_yaml: ti-board-config {
> + config = "rm-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + };
> + sec-cfg {
> + filename = "sec-cfg.bin";
> + scfg_yaml: ti-board-config {
> + config = "sec-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + };
> + combined-tifs-cfg {
> + filename = "combined-tifs-cfg.bin";
> + ti-board-config {
> + bcfg_yaml_tifs: board-cfg {
> + config = "board-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + scfg_yaml_tifs: sec-cfg {
> + config = "sec-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + pcfg_yaml_tifs: pm-cfg {
> + config = "pm-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + rcfg_yaml_tifs: rm-cfg {
> + config = "rm-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + };
> + };
> + combined-dm-cfg {
> + filename = "combined-dm-cfg.bin";
> + ti-board-config {
> + pcfg_yaml_dm: pm-cfg {
> + config = "pm-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + rcfg_yaml_dm: rm-cfg {
> + config = "rm-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + };
> + };
> + combined-sysfw-cfg {
> + filename = "combined-sysfw-cfg.bin";
> + ti-board-config {
> + board-cfg {
> + config = "board-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + sec-cfg {
> + config = "sec-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + pm-cfg {
> + config = "pm-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + rm-cfg {
> + config = "rm-cfg.yaml";
> + schema = "../../ti/common/schema.yaml";
> + };
> + };
> + };
> +};
> +
^ If you are already including k3-binman.dtsi, why are you redefining these?
> +#endif /* CONFIG_ARM64 */
> +
> +#ifdef CONFIG_TARGET_VERDIN_AM62_R5
> +
> +&binman {
> + tiboot3-am62x-hs-verdin.bin {
> + filename = "tiboot3-am62x-hs-verdin.bin";
> + ti-secure-rom {
> + content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
> + <&combined_dm_cfg>, <&sysfw_inner_cert>;
> + combined;
> + dm-data;
> + sysfw-inner-cert;
> + keyfile = "custMpk.pem";
> + sw-rev = <1>;
> + content-sbl = <&u_boot_spl>;
> + content-sysfw = <&ti_fs_enc>;
> + content-sysfw-data = <&combined_tifs_cfg>;
> + content-sysfw-inner-cert = <&sysfw_inner_cert>;
> + content-dm-data = <&combined_dm_cfg>;
If the R5 builds are exactly the same as that generated by k3-am625-binman.dtsi,
would it make sense to include that file and just replace the filenames using
phandles?
> + conf-0 {
> + description = "k3-am625-verdin-wifi-dev";
> + firmware = "uboot";
> + loadables = "uboot";
> + fdt = "fdt-0";
> + };
> + };
> + };
> + };
> +};
> +
> +#endif /* CONFIG_TARGET_VERDIN_AM62_A53 */
> diff --git a/arch/arm/dts/k3-am625-verdin-wifi-dev-u-boot.dtsi b/arch/arm/dts/k3-am625-verdin-wifi-dev-u-boot.dtsi
> new file mode 100644
> index 00000000000..5d564603eb2
> --- /dev/null
> +++ b/arch/arm/dts/k3-am625-verdin-wifi-dev-u-boot.dtsi
> @@ -0,0 +1,201 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
> +/*
> + * Copyright 2023 Toradex
> + */
[...]
> + */
> +
> +#ifndef __VERDIN_AM62_H
> +#define __VERDIN_AM62_H
> +
> +#define RAMDISK_ADDR_R 0x90300000
Nitpick: indentation
> +#define SCRIPTADDR 0x90280000
> +
> +/* DDR Configuration */
> +#define CFG_SYS_SDRAM_BASE 0x80000000
> +#define CFG_SYS_SDRAM_BASE1 0x880000000
> +#define CFG_SYS_SDRAM_SIZE SZ_2G /* Maximum supported size */
> +
> +#define MEM_LAYOUT_ENV_SETTINGS \
> + "fdt_addr_r=0x90200000\0" \
> + "kernel_addr_r=" __stringify(CONFIG_SYS_LOAD_ADDR) "\0" \
> + "kernel_comp_addr_r=0x80200000\0" \
> + "kernel_comp_size=0x08000000\0" \
> + "ramdisk_addr_r=" __stringify(RAMDISK_ADDR_R) "\0" \
> + "scriptaddr=" __stringify(SCRIPTADDR) "\0"
> +
> +#if CONFIG_TARGET_VERDIN_AM62_A53
> +/* Enable Distro Boot */
> +#define BOOT_TARGET_DEVICES(func) \
> + func(MMC, mmc, 1) \
> + func(MMC, mmc, 0) \
> + func(DHCP, dhcp, na)
> +#include <config_distro_bootcmd.h>
> +#else /* CONFIG_TARGET_VERDIN_AM62_A53 */
> +#define BOOTENV \
> + ""
> +#endif /* CONFIG_TARGET_VERDIN_AM62_A53 */
> +
> +/* Incorporate settings into the U-Boot environment */
> +#define CFG_EXTRA_ENV_SETTINGS \
> + BOOTENV \
> + MEM_LAYOUT_ENV_SETTINGS \
> + "boot_scripts=boot.scr\0" \
> + "boot_script_dhcp=boot.scr\0" \
> + "console=ttyS2\0" \
> + "fdt_board=dev\0" \
> + "setup=setenv setupargs console=tty1 console=${console},${baudrate} " \
> + "consoleblank=0 earlycon=ns16550a,mmio32,0x02800000\0" \
> + "update_uboot=askenv confirm Did you load flash.bin (y/N)?; " \
> + "if test \"$confirm\" = \"y\"; then " \
> + "setexpr blkcnt ${filesize} + 0x1ff && setexpr blkcnt " \
> + "${blkcnt} / 0x200; mmc dev 0 1; mmc write ${loadaddr} 0x0 " \
> + "${blkcnt}; fi\0"
> +
> +#endif /* __VERDIN_AM62_H */
--
Thanking You
Neha Malcom Francis
More information about the U-Boot
mailing list