diff options
| -rw-r--r-- | arch/arm/dts/k3-am642-evm-u-boot.dtsi | 2 | ||||
| -rw-r--r-- | arch/arm/dts/k3-am642-r5-evm.dts | 1 | ||||
| -rw-r--r-- | arch/arm/dts/k3-am642-sk-u-boot.dtsi | 2 | ||||
| -rw-r--r-- | arch/arm/dts/k3-am64x-binman.dtsi | 515 | ||||
| -rw-r--r-- | board/ti/am64x/Kconfig | 2 | 
5 files changed, 522 insertions, 0 deletions
| diff --git a/arch/arm/dts/k3-am642-evm-u-boot.dtsi b/arch/arm/dts/k3-am642-evm-u-boot.dtsi index 64857b09099..73577e8cfd3 100644 --- a/arch/arm/dts/k3-am642-evm-u-boot.dtsi +++ b/arch/arm/dts/k3-am642-evm-u-boot.dtsi @@ -3,6 +3,8 @@   * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/   */ +#include "k3-am64x-binman.dtsi" +  / {  	chosen {  		stdout-path = "serial2:115200n8"; diff --git a/arch/arm/dts/k3-am642-r5-evm.dts b/arch/arm/dts/k3-am642-r5-evm.dts index e870492a690..b49064181a0 100644 --- a/arch/arm/dts/k3-am642-r5-evm.dts +++ b/arch/arm/dts/k3-am642-r5-evm.dts @@ -8,6 +8,7 @@  #include "k3-am642.dtsi"  #include "k3-am64-evm-ddr4-1600MTs.dtsi"  #include "k3-am64-ddr.dtsi" +#include "k3-am64x-binman.dtsi"  / {  	chosen { diff --git a/arch/arm/dts/k3-am642-sk-u-boot.dtsi b/arch/arm/dts/k3-am642-sk-u-boot.dtsi index 69dbe943bdf..3d6be025bd5 100644 --- a/arch/arm/dts/k3-am642-sk-u-boot.dtsi +++ b/arch/arm/dts/k3-am642-sk-u-boot.dtsi @@ -3,6 +3,8 @@   * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/   */ +#include "k3-am64x-binman.dtsi" +  / {  	chosen {  		stdout-path = "serial2:115200n8"; diff --git a/arch/arm/dts/k3-am64x-binman.dtsi b/arch/arm/dts/k3-am64x-binman.dtsi new file mode 100644 index 00000000000..26e17bddf3d --- /dev/null +++ b/arch/arm/dts/k3-am64x-binman.dtsi @@ -0,0 +1,515 @@ +// SPDX-License-Identifier: GPL-2.0+ +// Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/ + +#include "k3-binman.dtsi" + +#ifdef CONFIG_TARGET_AM642_R5_EVM + +&binman { +	tiboot3-am64x_sr2-hs-evm.bin { +		filename = "tiboot3-am64x_sr2-hs-evm.bin"; +		ti-secure-rom { +			content = <&u_boot_spl>, <&ti_sci_enc>, +				<&combined_sysfw_cfg>, <&sysfw_inner_cert>; +			combined; +			sysfw-inner-cert; +			keyfile = "custMpk.pem"; +			sw-rev = <1>; +			content-sbl = <&u_boot_spl>; +			content-sysfw = <&ti_sci_enc>; +			content-sysfw-data = <&combined_sysfw_cfg>; +			content-sysfw-inner-cert = <&sysfw_inner_cert>; +			load = <0x70000000>; +			load-sysfw = <0x44000>; +			load-sysfw-data = <0x7b000>; +		}; +		u_boot_spl: u-boot-spl { +			no-expanded; +		}; +		ti_sci_enc: ti-fs-enc.bin { +			filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-enc.bin"; +			type = "blob-ext"; +			optional; +		}; +		combined_sysfw_cfg: combined-sysfw-cfg.bin { +			filename = "combined-sysfw-cfg.bin"; +			type = "blob-ext"; +		}; +		sysfw_inner_cert: sysfw-inner-cert { +			filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-cert.bin"; +			type = "blob-ext"; +			optional; +		}; + +	}; +}; + +&binman { +	tiboot3-am64x_sr2-hs-fs-evm.bin { +		filename = "tiboot3-am64x_sr2-hs-fs-evm.bin"; +		symlink = "tiboot3.bin"; +		ti-secure-rom { +			content = <&u_boot_spl_fs>, <&ti_sci_enc_fs>, +				<&combined_sysfw_cfg_fs>, <&sysfw_inner_cert_fs>; +			combined; +			sysfw-inner-cert; +			keyfile = "custMpk.pem"; +			sw-rev = <1>; +			content-sbl = <&u_boot_spl_fs>; +			content-sysfw = <&ti_sci_enc_fs>; +			content-sysfw-data = <&combined_sysfw_cfg_fs>; +			content-sysfw-inner-cert = <&sysfw_inner_cert_fs>; +			load = <0x70000000>; +			load-sysfw = <0x44000>; +			load-sysfw-data = <0x7b000>; +		}; +		u_boot_spl_fs: u-boot-spl { +			no-expanded; +		}; +		ti_sci_enc_fs: ti-fs-enc.bin { +			filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-fs-enc.bin"; +			type = "blob-ext"; +			optional; +		}; +		combined_sysfw_cfg_fs: combined-sysfw-cfg.bin { +			filename = "combined-sysfw-cfg.bin"; +			type = "blob-ext"; +		}; +		sysfw_inner_cert_fs: sysfw-inner-cert { +			filename = "ti-sysfw/ti-sci-firmware-am64x_sr2-hs-fs-cert.bin"; +			type = "blob-ext"; +			optional; +		}; + +	}; +}; + +&binman { +	tiboot3-am64x-gp-evm.bin { +		filename = "tiboot3-am64x-gp-evm.bin"; +		ti-secure-rom { +			content = <&u_boot_spl_unsigned>, <&ti_sci_gp>, <&combined_sysfw_cfg_gp>; +			combined; +			content-sbl = <&u_boot_spl_unsigned>; +			load = <0x70000000>; +			content-sysfw = <&ti_sci_gp>; +			load-sysfw = <0x44000>; +			content-sysfw-data = <&combined_sysfw_cfg_gp>; +			load-sysfw-data = <0x7b000>; +			sw-rev = <1>; +			keyfile = "ti-degenerate-key.pem"; +		}; +		u_boot_spl_unsigned: u-boot-spl { +			no-expanded; +		}; +		ti_sci_gp: ti-sci-gp.bin { +			filename = "ti-sysfw/ti-sci-firmware-am64x-gp.bin"; +			type = "blob-ext"; +			optional; +		}; +		combined_sysfw_cfg_gp: combined-sysfw-cfg-gp.bin { +			filename = "combined-sysfw-cfg.bin"; +			type = "blob-ext"; +		}; +	}; +}; + +#endif + +#ifdef CONFIG_TARGET_AM642_A53_EVM + +#define SPL_NODTB "spl/u-boot-spl-nodtb.bin" +#define SPL_AM642_EVM_DTB "spl/dts/k3-am642-evm.dtb" +#define SPL_AM642_SK_DTB "spl/dts/k3-am642-sk.dtb" + +#define UBOOT_NODTB "u-boot-nodtb.bin" +#define AM642_EVM_DTB "arch/arm/dts/k3-am642-evm.dtb" +#define AM642_SK_DTB "arch/arm/dts/k3-am642-sk.dtb" + +&binman { +	ti-spl { +		filename = "tispl.bin"; +		pad-byte = <0xff>; + +		fit { +			description = "Configuration to load ATF and SPL"; +			#address-cells = <1>; + +			images { + +				atf { +					description = "ARM Trusted Firmware"; +					type = "firmware"; +					arch = "arm64"; +					compression = "none"; +					os = "arm-trusted-firmware"; +					load = <CONFIG_K3_ATF_LOAD_ADDR>; +					entry = <CONFIG_K3_ATF_LOAD_ADDR>; +					ti-secure { +						content = <&atf>; +						keyfile = "custMpk.pem"; +					}; +					atf: atf-bl31 { +					}; +				}; + +				tee { +					description = "OP-TEE"; +					type = "tee"; +					arch = "arm64"; +					compression = "none"; +					os = "tee"; +					load = <0x9e800000>; +					entry = <0x9e800000>; +					ti-secure { +						content = <&tee>; +						keyfile = "custMpk.pem"; +					}; +					tee: tee-os { +					}; +				}; + +				dm { +					description = "DM binary"; +					type = "firmware"; +					arch = "arm32"; +					compression = "none"; +					os = "DM"; +					load = <0x89000000>; +					entry = <0x89000000>; +					blob-ext { +						filename = "/dev/null"; +					}; +				}; + +				spl { +					description = "SPL (64-bit)"; +					type = "standalone"; +					os = "U-Boot"; +					arch = "arm64"; +					compression = "none"; +					load = <CONFIG_SPL_TEXT_BASE>; +					entry = <CONFIG_SPL_TEXT_BASE>; +					ti-secure { +						content = <&u_boot_spl_nodtb>; +						keyfile = "custMpk.pem"; + +					}; +					u_boot_spl_nodtb: blob-ext { +						filename = SPL_NODTB; +					}; +				}; + +				fdt-0 { +					description = "k3-am642-evm"; +					type = "flat_dt"; +					arch = "arm"; +					compression = "none"; +					ti-secure { +						content = <&spl_am64x_evm_dtb>; +						keyfile = "custMpk.pem"; +					}; +					spl_am64x_evm_dtb: blob-ext { +						filename = SPL_AM642_EVM_DTB; +					}; + +				}; + +				fdt-1 { +					description = "k3-am642-sk"; +					type = "flat_dt"; +					arch = "arm"; +					compression = "none"; +					ti-secure { +						content = <&spl_am64x_sk_dtb>; +						keyfile = "custMpk.pem"; +					}; +					spl_am64x_sk_dtb: blob-ext { +						filename = SPL_AM642_SK_DTB; +					}; + +				}; +			}; + +			configurations { +				default = "conf-0"; + +				conf-0 { +					description = "k3-am642-evm"; +					firmware = "atf"; +					loadables = "tee", "dm", "spl"; +					fdt = "fdt-0"; +				}; + +				conf-1 { +					description = "k3-am642-sk"; +					firmware = "atf"; +					loadables = "tee", "dm", "spl"; +					fdt = "fdt-1"; +				}; +			}; +		}; +	}; +}; + +&binman { +	u-boot { +		filename = "u-boot.img"; +		pad-byte = <0xff>; + +		fit { +			description = "FIT image with multiple configurations"; + +			images { +				uboot { +					description = "U-Boot for AM64 board"; +					type = "firmware"; +					os = "u-boot"; +					arch = "arm"; +					compression = "none"; +					load = <CONFIG_TEXT_BASE>; +					ti-secure { +						content = <&u_boot_nodtb>; +						keyfile = "custMpk.pem"; +					}; +					u_boot_nodtb: u-boot-nodtb { +					}; +					hash { +						algo = "crc32"; +					}; +				}; + +				fdt-0 { +					description = "k3-am642-evm"; +					type = "flat_dt"; +					arch = "arm"; +					compression = "none"; +					ti-secure { +						content = <&am64x_evm_dtb>; +						keyfile = "custMpk.pem"; + +					}; +					am64x_evm_dtb: blob-ext { +						filename = AM642_EVM_DTB; +					}; +					hash { +						algo = "crc32"; +					}; +				}; + +				fdt-1 { +					description = "k3-am642-sk"; +					type = "flat_dt"; +					arch = "arm"; +					compression = "none"; +					ti-secure { +						content = <&am64x_sk_dtb>; +						keyfile = "custMpk.pem"; + +					}; +					am64x_sk_dtb: blob-ext { +						filename = AM642_SK_DTB; +					}; +					hash { +						algo = "crc32"; +					}; +				}; + +			}; + +			configurations { +				default = "conf-0"; + +				conf-0 { +					description = "k3-am642-evm"; +					firmware = "uboot"; +					loadables = "uboot"; +					fdt = "fdt-0"; +				}; + +				conf-1 { +					description = "k3-am642-sk"; +					firmware = "uboot"; +					loadables = "uboot"; +					fdt = "fdt-1"; +				}; +			}; +		}; +	}; +}; + +&binman { +	ti-spl_unsigned { +		filename = "tispl.bin_unsigned"; +		pad-byte = <0xff>; + +		fit { +			description = "Configuration to load ATF and SPL"; +			#address-cells = <1>; + +			images { + +				atf { +					description = "ARM Trusted Firmware"; +					type = "firmware"; +					arch = "arm64"; +					compression = "none"; +					os = "arm-trusted-firmware"; +					load = <CONFIG_K3_ATF_LOAD_ADDR>; +					entry = <CONFIG_K3_ATF_LOAD_ADDR>; +					atf-bl31 { +					}; +				}; + +				tee { +					description = "OP-TEE"; +					type = "tee"; +					arch = "arm64"; +					compression = "none"; +					os = "tee"; +					load = <0x9e800000>; +					entry = <0x9e800000>; +					tee-os { +					}; +				}; + +				dm { +					description = "DM binary"; +					type = "firmware"; +					arch = "arm32"; +					compression = "none"; +					os = "DM"; +					load = <0x89000000>; +					entry = <0x89000000>; +					blob-ext { +						filename = "/dev/null"; +					}; +				}; + +				spl { +					description = "SPL (64-bit)"; +					type = "standalone"; +					os = "U-Boot"; +					arch = "arm64"; +					compression = "none"; +					load = <CONFIG_SPL_TEXT_BASE>; +					entry = <CONFIG_SPL_TEXT_BASE>; +					blob { +						filename = "spl/u-boot-spl-nodtb.bin"; +					}; +				}; + +				fdt-0 { +					description = "k3-am642-evm"; +					type = "flat_dt"; +					arch = "arm"; +					compression = "none"; +					blob { +						filename = SPL_AM642_EVM_DTB; +					}; +				}; + +				fdt-1 { +					description = "k3-am642-sk"; +					type = "flat_dt"; +					arch = "arm"; +					compression = "none"; +					blob { +						filename = SPL_AM642_SK_DTB; +					}; +				}; +			}; + +			configurations { +				default = "conf-0"; + +				conf-0 { +					description = "k3-am642-evm"; +					firmware = "atf"; +					loadables = "tee", "dm", "spl"; +					fdt = "fdt-0"; +				}; + +				conf-1 { +					description = "k3-am642-sk"; +					firmware = "atf"; +					loadables = "tee", "dm", "spl"; +					fdt = "fdt-1"; +				}; +			}; +		}; +	}; +}; + +&binman { +	u-boot_unsigned { +		filename = "u-boot.img_unsigned"; +		pad-byte = <0xff>; + +		fit { +			description = "FIT image with multiple configurations"; + +			images { +				uboot { +					description = "U-Boot for AM64 board"; +					type = "firmware"; +					os = "u-boot"; +					arch = "arm"; +					compression = "none"; +					load = <CONFIG_TEXT_BASE>; +					blob { +						filename = UBOOT_NODTB; +					}; +					hash { +						algo = "crc32"; +					}; +				}; + +				fdt-0 { +					description = "k3-am642-evm"; +					type = "flat_dt"; +					arch = "arm"; +					compression = "none"; +					blob { +						filename = AM642_EVM_DTB; +					}; +					hash { +						algo = "crc32"; +					}; +				}; + +				fdt-1 { +					description = "k3-am642-sk"; +					type = "flat_dt"; +					arch = "arm"; +					compression = "none"; +					blob { +						filename = AM642_SK_DTB; +					}; +					hash { +						algo = "crc32"; +					}; +				}; +			}; + +			configurations { +				default = "conf-0"; + +				conf-0 { +					description = "k3-am642-evm"; +					firmware = "uboot"; +					loadables = "uboot"; +					fdt = "fdt-0"; +				}; + +				conf-1 { +					description = "k3-am642-sk"; +					firmware = "uboot"; +					loadables = "uboot"; +					fdt = "fdt-1"; +				}; +			}; +		}; +	}; +}; +#endif diff --git a/board/ti/am64x/Kconfig b/board/ti/am64x/Kconfig index afb54f8cdab..fb596e4adfc 100644 --- a/board/ti/am64x/Kconfig +++ b/board/ti/am64x/Kconfig @@ -9,6 +9,7 @@ choice  config TARGET_AM642_A53_EVM  	bool "TI K3 based AM642 EVM running on A53"  	select ARM64 +	select BINMAN  	imply BOARD  	imply SPL_BOARD  	imply TI_I2C_BOARD_DETECT @@ -21,6 +22,7 @@ config TARGET_AM642_R5_EVM  	select RAM  	select SPL_RAM  	select K3_DDRSS +	select BINMAN  	imply SYS_K3_SPL_ATF  	imply TI_I2C_BOARD_DETECT | 
