Merge patch series "Introduce J742S2 SoC and EVM"
Manorit Chawdhry <m-chawdhry@ti.com> says: The series adds support for J742S2 family of SoCs. Also adds J742S2 EVM Support and re-uses most of the stuff from the superset device J784s4. This device is a subset of J784S4 and shares the same memory map and thus the code is being reused from J784S4 to avoid duplication. It initially cleans up the J784s4 and AM69 files so that they can be re-usable for j742s2 and then it introduces J742S2. The DT for the following SoC will be coming to U-boot during 6.13 Sync so the series is kept as RFC till then. Here are some of the salient features of the J742S2 automotive grade application processor: The J742S2 SoC belongs to the K3 Multicore SoC architecture platform, providing advanced system integration in automotive, ADAS and industrial applications requiring AI at the network edge. This SoC extends the K3 Jacinto 7 family of SoCs with focus on raising performance and integration while providing interfaces, memory architecture and compute performance for multi-sensor, high concurrency applications. Some changes that this devices has from J784S4 are: * 4x Cortex-A72 vs 8x Cortex-A72 * 3x C7x DSP vs 4x C7x DSP * 4 port ethernet switch vs 8 port ethernet switch * 2 DDR controller vs 4 DDR controller Test logs: https://gist.github.com/manorit2001/f7df0e8cca1e9973b4361f0559c6f53d Link: https://lore.kernel.org/r/20250317-b4-upstream-j742s2-v4-0-4ba88bfd357a@ti.com
This commit is contained in:
@@ -1,10 +1,109 @@
|
|||||||
// SPDX-License-Identifier: GPL-2.0-only
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
|
* Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define SPL_BOARD_DTB "spl/dts/ti/k3-am69-sk.dtb"
|
||||||
|
#define BOARD_DESCRIPTION "k3-am69-sk"
|
||||||
|
#define UBOOT_BOARD_DESCRIPTION "U-Boot for AM69 board"
|
||||||
|
|
||||||
#include "k3-j784s4-binman.dtsi"
|
#include "k3-j784s4-binman.dtsi"
|
||||||
|
|
||||||
|
#if defined(CONFIG_CPU_V7R)
|
||||||
|
|
||||||
|
&binman {
|
||||||
|
tiboot3-am69-hs {
|
||||||
|
insert-template = <&tiboot3_j784s4_hs>;
|
||||||
|
filename = "tiboot3-j784s4-hs-evm.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
tiboot3-am69-hs-fs {
|
||||||
|
insert-template = <&tiboot3_j784s4_hs_fs>;
|
||||||
|
filename = "tiboot3-j784s4-hs-fs-evm.bin";
|
||||||
|
symlink = "tiboot3.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ti_fs_enc {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-enc.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sysfw_inner_cert {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-cert.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ti_fs_enc_fs {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-enc.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sysfw_inner_cert_fs {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-cert.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "k3-binman-capsule-r5.dtsi"
|
||||||
|
|
||||||
|
// Capsule update GUIDs in string form. See j784s4_evm.h
|
||||||
|
#define AM69_SK_TIBOOT3_IMAGE_GUID_STR "adf49ec5-61bb-4dbe-8b8d-39df4d7ebf46"
|
||||||
|
|
||||||
|
&capsule_tiboot3 {
|
||||||
|
efi-capsule {
|
||||||
|
image-guid = AM69_SK_TIBOOT3_IMAGE_GUID_STR;
|
||||||
|
|
||||||
|
blob {
|
||||||
|
filename = "tiboot3-j784s4-hs-fs-evm.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#else // CONFIG_ARM64
|
||||||
|
|
||||||
|
&binman {
|
||||||
|
ti-dm {
|
||||||
|
filename = "ti-dm.bin";
|
||||||
|
|
||||||
|
blob-ext {
|
||||||
|
filename = "ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f";
|
||||||
|
optional;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tispl {
|
||||||
|
insert-template = <&ti_spl>;
|
||||||
|
};
|
||||||
|
|
||||||
|
u-boot {
|
||||||
|
insert-template = <&u_boot>;
|
||||||
|
};
|
||||||
|
|
||||||
|
tispl-unsigned {
|
||||||
|
insert-template = <&ti_spl_unsigned>;
|
||||||
|
};
|
||||||
|
|
||||||
|
u-boot-unsigned {
|
||||||
|
insert-template = <&u_boot_unsigned>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#include "k3-binman-capsule.dtsi"
|
||||||
|
|
||||||
|
// Capsule update GUIDs in string form. See j784s4_evm.h
|
||||||
|
#define AM69_SK_SPL_IMAGE_GUID_STR "787f0059-63a1-461c-a18e-9d838345fe8e"
|
||||||
|
#define AM69_SK_UBOOT_IMAGE_GUID_STR "9300505d-6ec5-4ff8-99e4-5459a04be617"
|
||||||
|
|
||||||
|
&capsule_tispl {
|
||||||
|
efi-capsule {
|
||||||
|
image-guid = AM69_SK_SPL_IMAGE_GUID_STR;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&capsule_uboot {
|
||||||
|
efi-capsule {
|
||||||
|
image-guid = AM69_SK_UBOOT_IMAGE_GUID_STR;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
memory@80000000 {
|
memory@80000000 {
|
||||||
bootph-all;
|
bootph-all;
|
||||||
@@ -23,25 +122,3 @@
|
|||||||
bootph-pre-ram;
|
bootph-pre-ram;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_TARGET_J784S4_A72_EVM
|
|
||||||
|
|
||||||
#define SPL_AM69_SK_DTB "spl/dts/ti/k3-am69-sk.dtb"
|
|
||||||
#define AM69_SK_DTB "u-boot.dtb"
|
|
||||||
|
|
||||||
&spl_j784s4_evm_dtb {
|
|
||||||
filename = SPL_AM69_SK_DTB;
|
|
||||||
};
|
|
||||||
|
|
||||||
&j784s4_evm_dtb {
|
|
||||||
filename = AM69_SK_DTB;
|
|
||||||
};
|
|
||||||
|
|
||||||
&spl_j784s4_evm_dtb_unsigned {
|
|
||||||
filename = SPL_AM69_SK_DTB;
|
|
||||||
};
|
|
||||||
|
|
||||||
&j784s4_evm_dtb_unsigned {
|
|
||||||
filename = AM69_SK_DTB;
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
8756
arch/arm/dts/k3-j742s2-ddr-evm-lp4-4266.dtsi
Normal file
8756
arch/arm/dts/k3-j742s2-ddr-evm-lp4-4266.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
72
arch/arm/dts/k3-j742s2-evm-u-boot.dtsi
Normal file
72
arch/arm/dts/k3-j742s2-evm-u-boot.dtsi
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define SPL_BOARD_DTB "spl/dts/ti/k3-j742s2-evm.dtb"
|
||||||
|
#define BOARD_DESCRIPTION "k3-j742s2-evm"
|
||||||
|
#define UBOOT_BOARD_DESCRIPTION "U-Boot for J742S2 board"
|
||||||
|
|
||||||
|
#include "k3-j784s4-binman.dtsi"
|
||||||
|
|
||||||
|
#if !defined(CONFIG_ARM64)
|
||||||
|
|
||||||
|
&binman {
|
||||||
|
tiboot3-j742s2-hs-fs {
|
||||||
|
insert-template = <&tiboot3_j784s4_hs_fs>;
|
||||||
|
filename = "tiboot3-j742s2-hs-fs-evm.bin";
|
||||||
|
symlink = "tiboot3.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
tiboot3-j742s2-hs {
|
||||||
|
insert-template = <&tiboot3_j784s4_hs>;
|
||||||
|
filename = "tiboot3-j742s2-hs-evm.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ti_fs_enc_fs {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j742s2-hs-fs-enc.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sysfw_inner_cert_fs {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j742s2-hs-fs-cert.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ti_fs_enc {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j742s2-hs-enc.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sysfw_inner_cert {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j742s2-hs-cert.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
#else // CONFIG_ARM64
|
||||||
|
|
||||||
|
&binman {
|
||||||
|
ti-dm {
|
||||||
|
filename = "ti-dm.bin";
|
||||||
|
|
||||||
|
blob-ext {
|
||||||
|
filename = "ti-dm/j742s2/ipc_echo_testb_mcu1_0_release_strip.xer5f";
|
||||||
|
optional;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tispl {
|
||||||
|
insert-template = <&ti_spl>;
|
||||||
|
};
|
||||||
|
|
||||||
|
u-boot {
|
||||||
|
insert-template = <&u_boot>;
|
||||||
|
};
|
||||||
|
|
||||||
|
tispl-unsigned {
|
||||||
|
insert-template = <&ti_spl_unsigned>;
|
||||||
|
};
|
||||||
|
|
||||||
|
u-boot-unsigned {
|
||||||
|
insert-template = <&u_boot_unsigned>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
18
arch/arm/dts/k3-j742s2-r5-evm.dts
Normal file
18
arch/arm/dts/k3-j742s2-r5-evm.dts
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0-only
|
||||||
|
/*
|
||||||
|
* Copyright (C) 2024 Texas Instruments Incorporated - https://www.ti.com/
|
||||||
|
*/
|
||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
#include "k3-j742s2-evm.dts"
|
||||||
|
#include "k3-j742s2-ddr-evm-lp4-4266.dtsi"
|
||||||
|
#include "k3-j784s4-j742s2-ddr.dtsi"
|
||||||
|
#include "k3-j742s2-evm-u-boot.dtsi"
|
||||||
|
#include "k3-j784s4-r5.dtsi"
|
||||||
|
|
||||||
|
&tps659413 {
|
||||||
|
esm: esm {
|
||||||
|
compatible = "ti,tps659413-esm";
|
||||||
|
bootph-pre-ram;
|
||||||
|
};
|
||||||
|
};
|
@@ -5,16 +5,15 @@
|
|||||||
|
|
||||||
#include "k3-binman.dtsi"
|
#include "k3-binman.dtsi"
|
||||||
|
|
||||||
#ifdef CONFIG_TARGET_J784S4_R5_EVM
|
#if defined(CONFIG_CPU_V7R)
|
||||||
|
|
||||||
&rcfg_yaml_tifs {
|
&rcfg_yaml_tifs {
|
||||||
config = "tifs-rm-cfg.yaml";
|
config = "tifs-rm-cfg.yaml";
|
||||||
};
|
};
|
||||||
|
|
||||||
&binman {
|
&binman {
|
||||||
tiboot3-j784s4-hs-evm.bin {
|
tiboot3_j784s4_hs: template-9 {
|
||||||
filename = "tiboot3-j784s4-hs-evm.bin";
|
section {
|
||||||
|
|
||||||
ti-secure-rom {
|
ti-secure-rom {
|
||||||
content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
|
content = <&u_boot_spl>, <&ti_fs_enc>, <&combined_tifs_cfg>,
|
||||||
<&combined_dm_cfg>, <&sysfw_inner_cert>;
|
<&combined_dm_cfg>, <&sysfw_inner_cert>;
|
||||||
@@ -39,7 +38,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ti_fs_enc: ti-fs-enc.bin {
|
ti_fs_enc: ti-fs-enc.bin {
|
||||||
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-enc.bin";
|
|
||||||
type = "blob-ext";
|
type = "blob-ext";
|
||||||
optional;
|
optional;
|
||||||
};
|
};
|
||||||
@@ -50,7 +48,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sysfw_inner_cert: sysfw-inner-cert {
|
sysfw_inner_cert: sysfw-inner-cert {
|
||||||
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-cert.bin";
|
|
||||||
type = "blob-ext";
|
type = "blob-ext";
|
||||||
optional;
|
optional;
|
||||||
};
|
};
|
||||||
@@ -59,13 +56,13 @@
|
|||||||
filename = "combined-dm-cfg.bin";
|
filename = "combined-dm-cfg.bin";
|
||||||
type = "blob-ext";
|
type = "blob-ext";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&binman {
|
&binman {
|
||||||
tiboot3-j784s4-hs-fs-evm.bin {
|
tiboot3_j784s4_hs_fs: template-10 {
|
||||||
filename = "tiboot3-j784s4-hs-fs-evm.bin";
|
section {
|
||||||
|
|
||||||
ti-secure-rom {
|
ti-secure-rom {
|
||||||
content = <&u_boot_spl_fs>, <&ti_fs_enc_fs>, <&combined_tifs_cfg_fs>,
|
content = <&u_boot_spl_fs>, <&ti_fs_enc_fs>, <&combined_tifs_cfg_fs>,
|
||||||
<&combined_dm_cfg_fs>, <&sysfw_inner_cert_fs>;
|
<&combined_dm_cfg_fs>, <&sysfw_inner_cert_fs>;
|
||||||
@@ -90,7 +87,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ti_fs_enc_fs: ti-fs-enc.bin {
|
ti_fs_enc_fs: ti-fs-enc.bin {
|
||||||
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-enc.bin";
|
|
||||||
type = "blob-ext";
|
type = "blob-ext";
|
||||||
optional;
|
optional;
|
||||||
};
|
};
|
||||||
@@ -101,7 +97,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
sysfw_inner_cert_fs: sysfw-inner-cert {
|
sysfw_inner_cert_fs: sysfw-inner-cert {
|
||||||
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-cert.bin";
|
|
||||||
type = "blob-ext";
|
type = "blob-ext";
|
||||||
optional;
|
optional;
|
||||||
};
|
};
|
||||||
@@ -110,14 +105,13 @@
|
|||||||
filename = "combined-dm-cfg.bin";
|
filename = "combined-dm-cfg.bin";
|
||||||
type = "blob-ext";
|
type = "blob-ext";
|
||||||
};
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
&binman {
|
&binman {
|
||||||
tiboot3-j784s4-gp-evm.bin {
|
tiboot3_j784s4_gp: template-11 {
|
||||||
filename = "tiboot3-j784s4-gp-evm.bin";
|
section {
|
||||||
symlink = "tiboot3.bin";
|
|
||||||
|
|
||||||
ti-secure-rom {
|
ti-secure-rom {
|
||||||
content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
|
content = <&u_boot_spl_unsigned>, <&ti_fs_gp>,
|
||||||
<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
|
<&combined_tifs_cfg_gp>, <&combined_dm_cfg_gp>;
|
||||||
@@ -140,7 +134,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
ti_fs_gp: ti-fs-gp.bin {
|
ti_fs_gp: ti-fs-gp.bin {
|
||||||
filename = "ti-sysfw/ti-fs-firmware-j784s4-gp.bin";
|
|
||||||
type = "blob-ext";
|
type = "blob-ext";
|
||||||
optional;
|
optional;
|
||||||
};
|
};
|
||||||
@@ -154,43 +147,14 @@
|
|||||||
filename = "combined-dm-cfg.bin";
|
filename = "combined-dm-cfg.bin";
|
||||||
type = "blob-ext";
|
type = "blob-ext";
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#include "k3-binman-capsule-r5.dtsi"
|
|
||||||
|
|
||||||
// Capsule update GUIDs in string form. See j784s4_evm.h
|
|
||||||
#define AM69_SK_TIBOOT3_IMAGE_GUID_STR "adf49ec5-61bb-4dbe-8b8d-39df4d7ebf46"
|
|
||||||
|
|
||||||
&capsule_tiboot3 {
|
|
||||||
efi-capsule {
|
|
||||||
image-guid = AM69_SK_TIBOOT3_IMAGE_GUID_STR;
|
|
||||||
|
|
||||||
blob {
|
|
||||||
filename = "tiboot3-j784s4-hs-fs-evm.bin";
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#else
|
||||||
|
|
||||||
#ifdef CONFIG_TARGET_J784S4_A72_EVM
|
|
||||||
|
|
||||||
#define SPL_J784S4_EVM_DTB "spl/dts/ti/k3-j784s4-evm.dtb"
|
|
||||||
#define J784S4_EVM_DTB "u-boot.dtb"
|
|
||||||
|
|
||||||
&binman {
|
&binman {
|
||||||
ti-dm {
|
ti_spl: template-12 {
|
||||||
filename = "ti-dm.bin";
|
|
||||||
|
|
||||||
blob-ext {
|
|
||||||
filename = "ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f";
|
|
||||||
optional;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
ti-spl {
|
|
||||||
insert-template = <&ti_spl_template>;
|
insert-template = <&ti_spl_template>;
|
||||||
|
|
||||||
fit {
|
fit {
|
||||||
@@ -207,19 +171,20 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
fdt-0 {
|
fdt-0 {
|
||||||
description = "k3-j784s4-evm";
|
description = BOARD_DESCRIPTION;
|
||||||
type = "flat_dt";
|
type = "flat_dt";
|
||||||
arch = "arm";
|
arch = "arm";
|
||||||
compression = "none";
|
compression = "none";
|
||||||
|
|
||||||
ti-secure {
|
ti-secure {
|
||||||
content = <&spl_j784s4_evm_dtb>;
|
content = <&spl_board_dtb>;
|
||||||
keyfile = "custMpk.pem";
|
keyfile = "custMpk.pem";
|
||||||
};
|
};
|
||||||
|
|
||||||
spl_j784s4_evm_dtb: blob-ext {
|
spl_board_dtb: blob-ext {
|
||||||
filename = SPL_J784S4_EVM_DTB;
|
filename = SPL_BOARD_DTB;
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -227,7 +192,7 @@
|
|||||||
default = "conf-0";
|
default = "conf-0";
|
||||||
|
|
||||||
conf-0 {
|
conf-0 {
|
||||||
description = "k3-j784s4-evm";
|
description = BOARD_DESCRIPTION;
|
||||||
firmware = "atf";
|
firmware = "atf";
|
||||||
loadables = "tee", "dm", "spl";
|
loadables = "tee", "dm", "spl";
|
||||||
fdt = "fdt-0";
|
fdt = "fdt-0";
|
||||||
@@ -238,17 +203,17 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&binman {
|
&binman {
|
||||||
u-boot {
|
u_boot: template-13 {
|
||||||
insert-template = <&u_boot_template>;
|
insert-template = <&u_boot_template>;
|
||||||
|
|
||||||
fit {
|
fit {
|
||||||
images {
|
images {
|
||||||
uboot {
|
uboot {
|
||||||
description = "U-Boot for J784S4 board";
|
description = UBOOT_BOARD_DESCRIPTION;
|
||||||
};
|
};
|
||||||
|
|
||||||
fdt-0 {
|
fdt-0 {
|
||||||
description = "k3-j784s4-evm";
|
description = BOARD_DESCRIPTION;
|
||||||
type = "flat_dt";
|
type = "flat_dt";
|
||||||
arch = "arm";
|
arch = "arm";
|
||||||
compression = "none";
|
compression = "none";
|
||||||
@@ -259,7 +224,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
j784s4_evm_dtb: blob-ext {
|
j784s4_evm_dtb: blob-ext {
|
||||||
filename = J784S4_EVM_DTB;
|
filename = "u-boot.dtb";
|
||||||
};
|
};
|
||||||
|
|
||||||
hash {
|
hash {
|
||||||
@@ -272,7 +237,7 @@
|
|||||||
default = "conf-0";
|
default = "conf-0";
|
||||||
|
|
||||||
conf-0 {
|
conf-0 {
|
||||||
description = "k3-j784s4-evm";
|
description = BOARD_DESCRIPTION;
|
||||||
firmware = "uboot";
|
firmware = "uboot";
|
||||||
loadables = "uboot";
|
loadables = "uboot";
|
||||||
fdt = "fdt-0";
|
fdt = "fdt-0";
|
||||||
@@ -283,7 +248,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&binman {
|
&binman {
|
||||||
ti-spl_unsigned {
|
ti_spl_unsigned: template-14 {
|
||||||
insert-template = <&ti_spl_unsigned_template>;
|
insert-template = <&ti_spl_unsigned_template>;
|
||||||
|
|
||||||
fit {
|
fit {
|
||||||
@@ -295,13 +260,13 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
fdt-0 {
|
fdt-0 {
|
||||||
description = "k3-j784s4-evm";
|
description = BOARD_DESCRIPTION;
|
||||||
type = "flat_dt";
|
type = "flat_dt";
|
||||||
arch = "arm";
|
arch = "arm";
|
||||||
compression = "none";
|
compression = "none";
|
||||||
|
|
||||||
spl_j784s4_evm_dtb_unsigned: blob {
|
spl_j784s4_evm_dtb_unsigned: blob {
|
||||||
filename = SPL_J784S4_EVM_DTB;
|
filename = SPL_BOARD_DTB;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -310,7 +275,7 @@
|
|||||||
default = "conf-0";
|
default = "conf-0";
|
||||||
|
|
||||||
conf-0 {
|
conf-0 {
|
||||||
description = "k3-j784s4-evm";
|
description = BOARD_DESCRIPTION;
|
||||||
firmware = "atf";
|
firmware = "atf";
|
||||||
loadables = "tee", "dm", "spl";
|
loadables = "tee", "dm", "spl";
|
||||||
fdt = "fdt-0";
|
fdt = "fdt-0";
|
||||||
@@ -321,23 +286,23 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
&binman {
|
&binman {
|
||||||
u-boot_unsigned {
|
u_boot_unsigned: template-15 {
|
||||||
insert-template = <&u_boot_unsigned_template>;
|
insert-template = <&u_boot_unsigned_template>;
|
||||||
|
|
||||||
fit {
|
fit {
|
||||||
images {
|
images {
|
||||||
uboot {
|
uboot {
|
||||||
description = "U-Boot for J784S4 board";
|
description = UBOOT_BOARD_DESCRIPTION;
|
||||||
};
|
};
|
||||||
|
|
||||||
fdt-0 {
|
fdt-0 {
|
||||||
description = "k3-j784s4-evm";
|
description = BOARD_DESCRIPTION;
|
||||||
type = "flat_dt";
|
type = "flat_dt";
|
||||||
arch = "arm";
|
arch = "arm";
|
||||||
compression = "none";
|
compression = "none";
|
||||||
|
|
||||||
j784s4_evm_dtb_unsigned: blob {
|
j784s4_evm_dtb_unsigned: blob {
|
||||||
filename = J784S4_EVM_DTB;
|
filename = "u-boot.dtb";
|
||||||
};
|
};
|
||||||
|
|
||||||
hash {
|
hash {
|
||||||
@@ -350,7 +315,7 @@
|
|||||||
default = "conf-0";
|
default = "conf-0";
|
||||||
|
|
||||||
conf-0 {
|
conf-0 {
|
||||||
description = "k3-j784s4-evm";
|
description = BOARD_DESCRIPTION;
|
||||||
firmware = "uboot";
|
firmware = "uboot";
|
||||||
loadables = "uboot";
|
loadables = "uboot";
|
||||||
fdt = "fdt-0";
|
fdt = "fdt-0";
|
||||||
@@ -359,23 +324,4 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "k3-binman-capsule.dtsi"
|
|
||||||
|
|
||||||
// Capsule update GUIDs in string form. See j784s4_evm.h
|
|
||||||
#define AM69_SK_SPL_IMAGE_GUID_STR "787f0059-63a1-461c-a18e-9d838345fe8e"
|
|
||||||
#define AM69_SK_UBOOT_IMAGE_GUID_STR "9300505d-6ec5-4ff8-99e4-5459a04be617"
|
|
||||||
|
|
||||||
&capsule_tispl {
|
|
||||||
efi-capsule {
|
|
||||||
image-guid = AM69_SK_SPL_IMAGE_GUID_STR;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
&capsule_uboot {
|
|
||||||
efi-capsule {
|
|
||||||
image-guid = AM69_SK_UBOOT_IMAGE_GUID_STR;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
File diff suppressed because it is too large
Load Diff
@@ -3,8 +3,83 @@
|
|||||||
* Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
|
* Copyright (C) 2023 Texas Instruments Incorporated - https://www.ti.com/
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#define SPL_BOARD_DTB "spl/dts/ti/k3-j784s4-evm.dtb"
|
||||||
|
#define BOARD_DESCRIPTION "k3-j784s4-evm"
|
||||||
|
#define UBOOT_BOARD_DESCRIPTION "U-Boot for J784S4 board"
|
||||||
|
|
||||||
#include "k3-j784s4-binman.dtsi"
|
#include "k3-j784s4-binman.dtsi"
|
||||||
|
|
||||||
|
#if defined(CONFIG_CPU_V7R)
|
||||||
|
|
||||||
|
&binman {
|
||||||
|
tiboot3-j784s4-hs {
|
||||||
|
insert-template = <&tiboot3_j784s4_hs>;
|
||||||
|
filename = "tiboot3-j784s4-hs-evm.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
tiboot3-j784s4-hs-fs {
|
||||||
|
insert-template = <&tiboot3_j784s4_hs_fs>;
|
||||||
|
filename = "tiboot3-j784s4-hs-fs-evm.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
tiboot3-j784s4-gp {
|
||||||
|
insert-template = <&tiboot3_j784s4_gp>;
|
||||||
|
filename = "tiboot3-j784s4-gp-evm.bin";
|
||||||
|
symlink = "tiboot3.bin";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
&ti_fs_gp {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-gp.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ti_fs_enc {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-enc.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sysfw_inner_cert {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-cert.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&ti_fs_enc_fs {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-enc.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
&sysfw_inner_cert_fs {
|
||||||
|
filename = "ti-sysfw/ti-fs-firmware-j784s4-hs-fs-cert.bin";
|
||||||
|
};
|
||||||
|
|
||||||
|
#else // CONFIG_ARM64
|
||||||
|
|
||||||
|
&binman {
|
||||||
|
ti-dm {
|
||||||
|
filename = "ti-dm.bin";
|
||||||
|
|
||||||
|
blob-ext {
|
||||||
|
filename = "ti-dm/j784s4/ipc_echo_testb_mcu1_0_release_strip.xer5f";
|
||||||
|
optional;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
tispl {
|
||||||
|
insert-template = <&ti_spl>;
|
||||||
|
};
|
||||||
|
|
||||||
|
u-boot {
|
||||||
|
insert-template = <&u_boot>;
|
||||||
|
};
|
||||||
|
|
||||||
|
tispl-unsigned {
|
||||||
|
insert-template = <&ti_spl_unsigned>;
|
||||||
|
};
|
||||||
|
|
||||||
|
u-boot-unsigned {
|
||||||
|
insert-template = <&u_boot_unsigned>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
/ {
|
/ {
|
||||||
memory@80000000 {
|
memory@80000000 {
|
||||||
bootph-all;
|
bootph-all;
|
||||||
|
4448
arch/arm/dts/k3-j784s4-j742s2-ddr.dtsi
Normal file
4448
arch/arm/dts/k3-j784s4-j742s2-ddr.dtsi
Normal file
File diff suppressed because it is too large
Load Diff
@@ -62,6 +62,12 @@
|
|||||||
#define JTAG_ID_PARTNO_J722S 0xbba0
|
#define JTAG_ID_PARTNO_J722S 0xbba0
|
||||||
#define JTAG_ID_PARTNO_J784S4 0xbb80
|
#define JTAG_ID_PARTNO_J784S4 0xbb80
|
||||||
|
|
||||||
|
#define CTRLMMR_WKUP_JTAG_DEVICE_ID (WKUP_CTRL_MMR0_BASE + 0x18)
|
||||||
|
#define JTAG_DEV_J742S2_PKG_MASK GENMASK(2, 0)
|
||||||
|
#define JTAG_DEV_J742S2_PKG_SHIFT 0
|
||||||
|
|
||||||
|
#define JTAG_ID_PKG_J742S2 0x7
|
||||||
|
|
||||||
#define K3_SOC_ID(id, ID) \
|
#define K3_SOC_ID(id, ID) \
|
||||||
static inline bool soc_is_##id(void) \
|
static inline bool soc_is_##id(void) \
|
||||||
{ \
|
{ \
|
||||||
|
@@ -27,6 +27,24 @@ config TARGET_J784S4_R5_EVM
|
|||||||
select BINMAN
|
select BINMAN
|
||||||
imply SYS_K3_SPL_ATF
|
imply SYS_K3_SPL_ATF
|
||||||
|
|
||||||
|
config TARGET_J742S2_A72_EVM
|
||||||
|
bool "TI K3 based J742S2 EVM running on A72"
|
||||||
|
select ARM64
|
||||||
|
select BOARD_LATE_INIT
|
||||||
|
select SYS_DISABLE_DCACHE_OPS
|
||||||
|
select BINMAN
|
||||||
|
|
||||||
|
config TARGET_J742S2_R5_EVM
|
||||||
|
bool "TI K3 based J742S2 EVM running on R5"
|
||||||
|
select CPU_V7R
|
||||||
|
select SYS_THUMB_BUILD
|
||||||
|
select K3_LOAD_SYSFW
|
||||||
|
select RAM
|
||||||
|
select SPL_RAM
|
||||||
|
select K3_DDRSS
|
||||||
|
select BINMAN
|
||||||
|
imply SYS_K3_SPL_ATF
|
||||||
|
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
source "board/ti/j784s4/Kconfig"
|
source "board/ti/j784s4/Kconfig"
|
||||||
|
@@ -35,3 +35,36 @@ config SPL_LDSCRIPT
|
|||||||
source "board/ti/common/Kconfig"
|
source "board/ti/common/Kconfig"
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if TARGET_J742S2_A72_EVM
|
||||||
|
|
||||||
|
config SYS_BOARD
|
||||||
|
default "j784s4"
|
||||||
|
|
||||||
|
config SYS_VENDOR
|
||||||
|
default "ti"
|
||||||
|
|
||||||
|
config SYS_CONFIG_NAME
|
||||||
|
default "j784s4_evm"
|
||||||
|
|
||||||
|
source "board/ti/common/Kconfig"
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
if TARGET_J742S2_R5_EVM
|
||||||
|
|
||||||
|
config SYS_BOARD
|
||||||
|
default "j784s4"
|
||||||
|
|
||||||
|
config SYS_VENDOR
|
||||||
|
default "ti"
|
||||||
|
|
||||||
|
config SYS_CONFIG_NAME
|
||||||
|
default "j784s4_evm"
|
||||||
|
|
||||||
|
config SPL_LDSCRIPT
|
||||||
|
default "arch/arm/mach-omap2/u-boot-spl.lds"
|
||||||
|
|
||||||
|
source "board/ti/common/Kconfig"
|
||||||
|
|
||||||
|
endif
|
||||||
|
@@ -20,3 +20,13 @@ F: arch/arm/dts/k3-am69-sk-u-boot.dtsi
|
|||||||
F: arch/arm/dts/k3-am69-r5-sk.dts
|
F: arch/arm/dts/k3-am69-r5-sk.dts
|
||||||
F: configs/am69_sk_r5_defconfig
|
F: configs/am69_sk_r5_defconfig
|
||||||
F: configs/am69_sk_a72_defconfig
|
F: configs/am69_sk_a72_defconfig
|
||||||
|
|
||||||
|
J742S2 EVM BOARD
|
||||||
|
M: Manorit Chawdhry <m-chawdhry@ti.com>
|
||||||
|
S: Maintained
|
||||||
|
F: arch/arm/dts/k3-j784s4-j742s2-ddr.dtsi
|
||||||
|
F: arch/arm/dts/k3-j742s2-r5-evm.dts
|
||||||
|
F: arch/arm/dts/k3-j742s2-evm-u-boot.dtsi
|
||||||
|
F: arch/arm/dts/k3-j742s2-ddr-evm-lp4-4266.dtsi
|
||||||
|
F: configs/j742s2_evm_r5_defconfig
|
||||||
|
F: configs/j742s2_evm_a72_defconfig
|
||||||
|
@@ -20,4 +20,8 @@ bootpart=1:2
|
|||||||
bootdir=/boot
|
bootdir=/boot
|
||||||
rd_spec=-
|
rd_spec=-
|
||||||
|
|
||||||
|
#if CONFIG_TARGET_J784S4_A72_EVM
|
||||||
rproc_fw_binaries= 2 /lib/firmware/j784s4-main-r5f0_0-fw 3 /lib/firmware/j784s4-main-r5f0_1-fw 4 /lib/firmware/j784s4-main-r5f1_0-fw 5 /lib/firmware/j784s4-main-r5f1_1-fw 6 /lib/firmware/j784s4-main-r5f2_0-fw 7 /lib/firmware/j784s4-main-r5f2_1-fw 8 /lib/firmware/j784s4-c71_0-fw 9 /lib/firmware/j784s4-c71_1-fw 10 /lib/firmware/j784s4-c71_2-fw 11 /lib/firmware/j784s4-c71_3-fw
|
rproc_fw_binaries= 2 /lib/firmware/j784s4-main-r5f0_0-fw 3 /lib/firmware/j784s4-main-r5f0_1-fw 4 /lib/firmware/j784s4-main-r5f1_0-fw 5 /lib/firmware/j784s4-main-r5f1_1-fw 6 /lib/firmware/j784s4-main-r5f2_0-fw 7 /lib/firmware/j784s4-main-r5f2_1-fw 8 /lib/firmware/j784s4-c71_0-fw 9 /lib/firmware/j784s4-c71_1-fw 10 /lib/firmware/j784s4-c71_2-fw 11 /lib/firmware/j784s4-c71_3-fw
|
||||||
|
#elif CONFIG_TARGET_J742S2_A72_EVM
|
||||||
|
rproc_fw_binaries= 2 /lib/firmware/j742s2-main-r5f0_0-fw 3 /lib/firmware/j742s2-main-r5f0_1-fw 4 /lib/firmware/j742s2-main-r5f1_0-fw 5 /lib/firmware/j742s2-main-r5f1_1-fw 6 /lib/firmware/j742s2-main-r5f2_0-fw 7 /lib/firmware/j742s2-main-r5f2_1-fw 8 /lib/firmware/j742s2-c71_0-fw 9 /lib/firmware/j742s2-c71_1-fw 10 /lib/firmware/j742s2-c71_2-fw
|
||||||
|
#endif
|
||||||
|
9
configs/j742s2_evm_a72_defconfig
Normal file
9
configs/j742s2_evm_a72_defconfig
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#include <configs/j784s4_evm_a72_defconfig>
|
||||||
|
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_ARCH_K3=y
|
||||||
|
CONFIG_SOC_K3_J784S4=y
|
||||||
|
CONFIG_TARGET_J742S2_A72_EVM=y
|
||||||
|
|
||||||
|
CONFIG_DEFAULT_DEVICE_TREE="ti/k3-j742s2-evm"
|
||||||
|
CONFIG_SPL_OF_LIST="ti/k3-j742s2-evm"
|
9
configs/j742s2_evm_r5_defconfig
Normal file
9
configs/j742s2_evm_r5_defconfig
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
#include <configs/j784s4_evm_r5_defconfig>
|
||||||
|
|
||||||
|
CONFIG_ARM=y
|
||||||
|
CONFIG_ARCH_K3=y
|
||||||
|
CONFIG_SOC_K3_J784S4=y
|
||||||
|
CONFIG_TARGET_J742S2_R5_EVM=y
|
||||||
|
|
||||||
|
CONFIG_DEFAULT_DEVICE_TREE="k3-j742s2-r5-evm"
|
||||||
|
CONFIG_SPL_OF_LIST="k3-j742s2-r5-evm"
|
@@ -104,6 +104,10 @@ static const struct soc_attr ti_k3_soc_clk_data[] = {
|
|||||||
.family = "J784S4",
|
.family = "J784S4",
|
||||||
.data = &j784s4_clk_platdata,
|
.data = &j784s4_clk_platdata,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.family = "J742S2",
|
||||||
|
.data = &j784s4_clk_platdata,
|
||||||
|
},
|
||||||
#endif
|
#endif
|
||||||
{ /* sentinel */ }
|
{ /* sentinel */ }
|
||||||
};
|
};
|
||||||
|
@@ -116,6 +116,10 @@ static const struct soc_attr ti_k3_soc_pd_data[] = {
|
|||||||
.family = "J784S4",
|
.family = "J784S4",
|
||||||
.data = &j784s4_pd_platdata,
|
.data = &j784s4_pd_platdata,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
.family = "J742S2",
|
||||||
|
.data = &j784s4_pd_platdata,
|
||||||
|
},
|
||||||
#endif
|
#endif
|
||||||
{ /* sentinel */ }
|
{ /* sentinel */ }
|
||||||
};
|
};
|
||||||
|
@@ -18,8 +18,12 @@ struct soc_ti_k3_plat {
|
|||||||
static const char *get_family_string(u32 idreg)
|
static const char *get_family_string(u32 idreg)
|
||||||
{
|
{
|
||||||
const char *family;
|
const char *family;
|
||||||
|
u32 jtag_dev_id;
|
||||||
|
u32 pkg;
|
||||||
u32 soc;
|
u32 soc;
|
||||||
|
|
||||||
|
jtag_dev_id = readl(CTRLMMR_WKUP_JTAG_DEVICE_ID);
|
||||||
|
|
||||||
soc = (idreg & JTAG_ID_PARTNO_MASK) >> JTAG_ID_PARTNO_SHIFT;
|
soc = (idreg & JTAG_ID_PARTNO_MASK) >> JTAG_ID_PARTNO_SHIFT;
|
||||||
|
|
||||||
switch (soc) {
|
switch (soc) {
|
||||||
@@ -51,8 +55,16 @@ static const char *get_family_string(u32 idreg)
|
|||||||
family = "J722S";
|
family = "J722S";
|
||||||
break;
|
break;
|
||||||
case JTAG_ID_PARTNO_J784S4:
|
case JTAG_ID_PARTNO_J784S4:
|
||||||
family = "J784S4";
|
{
|
||||||
break;
|
/* Keep default family as J784S4 */
|
||||||
|
family = "J784S4";
|
||||||
|
|
||||||
|
pkg = (jtag_dev_id & JTAG_DEV_J742S2_PKG_MASK) >> JTAG_DEV_J742S2_PKG_SHIFT;
|
||||||
|
if (pkg == JTAG_ID_PKG_J742S2)
|
||||||
|
family = "J742S2";
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
family = "Unknown Silicon";
|
family = "Unknown Silicon";
|
||||||
};
|
};
|
||||||
|
@@ -522,9 +522,13 @@ def _ProcessTemplates(parent):
|
|||||||
def _RemoveTemplates(parent):
|
def _RemoveTemplates(parent):
|
||||||
"""Remove any templates in the binman description
|
"""Remove any templates in the binman description
|
||||||
"""
|
"""
|
||||||
|
del_nodes = []
|
||||||
for node in parent.subnodes:
|
for node in parent.subnodes:
|
||||||
if node.name.startswith('template'):
|
if node.name.startswith('template'):
|
||||||
node.Delete()
|
del_nodes.append(node)
|
||||||
|
|
||||||
|
for node in del_nodes:
|
||||||
|
node.Delete()
|
||||||
|
|
||||||
def PrepareImagesAndDtbs(dtb_fname, select_images, update_fdt, use_expanded, indir):
|
def PrepareImagesAndDtbs(dtb_fname, select_images, update_fdt, use_expanded, indir):
|
||||||
"""Prepare the images to be processed and select the device tree
|
"""Prepare the images to be processed and select the device tree
|
||||||
|
@@ -7990,5 +7990,12 @@ fdt fdtmap Extract the devicetree blob from the fdtmap
|
|||||||
"""Test an image with an FIT with multiple FDT images using NAME"""
|
"""Test an image with an FIT with multiple FDT images using NAME"""
|
||||||
self.CheckFitFdt('345_fit_fdt_name.dts', use_seq_num=False)
|
self.CheckFitFdt('345_fit_fdt_name.dts', use_seq_num=False)
|
||||||
|
|
||||||
|
def testRemoveTemplate(self):
|
||||||
|
"""Test whether template is removed"""
|
||||||
|
TestFunctional._MakeInputFile('my-blob.bin', b'blob')
|
||||||
|
TestFunctional._MakeInputFile('my-blob2.bin', b'other')
|
||||||
|
self._DoTestFile('346_remove_template.dts',
|
||||||
|
force_missing_bintools='openssl',)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
unittest.main()
|
unittest.main()
|
||||||
|
49
tools/binman/test/346_remove_template.dts
Normal file
49
tools/binman/test/346_remove_template.dts
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
// SPDX-License-Identifier: GPL-2.0+
|
||||||
|
|
||||||
|
/dts-v1/;
|
||||||
|
/ {
|
||||||
|
binman: binman {
|
||||||
|
multiple-images;
|
||||||
|
|
||||||
|
template_1: template-1 {
|
||||||
|
section {
|
||||||
|
phandle1: my-blob.bin {
|
||||||
|
filename = "my-blob.bin";
|
||||||
|
type = "blob-ext";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
template_2: template-2 {
|
||||||
|
section {
|
||||||
|
ti-secure {
|
||||||
|
content = <&phandle2>;
|
||||||
|
keyfile = "key.pem";
|
||||||
|
};
|
||||||
|
phandle2: my-blob.bin {
|
||||||
|
filename = "my-blob.bin";
|
||||||
|
type = "blob-ext";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
template_3: template-3 {
|
||||||
|
section {
|
||||||
|
phandle3: my-blob.bin {
|
||||||
|
filename = "my-blob.bin";
|
||||||
|
type = "blob-ext";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
file1 {
|
||||||
|
insert-template = <&template_1>;
|
||||||
|
};
|
||||||
|
|
||||||
|
file2 {
|
||||||
|
insert-template = <&template_2>;
|
||||||
|
};
|
||||||
|
|
||||||
|
file3 {
|
||||||
|
insert-template = <&template_3>;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
Reference in New Issue
Block a user