mirror of
https://git.yoctoproject.org/meta-ti
synced 2026-04-05 02:29:00 +00:00
Compare commits
59 Commits
12.00.00.0
...
master-nex
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c597d0aa8 | ||
|
|
3db8ddf7f8 | ||
|
|
7640ce6a58 | ||
|
|
764817c28e | ||
|
|
bd0e3d7ba5 | ||
|
|
6f205ef079 | ||
|
|
4c4f4b495d | ||
|
|
ed4c7f9ead | ||
|
|
e00f8d22d8 | ||
|
|
36901e8b0f | ||
|
|
2537d1cce4 | ||
|
|
60d0643b51 | ||
|
|
10a5021d17 | ||
|
|
5aa1c6ef15 | ||
|
|
9dc647e5b9 | ||
|
|
7eaa6ae23a | ||
|
|
204dbf803b | ||
|
|
ee4b9d9053 | ||
|
|
237d409aaf | ||
|
|
df378fdf63 | ||
|
|
732327f153 | ||
|
|
81cd032c09 | ||
|
|
88a85e8148 | ||
|
|
b92d66ad10 | ||
|
|
a77f6ead75 | ||
|
|
c4f9ff1eff | ||
|
|
8eaa5cace4 | ||
|
|
dbedef732f | ||
|
|
6d51093a81 | ||
|
|
9c336bc837 | ||
|
|
db4353bc7e | ||
|
|
acea5fac41 | ||
|
|
bf93262beb | ||
|
|
de85a85c0c | ||
|
|
563ffd7ea2 | ||
|
|
92c2198288 | ||
|
|
59af86a220 | ||
|
|
cb50cbab2f | ||
|
|
87f5d17fd0 | ||
|
|
e9c0421352 | ||
|
|
74f14d872c | ||
|
|
c4caa380b8 | ||
|
|
15f5c84ecd | ||
|
|
e24a537683 | ||
|
|
135dfe3f26 | ||
|
|
ddbc40d2ab | ||
|
|
cd0391b2ea | ||
|
|
03a7ad132c | ||
|
|
38758c5d17 | ||
|
|
bb64ebf304 | ||
|
|
f60581dc51 | ||
|
|
fdca2e3472 | ||
|
|
a8e59d34c4 | ||
|
|
82f15401cd | ||
|
|
65ba600b16 | ||
|
|
135b7041e8 | ||
|
|
4107d315a5 | ||
|
|
ee9f5e1dfe | ||
|
|
123245b638 |
@@ -19,7 +19,8 @@
|
||||
"meta-ti-bsp/recipes-devtools/binutils/binutils-cross-canadian_%.bbappend",
|
||||
"meta-ti-bsp/recipes-security/optee/optee-%.bbappend",
|
||||
"meta-ti-bsp/dynamic-layers/openembedded-layer/recipes-bsp/u-boot/u-boot-ti-%.bbappend",
|
||||
"meta-ti-bsp/dynamic-layers/openembedded-layer/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bbappend"
|
||||
"meta-ti-bsp/dynamic-layers/openembedded-layer/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bbappend",
|
||||
"meta-ti-bsp/dynamic-layers/tpm-layer/recipes-ti/initramfs/packagegroup-ti-core-initramfs.bbappend"
|
||||
]
|
||||
},
|
||||
"GUARD-2" : {
|
||||
|
||||
@@ -8,7 +8,7 @@ BBFILE_COLLECTIONS += "meta-beagle"
|
||||
BBFILE_PATTERN_meta-beagle := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_meta-beagle = "6"
|
||||
|
||||
LAYERSERIES_COMPAT_meta-beagle = "whinlatter"
|
||||
LAYERSERIES_COMPAT_meta-beagle = "whinlatter wrynose"
|
||||
|
||||
LAYERDEPENDS_meta-beagle = " \
|
||||
meta-ti-bsp \
|
||||
|
||||
@@ -18,4 +18,4 @@ KERNEL_DEVICETREE = ""
|
||||
|
||||
UBOOT_MACHINE = "am62lx_badge_defconfig"
|
||||
|
||||
TFA_BOARD = "am62l-badge"
|
||||
TFA_BOARD = "am62l3-badge"
|
||||
@@ -2,23 +2,10 @@
|
||||
#@NAME: BeaglePlay (A53)
|
||||
#@DESCRIPTION: Machine configuration for the BeaglePlay board (A53 core)
|
||||
|
||||
require conf/machine/include/k3.inc
|
||||
require conf/machine/include/mc_k3r5.inc
|
||||
|
||||
SOC_FAMILY:append = ":am62xx"
|
||||
|
||||
MACHINE_FEATURES += "screen"
|
||||
require conf/machine/include/am62xx.inc
|
||||
|
||||
SERIAL_CONSOLES = "115200;ttyS2"
|
||||
|
||||
require conf/machine/include/mesa-pvr.inc
|
||||
PREFERRED_PROVIDER_virtual/gpudriver ?= "${BSP_ROGUE_DRIVER_PROVIDER}"
|
||||
|
||||
TFA_BOARD = "lite"
|
||||
TFA_K3_SYSTEM_SUSPEND = "1"
|
||||
|
||||
OPTEEMACHINE = "k3-am62x"
|
||||
|
||||
UBOOT_MACHINE = "am62x_beagleplay_a53_defconfig"
|
||||
|
||||
SPL_BINARY = "tispl.bin_unsigned"
|
||||
@@ -2,10 +2,8 @@
|
||||
#@NAME: BeagleY AI (R5F)
|
||||
#@DESCRIPTION: Machine configuration for the BeagleY AI (R5F core)
|
||||
|
||||
require conf/machine/include/k3r5.inc
|
||||
require conf/machine/beagley-ai-ti-k3r5.conf
|
||||
|
||||
require conf/machine/include/beagle-bsp.inc
|
||||
|
||||
UBOOT_MACHINE = "am67a_beagley_ai_r5_defconfig"
|
||||
UBOOT_MACHINE:bsp-bb_org-6_6 = "j722s_evm_r5_defconfig"
|
||||
UBOOT_MACHINE:bsp-ti-6_6 = "j722s_evm_r5_defconfig"
|
||||
UBOOT_MACHINE:bsp-ti-6_12 = "j722s_evm_r5_defconfig"
|
||||
|
||||
8
meta-beagle/conf/machine/beagley-ai-ti-k3r5.conf
Normal file
8
meta-beagle/conf/machine/beagley-ai-ti-k3r5.conf
Normal file
@@ -0,0 +1,8 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: BeagleY AI (R5F)
|
||||
#@DESCRIPTION: Machine configuration for the BeagleY AI (R5F core)
|
||||
|
||||
require conf/machine/include/k3r5.inc
|
||||
|
||||
UBOOT_MACHINE = "am67a_beagley_ai_r5_defconfig"
|
||||
UBOOT_MACHINE:bsp-ti-6_6 = "j722s_evm_r5_defconfig"
|
||||
15
meta-beagle/conf/machine/beagley-ai-ti.conf
Normal file
15
meta-beagle/conf/machine/beagley-ai-ti.conf
Normal file
@@ -0,0 +1,15 @@
|
||||
#@TYPE: Machine
|
||||
#@NAME: BeagleY AI (A53)
|
||||
#@DESCRIPTION: Machine configuration for the BeagleY AI board (A53 core)
|
||||
|
||||
require conf/machine/include/j722s.inc
|
||||
|
||||
UBOOT_MACHINE = "am67a_beagley_ai_a53_defconfig"
|
||||
UBOOT_MACHINE:bsp-ti-6_6 = "j722s_evm_a53_config"
|
||||
|
||||
KERNEL_DEVICETREE_PREFIX = " \
|
||||
ti/k3-am67a \
|
||||
ti/k3-j722s \
|
||||
"
|
||||
|
||||
MACHINE_GUI_CLASS = "bigscreen"
|
||||
@@ -2,18 +2,11 @@
|
||||
#@NAME: BeagleY AI (A53)
|
||||
#@DESCRIPTION: Machine configuration for the BeagleY AI board (A53 core)
|
||||
|
||||
require conf/machine/include/j722s.inc
|
||||
require conf/machine/beagley-ai-ti.conf
|
||||
|
||||
require conf/machine/include/beagle-bsp.inc
|
||||
|
||||
UBOOT_MACHINE = "am67a_beagley_ai_a53_defconfig"
|
||||
UBOOT_MACHINE:bsp-bb_org-6_6 = "j722s_evm_a53_config"
|
||||
UBOOT_MACHINE:bsp-ti-6_6 = "j722s_evm_a53_config"
|
||||
UBOOT_MACHINE:bsp-ti-6_12 = "j722s_evm_a53_config"
|
||||
|
||||
KERNEL_DEVICETREE_PREFIX = " \
|
||||
ti/k3-am67a \
|
||||
ti/k3-j722s \
|
||||
"
|
||||
|
||||
KERNEL_DEVICETREE:bsp-bb_org-6_6 = " \
|
||||
ti/k3-am67a-beagley-ai.dtb \
|
||||
|
||||
@@ -15,6 +15,7 @@ BSP_KERNEL_VERSION:bsp-bb_org-6_12 = "6.12.%"
|
||||
BSP_BOOTLOADER_PROVIDER:bsp-bb_org-6_12 = "u-boot-bb.org"
|
||||
BSP_BOOTLOADER_VERSION:bsp-bb_org-6_12 = "2025.%"
|
||||
KERNEL_DEVICETREE_PREFIX:bsp-bb_org-6_12 = ""
|
||||
TI_CORE_INITRAMFS_KERNEL_MODULES:bsp-bb_org-6_12 = ""
|
||||
|
||||
BSP_SGX_DRIVER_PROVIDER:bsp-bb_org-6_12 = "ti-sgx-ddk-km"
|
||||
BSP_SGX_DRIVER_VERSION:bsp-bb_org-6_12 = "1.17%"
|
||||
@@ -36,6 +37,7 @@ BSP_KERNEL_VERSION:bsp-bb_org-6_6 = "6.6.%"
|
||||
BSP_BOOTLOADER_PROVIDER:bsp-bb_org-6_6 = "u-boot-bb.org"
|
||||
BSP_BOOTLOADER_VERSION:bsp-bb_org-6_6 = "2024.%"
|
||||
KERNEL_DEVICETREE_PREFIX:bsp-bb_org-6_6 = ""
|
||||
TI_CORE_INITRAMFS_KERNEL_MODULES:bsp-bb_org-6_6 = ""
|
||||
|
||||
BSP_SGX_DRIVER_PROVIDER:bsp-bb_org-6_6 = "ti-sgx-ddk-km"
|
||||
BSP_SGX_DRIVER_VERSION:bsp-bb_org-6_6 = "1.17%"
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
From 55ee5fecd68d0858ba6743137162252adedf2f72 Mon Sep 17 00:00:00 2001
|
||||
From: Leon Anavi <leon.anavi@konsulko.com>
|
||||
Date: Mon, 16 Mar 2026 18:34:58 +0000
|
||||
Subject: [PATCH] arm: dts: am335x-pocketbeagle: Add tick-timer
|
||||
|
||||
Add a binding for the tick-timer for PocketBeagle.
|
||||
|
||||
Upstream-Status: Pending [https://lists.denx.de/pipermail/u-boot/2026-January/608684.html]
|
||||
|
||||
Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
|
||||
---
|
||||
arch/arm/dts/am335x-pocketbeagle.dts | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/arch/arm/dts/am335x-pocketbeagle.dts b/arch/arm/dts/am335x-pocketbeagle.dts
|
||||
index b379e3a5570..02e3aac5606 100644
|
||||
--- a/arch/arm/dts/am335x-pocketbeagle.dts
|
||||
+++ b/arch/arm/dts/am335x-pocketbeagle.dts
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
chosen {
|
||||
stdout-path = &uart0;
|
||||
+ tick-timer = &timer2;
|
||||
};
|
||||
|
||||
leds {
|
||||
--
|
||||
2.53.0
|
||||
@@ -17,3 +17,4 @@ SRCREV:pocketbeagle2 = "4e0b6294a1185029d34eff6ed91f3ad1734b643f"
|
||||
SRCREV:pocketbeagle2-k3r5 = "4e0b6294a1185029d34eff6ed91f3ad1734b643f"
|
||||
|
||||
SRC_URI:append:pocketbeagle2 = " file://bootcmd-ti-mmc.cfg"
|
||||
SRC_URI:append:beaglebone = " file://0001-arm-dts-am335x-pocketbeagle-Add-tick-timer.patch"
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
From 3dedeeecd1ae42a751721d83dc21877122cc1795 Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
|
||||
Date: Sat, 6 Dec 2025 14:28:25 +0500
|
||||
Subject: libbpf: Fix -Wdiscarded-qualifiers under C23
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
commit d70f79fef65810faf64dbae1f3a1b5623cdb2345 upstream.
|
||||
|
||||
glibc ≥ 2.42 (GCC 15) defaults to -std=gnu23, which promotes
|
||||
-Wdiscarded-qualifiers to an error.
|
||||
|
||||
In C23, strstr() and strchr() return "const char *".
|
||||
|
||||
Change variable types to const char * where the pointers are never
|
||||
modified (res, sym_sfx, next_path).
|
||||
|
||||
Suggested-by: Florian Weimer <fweimer@redhat.com>
|
||||
Suggested-by: Andrii Nakryiko <andrii@kernel.org>
|
||||
Signed-off-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
|
||||
Link: https://lore.kernel.org/r/20251206092825.1471385-1-mikhail.v.gavrilov@gmail.com
|
||||
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
|
||||
[ shung-hsi.yu: needed to fix kernel build failure due to libbpf since glibc
|
||||
2.43+ (which adds 'const' qualifier to strstr). 'sym_sfx' hunk dropped because
|
||||
commit f8a05692de06 ("libbpf: Work around kernel inconsistently stripping
|
||||
'.llvm.' suffix") is not present. ]
|
||||
Signed-off-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
---
|
||||
tools/lib/bpf/libbpf.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
|
||||
index 060aecf60b76b1..7d496f0a9a30d1 100644
|
||||
--- a/tools/lib/bpf/libbpf.c
|
||||
+++ b/tools/lib/bpf/libbpf.c
|
||||
@@ -8174,7 +8174,7 @@ static int kallsyms_cb(unsigned long long sym_addr, char sym_type,
|
||||
struct bpf_object *obj = ctx;
|
||||
const struct btf_type *t;
|
||||
struct extern_desc *ext;
|
||||
- char *res;
|
||||
+ const char *res;
|
||||
|
||||
res = strstr(sym_name, ".llvm.");
|
||||
if (sym_type == 'd' && res)
|
||||
@@ -11959,7 +11959,7 @@ static int resolve_full_path(const char *file, char *result, size_t result_sz)
|
||||
if (!search_paths[i])
|
||||
continue;
|
||||
for (s = search_paths[i]; s != NULL; s = strchr(s, ':')) {
|
||||
- char *next_path;
|
||||
+ const char *next_path;
|
||||
int seg_len;
|
||||
|
||||
if (s[0] == ':')
|
||||
--
|
||||
cgit 1.2.3-korg
|
||||
|
||||
@@ -65,3 +65,5 @@ PV:aarch64 = "6.12.43+git"
|
||||
BRANCH:aarch64 = "v6.12.43-ti-arm64-r54"
|
||||
|
||||
KERNEL_GIT_URI = "git://github.com/beagleboard/linux.git"
|
||||
|
||||
SRC_URI += "file://0001-libbpf-Fix-Wdiscarded-qualifiers-under-C23.patch"
|
||||
|
||||
@@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "meta-ti-bsp"
|
||||
BBFILE_PATTERN_meta-ti-bsp := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_meta-ti-bsp = "6"
|
||||
|
||||
LAYERSERIES_COMPAT_meta-ti-bsp = "whinlatter"
|
||||
LAYERSERIES_COMPAT_meta-ti-bsp = "whinlatter wrynose"
|
||||
|
||||
LICENSE_PATH += "${LAYERDIR}/licenses"
|
||||
|
||||
@@ -20,10 +20,13 @@ LAYERDEPENDS_meta-ti-bsp = " \
|
||||
|
||||
LAYERRECOMMENDS_meta-ti-bsp = " \
|
||||
openembedded-layer \
|
||||
tpm-layer \
|
||||
"
|
||||
|
||||
BBFILES_DYNAMIC += " \
|
||||
openembedded-layer:${LAYERDIR}/dynamic-layers/openembedded-layer/recipes*/*/*.bbappend \
|
||||
tpm-layer:${LAYERDIR}/dynamic-layers/tpm-layer/recipes*/*/*.bb \
|
||||
tpm-layer:${LAYERDIR}/dynamic-layers/tpm-layer/recipes*/*/*.bbappend \
|
||||
"
|
||||
|
||||
SIGGEN_EXCLUDERECIPES_ABISAFE += " \
|
||||
|
||||
@@ -6,7 +6,13 @@ require conf/machine/include/am62axx.inc
|
||||
|
||||
KERNEL_DEVICETREE_PREFIX = " \
|
||||
ti/k3-am62a7 \
|
||||
ti/k3-am62x-sk \
|
||||
ti/k3-am62x-sk-csi2 \
|
||||
ti/k3-am62x-sk-ecap-capture \
|
||||
ti/k3-am62x-sk-eqep \
|
||||
ti/k3-am62x-sk-hdmi \
|
||||
ti/k3-am62x-sk-lpm \
|
||||
ti/k3-am62x-sk-mcspi-loopback \
|
||||
ti/k3-am62x-sk-pwm \
|
||||
ti/k3-fpdlink \
|
||||
ti/k3-v3link \
|
||||
"
|
||||
|
||||
@@ -9,6 +9,7 @@ KERNEL_DEVICETREE_PREFIX = " \
|
||||
ti/k3-am62a7-sk-edgeai \
|
||||
ti/k3-am62x-sk \
|
||||
ti/k3-am62a7-sk-rpi-hdr-ehrpwm \
|
||||
ti/k3-am62a7-sk-e3-max-opp \
|
||||
"
|
||||
|
||||
KERNEL_DEVICETREE = ""
|
||||
|
||||
@@ -6,7 +6,7 @@ require conf/machine/include/am62lxx.inc
|
||||
|
||||
IMAGE_FSTYPES += "ubifs ubi"
|
||||
|
||||
MKUBIFS_ARGS ?= "-F -m 4096 -e 258048 -c 8500"
|
||||
MKUBIFS_ARGS ?= "-F -m 4096 -e 258048 -c 12000"
|
||||
|
||||
UBINIZE_ARGS ?= "-m 4096 -p 256KiB -s 1024 -O 1024"
|
||||
|
||||
@@ -17,3 +17,10 @@ KERNEL_DEVICETREE_PREFIX = " \
|
||||
KERNEL_DEVICETREE = ""
|
||||
|
||||
UBOOT_MACHINE = "am62lx_evm_defconfig"
|
||||
FIT_CONF_DEFAULT_DTB = "k3-am62l3-evm.dtb"
|
||||
UBOOT_LOADADDRESS = "0x82400000"
|
||||
UBOOT_ENTRYPOINT = "0x82400000"
|
||||
UBOOT_RD_LOADADDRESS = "0x84000000"
|
||||
UBOOT_RD_ENTRYPOINT = "0x84000000"
|
||||
UBOOT_DTB_LOADADDRESS = "0x84f00000"
|
||||
UBOOT_DTBO_LOADADDRESS = "0x84f80000"
|
||||
|
||||
@@ -8,6 +8,7 @@ KERNEL_DEVICETREE_PREFIX = " \
|
||||
ti/k3-am62-lp \
|
||||
ti/k3-am625-sk \
|
||||
ti/k3-am62x-sk-dmtimer-pwm \
|
||||
ti/k3-am62x-sk-ecap-capture \
|
||||
ti/k3-am62x-sk-eqep \
|
||||
ti/k3-am62x-sk-hdmi \
|
||||
ti/k3-am62x-sk-lpm \
|
||||
|
||||
@@ -4,4 +4,16 @@
|
||||
|
||||
require conf/machine/include/k3r5.inc
|
||||
|
||||
UBOOT_MACHINE = "am64x_evm_r5_defconfig"
|
||||
UBOOT_MACHINE = ""
|
||||
|
||||
UBOOT_ECDSA_SIGN_CONFIG ?= "ecdsa"
|
||||
UBOOT_ECDSA_SIGN_CONFIG:bsp-ti-6_6 = ""
|
||||
UBOOT_ECDSA_SIGN_CONFIG:bsp-next = ""
|
||||
UBOOT_ECDSA_SIGN_CONFIG:bsp-mainline = ""
|
||||
|
||||
UBOOT_CONFIG = "${UBOOT_ECDSA_SIGN_CONFIG} main"
|
||||
|
||||
UBOOT_CONFIG[main] = "am64x_evm_r5_defconfig"
|
||||
UBOOT_CONFIG[ecdsa] = "am64x_evm_r5_defconfig"
|
||||
|
||||
UBOOT_CONFIG_MAKE_OPTS[ecdsa] = "${TI_SIGN_WITH_ECDSA_KEY}"
|
||||
|
||||
@@ -4,4 +4,21 @@
|
||||
|
||||
require conf/machine/include/am64xx.inc
|
||||
|
||||
UBOOT_MACHINE = "am64x_evm_a53_defconfig"
|
||||
UBOOT_ECDSA_SIGN_CONFIG ?= "ecdsa"
|
||||
UBOOT_ECDSA_SIGN_CONFIG:bsp-ti-6_6 = ""
|
||||
UBOOT_ECDSA_SIGN_CONFIG:bsp-next = ""
|
||||
UBOOT_ECDSA_SIGN_CONFIG:bsp-mainline = ""
|
||||
|
||||
ECDSA_BOOT_FILES ?= "tiboot3.bin-ecdsa tiboot3-*-evm.bin-ecdsa tispl.bin-ecdsa u-boot.img-ecdsa"
|
||||
ECDSA_BOOT_FILES:bsp-ti-6_6 = ""
|
||||
ECDSA_BOOT_FILES:bsp-next = ""
|
||||
ECDSA_BOOT_FILES:bsp-mainline = ""
|
||||
|
||||
UBOOT_MACHINE = ""
|
||||
UBOOT_CONFIG = "${UBOOT_ECDSA_SIGN_CONFIG} main"
|
||||
UBOOT_CONFIG[main] = "am64x_evm_a53_defconfig"
|
||||
UBOOT_CONFIG[ecdsa] = "am64x_evm_a53_defconfig"
|
||||
|
||||
UBOOT_CONFIG_MAKE_OPTS[ecdsa] = "${TI_SIGN_WITH_ECDSA_KEY}"
|
||||
|
||||
IMAGE_BOOT_FILES += "${ECDSA_BOOT_FILES}"
|
||||
|
||||
@@ -9,5 +9,5 @@ UBOOT_MACHINE:tie-test-builds = ""
|
||||
|
||||
UBOOT_CONFIG = ""
|
||||
UBOOT_CONFIG:prepend:tie-test-builds = "usbdfu main"
|
||||
UBOOT_CONFIG[main] = "am62x_evm_r5_defconfig"
|
||||
UBOOT_CONFIG[main] = "am65x_evm_r5_defconfig"
|
||||
UBOOT_CONFIG[usbdfu] = "am65x_evm_r5_usbdfu_defconfig"
|
||||
|
||||
@@ -45,6 +45,6 @@ MACHINE_FEATURES = "apm usbgadget usbhost vfat ext2 screen alsa mmip dsp gc320 p
|
||||
|
||||
IMAGE_FSTYPES += "tar.xz wic.xz wic.bmap"
|
||||
WKS_FILE ?= "sdimage-2part.wks"
|
||||
IMAGE_BOOT_FILES ?= "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES} ipc/dra7-ipu1-fw.xem4;dra7-ipu1-fw.xem4"
|
||||
IMAGE_BOOT_FILES += "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES} ipc/dra7-ipu1-fw.xem4;dra7-ipu1-fw.xem4"
|
||||
do_image_wic[depends] += "virtual/bootloader:do_deploy"
|
||||
do_image_wic[depends] += "ti-rtos-messageq-test-fw:do_deploy"
|
||||
|
||||
@@ -3,7 +3,8 @@ SOC_FAMILY:append = ":am62lxx"
|
||||
|
||||
MACHINE_FEATURES += "screen"
|
||||
|
||||
TFA_BOARD = "am62l"
|
||||
TFA_BOARD = "am62lx"
|
||||
TFA_K3_SYSTEM_SUSPEND = "1"
|
||||
TFA_PLATFORM = "k3low"
|
||||
|
||||
OPTEEMACHINE = "k3-am62lx"
|
||||
|
||||
@@ -30,4 +30,4 @@ OPTEEMACHINE = "k3-am64x"
|
||||
|
||||
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "prueth-fw pruhsr-fw prusw-fw pruprp-fw"
|
||||
|
||||
TI_WKS_BOOTLOADER_APPEND = "console=ttyS2,115200n8"
|
||||
SERIAL_CONSOLES = "115200;ttyS2"
|
||||
|
||||
@@ -43,7 +43,7 @@ MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS += "ti-pka-fw"
|
||||
|
||||
IMAGE_FSTYPES += "tar.xz wic.xz wic.bmap"
|
||||
|
||||
IMAGE_BOOT_FILES ?= "${SPL_BINARYNAME} u-boot.${UBOOT_SUFFIX} tiboot3.bin tiboot3-*-evm.bin"
|
||||
IMAGE_BOOT_FILES += "${SPL_BINARYNAME} u-boot.${UBOOT_SUFFIX} tiboot3.bin tiboot3-*-evm.bin"
|
||||
IMAGE_EFI_BOOT_FILES ?= "${IMAGE_BOOT_FILES}"
|
||||
|
||||
EFI_PROVIDER ?= "grub-efi"
|
||||
@@ -51,7 +51,7 @@ MACHINE_FEATURES += "efi"
|
||||
|
||||
WKS_FILE ?= "${@bb.utils.contains("MACHINE_FEATURES", "efi", "sdimage-2part-efi.wks.in", "sdimage-2part.wks", d)}"
|
||||
|
||||
TI_WKS_BOOTLOADER_APPEND ?= ""
|
||||
TI_WKS_BOOTLOADER_APPEND ?= "console=${KERNEL_CONSOLE}"
|
||||
|
||||
do_image_wic[depends] += "virtual/bootloader:do_deploy"
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
# well as a dedicated machine override.
|
||||
|
||||
# Supported options are: mainline, next, ti-6_18, ti-6_12, ti-6_6
|
||||
TI_PREFERRED_BSP ??= "ti-6_12"
|
||||
TI_PREFERRED_BSP ??= "ti-6_18"
|
||||
|
||||
# Use bsp-* namespace for overrides
|
||||
MACHINEOVERRIDES =. "bsp-${TI_PREFERRED_BSP}:"
|
||||
@@ -42,6 +42,10 @@ BSP_KERNEL_VERSION:bsp-ti-6_18 = "6.18%"
|
||||
BSP_BOOTLOADER_PROVIDER:bsp-ti-6_18 = "u-boot-ti-staging"
|
||||
BSP_BOOTLOADER_VERSION:bsp-ti-6_18 = "2026.01%"
|
||||
|
||||
BSP_ROGUE_DRIVER_PROVIDER:bsp-ti-6_18 = "ti-img-rogue-driver"
|
||||
BSP_ROGUE_DRIVER_VERSION:bsp-ti-6_18 = "25%"
|
||||
BSP_MESA_PVR_VERSION:bsp-ti-6_18 = "24%"
|
||||
|
||||
# ==========
|
||||
# ti-6_12
|
||||
# TI staging kernel 6.12, u-boot 2025.01
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
# TI_CORE_INITRAMFS_ENABLED = "0"
|
||||
#
|
||||
#------------------------------------------------------------------------------
|
||||
TI_CORE_INITRAMFS_ENABLED ?= "${@ '1' if d.getVar('TI_CORE_INITRAMFS_KERNEL_MODULES') or d.getVar('TI_CORE_INITRAMFS_EXTRA_INSTALL') else '0'}"
|
||||
TI_CORE_INITRAMFS_ENABLED ?= "${@ '1' if d.getVar('TI_CORE_INITRAMFS_KERNEL_MODULES') or d.getVar('TI_CORE_INITRAMFS_EXTRA_INSTALL') or bb.utils.contains('DISTRO_FEATURES', 'luks', True, False, d) else '0'}"
|
||||
|
||||
TI_CORE_INITRAMFS_KERNEL_MODULES ?= ""
|
||||
TI_CORE_INITRAMFS_EXTRA_INSTALL ?= ""
|
||||
|
||||
@@ -91,5 +91,5 @@ MACHINE_FEATURES = "apm usbgadget usbhost vfat ext2 alsa"
|
||||
|
||||
IMAGE_FSTYPES += "tar.xz wic.xz wic.bmap"
|
||||
WKS_FILE ?= "sdimage-2part.wks"
|
||||
IMAGE_BOOT_FILES ?= "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES}"
|
||||
IMAGE_BOOT_FILES += "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES}"
|
||||
do_image_wic[depends] += "virtual/bootloader:do_deploy"
|
||||
|
||||
@@ -63,5 +63,5 @@ MACHINE_FEATURES = "apm usbgadget usbhost vfat ext2 screen alsa"
|
||||
|
||||
IMAGE_FSTYPES += "tar.xz wic.xz wic.bmap"
|
||||
WKS_FILE ?= "sdimage-2part.wks"
|
||||
IMAGE_BOOT_FILES ?= "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES}"
|
||||
IMAGE_BOOT_FILES += "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} ${UBOOT_EXTLINUX_BOOT_FILES}"
|
||||
do_image_wic[depends] += "virtual/bootloader:do_deploy"
|
||||
|
||||
@@ -5,3 +5,11 @@
|
||||
require conf/machine/include/k3r5.inc
|
||||
|
||||
UBOOT_MACHINE = "j722s_evm_r5_defconfig"
|
||||
UBOOT_MACHINE:tie-test-builds = ""
|
||||
|
||||
UBOOT_CONFIG = "main"
|
||||
UBOOT_CONFIG:prepend:tie-test-builds = "usbdfu "
|
||||
UBOOT_CONFIG[main] = "j722s_evm_r5_defconfig"
|
||||
UBOOT_CONFIG[usbdfu] = "j722s_evm_r5_defconfig"
|
||||
|
||||
UBOOT_CONFIG_FRAGMENTS[usbdfu] = "am62x_r5_usbdfu.config"
|
||||
|
||||
@@ -0,0 +1,341 @@
|
||||
#!/bin/sh
|
||||
# initramfs-framework module for LUKS encryption with fTPM support
|
||||
|
||||
# Configuration
|
||||
BOOT_DEV="/dev/mmcblk1p1" # Boot partition (FAT, unencrypted)
|
||||
ROOT_DEV="/dev/mmcblk1p2" # Root partition (will be encrypted)
|
||||
CRYPT_NAME="root_crypt"
|
||||
CRYPT_DEV="/dev/mapper/${CRYPT_NAME}"
|
||||
BOOT_MNT="/boot_part"
|
||||
TPM_PRIMARY_CTX="/tmp/tpm_primary.ctx"
|
||||
TPM_KEY_PRIV="/tmp/tpm_key.priv"
|
||||
TPM_KEY_PUB="/tmp/tpm_key.pub"
|
||||
TPM_KEY_CTX="/tmp/tpm_key.ctx"
|
||||
TPM2_HANDLE="0x81080001" # TPM persistent handle for LUKS key
|
||||
ENCRYPTION_MARKER="${BOOT_MNT}/.encryption_in_progress"
|
||||
|
||||
# Wait for MMC device to appear
|
||||
wait_for_device() {
|
||||
local device="$1"
|
||||
local timeout="${2:-10}"
|
||||
|
||||
msg "Waiting for storage device ${device}..."
|
||||
for i in $(seq 1 ${timeout}); do
|
||||
if [ -b "${device}" ]; then
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
# Initialize fTPM and check availability
|
||||
init_ftpm() {
|
||||
msg "Initializing secure hardware (fTPM)..."
|
||||
|
||||
# Start TEE supplicant (required for fTPM TA to work)
|
||||
if [ -x /usr/sbin/tee-supplicant ]; then
|
||||
/usr/sbin/tee-supplicant -d &
|
||||
TEE_SUPPLICANT_PID=$!
|
||||
sleep 5
|
||||
else
|
||||
info "Warning: Trusted execution environment not available"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Load fTPM kernel module
|
||||
if ! /sbin/modprobe tpm_ftpm_tee; then
|
||||
info "Warning: TPM module failed to load"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Wait for TPM device
|
||||
for i in $(seq 1 10); do
|
||||
if [ -c /dev/tpmrm0 ]; then
|
||||
export TPM2TOOLS_TCTI="device:/dev/tpmrm0"
|
||||
return 0
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
|
||||
info "Warning: fTPM not available - encryption will be skipped"
|
||||
return 1
|
||||
}
|
||||
|
||||
# Generate 32-byte random key using TPM RNG
|
||||
generate_random_key() {
|
||||
/usr/bin/tpm2_getrandom --hex 32
|
||||
}
|
||||
|
||||
# Seal data with TPM and store in persistent handle
|
||||
tpm_seal_key() {
|
||||
local KEY_DATA="$1"
|
||||
|
||||
# Create primary key in owner hierarchy
|
||||
/usr/bin/tpm2_createprimary -C o -c "${TPM_PRIMARY_CTX}" -Q || return 1
|
||||
|
||||
# Create sealed object
|
||||
echo -n "${KEY_DATA}" | \
|
||||
/usr/bin/tpm2_create -C "${TPM_PRIMARY_CTX}" \
|
||||
-u "${TPM_KEY_PUB}" -r "${TPM_KEY_PRIV}" \
|
||||
-i- -Q || return 1
|
||||
|
||||
# Load sealed object into TPM
|
||||
/usr/bin/tpm2_load -C "${TPM_PRIMARY_CTX}" \
|
||||
-u "${TPM_KEY_PUB}" -r "${TPM_KEY_PRIV}" \
|
||||
-c "${TPM_KEY_CTX}" -Q || return 1
|
||||
|
||||
# Make key persistent at handle (stored in TPM NV RAM - RPMB)
|
||||
/usr/bin/tpm2_evictcontrol -C o -c "${TPM_KEY_CTX}" "${TPM2_HANDLE}" || return 1
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Unseal data from TPM persistent handle
|
||||
tpm_unseal_key() {
|
||||
# Check if persistent handle exists
|
||||
if ! /usr/bin/tpm2_getcap handles-persistent | grep -q "${TPM2_HANDLE}"; then
|
||||
debug "ERROR: TPM persistent handle not found"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Unseal key directly from persistent handle
|
||||
/usr/bin/tpm2_unseal -c "${TPM2_HANDLE}" || return 1
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Perform in-place LUKS encryption (first boot)
|
||||
encrypt_root_filesystem() {
|
||||
msg "=========================================="
|
||||
msg "First boot: Encrypting root filesystem"
|
||||
msg "=========================================="
|
||||
|
||||
# Set marker to track encryption progress
|
||||
touch "${ENCRYPTION_MARKER}"
|
||||
sync
|
||||
|
||||
# Generate random encryption key using TPM RNG
|
||||
msg "Generating encryption key..."
|
||||
LUKS_KEY=$(generate_random_key)
|
||||
|
||||
if [ -z "${LUKS_KEY}" ]; then
|
||||
msg "ERROR: Failed to generate encryption key"
|
||||
rm -f "${ENCRYPTION_MARKER}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Seal key with TPM before encryption starts
|
||||
msg "Securing key with TPM..."
|
||||
if ! tpm_seal_key "${LUKS_KEY}"; then
|
||||
msg "ERROR: Failed to secure key"
|
||||
rm -f "${ENCRYPTION_MARKER}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Filesystem check before encryption
|
||||
msg "Checking filesystem integrity..."
|
||||
/usr/sbin/e2fsck -f -y "${ROOT_DEV}"
|
||||
E2FSCK_RET=$?
|
||||
if [ ${E2FSCK_RET} -ge 4 ]; then
|
||||
msg "ERROR: Filesystem check failed"
|
||||
rm -f "${ENCRYPTION_MARKER}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Shrink filesystem before encryption to leave room for LUKS header
|
||||
msg "Preparing filesystem for encryption..."
|
||||
/usr/sbin/resize2fs -M "${ROOT_DEV}" || {
|
||||
msg "ERROR: Failed to prepare filesystem"
|
||||
rm -f "${ENCRYPTION_MARKER}"
|
||||
return 1
|
||||
}
|
||||
|
||||
# Verify partition has sufficient space for LUKS header
|
||||
msg "Verifying space for encryption..."
|
||||
MIN_BLOCKS=$(/usr/sbin/resize2fs -P "${ROOT_DEV}" 2>&1 | awk '/[Mm]inimum.*:/ {print $NF}')
|
||||
|
||||
# Get filesystem block size and device size
|
||||
BLOCK_SIZE=$(/usr/sbin/tune2fs -l "${ROOT_DEV}" 2>/dev/null | awk '/^Block size:/ {print $NF}')
|
||||
DEV_NAME=$(basename "${ROOT_DEV}")
|
||||
PART_SECTORS=$(cat /sys/class/block/"${DEV_NAME}"/size 2>/dev/null)
|
||||
|
||||
if [ -z "${MIN_BLOCKS}" ] || [ -z "${BLOCK_SIZE}" ] || [ -z "${PART_SECTORS}" ]; then
|
||||
msg "ERROR: Unable to determine partition geometry"
|
||||
rm -f "${ENCRYPTION_MARKER}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Convert filesystem blocks to 512-byte sectors
|
||||
MIN_SECTORS=$((MIN_BLOCKS * BLOCK_SIZE / 512))
|
||||
LUKS_SECTORS=65536 # 32MB in 512-byte sectors
|
||||
|
||||
if [ $((PART_SECTORS - MIN_SECTORS)) -lt ${LUKS_SECTORS} ]; then
|
||||
msg "ERROR: Insufficient space for LUKS header (need 32MB free)"
|
||||
rm -f "${ENCRYPTION_MARKER}"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Perform in-place encryption
|
||||
msg "=========================================="
|
||||
msg "Encrypting filesystem..."
|
||||
msg "This will take several minutes."
|
||||
msg "DO NOT POWER OFF THE DEVICE!"
|
||||
msg "=========================================="
|
||||
|
||||
echo -n "${LUKS_KEY}" | \
|
||||
/usr/sbin/cryptsetup reencrypt --encrypt \
|
||||
--type luks2 \
|
||||
--cipher aes-xts-plain64 \
|
||||
--key-size 256 \
|
||||
--hash sha256 \
|
||||
--reduce-device-size 32M \
|
||||
--key-file - \
|
||||
"${ROOT_DEV}" || {
|
||||
msg "ERROR: Encryption failed"
|
||||
rm -f "${ENCRYPTION_MARKER}"
|
||||
return 1
|
||||
}
|
||||
|
||||
msg "=========================================="
|
||||
msg "Encryption completed successfully!"
|
||||
msg "=========================================="
|
||||
|
||||
# Remove encryption marker
|
||||
rm -f "${ENCRYPTION_MARKER}"
|
||||
sync
|
||||
|
||||
# Unlock the newly encrypted device
|
||||
msg "Activating encrypted filesystem..."
|
||||
echo -n "${LUKS_KEY}" | \
|
||||
/usr/sbin/cryptsetup luksOpen "${ROOT_DEV}" "${CRYPT_NAME}" --key-file - || {
|
||||
msg "ERROR: Failed to activate encrypted filesystem"
|
||||
return 1
|
||||
}
|
||||
|
||||
# Resize filesystem to fit the encrypted device
|
||||
msg "Optimizing filesystem..."
|
||||
/usr/sbin/resize2fs -f "${CRYPT_DEV}" || {
|
||||
msg "ERROR: Failed to optimize filesystem"
|
||||
return 1
|
||||
}
|
||||
|
||||
# Verify filesystem after resize
|
||||
/usr/sbin/e2fsck -f -y "${CRYPT_DEV}" || {
|
||||
info "WARNING: Filesystem verification had issues, but continuing"
|
||||
}
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
# Unlock encrypted root filesystem (subsequent boots)
|
||||
unlock_encrypted_root() {
|
||||
msg "Unlocking encrypted filesystem..."
|
||||
|
||||
# Unseal key from TPM persistent handle
|
||||
LUKS_KEY=$(tpm_unseal_key)
|
||||
|
||||
if [ -z "${LUKS_KEY}" ]; then
|
||||
msg "ERROR: Failed to retrieve encryption key from TPM"
|
||||
msg "Attempting passphrase fallback..."
|
||||
|
||||
# Try to unlock with passphrase (interactive)
|
||||
/usr/sbin/cryptsetup luksOpen "${ROOT_DEV}" "${CRYPT_NAME}" || {
|
||||
fatal "ERROR: Failed to unlock encrypted filesystem"
|
||||
}
|
||||
else
|
||||
# Unlock with unsealed key
|
||||
echo -n "${LUKS_KEY}" | \
|
||||
/usr/sbin/cryptsetup luksOpen "${ROOT_DEV}" "${CRYPT_NAME}" --key-file - || {
|
||||
fatal "ERROR: Failed to unlock with TPM key"
|
||||
}
|
||||
fi
|
||||
|
||||
msg "Encrypted filesystem unlocked"
|
||||
}
|
||||
|
||||
# Module enabled check
|
||||
luksftpm_enabled() {
|
||||
# Always run this module - it handles both encrypted and unencrypted cases
|
||||
return 0
|
||||
}
|
||||
|
||||
# Module main function
|
||||
luksftpm_run() {
|
||||
# Wait for storage device
|
||||
if ! wait_for_device "${ROOT_DEV}" 10; then
|
||||
info "Storage device not found, skipping encryption module"
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Mount boot partition
|
||||
msg "Mounting boot partition..."
|
||||
mkdir -p "${BOOT_MNT}"
|
||||
if ! mount "${BOOT_DEV}" "${BOOT_MNT}"; then
|
||||
info "ERROR: Failed to mount boot partition, attempting standard boot..."
|
||||
mkdir -p ${ROOTFS_DIR}
|
||||
mount "${ROOT_DEV}" ${ROOTFS_DIR}
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Initialize fTPM
|
||||
TPM_AVAILABLE=0
|
||||
if init_ftpm; then
|
||||
TPM_AVAILABLE=1
|
||||
fi
|
||||
|
||||
# Check filesystem encryption status
|
||||
msg "Checking filesystem encryption status..."
|
||||
|
||||
MOUNT_DEV="${ROOT_DEV}"
|
||||
|
||||
if /usr/sbin/cryptsetup isLuks "${ROOT_DEV}"; then
|
||||
msg "Filesystem is encrypted"
|
||||
unlock_encrypted_root
|
||||
MOUNT_DEV="${CRYPT_DEV}"
|
||||
else
|
||||
msg "Filesystem is not encrypted"
|
||||
|
||||
# Check if encryption is enabled and TPM is available
|
||||
if [ $TPM_AVAILABLE -eq 1 ]; then
|
||||
# Check for encryption marker (resume interrupted encryption)
|
||||
if [ -f "${ENCRYPTION_MARKER}" ]; then
|
||||
msg "Resuming interrupted encryption..."
|
||||
if ! encrypt_root_filesystem; then
|
||||
msg "ERROR: Failed to resume encryption"
|
||||
msg "Booting without encryption..."
|
||||
MOUNT_DEV="${ROOT_DEV}"
|
||||
else
|
||||
MOUNT_DEV="${CRYPT_DEV}"
|
||||
fi
|
||||
else
|
||||
# First boot - perform encryption
|
||||
if encrypt_root_filesystem; then
|
||||
MOUNT_DEV="${CRYPT_DEV}"
|
||||
else
|
||||
msg "ERROR: Encryption failed - booting without encryption"
|
||||
MOUNT_DEV="${ROOT_DEV}"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
msg "TPM not available - skipping encryption"
|
||||
MOUNT_DEV="${ROOT_DEV}"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Unmount boot partition before switching root
|
||||
umount "${BOOT_MNT}"
|
||||
|
||||
# Mount root filesystem to $ROOTFS_DIR (framework expects this)
|
||||
msg "Mounting root filesystem..."
|
||||
mkdir -p ${ROOTFS_DIR}
|
||||
mount "${MOUNT_DEV}" ${ROOTFS_DIR} || {
|
||||
fatal "ERROR: Failed to mount root filesystem!"
|
||||
}
|
||||
|
||||
# Clean up tmpfs and sensitive variables
|
||||
rm -f "${TPM_PRIMARY_CTX}" "${TPM_KEY_PUB}" "${TPM_KEY_PRIV}" "${TPM_KEY_CTX}"
|
||||
unset LUKS_KEY TPM_AVAILABLE MOUNT_DEV TEE_SUPPLICANT_PID
|
||||
|
||||
msg "Boot complete"
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
SUMMARY = "initramfs support for LUKS encryption with fTPM"
|
||||
DESCRIPTION = "Provides LUKS2 full disk encryption using firmware TPM (fTPM) for key management on TI K3 platforms"
|
||||
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
|
||||
|
||||
# Only build for platforms with optee-ftpm support
|
||||
COMPATIBLE_MACHINE = "null"
|
||||
COMPATIBLE_MACHINE:k3 = "${@bb.utils.contains('MACHINE_FEATURES', 'optee-ftpm', '.*', 'null', d)}"
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI = "file://luksftpm"
|
||||
|
||||
S = "${UNPACKDIR}"
|
||||
|
||||
do_install() {
|
||||
install -d ${D}/init.d
|
||||
# Install as 85-luksftpm (runs after udev at 01, before rootfs at 90)
|
||||
install -m 0755 ${UNPACKDIR}/luksftpm ${D}/init.d/85-luksftpm
|
||||
}
|
||||
|
||||
FILES:${PN} = "/init.d/85-luksftpm"
|
||||
|
||||
# Runtime dependencies
|
||||
RDEPENDS:${PN} = "\
|
||||
initramfs-framework-base \
|
||||
busybox \
|
||||
kmod \
|
||||
cryptsetup \
|
||||
tpm2-tools \
|
||||
tpm2-tss \
|
||||
libtss2-tcti-device \
|
||||
optee-client \
|
||||
optee-ftpm \
|
||||
e2fsprogs-e2fsck \
|
||||
e2fsprogs-resize2fs \
|
||||
e2fsprogs-tune2fs \
|
||||
util-linux-blkid \
|
||||
kernel-module-tpm-ftpm-tee \
|
||||
"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
@@ -0,0 +1,3 @@
|
||||
LUKS_ENCRYPTION ?= "${@bb.utils.contains('MACHINE_FEATURES', 'optee-ftpm', 'initramfs-module-luks-ftpm', '', d)}"
|
||||
|
||||
RDEPENDS:${PN}:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'luks', '${LUKS_ENCRYPTION}', '', d)}"
|
||||
@@ -0,0 +1 @@
|
||||
INITRAMFS_MAXSIZE = "200000"
|
||||
@@ -13,11 +13,11 @@ COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j742s2|am62xx|am62pxx|j722s"
|
||||
|
||||
DEPENDS = "virtual/kernel"
|
||||
|
||||
BRANCH = "linuxws/scarthgap/k6.12/${PV}"
|
||||
BRANCH = "linuxws/scarthgap/k6.18/${PV}"
|
||||
|
||||
SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-driver.git;protocol=https;branch=${BRANCH}"
|
||||
|
||||
SRCREV = "72723eea0cab47c20e5734c1c7b9a441ed2d74c2"
|
||||
SRCREV = "d241b0d5df404c60b80233bb5116b596039062e6"
|
||||
|
||||
|
||||
TARGET_PRODUCT:j721e = "j721e_linux"
|
||||
@@ -9,19 +9,19 @@ INC_PR = "r4"
|
||||
# Firmware versions
|
||||
CORESDK_RTOS_VERSION = "08.02.00.04"
|
||||
PRUETH_FW_AM65X_VERSION = "08.00.00.20"
|
||||
PRUETH_FW_AM65X_SR2_VERSION = "02.02.15.10"
|
||||
PRUETH_FW_AM65X_SR2_VERSION = "02.02.16.00"
|
||||
GOODIX_FW_VERSION = "1.0.0.0"
|
||||
CADENCE_MHDP_FW_VERSION = "2.1.0"
|
||||
IMG_DEC_FW_VERSION = "1.0"
|
||||
CNM_WAVE521_FW_VERSION = "1.0.8"
|
||||
TI_DM_FW_VERSION = "11.02.07"
|
||||
TI_SYSFW_VERSION = "11.02.09"
|
||||
TI_SYSFW_VERSION = "12.00.02"
|
||||
TI_HSM_DEMO_FW_VERSION = "11.00.09"
|
||||
TI_PKA_FW_VERSION = "2.1.0"
|
||||
TI_IPC_EXAMPLES_FW_VERSION = "3.52.00.01"
|
||||
PCM6240_FW_VERSION = "1.0.0.0"
|
||||
|
||||
TI_LINUX_FW_SRCREV ?= "3c35ffe92dd85b5acfcbf350cd1a6cc829994b20"
|
||||
TI_LINUX_FW_SRCREV ?= "9e9d50ff563f83db86d36b72cd7fb4f487d6b414"
|
||||
SRCREV = "${TI_LINUX_FW_SRCREV}"
|
||||
|
||||
BRANCH ?= "ti-linux-firmware"
|
||||
|
||||
@@ -2,17 +2,17 @@
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/trusted-firmware-a:"
|
||||
|
||||
PV = "2.13+git"
|
||||
PV = "2.14+git"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
|
||||
SRCREV_tfa = "e0c4d3903b382bf34f552af53e6d955fae5283ab"
|
||||
SRCREV_tfa = "76500ceaeefcda967d8a1f4e30bb04f9fe0425a2"
|
||||
SRC_URI_TRUSTED_FIRMWARE_A = "git://git.trustedfirmware.org/TF-A/trusted-firmware-a.git;protocol=https"
|
||||
SRCBRANCH = "master"
|
||||
|
||||
LIC_FILES_CHKSUM:am62lxx = "file://docs/license.rst;md5=1118e32884721c0be33267bd7ae11130"
|
||||
SRCREV_tfa:am62lxx = "946454003b9f7e3c8e6d2284e00e0c07d5f56290"
|
||||
LIC_FILES_CHKSUM:am62lxx = "file://docs/license.rst;md5=6ed7bace7b0bc63021c6eba7b524039e"
|
||||
SRCREV_tfa:am62lxx = "17d2997c0e7d4549720a5d176916f5ea0f63b009"
|
||||
SRC_URI_TRUSTED_FIRMWARE_A:am62lxx = "git://github.com/TexasInstruments/arm-trusted-firmware.git;protocol=https"
|
||||
SRCBRANCH:am62lxx = "ti-master"
|
||||
SRCBRANCH:am62lxx = "ti-tfa-2.14.y"
|
||||
|
||||
SRC_URI = "${SRC_URI_TRUSTED_FIRMWARE_A};name=tfa;branch=${SRCBRANCH}"
|
||||
|
||||
@@ -30,14 +30,3 @@ EXTRA_OEMAKE += "${@ 'BL32_BASE=' + d.getVar('TFA_K3_BL32_BASE') if d.getVar('TF
|
||||
EXTRA_OEMAKE += "${@ 'PRELOADED_BL33_BASE=' + d.getVar('TFA_K3_PRELOADED_BL33') if d.getVar('TFA_K3_PRELOADED_BL33') else ''}"
|
||||
EXTRA_OEMAKE += "${@ 'K3_PM_SYSTEM_SUSPEND=' + d.getVar('TFA_K3_SYSTEM_SUSPEND') if d.getVar('TFA_K3_SYSTEM_SUSPEND') else ''}"
|
||||
EXTRA_OEMAKE:append:ti-falcon = " PRELOADED_BL33_BASE=0x82000000 K3_HW_CONFIG_BASE=0x88000000"
|
||||
|
||||
# LPM support patches for Jacinto platforms (J7200, J742S2, J784S4)
|
||||
TFA_JACINTO_LPM_PATCHES = " \
|
||||
file://0001-feat-k3-choose-cluster_start_id-depending-on-the-soc.patch \
|
||||
file://0002-feat-ti-add-message-to-encrypt-tfa-during-suspend.patch \
|
||||
file://0003-feat-k3-handle-suspend-in-case-of-LPM_BOARDCFG_MANAG.patch \
|
||||
"
|
||||
|
||||
SRC_URI:append:j7200 = " ${TFA_JACINTO_LPM_PATCHES}"
|
||||
SRC_URI:append:j742s2 = " ${TFA_JACINTO_LPM_PATCHES}"
|
||||
SRC_URI:append:j784s4 = " ${TFA_JACINTO_LPM_PATCHES}"
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
From 3de4f871d9bfe29c3862860e494bfa70ba72af3e Mon Sep 17 00:00:00 2001
|
||||
From: Abhash Kumar Jha <a-kumar2@ti.com>
|
||||
Date: Mon, 20 Oct 2025 11:26:17 +0530
|
||||
Subject: [PATCH 1/3] feat(k3): choose cluster_start_id depending on the soc
|
||||
|
||||
The CLUSTER_DEVICE_START_ID denotes the device id of the A-core cluster.
|
||||
It is utilized when powering off the entire cluster.
|
||||
|
||||
J7200, J721E and J721S2 have a different cluster_start_id than their
|
||||
"generic" counterparts.
|
||||
|
||||
Query the JTAG_ID register to get the part id and choose the
|
||||
cluster_start_id depending on that.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Change-Id: I44d3ac0ec646c39019e4c0167d34f410015a147a
|
||||
Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
|
||||
---
|
||||
plat/ti/k3/common/k3_bl31_setup.c | 1 +
|
||||
plat/ti/k3/common/k3_psci.c | 25 ++++++++++++++++++++++++-
|
||||
plat/ti/k3/include/platform_def.h | 16 ++++++++++++++++
|
||||
3 files changed, 41 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/plat/ti/k3/common/k3_bl31_setup.c b/plat/ti/k3/common/k3_bl31_setup.c
|
||||
index 1b93dc860..79a9c924c 100644
|
||||
--- a/plat/ti/k3/common/k3_bl31_setup.c
|
||||
+++ b/plat/ti/k3/common/k3_bl31_setup.c
|
||||
@@ -20,6 +20,7 @@ const mmap_region_t plat_k3_mmap[] = {
|
||||
K3_MAP_REGION_FLAT(SEC_PROXY_RT_BASE, SEC_PROXY_RT_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
|
||||
K3_MAP_REGION_FLAT(SEC_PROXY_SCFG_BASE, SEC_PROXY_SCFG_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
|
||||
K3_MAP_REGION_FLAT(SEC_PROXY_DATA_BASE, SEC_PROXY_DATA_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
|
||||
+ K3_MAP_REGION_FLAT(WKUP_CTRL_MMR0_BASE, WKUP_CTRL_MMR0_SIZE, MT_DEVICE | MT_RW | MT_SECURE),
|
||||
{ /* sentinel */ }
|
||||
};
|
||||
|
||||
diff --git a/plat/ti/k3/common/k3_psci.c b/plat/ti/k3/common/k3_psci.c
|
||||
index ec37d9f4c..a443dd851 100644
|
||||
--- a/plat/ti/k3/common/k3_psci.c
|
||||
+++ b/plat/ti/k3/common/k3_psci.c
|
||||
@@ -11,6 +11,8 @@
|
||||
#include <common/debug.h>
|
||||
#include <lib/el3_runtime/cpu_data.h>
|
||||
#include <lib/psci/psci.h>
|
||||
+#include <lib/mmio.h>
|
||||
+#include <lib/utils_def.h>
|
||||
#include <plat/common/platform.h>
|
||||
|
||||
#include <ti_sci_protocol.h>
|
||||
@@ -83,6 +85,27 @@ static int k3_pwr_domain_on(u_register_t mpidr)
|
||||
return PSCI_E_SUCCESS;
|
||||
}
|
||||
|
||||
+uint32_t get_plat_cluster_start_id()
|
||||
+{
|
||||
+ static uint32_t cluster_id;
|
||||
+ uint32_t part_id, jtag_id_reg;
|
||||
+
|
||||
+ if (cluster_id) {
|
||||
+ return cluster_id;
|
||||
+ }
|
||||
+
|
||||
+ jtag_id_reg = mmio_read_32(WKUP_CTRL_MMR0_BASE + JTAG_ID);
|
||||
+ part_id = EXTRACT(JTAG_PART_ID, jtag_id_reg);
|
||||
+
|
||||
+ if ((part_id == J7200_PART_ID) || (part_id == J721E_PART_ID) || (part_id == J721S2_PART_ID)) {
|
||||
+ cluster_id = J7_PLAT_CLUSTER_DEVICE_START_ID;
|
||||
+ } else {
|
||||
+ cluster_id = PLAT_CLUSTER_DEVICE_START_ID;
|
||||
+ }
|
||||
+
|
||||
+ return cluster_id;
|
||||
+}
|
||||
+
|
||||
void k3_pwr_domain_off(const psci_power_state_t *target_state)
|
||||
{
|
||||
int core, cluster, proc_id, device_id, cluster_id, ret;
|
||||
@@ -97,7 +120,7 @@ void k3_pwr_domain_off(const psci_power_state_t *target_state)
|
||||
cluster = MPIDR_AFFLVL1_VAL(read_mpidr_el1());
|
||||
proc_id = PLAT_PROC_START_ID + core;
|
||||
device_id = PLAT_PROC_DEVICE_START_ID + core;
|
||||
- cluster_id = PLAT_CLUSTER_DEVICE_START_ID + (cluster * 2);
|
||||
+ cluster_id = get_plat_cluster_start_id() + (cluster * 2);
|
||||
|
||||
/*
|
||||
* If we are the last core in the cluster then we take a reference to
|
||||
diff --git a/plat/ti/k3/include/platform_def.h b/plat/ti/k3/include/platform_def.h
|
||||
index db5e31d95..d191781a6 100644
|
||||
--- a/plat/ti/k3/include/platform_def.h
|
||||
+++ b/plat/ti/k3/include/platform_def.h
|
||||
@@ -25,6 +25,22 @@
|
||||
#define SEC_PROXY_RT_SIZE 0x80000
|
||||
#endif /* K3_SEC_PROXY_LITE */
|
||||
|
||||
+#define WKUP_CTRL_MMR0_BASE UL(0x43000000)
|
||||
+#define WKUP_CTRL_MMR0_SIZE UL(0x20000)
|
||||
+#define JTAG_ID U(0x14)
|
||||
+#define JTAG_PART_ID_MASK GENMASK(27, 12)
|
||||
+
|
||||
+#define J721E_PART_ID U(0xBB64)
|
||||
+#define J7200_PART_ID U(0xBB6D)
|
||||
+#define J721S2_PART_ID U(0xBB75)
|
||||
+#define J784S4_J742S2_PART_ID U(0xBB80)
|
||||
+
|
||||
+#define JTAG_PART_ID_WIDTH U(0x10)
|
||||
+#define JTAG_PART_ID_SHIFT U(0xC)
|
||||
+
|
||||
+/* A-core Cluster Device ID for j721e, j7200 and j721s2 */
|
||||
+#define J7_PLAT_CLUSTER_DEVICE_START_ID U(0x4)
|
||||
+
|
||||
#define SEC_PROXY_TIMEOUT_US 1000000
|
||||
#define SEC_PROXY_MAX_MESSAGE_SIZE 56
|
||||
|
||||
--
|
||||
2.34.1
|
||||
@@ -1,194 +0,0 @@
|
||||
From c79ff3679a4360bb848b01d4036c365533fcf791 Mon Sep 17 00:00:00 2001
|
||||
From: Richard Genoud <richard.genoud@bootlin.com>
|
||||
Date: Tue, 11 Feb 2025 18:20:17 +0100
|
||||
Subject: [PATCH 2/3] feat(ti): add message to encrypt tfa during suspend
|
||||
|
||||
At suspend, BL31 with its context will be encrypted by TIFS in DDR.
|
||||
Encryption is needed for security matters, so that the BL31 is not
|
||||
modified before entering suspend or early at resume.
|
||||
|
||||
We only need the encryption function here because the decryption message
|
||||
will be send by the R5 SPL at resume.
|
||||
|
||||
Also introduce the LPM_ENCRYPT_IMAGE cap signals that FW has the support
|
||||
to encrypt the image using the TISCI_MSG_LPM_ENCRYPT tisci message.
|
||||
|
||||
This is useful in suspend to ram cases where we would like to
|
||||
store the encrypted image of a secure fw instead of the original image
|
||||
itself in the DDR.
|
||||
|
||||
Check for LPM_ENCRYPT_IMAGE flag in the FW capabilities, and only then
|
||||
call encrypt.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Change-Id: I266472da87dd0821493019b2d9853f8886f33811
|
||||
Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
|
||||
Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
|
||||
---
|
||||
drivers/ti/ti_sci/ti_sci.c | 36 +++++++++++++++++++++++++++++
|
||||
drivers/ti/ti_sci/ti_sci.h | 7 ++++++
|
||||
drivers/ti/ti_sci/ti_sci_protocol.h | 32 +++++++++++++++++++++++++
|
||||
plat/ti/k3/common/k3_psci.c | 10 ++++++++
|
||||
4 files changed, 85 insertions(+)
|
||||
|
||||
diff --git a/drivers/ti/ti_sci/ti_sci.c b/drivers/ti/ti_sci/ti_sci.c
|
||||
index f0813e5b0..ee5f7166f 100644
|
||||
--- a/drivers/ti/ti_sci/ti_sci.c
|
||||
+++ b/drivers/ti/ti_sci/ti_sci.c
|
||||
@@ -1784,3 +1784,39 @@ int ti_sci_lpm_get_next_sys_mode(uint8_t *next_mode)
|
||||
|
||||
return 0;
|
||||
}
|
||||
+/*
|
||||
+ * ti_sci_encrypt_tfa - Ask TIFS to encrypt TFA at a specific address
|
||||
+ *
|
||||
+ * @src_tfa_addr: Address where the TFA lies unencrypted
|
||||
+ * @src_tfa_len: Size of the TFA unencrypted
|
||||
+ *
|
||||
+ * Return: 0 if all goes well, else appropriate error message
|
||||
+ */
|
||||
+int ti_sci_encrypt_tfa(uint64_t src_tfa_addr,
|
||||
+ uint32_t src_tfa_len)
|
||||
+{
|
||||
+ struct ti_sci_msg_req_encrypt_tfa req = { 0 };
|
||||
+ struct ti_sci_msg_resp_encrypt_tfa resp = { 0 };
|
||||
+ struct ti_sci_xfer xfer;
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = ti_sci_setup_one_xfer(TISCI_MSG_LPM_ENCRYPT_TFA, 0,
|
||||
+ &req, sizeof(req),
|
||||
+ &resp, sizeof(resp),
|
||||
+ &xfer);
|
||||
+ if (ret != 0U) {
|
||||
+ ERROR("Message alloc failed (%d)\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ req.src_tfa_addr = src_tfa_addr;
|
||||
+ req.src_tfa_len = src_tfa_len;
|
||||
+
|
||||
+ ret = ti_sci_do_xfer(&xfer);
|
||||
+ if (ret != 0U) {
|
||||
+ ERROR("Transfer send failed (%d)\n", ret);
|
||||
+ return ret;
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/drivers/ti/ti_sci/ti_sci.h b/drivers/ti/ti_sci/ti_sci.h
|
||||
index 1f1963274..2afa11317 100644
|
||||
--- a/drivers/ti/ti_sci/ti_sci.h
|
||||
+++ b/drivers/ti/ti_sci/ti_sci.h
|
||||
@@ -258,6 +258,11 @@ int ti_sci_proc_wait_boot_status_no_wait(uint8_t proc_id,
|
||||
*
|
||||
* Return: 0 if all goes well, else appropriate error message
|
||||
*
|
||||
+ * - ti_sci_encrypt_tfa - Ask TIFS to encrypt TFA at a specific address
|
||||
+ *
|
||||
+ * @src_tfa_addr: Address where the TFA lies unencrypted
|
||||
+ * @src_tfa_len: Size of the TFA unencrypted
|
||||
+ *
|
||||
* NOTE: for all these functions, the following are generic in nature:
|
||||
* Returns 0 for successful request, else returns corresponding error message.
|
||||
*/
|
||||
@@ -265,5 +270,7 @@ int ti_sci_enter_sleep(uint8_t proc_id,
|
||||
uint8_t mode,
|
||||
uint64_t core_resume_addr);
|
||||
int ti_sci_lpm_get_next_sys_mode(uint8_t *next_mode);
|
||||
+int ti_sci_encrypt_tfa(uint64_t src_tfa_addr,
|
||||
+ uint32_t src_tfa_len);
|
||||
|
||||
#endif /* TI_SCI_H */
|
||||
diff --git a/drivers/ti/ti_sci/ti_sci_protocol.h b/drivers/ti/ti_sci/ti_sci_protocol.h
|
||||
index bdd24622a..a165cda99 100644
|
||||
--- a/drivers/ti/ti_sci/ti_sci_protocol.h
|
||||
+++ b/drivers/ti/ti_sci/ti_sci_protocol.h
|
||||
@@ -53,6 +53,9 @@
|
||||
#define TISCI_MSG_GET_PROC_BOOT_STATUS 0xc400
|
||||
#define TISCI_MSG_WAIT_PROC_BOOT_STATUS 0xc401
|
||||
|
||||
+/* TFA encrypt/decrypt messages */
|
||||
+#define TISCI_MSG_LPM_ENCRYPT_TFA 0x030F
|
||||
+
|
||||
/**
|
||||
* struct ti_sci_secure_msg_hdr - Header that prefixes all TISCI messages sent
|
||||
* via secure transport.
|
||||
@@ -160,6 +163,7 @@ struct ti_sci_msg_resp_query_fw_caps {
|
||||
#define MSG_FLAG_CAPS_LPM_STANDBY TI_SCI_MSG_FLAG(3)
|
||||
#define MSG_FLAG_CAPS_LPM_PARTIAL_IO TI_SCI_MSG_FLAG(4)
|
||||
#define MSG_FLAG_CAPS_LPM_DM_MANAGED TI_SCI_MSG_FLAG(5)
|
||||
+#define MSG_FLAG_CAPS_LPM_ENCRYPT_IMAGE TI_SCI_MSG_FLAG(11)
|
||||
uint64_t fw_caps;
|
||||
} __packed;
|
||||
|
||||
@@ -810,4 +814,32 @@ struct ti_sci_msg_resp_lpm_get_next_sys_mode {
|
||||
uint8_t mode;
|
||||
} __packed;
|
||||
|
||||
+/*
|
||||
+ * struct ti_sci_msg_req_encrypt_tfa - Request for TISCI_MSG_LPM_ENCRYPT_TFA.
|
||||
+ *
|
||||
+ * @hdr Generic Header
|
||||
+ * @src_tfa_addr: Address where the TFA lies unencrypted
|
||||
+ * @src_tfa_len: Size of the TFA unencrypted
|
||||
+ *
|
||||
+ * This message is to be sent when the system is going in suspend, just before
|
||||
+ * TI_SCI_MSG_ENTER_SLEEP.
|
||||
+ * The TIFS will then encrypt the TFA and store it in RAM, along with a private
|
||||
+ * header.
|
||||
+ * Upon resume, the SPL will ask TIFS to decrypt it back.
|
||||
+ */
|
||||
+struct ti_sci_msg_req_encrypt_tfa {
|
||||
+ struct ti_sci_msg_hdr hdr;
|
||||
+ uint64_t src_tfa_addr;
|
||||
+ uint32_t src_tfa_len;
|
||||
+} __packed;
|
||||
+
|
||||
+/*
|
||||
+ * struct ti_sci_msg_req_encrypt_tfa - Request for TISCI_MSG_LPM_ENCRYPT_TFA.
|
||||
+ *
|
||||
+ * @hdr Generic Header
|
||||
+ */
|
||||
+struct ti_sci_msg_resp_encrypt_tfa {
|
||||
+ struct ti_sci_msg_hdr hdr;
|
||||
+} __packed;
|
||||
+
|
||||
#endif /* TI_SCI_PROTOCOL_H */
|
||||
diff --git a/plat/ti/k3/common/k3_psci.c b/plat/ti/k3/common/k3_psci.c
|
||||
index a443dd851..c2017666b 100644
|
||||
--- a/plat/ti/k3/common/k3_psci.c
|
||||
+++ b/plat/ti/k3/common/k3_psci.c
|
||||
@@ -24,6 +24,7 @@
|
||||
#define SYSTEM_PWR_STATE(state) ((state)->pwr_domain_state[PLAT_MAX_PWR_LVL])
|
||||
|
||||
uintptr_t k3_sec_entrypoint;
|
||||
+bool encrypt_image;
|
||||
|
||||
static void k3_cpu_standby(plat_local_state_t cpu_state)
|
||||
{
|
||||
@@ -282,6 +283,11 @@ static void k3_pwr_domain_suspend_to_mode(const psci_power_state_t *target_state
|
||||
k3_gic_cpuif_disable();
|
||||
k3_gic_save_context();
|
||||
|
||||
+ if (encrypt_image)
|
||||
+ {
|
||||
+ ti_sci_encrypt_tfa((uint64_t)__TEXT_START__, BL31_SIZE);
|
||||
+ }
|
||||
+
|
||||
k3_pwr_domain_off(target_state);
|
||||
|
||||
ti_sci_enter_sleep(proc_id, mode, k3_sec_entrypoint);
|
||||
@@ -347,6 +353,10 @@ int plat_setup_psci_ops(uintptr_t sec_entrypoint,
|
||||
ERROR("Unable to query firmware capabilities (%d)\n", ret);
|
||||
}
|
||||
|
||||
+ if (fw_caps & MSG_FLAG_CAPS_LPM_ENCRYPT_IMAGE) {
|
||||
+ encrypt_image = true;
|
||||
+ }
|
||||
+
|
||||
/* If firmware does not support any known suspend mode */
|
||||
if (!(fw_caps & (MSG_FLAG_CAPS_LPM_DEEP_SLEEP |
|
||||
MSG_FLAG_CAPS_LPM_MCU_ONLY |
|
||||
--
|
||||
2.34.1
|
||||
@@ -1,68 +0,0 @@
|
||||
From 470cf022d03e350beab36605d4250944d2c92ffe Mon Sep 17 00:00:00 2001
|
||||
From: Abhash Kumar Jha <a-kumar2@ti.com>
|
||||
Date: Tue, 28 Oct 2025 23:24:22 +0530
|
||||
Subject: [PATCH 3/3] feat(k3): handle suspend in case of LPM_BOARDCFG_MANAGED
|
||||
|
||||
The J7 platforms support LPM_BOARDCFG_MANAGED capability where the
|
||||
low power mode configuration is done statically for the DM via the
|
||||
pm-boardcfg.
|
||||
|
||||
This is entirely opposite to the case of DM_MANAGED, where the DM fw
|
||||
decides the low power mode to enter into.
|
||||
|
||||
Introduce LPM_BOARDCFG_MANAGED cap to handle suspend for those
|
||||
platforms as well.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Change-Id: Iaa0ab478cbe0db6652f61e9d733c0fddb4bab234
|
||||
Signed-off-by: Abhash Kumar Jha <a-kumar2@ti.com>
|
||||
---
|
||||
drivers/ti/ti_sci/ti_sci_protocol.h | 1 +
|
||||
plat/ti/k3/common/k3_psci.c | 13 ++++++++-----
|
||||
2 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/ti/ti_sci/ti_sci_protocol.h b/drivers/ti/ti_sci/ti_sci_protocol.h
|
||||
index a165cda99..b83174b0d 100644
|
||||
--- a/drivers/ti/ti_sci/ti_sci_protocol.h
|
||||
+++ b/drivers/ti/ti_sci/ti_sci_protocol.h
|
||||
@@ -164,6 +164,7 @@ struct ti_sci_msg_resp_query_fw_caps {
|
||||
#define MSG_FLAG_CAPS_LPM_PARTIAL_IO TI_SCI_MSG_FLAG(4)
|
||||
#define MSG_FLAG_CAPS_LPM_DM_MANAGED TI_SCI_MSG_FLAG(5)
|
||||
#define MSG_FLAG_CAPS_LPM_ENCRYPT_IMAGE TI_SCI_MSG_FLAG(11)
|
||||
+#define MSG_FLAG_CAPS_LPM_BOARDCFG_MANAGED TI_SCI_MSG_FLAG(12)
|
||||
uint64_t fw_caps;
|
||||
} __packed;
|
||||
|
||||
diff --git a/plat/ti/k3/common/k3_psci.c b/plat/ti/k3/common/k3_psci.c
|
||||
index c2017666b..9cf41b4cb 100644
|
||||
--- a/plat/ti/k3/common/k3_psci.c
|
||||
+++ b/plat/ti/k3/common/k3_psci.c
|
||||
@@ -357,17 +357,20 @@ int plat_setup_psci_ops(uintptr_t sec_entrypoint,
|
||||
encrypt_image = true;
|
||||
}
|
||||
|
||||
- /* If firmware does not support any known suspend mode */
|
||||
- if (!(fw_caps & (MSG_FLAG_CAPS_LPM_DEEP_SLEEP |
|
||||
+ /* If firmware is capabale of low power modes */
|
||||
+ if (fw_caps & (MSG_FLAG_CAPS_LPM_DM_MANAGED |
|
||||
+ MSG_FLAG_CAPS_LPM_BOARDCFG_MANAGED)) {
|
||||
+ k3_plat_psci_ops.pwr_domain_suspend = k3_pwr_domain_suspend_dm_managed;
|
||||
+ } else if (!(fw_caps & (MSG_FLAG_CAPS_LPM_DEEP_SLEEP |
|
||||
MSG_FLAG_CAPS_LPM_MCU_ONLY |
|
||||
MSG_FLAG_CAPS_LPM_STANDBY |
|
||||
MSG_FLAG_CAPS_LPM_PARTIAL_IO))) {
|
||||
- /* Disable PSCI suspend support */
|
||||
+ /* If firmware does not support any known suspend mode
|
||||
+ * disable PSCI suspend support
|
||||
+ */
|
||||
k3_plat_psci_ops.pwr_domain_suspend = NULL;
|
||||
k3_plat_psci_ops.pwr_domain_suspend_finish = NULL;
|
||||
k3_plat_psci_ops.get_sys_suspend_power_state = NULL;
|
||||
- } else if (fw_caps & MSG_FLAG_CAPS_LPM_DM_MANAGED) {
|
||||
- k3_plat_psci_ops.pwr_domain_suspend = k3_pwr_domain_suspend_dm_managed;
|
||||
}
|
||||
|
||||
*psci_ops = &k3_plat_psci_ops;
|
||||
--
|
||||
2.34.1
|
||||
@@ -4,7 +4,9 @@
|
||||
COMPATIBLE_MACHINE:tie-jailhouse = "am62xx|am62pxx|am62lxx"
|
||||
|
||||
BRANCH:tie-jailhouse:bsp-ti-6_12 = "ti-u-boot-2025.01-jailhouse"
|
||||
BRANCH:tie-jailhouse:bsp-ti-6_18 = "ti-u-boot-2026.01-jailhouse"
|
||||
|
||||
SRCREV_uboot:tie-jailhouse:bsp-ti-6_12 = "e718bbcec3ebf663c021839753034a224be4cc53"
|
||||
SRCREV_uboot:tie-jailhouse:bsp-ti-6_18 = "53a287d24610f0747ae4e35cff2afa3af23a48e3"
|
||||
|
||||
UBOOT_GIT_URI:tie-jailhouse = "git://git.ti.com/git/processor-sdk/u-boot.git"
|
||||
|
||||
@@ -4,4 +4,6 @@ PR = "r0"
|
||||
|
||||
BRANCH = "ti-u-boot-2025.01"
|
||||
|
||||
SRCREV_uboot = "ef2eb76b650415637bd93b0eddfb1e31489117f9"
|
||||
SRCREV_uboot = "7b9dedb046eb6a720997f61582c7b13da1b5b9f0"
|
||||
|
||||
SRC_URI += "file://0001-binman-migrate-form-pkg_resources-to-importlib.patch"
|
||||
|
||||
@@ -4,6 +4,4 @@ PR = "r0"
|
||||
|
||||
BRANCH = "ti-u-boot-2026.01"
|
||||
|
||||
SRCREV_uboot = "65c7cac7324df20db0cfec1377fc3728018d5808"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
SRCREV_uboot = "2549829cc194ffd9e38b755d2e10c7fc4cd971eb"
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
From 538719cb6a77934d069e0e64f264457a59a9ebfc Mon Sep 17 00:00:00 2001
|
||||
From: Yannic Moog <y.moog@phytec.de>
|
||||
Date: Tue, 1 Jul 2025 07:45:37 +0200
|
||||
Subject: [PATCH] binman: migrate from pkg_resources to importlib
|
||||
|
||||
pkg_resources is deprecated, use migration guide in [1] to migrate to
|
||||
importlib.resources.
|
||||
Keep the Python 3.6 backwards compatibility.
|
||||
This also fixes the binman version test which failed for setuptools
|
||||
versions that print the deprecation warning.
|
||||
Change from __name__ to __package__ as with the transition from
|
||||
pkg_resources to importlib_resources using __name__ results in
|
||||
TypeErrors [2].
|
||||
|
||||
[1] https://importlib-resources.readthedocs.io/en/latest/migration.html
|
||||
[2] https://github.com/python/importlib_resources/issues/60
|
||||
|
||||
Reviewed-by: Bryan Brattlof <bb@ti.com>
|
||||
Signed-off-by: Yannic Moog <y.moog@phytec.de>
|
||||
|
||||
Upstream-Status: Backport
|
||||
---
|
||||
tools/binman/control.py | 12 ++++++------
|
||||
1 file changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/tools/binman/control.py b/tools/binman/control.py
|
||||
index af447d792a7f..1307222591de 100644
|
||||
--- a/tools/binman/control.py
|
||||
+++ b/tools/binman/control.py
|
||||
@@ -8,12 +8,11 @@
|
||||
from collections import OrderedDict
|
||||
import glob
|
||||
try:
|
||||
- import importlib.resources
|
||||
+ import importlib.resources as importlib_resources
|
||||
except ImportError: # pragma: no cover
|
||||
# for Python 3.6
|
||||
import importlib_resources
|
||||
import os
|
||||
-import pkg_resources
|
||||
import re
|
||||
|
||||
import sys
|
||||
@@ -96,7 +95,7 @@ def _FinishTag(tag, msg, result):
|
||||
msg = ''
|
||||
return tag, msg
|
||||
|
||||
- my_data = pkg_resources.resource_string(__name__, 'missing-blob-help')
|
||||
+ my_data = importlib_resources.files(__package__).joinpath('missing-blob-help').read_bytes()
|
||||
re_tag = re.compile('^([-a-z0-9]+):$')
|
||||
result = {}
|
||||
tag = None
|
||||
@@ -151,8 +150,9 @@ def GetEntryModules(include_testing=True):
|
||||
Returns:
|
||||
Set of paths to entry class filenames
|
||||
"""
|
||||
- glob_list = pkg_resources.resource_listdir(__name__, 'etype')
|
||||
- glob_list = [fname for fname in glob_list if fname.endswith('.py')]
|
||||
+ entries = importlib_resources.files(__package__).joinpath('etype')
|
||||
+ glob_list = [entry.name for entry in entries.iterdir()
|
||||
+ if entry.name.endswith('.py') and entry.is_file()]
|
||||
return set([os.path.splitext(os.path.basename(item))[0]
|
||||
for item in glob_list
|
||||
if include_testing or '_testing' not in item])
|
||||
@@ -756,7 +756,7 @@ def Binman(args):
|
||||
global state
|
||||
|
||||
if args.full_help:
|
||||
- with importlib.resources.path('binman', 'README.rst') as readme:
|
||||
+ with importlib_resources.path('binman', 'README.rst') as readme:
|
||||
tools.print_full_help(str(readme))
|
||||
return 0
|
||||
|
||||
@@ -21,8 +21,9 @@ SRC_URI = " \
|
||||
file://0001-Update-lp_bld_misc.cpp-to-support-llvm-19.patch \
|
||||
"
|
||||
|
||||
SRCREV = "68af6a102c2298569e77d1aa8bccc1ff61438b3e"
|
||||
SRCREV = "7c82c1eebc67f5a62a347a84d42fe795cf7f523b"
|
||||
PV = "24.0.1"
|
||||
PR = "r1"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
|
||||
@@ -6,9 +6,9 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=7232b98c1c58f99e3baa03de5207e76f"
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
COMPATIBLE_MACHINE = "j721e|j721s2|j784s4|j742s2|am62xx|am62pxx|j722s"
|
||||
|
||||
BRANCH = "linuxws/scarthgap/k6.12/${PV}"
|
||||
BRANCH = "linuxws/scarthgap/k6.18/${PV}"
|
||||
SRC_URI = "git://git.ti.com/git/graphics/ti-img-rogue-umlibs.git;protocol=https;branch=${BRANCH}"
|
||||
SRCREV = "adcbb5c620ff172da4152c02a2fee8f42dc4c472"
|
||||
SRCREV = "2ecc98c61aedd931d8acf6fb4a1150ebf57fb178"
|
||||
|
||||
TARGET_PRODUCT:j721e = "j721e_linux"
|
||||
TARGET_PRODUCT:j721s2 = "j721s2_linux"
|
||||
@@ -1,6 +1,6 @@
|
||||
From 5a05e5b66dd3831a9c9c2b3f64bd42419d9ade2d Mon Sep 17 00:00:00 2001
|
||||
From: Denys Dmytriyenko <denys@konsulko.com>
|
||||
Date: Thu, 6 Jul 2023 01:48:41 +0000
|
||||
From 3cddacaa9ea3cfd75732ea9a84312fa68e0bfda7 Mon Sep 17 00:00:00 2001
|
||||
From: Ryan Eatmon <reatmon@ti.com>
|
||||
Date: Tue, 24 Mar 2026 10:52:59 -0500
|
||||
Subject: [PATCH] Revert require GL_EXT_unpack_subimage commit
|
||||
|
||||
This reverts commit 593d5af43a8e2c2a3371088fa7ae430d0517c82d.
|
||||
@@ -13,83 +13,76 @@ Upstream-Status: Inappropriate [specific to TI SGX]
|
||||
|
||||
Signed-off-by: Andrew Davis <afd@ti.com>
|
||||
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
|
||||
|
||||
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
|
||||
---
|
||||
libweston/renderer-gl/gl-renderer-internal.h | 2 ++
|
||||
libweston/renderer-gl/gl-renderer.c | 29 ++++++++++++++++----
|
||||
2 files changed, 26 insertions(+), 5 deletions(-)
|
||||
libweston/renderer-gl/gl-renderer.c | 26 ++++++++++++++++----
|
||||
2 files changed, 23 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/libweston/renderer-gl/gl-renderer-internal.h b/libweston/renderer-gl/gl-renderer-internal.h
|
||||
index 5032035..85616c9 100644
|
||||
index 1afffbda..dbf7b1c3 100644
|
||||
--- a/libweston/renderer-gl/gl-renderer-internal.h
|
||||
+++ b/libweston/renderer-gl/gl-renderer-internal.h
|
||||
@@ -229,6 +229,8 @@ struct gl_renderer {
|
||||
PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC create_platform_window;
|
||||
bool has_platform_base;
|
||||
|
||||
+ bool has_unpack_subimage;
|
||||
@@ -526,6 +526,8 @@ struct gl_renderer {
|
||||
struct weston_log_scope *shader_scope;
|
||||
|
||||
struct dmabuf_allocator *allocator;
|
||||
+
|
||||
PFNEGLBINDWAYLANDDISPLAYWL bind_display;
|
||||
PFNEGLUNBINDWAYLANDDISPLAYWL unbind_display;
|
||||
PFNEGLQUERYWAYLANDBUFFERWL query_buffer;
|
||||
+ bool has_unpack_subimage;
|
||||
};
|
||||
|
||||
static inline uint32_t
|
||||
diff --git a/libweston/renderer-gl/gl-renderer.c b/libweston/renderer-gl/gl-renderer.c
|
||||
index e694418b..2be6d621 100644
|
||||
index 45a2a148..8b238208 100644
|
||||
--- a/libweston/renderer-gl/gl-renderer.c
|
||||
+++ b/libweston/renderer-gl/gl-renderer.c
|
||||
@@ -2523,6 +2523,7 @@ gl_renderer_flush_damage(struct weston_paint_node *pnode)
|
||||
struct weston_surface *surface = pnode->surface;
|
||||
const struct weston_testsuite_quirks *quirks =
|
||||
&surface->compositor->test_data.test_quirks;
|
||||
+ struct gl_renderer *gr = get_renderer(surface->compositor);
|
||||
struct weston_buffer *buffer = surface->buffer_ref.buffer;
|
||||
struct gl_surface_state *gs = get_surface_state(surface);
|
||||
struct gl_buffer_state *gb = gs->buffer;
|
||||
@@ -2550,6 +2551,24 @@ gl_renderer_flush_damage(struct weston_paint_node *pnode)
|
||||
|
||||
data = wl_shm_buffer_get_data(buffer->shm_buffer);
|
||||
|
||||
@@ -3021,6 +3021,22 @@ gl_renderer_flush_damage(struct weston_paint_node *pnode)
|
||||
|
||||
data = wl_shm_buffer_get_data(buffer->shm_buffer);
|
||||
|
||||
+ if (!gr->has_unpack_subimage) {
|
||||
+ wl_shm_buffer_begin_access(buffer->shm_buffer);
|
||||
+ for (j = 0; j < gs->buffer->num_textures; j++) {
|
||||
+ glBindTexture(GL_TEXTURE_2D, gs->buffer->textures[j]);
|
||||
+ glTexImage2D(GL_TEXTURE_2D, 0,
|
||||
+ gs->buffer->gl_format[j],
|
||||
+ gs->buffer->pitch / pixel_format_hsub(buffer->pixel_format, j),
|
||||
+ buffer->height / pixel_format_vsub(buffer->pixel_format, j),
|
||||
+ 0,
|
||||
+ gl_format_from_internal(gs->buffer->gl_format[j]),
|
||||
+ gs->buffer->gl_pixel_type,
|
||||
+ data + gs->buffer->offset[j]);
|
||||
+ for (j = 0; j < gb->num_textures; j++) {
|
||||
+ glBindTexture(GL_TEXTURE_2D, gb->textures[j]);
|
||||
+ gl_texture_2d_store(gr, 0, 0, 0,
|
||||
+ gb->pitch / pixel_format_hsub(buffer->pixel_format, j),
|
||||
+ buffer->height / pixel_format_vsub(buffer->pixel_format, j),
|
||||
+ gb->texture_format[j].external,
|
||||
+ gb->texture_format[j].type,
|
||||
+ data + gb->offset[j]);
|
||||
+ }
|
||||
+ wl_shm_buffer_end_access(buffer->shm_buffer);
|
||||
+
|
||||
+ goto done;
|
||||
+ }
|
||||
+
|
||||
if (gb->needs_full_upload || quirks->gl_force_full_upload) {
|
||||
wl_shm_buffer_begin_access(buffer->shm_buffer);
|
||||
|
||||
@@ -4754,11 +4773,9 @@ gl_renderer_setup(struct weston_compositor *ec)
|
||||
else
|
||||
ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
|
||||
|
||||
- if (gr->gl_version < gr_gl_version(3, 0) &&
|
||||
- !weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage")) {
|
||||
if (gb->needs_full_upload || quirks->force_full_upload) {
|
||||
wl_shm_buffer_begin_access(buffer->shm_buffer);
|
||||
|
||||
@@ -5171,11 +5187,9 @@ gl_renderer_setup(struct weston_compositor *ec)
|
||||
else
|
||||
ec->read_format = pixel_format_get_info(DRM_FORMAT_ABGR8888);
|
||||
|
||||
- if (gr->gl_version < gl_version(3, 0) &&
|
||||
- !gl_extensions_has(gr, EXTENSION_EXT_UNPACK_SUBIMAGE)) {
|
||||
- weston_log("GL_EXT_unpack_subimage not available.\n");
|
||||
- return -1;
|
||||
- }
|
||||
+ if (gr->gl_version >= gr_gl_version(3, 0) ||
|
||||
+ if (gr->gl_version >= gl_version(3, 0) ||
|
||||
+ weston_check_egl_extension(extensions, "GL_EXT_unpack_subimage"))
|
||||
+ gr->has_unpack_subimage = true;
|
||||
|
||||
if (gr->gl_version >= gr_gl_version(3, 0) ||
|
||||
weston_check_egl_extension(extensions, "GL_EXT_texture_type_2_10_10_10_REV"))
|
||||
@@ -4880,6 +4897,8 @@ gl_renderer_setup(struct weston_compositor *ec)
|
||||
gr_gl_version_minor(gr->gl_version));
|
||||
weston_log_continue(STAMP_SPACE "read-back format: %s\n",
|
||||
ec->read_format->drm_format_name);
|
||||
|
||||
if (gl_extensions_has(gr, EXTENSION_OES_MAPBUFFER))
|
||||
GET_PROC_ADDRESS(gr->unmap_buffer, "glUnmapBufferOES");
|
||||
@@ -5303,6 +5317,8 @@ gl_renderer_setup(struct weston_compositor *ec)
|
||||
gl_version_minor(gr->gl_version));
|
||||
weston_log_continue(STAMP_SPACE "read-back format: %s\n",
|
||||
ec->read_format->drm_format_name);
|
||||
+ weston_log_continue(STAMP_SPACE "wl_shm sub-image to texture: %s\n",
|
||||
+ gr->has_unpack_subimage ? "yes" : "no");
|
||||
weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip: %s\n",
|
||||
yesno(gr->has_pack_reverse));
|
||||
weston_log_continue(STAMP_SPACE "glReadPixels supports PBO: %s\n",
|
||||
weston_log_continue(STAMP_SPACE "glReadPixels supports y-flip: %s\n",
|
||||
yesno(gl_extensions_has(gr, EXTENSION_ANGLE_PACK_REVERSE_ROW_ORDER)));
|
||||
weston_log_continue(STAMP_SPACE "glReadPixels supports PBO: %s\n",
|
||||
--
|
||||
2.43.0
|
||||
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
From 3dedeeecd1ae42a751721d83dc21877122cc1795 Mon Sep 17 00:00:00 2001
|
||||
From: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
|
||||
Date: Sat, 6 Dec 2025 14:28:25 +0500
|
||||
Subject: libbpf: Fix -Wdiscarded-qualifiers under C23
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
commit d70f79fef65810faf64dbae1f3a1b5623cdb2345 upstream.
|
||||
|
||||
glibc ≥ 2.42 (GCC 15) defaults to -std=gnu23, which promotes
|
||||
-Wdiscarded-qualifiers to an error.
|
||||
|
||||
In C23, strstr() and strchr() return "const char *".
|
||||
|
||||
Change variable types to const char * where the pointers are never
|
||||
modified (res, sym_sfx, next_path).
|
||||
|
||||
Suggested-by: Florian Weimer <fweimer@redhat.com>
|
||||
Suggested-by: Andrii Nakryiko <andrii@kernel.org>
|
||||
Signed-off-by: Mikhail Gavrilov <mikhail.v.gavrilov@gmail.com>
|
||||
Link: https://lore.kernel.org/r/20251206092825.1471385-1-mikhail.v.gavrilov@gmail.com
|
||||
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
|
||||
[ shung-hsi.yu: needed to fix kernel build failure due to libbpf since glibc
|
||||
2.43+ (which adds 'const' qualifier to strstr). 'sym_sfx' hunk dropped because
|
||||
commit f8a05692de06 ("libbpf: Work around kernel inconsistently stripping
|
||||
'.llvm.' suffix") is not present. ]
|
||||
Signed-off-by: Shung-Hsi Yu <shung-hsi.yu@suse.com>
|
||||
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
|
||||
Upstream-Status: Backport
|
||||
---
|
||||
tools/lib/bpf/libbpf.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
|
||||
index 060aecf60b76b1..7d496f0a9a30d1 100644
|
||||
--- a/tools/lib/bpf/libbpf.c
|
||||
+++ b/tools/lib/bpf/libbpf.c
|
||||
@@ -8174,7 +8174,7 @@ static int kallsyms_cb(unsigned long long sym_addr, char sym_type,
|
||||
struct bpf_object *obj = ctx;
|
||||
const struct btf_type *t;
|
||||
struct extern_desc *ext;
|
||||
- char *res;
|
||||
+ const char *res;
|
||||
|
||||
res = strstr(sym_name, ".llvm.");
|
||||
if (sym_type == 'd' && res)
|
||||
@@ -11959,7 +11959,7 @@ static int resolve_full_path(const char *file, char *result, size_t result_sz)
|
||||
if (!search_paths[i])
|
||||
continue;
|
||||
for (s = search_paths[i]; s != NULL; s = strchr(s, ':')) {
|
||||
- char *next_path;
|
||||
+ const char *next_path;
|
||||
int seg_len;
|
||||
|
||||
if (s[0] == ':')
|
||||
--
|
||||
cgit 1.2.3-korg
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
From 4907fa9ff1dbdd72ce9fa7855091fb604a35a62d Mon Sep 17 00:00:00 2001
|
||||
From: Ryan Eatmon <reatmon@ti.com>
|
||||
Date: Wed, 17 Jul 2024 14:55:10 -0500
|
||||
Subject: [PATCH] vt/conmakehash: improve reproducibility for v6.10
|
||||
|
||||
The file generated by conmakehash capture the application
|
||||
path used to generate the file. While that can be informative,
|
||||
it varies based on where the kernel was built, as the full
|
||||
path is captured.
|
||||
|
||||
We tweak the application to use a second input as the "capture
|
||||
name", and then modify the Makefile to pass the basename of
|
||||
the source, making it reproducible.
|
||||
|
||||
This could be improved by using some sort of path mapping,
|
||||
or the application manipualing argv[1] itself, but for now
|
||||
this solves the reprodicibility issue.
|
||||
|
||||
Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Denys Dmytriyenko <denys@konsulko.com>
|
||||
|
||||
This is a minior rework of Bruce's original patch for the v6.10 kernel.
|
||||
|
||||
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
|
||||
---
|
||||
drivers/tty/vt/Makefile | 2 +-
|
||||
drivers/tty/vt/conmakehash.c | 2 ++
|
||||
2 files changed, 3 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/tty/vt/Makefile b/drivers/tty/vt/Makefile
|
||||
index 2c8ce8b592ed..8532077ed3bb 100644
|
||||
--- a/drivers/tty/vt/Makefile
|
||||
+++ b/drivers/tty/vt/Makefile
|
||||
@@ -15,7 +15,7 @@ clean-files := consolemap_deftbl.c defkeymap.c
|
||||
hostprogs += conmakehash
|
||||
|
||||
quiet_cmd_conmk = CONMK $@
|
||||
- cmd_conmk = $(obj)/conmakehash $< > $@
|
||||
+ cmd_conmk = $(obj)/conmakehash $< $(shell basename $<) > $@
|
||||
|
||||
$(obj)/consolemap_deftbl.c: $(src)/$(FONTMAPFILE) $(obj)/conmakehash
|
||||
$(call cmd,conmk)
|
||||
diff --git a/drivers/tty/vt/conmakehash.c b/drivers/tty/vt/conmakehash.c
|
||||
index dc2177fec715..9cd4096a8ffa 100644
|
||||
--- a/drivers/tty/vt/conmakehash.c
|
||||
+++ b/drivers/tty/vt/conmakehash.c
|
||||
@@ -112,6 +112,8 @@ int main(int argc, char *argv[])
|
||||
else
|
||||
rel_tblname = tblname;
|
||||
|
||||
+ rel_tblname = argv[2];
|
||||
+
|
||||
/* For now we assume the default font is always 256 characters. */
|
||||
fontlen = 256;
|
||||
|
||||
--
|
||||
2.17.1
|
||||
@@ -0,0 +1,22 @@
|
||||
# Device Mapper support
|
||||
CONFIG_MD=y
|
||||
CONFIG_BLK_DEV_DM=y
|
||||
CONFIG_DM_CRYPT=y
|
||||
|
||||
# Core crypto algorithms for LUKS encryption
|
||||
CONFIG_CRYPTO_AES=y
|
||||
CONFIG_CRYPTO_XTS=y
|
||||
CONFIG_CRYPTO_SHA256=y
|
||||
CONFIG_CRYPTO_SHA512=y
|
||||
|
||||
# ARM64 optimized crypto for better performance
|
||||
CONFIG_CRYPTO_AES_ARM64=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE=y
|
||||
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
|
||||
|
||||
# Userspace crypto API for cryptsetup
|
||||
CONFIG_CRYPTO_USER_API_HASH=y
|
||||
CONFIG_CRYPTO_USER_API_SKCIPHER=y
|
||||
|
||||
# Firmware TPM support via OP-TEE
|
||||
CONFIG_TCG_FTPM_TEE=m
|
||||
@@ -24,6 +24,8 @@ BRANCH ?= "ti-linux-6.12.y"
|
||||
SRCREV ?= "da3c0f0a33ac00f7138c695a16d90301cf7ec02b"
|
||||
PV = "6.12.57+git"
|
||||
|
||||
SRC_URI += "file://0001-libbpf-Fix-Wdiscarded-qualifiers-under-C23.patch"
|
||||
|
||||
KERNEL_REPRODUCIBILITY_PATCHES = " \
|
||||
file://0001-drivers-gpu-drm-msm-registers-improve-reproducibilit.patch \
|
||||
"
|
||||
|
||||
@@ -22,8 +22,8 @@ S = "${UNPACKDIR}/${BB_GIT_DEFAULT_DESTSUFFIX}"
|
||||
|
||||
BRANCH ?= "ti-linux-6.18.y"
|
||||
|
||||
SRCREV ?= "abdf4e7f1d6d22a2162c91baa1f2a32f8e7adf88"
|
||||
PV = "6.18.9+git"
|
||||
SRCREV ?= "c2a0b0f74338c37df910115a103b002c1d7f9d38"
|
||||
PV = "6.18.13+git"
|
||||
|
||||
KERNEL_REPRODUCIBILITY_PATCHES = " \
|
||||
file://0001-perf-python-Fix-compile-for-32bit-platforms.patch \
|
||||
@@ -36,4 +36,10 @@ module_conf_ti_k3_r5_remoteproc = "softdep ti_k3_r5_remoteproc pre: virtio_rpmsg
|
||||
module_conf_ti_k3_dsp_remoteproc = "softdep ti_k3_dsp_remoteproc pre: virtio_rpmsg_bus"
|
||||
KERNEL_MODULE_PROBECONF += "rpmsg_client_sample ti_k3_r5_remoteproc ti_k3_dsp_remoteproc"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
# LUKS encryption with fTPM kernel configuration
|
||||
SRC_URI:append:k3 = " \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'luks', 'file://luks-ftpm.cfg', '', d)} \
|
||||
"
|
||||
KERNEL_CONFIG_FRAGMENTS:append:k3 = " \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'luks', '${UNPACKDIR}/luks-ftpm.cfg', '', d)} \
|
||||
"
|
||||
|
||||
@@ -2,5 +2,7 @@
|
||||
# Jailhouse settings
|
||||
#
|
||||
BRANCH:tie-jailhouse:bsp-ti-6_12 = "ti-linux-6.12.y-jailhouse"
|
||||
BRANCH:tie-jailhouse:bsp-ti-6_18 = "ti-linux-6.18.y-jailhouse"
|
||||
|
||||
SRCREV:tie-jailhouse:bsp-ti-6_12 = "229a48602ad1557612a4ffabec6a3cbcdd745f87"
|
||||
SRCREV:tie-jailhouse:bsp-ti-6_18 = "b27ed9ea7bdad936265fe38c6e112d86743fd379"
|
||||
|
||||
@@ -6,7 +6,9 @@
|
||||
COMPATIBLE_MACHINE:tie-jailhouse = "am62xx|am62pxx|am62lxx"
|
||||
|
||||
BRANCH:tie-jailhouse:bsp-ti-6_12 = "ti-linux-6.12.y-jailhouse"
|
||||
BRANCH:tie-jailhouse:bsp-ti-6_18 = "ti-linux-6.18.y-jailhouse"
|
||||
|
||||
SRCREV:tie-jailhouse:bsp-ti-6_12 = "229a48602ad1557612a4ffabec6a3cbcdd745f87"
|
||||
SRCREV:tie-jailhouse:bsp-ti-6_18 = "b27ed9ea7bdad936265fe38c6e112d86743fd379"
|
||||
|
||||
KERNEL_GIT_URI:tie-jailhouse = "git://git.ti.com/git/processor-sdk/linux.git"
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
PV = "4.9.0+git"
|
||||
SRCREV = "c2b0684fcd89929976a8726e6e3af922b48dd2c7"
|
||||
SRCREV = "f2a7ad0638aeff5243593b33cc56ad064cae7615"
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
From 00f74ba2ab00088d51e6da3c0eefe50599ef5c82 Mon Sep 17 00:00:00 2001
|
||||
From: Prasanth Babu Mantena <p-mantena@ti.com>
|
||||
Date: Mon, 3 Nov 2025 12:42:57 +0530
|
||||
Subject: [PATCH] plat-k3: drivers: Open TRNG firewall for TIFS on all k3 devs
|
||||
|
||||
On k3 devices, TRNG is firewalled to be accessed only by OPTEE.
|
||||
|
||||
TIFS needs this for the encryption and decryption services to support
|
||||
different low power modes. So, open firewall to TIFS as well.
|
||||
|
||||
There is no concurrent usage of TRNG, as TIFS uses TRNG only at suspend
|
||||
when OPTEE is down and resume, when firewalls are restored but OPTEE is
|
||||
not up yet.
|
||||
|
||||
As this is a firewall that required to be shared along with TIFS on all
|
||||
devices, making this a common change and open on all devs.
|
||||
|
||||
Upstream-Status: Submitted [https://github.com/OP-TEE/optee_os/pull/7582]
|
||||
|
||||
Signed-off-by: Prasanth Babu Mantena <p-mantena@ti.com>
|
||||
Reviewed-by: Manorit Chawdhry <m-chawdhry@ti.com>
|
||||
Reviewed-by: Andrew Davis <afd@ti.com>
|
||||
---
|
||||
core/arch/arm/plat-k3/drivers/sa2ul.c | 5 -----
|
||||
1 file changed, 5 deletions(-)
|
||||
|
||||
diff --git a/core/arch/arm/plat-k3/drivers/sa2ul.c b/core/arch/arm/plat-k3/drivers/sa2ul.c
|
||||
index c50757b2c..e10bde131 100644
|
||||
--- a/core/arch/arm/plat-k3/drivers/sa2ul.c
|
||||
+++ b/core/arch/arm/plat-k3/drivers/sa2ul.c
|
||||
@@ -121,12 +121,7 @@ static TEE_Result sa2ul_init(void)
|
||||
start_address = RNG_BASE;
|
||||
end_address = RNG_BASE + RNG_REG_SIZE - 1;
|
||||
permissions[num_perm++] = (FW_BIG_ARM_PRIVID << 16) | FW_SECURE_ONLY;
|
||||
-#if defined(PLATFORM_FLAVOR_am62x) || \
|
||||
- defined(PLATFORM_FLAVOR_am62ax) || \
|
||||
- defined(PLATFORM_FLAVOR_am62px)
|
||||
-
|
||||
permissions[num_perm++] = (FW_TIFS_PRIVID << 16) | FW_NON_SECURE;
|
||||
-#endif
|
||||
ret = ti_sci_set_fwl_region(fwl_id, rng_region, num_perm,
|
||||
control, permissions,
|
||||
start_address, end_address);
|
||||
--
|
||||
2.34.1
|
||||
@@ -21,4 +21,5 @@ RDEPENDS:${PN} += "\
|
||||
initramfs-framework-base \
|
||||
initramfs-module-udev \
|
||||
initramfs-module-nfsrootfs \
|
||||
nfs-utils-mount \
|
||||
"
|
||||
|
||||
@@ -34,6 +34,8 @@ SYSTEMD_SERVICE:${PN} = "tiipclad-daemon.service"
|
||||
|
||||
EXTRA_OECONF += "PLATFORM=${PLATFORM} KERNEL_INSTALL_DIR=${STAGING_KERNEL_DIR} KERNEL_BUILD_DIR=${STAGING_KERNEL_BUILDDIR}"
|
||||
|
||||
DISABLE_STATIC = ""
|
||||
|
||||
do_compile[depends] += "virtual/kernel:do_shared_workdir"
|
||||
|
||||
do_configure() {
|
||||
|
||||
@@ -2,13 +2,13 @@ SUMMARY = "RPMsg DMA shared library"
|
||||
LICENSE = "TI-TFL"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=91dc4ee6d125d0aaba4e5bd2fcc50ed3"
|
||||
|
||||
SRC_URI = "git://github.com/TexasInstruments/rpmsg-dma.git;protocol=https;branch=scarthgap"
|
||||
SRCREV = "153951932925a72346b76d98b2774952c48a82fc"
|
||||
SRC_URI = "git://github.com/TexasInstruments/rpmsg-dma.git;protocol=https;branch=main"
|
||||
SRCREV = "d1cd23bcce13877c7f67d9b1fd399940b87b2ee3"
|
||||
|
||||
inherit cmake
|
||||
|
||||
DEPENDS = "ti-rpmsg-char"
|
||||
|
||||
EXTRA_OECMAKE += "-DBUILD_LIB=ON -DBUILD_AUDIO_OFFLOAD_EXAMPLE=OFF -DBUILD_2DFFT_OFFLOAD_EXAMPLE=OFF"
|
||||
EXTRA_OECMAKE += "-DBUILD_LIB=ON -DBUILD_AUDIO_OFFLOAD_EXAMPLE=OFF -DBUILD_2DFFT_OFFLOAD_EXAMPLE=OFF -DBUILD_SIGNAL_CHAIN_BIQUAD_EXAMPLE=OFF"
|
||||
|
||||
COMPATIBLE_MACHINE = "^(k3)$"
|
||||
|
||||
@@ -7,9 +7,9 @@ PROTOCOL = "https"
|
||||
BRANCH = "master"
|
||||
SRC_URI = "git://git.ti.com/git/rpmsg/ti-rpmsg-char.git;protocol=${PROTOCOL};branch=${BRANCH};"
|
||||
|
||||
# 0.6.10 release
|
||||
SRCREV = "057b1a249261e26d00c501b59646957160ec815b"
|
||||
# 0.6.11 release
|
||||
SRCREV = "dd4783422bf4fbed1015bfaa51054e40057b4f04"
|
||||
|
||||
PV = "0.6.10+git"
|
||||
PV = "0.6.11+git"
|
||||
|
||||
COMPATIBLE_MACHINE = "^(k3)$"
|
||||
|
||||
@@ -5,3 +5,5 @@ require ti-rpmsg-char.inc
|
||||
inherit autotools pkgconfig
|
||||
|
||||
PR = "r0"
|
||||
|
||||
DISABLE_STATIC = ""
|
||||
|
||||
@@ -9,7 +9,7 @@ BBFILE_COLLECTIONS += "meta-ti-extras"
|
||||
BBFILE_PATTERN_meta-ti-extras := "^${LAYERDIR}/"
|
||||
BBFILE_PRIORITY_meta-ti-extras = "6"
|
||||
|
||||
LAYERSERIES_COMPAT_meta-ti-extras = "whinlatter"
|
||||
LAYERSERIES_COMPAT_meta-ti-extras = "whinlatter wrynose"
|
||||
|
||||
LICENSE_PATH += "${LAYERDIR}/licenses"
|
||||
|
||||
|
||||
@@ -22,3 +22,5 @@ RDEPENDS:${PN} = "debugss-module-drv bash"
|
||||
include dsptop.inc
|
||||
|
||||
PARALLEL_MAKE = ""
|
||||
|
||||
SECURITY_STRINGFORMAT:remove = "-Werror=format-security"
|
||||
|
||||
@@ -51,3 +51,5 @@ PARALLEL_MAKE = ""
|
||||
# Disable the "buildpaths" check while we figure out how we are
|
||||
# going to address this issue.
|
||||
INSANE_SKIP:${PN} += "buildpaths"
|
||||
|
||||
lcl_maybe_fortify = "${@oe.utils.conditional('OPTLEVEL','-O0','','${OPTLEVEL}',d)}"
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
require ti-jailhouse.inc
|
||||
|
||||
# Inmate binaries are bare-metal; no debug package needed
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
|
||||
do_install() {
|
||||
|
||||
install -d ${D}${bindir}
|
||||
|
||||
@@ -55,11 +55,11 @@ do_install() {
|
||||
install -d ${D}/boot
|
||||
if [ -n "${JH_RAMFS_IMAGE}" ]
|
||||
then
|
||||
if [ -f ${DEPLOY_DIR_IMAGE}/${JH_RAMFS_IMAGE}*-${MACHINE}.rootfs.cpio ]
|
||||
if [ -f ${DEPLOY_DIR_IMAGE}/${JH_RAMFS_IMAGE}*-${MACHINE}.cpio ]
|
||||
then
|
||||
install -m 0644 ${DEPLOY_DIR_IMAGE}/${JH_RAMFS_IMAGE}*-${MACHINE}.rootfs.cpio ${D}/boot
|
||||
install -m 0644 ${DEPLOY_DIR_IMAGE}/${JH_RAMFS_IMAGE}*-${MACHINE}.cpio ${D}/boot
|
||||
else
|
||||
bberror "Could not find JH_RAMFS_IMAGE (${JH_RAMFS_IMAGE}*-${MACHINE}.rootfs.cpio)!"
|
||||
bberror "Could not find JH_RAMFS_IMAGE (${JH_RAMFS_IMAGE}*-${MACHINE}.cpio)!"
|
||||
bberror "Please make sure that \"cpio\" is in IMAGE_FSTYPES."
|
||||
fi
|
||||
fi
|
||||
@@ -72,7 +72,7 @@ do_install() {
|
||||
./jailhouse-cell-linux -w ${D}${JH_DATADIR}/${JH_INMATE_DTB} \
|
||||
-a ${JH_ARCH} -c "${JH_CMDLINE}" \
|
||||
-d ../configs/${JH_ARCH}/dts/${JH_INMATE_DTB} \
|
||||
-i ${D}/boot/${JH_RAMFS_IMAGE}*-${MACHINE}.rootfs.cpio \
|
||||
-i ${D}/boot/${JH_RAMFS_IMAGE}*-${MACHINE}.cpio \
|
||||
${D}${CELL_DIR}/${JH_LINUX_DEMO_CELL} \
|
||||
${DEPLOY_DIR_IMAGE}/Image \
|
||||
| tr -cd '\11\12\15\40-\176' \
|
||||
|
||||
@@ -14,7 +14,7 @@ LIC_FILES_CHKSUM = " \
|
||||
COMPATIBLE_MACHINE = "am62xx|am62pxx|am62lxx"
|
||||
TARGET_CC_ARCH += "${LDFLAGS}"
|
||||
PV = "0.12+git"
|
||||
SRCREV = "ef512f9591febed854d8f07ad8c1fa731c2d3c69"
|
||||
SRCREV = "b44c3548252bb3818b0dd0815728ca210d8fac2b"
|
||||
BRANCH = "master"
|
||||
SRC_URI = " \
|
||||
git://git.ti.com/git/jailhouse/ti-jailhouse.git;protocol=https;branch=${BRANCH} \
|
||||
@@ -47,7 +47,7 @@ B = "${S}"
|
||||
|
||||
DEPENDS = "virtual/kernel dtc-native python3-mako-native python3-mako make-native"
|
||||
|
||||
inherit module python3native bash-completion deploy setuptools3
|
||||
inherit module-base kernel-module-split python3native bash-completion deploy
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
COMPATIBLE_MACHINE = "(ti-soc)"
|
||||
@@ -66,22 +66,28 @@ JH_SYSCONFIG_CELL:am62lxx ?= "k3-am62l3-evm.cell"
|
||||
JH_SYSCONFIG_CELL:j7 ?= "k3-j721e-evm.cell"
|
||||
JH_SYSCONFIG_CELL:j7200-evm ?= "k3-j7200-evm.cell"
|
||||
|
||||
do_configure() {
|
||||
if [ -d ${STAGING_DIR_HOST}/${CELLCONF_DIR} ];
|
||||
then
|
||||
cp ${STAGING_DIR_HOST}/${CELLCONF_DIR}/*.c ${S}/configs/
|
||||
fi
|
||||
}
|
||||
EXTRA_OEMAKE = "\
|
||||
V=1 \
|
||||
ARCH=${JH_ARCH} \
|
||||
CROSS_COMPILE=${TARGET_PREFIX} \
|
||||
CC="${CC}" \
|
||||
KDIR=${STAGING_KERNEL_BUILDDIR} \
|
||||
KCFLAGS='-ffile-prefix-map=${STAGING_KERNEL_BUILDDIR}/= \
|
||||
-ffile-prefix-map=${STAGING_KERNEL_DIR}/=' \
|
||||
"
|
||||
|
||||
USER_SPACE_CFLAGS = '${CFLAGS} -DLIBEXECDIR=\\\"${libexecdir}\\\" \
|
||||
-DJAILHOUSE_VERSION=\\\"$JAILHOUSE_VERSION\\\" \
|
||||
-Wall -Wextra -Wmissing-declarations -Wmissing-prototypes -Werror \
|
||||
-I../driver'
|
||||
USER_SPACE_CFLAGS = "\
|
||||
${CFLAGS} \
|
||||
-DLIBEXECDIR=\\\"${libexecdir}\\\" \
|
||||
-DJAILHOUSE_VERSION=\\\"$JAILHOUSE_VERSION\\\" \
|
||||
-Wall -Wextra -Wmissing-declarations -Wmissing-prototypes -Werror \
|
||||
-I../driver \
|
||||
"
|
||||
|
||||
TOOLS_SRC_DIR = "${S}/tools"
|
||||
|
||||
EXTRA_OEMAKE = "ARCH=${JH_ARCH} CROSS_COMPILE=${TARGET_PREFIX} CC="${CC}" KDIR=${STAGING_KERNEL_BUILDDIR}"
|
||||
|
||||
do_compile() {
|
||||
oe_runmake V=1
|
||||
do_configure() {
|
||||
if [ -d ${STAGING_DIR_HOST}/${CELLCONF_DIR} ]; then
|
||||
cp ${STAGING_DIR_HOST}/${CELLCONF_DIR}/*.c ${S}/configs/
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user