summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDenys Dmytriyenko <denys@ti.com>2020-05-05 02:41:56 +0000
committerDenys Dmytriyenko <denys@ti.com>2020-05-05 05:22:25 +0000
commitf814840465358a6b5429ad20165742ac6e6e6a29 (patch)
tree7d422cc4b43da9ff25101378375ebc2f2356fd32
parent79e77ea1cf5b5370162b13f1f78c354d96b7b513 (diff)
downloadmeta-ti-f814840465358a6b5429ad20165742ac6e6e6a29.tar.gz
conf, recipes-bsp: support building for K3 R5F cores via multiconfig
K3 Multicore SoC architecture defines different functional domains, each containing specific processing cores and peripherals. Early boot is normally handled by running bootloader and loading SYSFW on MCU Cortex-R5F core: https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/am65x/README https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/j721e/README This change adds support for building bootloader and SYSFW ITB image for K3 Cortex-R5F cores via multiconfig. Signed-off-by: Denys Dmytriyenko <denys@ti.com>
-rw-r--r--conf/machine/am65xx-evm-k3r5-sr2.conf11
-rw-r--r--conf/machine/am65xx-evm-k3r5.conf12
-rw-r--r--conf/machine/am65xx-evm.conf6
-rw-r--r--conf/machine/am65xx-hs-evm-k3r5.conf13
-rw-r--r--conf/machine/am65xx-hs-evm.conf20
-rw-r--r--conf/machine/include/k3.inc13
-rw-r--r--conf/machine/include/k3r5.inc23
-rw-r--r--conf/machine/j7-evm-k3r5.conf11
-rw-r--r--conf/machine/j7-hs-evm-k3r5.conf13
-rw-r--r--conf/multiconfig/k3r5-sr2.conf3
-rw-r--r--conf/multiconfig/k3r5.conf5
-rw-r--r--recipes-bsp/ti-sci-fw/ti-sci-fw_2020.04.bb94
-rw-r--r--recipes-bsp/u-boot/u-boot-ti.inc1
13 files changed, 219 insertions, 6 deletions
diff --git a/conf/machine/am65xx-evm-k3r5-sr2.conf b/conf/machine/am65xx-evm-k3r5-sr2.conf
new file mode 100644
index 00000000..c0b3cd51
--- /dev/null
+++ b/conf/machine/am65xx-evm-k3r5-sr2.conf
@@ -0,0 +1,11 @@
1#@TYPE: Machine
2#@NAME: AM65xx SR2.0 EVM (R5F)
3#@DESCRIPTION: Machine configuration for the TI AM65xx SR2.0 EVM (R5F core)
4
5# Booting SR2 requires different SYSFW, the rest is handled at runtime
6
7require conf/machine/am65xx-evm-k3r5.conf
8SOC_FAMILY_append = ":k3r5-sr2"
9
10SYSFW_SOC = "am65x_sr2"
11SYSFW_SYMLINK = "sysfw.itb"
diff --git a/conf/machine/am65xx-evm-k3r5.conf b/conf/machine/am65xx-evm-k3r5.conf
new file mode 100644
index 00000000..bd17474e
--- /dev/null
+++ b/conf/machine/am65xx-evm-k3r5.conf
@@ -0,0 +1,12 @@
1#@TYPE: Machine
2#@NAME: AM65xx EVM (R5F)
3#@DESCRIPTION: Machine configuration for the TI AM65xx EVM (R5F core)
4
5require conf/machine/include/k3r5.inc
6
7SYSFW_SOC = "am65x"
8SYSFW_CONFIG = "evm"
9SYSFW_SUFFIX = "gp"
10SYSFW_SYMLINK = ""
11
12UBOOT_MACHINE = "am65x_evm_r5_defconfig"
diff --git a/conf/machine/am65xx-evm.conf b/conf/machine/am65xx-evm.conf
index 3edbb296..62fa3609 100644
--- a/conf/machine/am65xx-evm.conf
+++ b/conf/machine/am65xx-evm.conf
@@ -4,6 +4,8 @@
4 4
5require conf/machine/include/am65xx.inc 5require conf/machine/include/am65xx.inc
6 6
7BBMULTICONFIG += "k3r5-sr2"
8
7MACHINE_FEATURES += "touchscreen" 9MACHINE_FEATURES += "touchscreen"
8 10
9SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS1" 11SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS1"
@@ -23,3 +25,7 @@ UBOOT_MACHINE = "am65x_evm_a53_defconfig"
23OPTEEMACHINE = "k3" 25OPTEEMACHINE = "k3"
24OPTEEFLAVOR = "am65x" 26OPTEEFLAVOR = "am65x"
25OPTEEOUTPUTMACHINE = "k3" 27OPTEEOUTPUTMACHINE = "k3"
28
29IMAGE_BOOT_FILES += "sysfw-am65x-evm.itb"
30do_image_wic[mcdepends] += "mc::k3r5-sr2:ti-sci-fw:do_deploy"
31do_image_tar[mcdepends] += "mc::k3r5-sr2:ti-sci-fw:do_deploy"
diff --git a/conf/machine/am65xx-hs-evm-k3r5.conf b/conf/machine/am65xx-hs-evm-k3r5.conf
new file mode 100644
index 00000000..2b06f2cc
--- /dev/null
+++ b/conf/machine/am65xx-hs-evm-k3r5.conf
@@ -0,0 +1,13 @@
1#@TYPE: Machine
2#@NAME: AM65xx HS EVM (R5F)
3#@DESCRIPTION: Machine configuration for the TI AM65xx HS EVM (R5F core)
4
5require conf/machine/include/k3r5.inc
6
7SYSFW_SOC = "am65x"
8SYSFW_CONFIG = "evm"
9SYSFW_SUFFIX = "hs"
10
11UBOOT_MACHINE = "am65x_hs_evm_r5_defconfig"
12
13TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/conf/machine/am65xx-hs-evm.conf b/conf/machine/am65xx-hs-evm.conf
index f9897504..6d20a0de 100644
--- a/conf/machine/am65xx-hs-evm.conf
+++ b/conf/machine/am65xx-hs-evm.conf
@@ -2,10 +2,28 @@
2#@NAME: AM65xx HS EVM 2#@NAME: AM65xx HS EVM
3#@DESCRIPTION: Machine configuration for the TI AM65xx HS EVM 3#@DESCRIPTION: Machine configuration for the TI AM65xx HS EVM
4 4
5require conf/machine/am65xx-evm.conf 5require conf/machine/include/am65xx.inc
6
7MACHINE_FEATURES += "touchscreen"
8
9SERIAL_CONSOLES = "115200;ttyS2 115200;ttyS1"
10SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
11
12KERNEL_DEVICETREE = " \
13 ti/k3-am654-base-board.dtb ti/k3-am654-gp.dtbo \
14 ti/k3-am654-evm-hdmi.dtbo ti/k3-am654-idk.dtbo \
15 ti/k3-am654-evm-oldi-lcd1evm.dtbo ti/k3-am654-evm-tc358876.dtbo \
16 ti/k3-am654-pcie-usb2.dtbo ti/k3-am654-pcie-usb3.dtbo \
17 ti/k3-am654-base-board-jailhouse.dtbo \
18 ti/k3-am654-evm-prupwm.dtbo \
19"
6 20
7UBOOT_MACHINE = "am65x_hs_evm_a53_defconfig" 21UBOOT_MACHINE = "am65x_hs_evm_a53_defconfig"
8 22
23OPTEEMACHINE = "k3"
24OPTEEFLAVOR = "am65x"
25OPTEEOUTPUTMACHINE = "k3"
26
9UBOOT_ENTRYPOINT = "0x80080000" 27UBOOT_ENTRYPOINT = "0x80080000"
10UBOOT_LOADADDRESS = "0x80080000" 28UBOOT_LOADADDRESS = "0x80080000"
11UBOOT_RD_LOADADDRESS = "0x84000000" 29UBOOT_RD_LOADADDRESS = "0x84000000"
diff --git a/conf/machine/include/k3.inc b/conf/machine/include/k3.inc
index 5e67f5f3..0c16d968 100644
--- a/conf/machine/include/k3.inc
+++ b/conf/machine/include/k3.inc
@@ -1,8 +1,12 @@
1# TI K3 Aarch64 profile for Cortex-A53/A72 cores
2
1require conf/machine/include/ti-soc.inc 3require conf/machine/include/ti-soc.inc
2SOC_FAMILY_append = ":k3" 4SOC_FAMILY_append = ":k3"
3 5
4require conf/machine/include/arm/arch-arm64.inc 6require conf/machine/include/arm/arch-arm64.inc
5 7
8BBMULTICONFIG += "k3r5"
9
6# Increase this everytime you change something in the kernel 10# Increase this everytime you change something in the kernel
7MACHINE_KERNEL_PR = "r0" 11MACHINE_KERNEL_PR = "r0"
8 12
@@ -34,9 +38,8 @@ MACHINE_FEATURES = "kernel26 apm usbgadget usbhost vfat ext2 screen alsa etherne
34 38
35IMAGE_FSTYPES += "tar.xz wic.xz" 39IMAGE_FSTYPES += "tar.xz wic.xz"
36 40
37# Please note that booting K3 platform also requires 41IMAGE_BOOT_FILES ?= "${SPL_BINARY} u-boot.${UBOOT_SUFFIX} tiboot3.bin sysfw.itb"
38# tiboot3.bin and sysfw.itb, which are provided by meta-arago
39# u-boot-k3-r5 and ti-sci-fw recipes
40IMAGE_BOOT_FILES ?= "${SPL_BINARY} u-boot.${UBOOT_SUFFIX}"
41WKS_FILE ?= "sdimage-3part.wks" 42WKS_FILE ?= "sdimage-3part.wks"
42do_image_wic[depends] += "u-boot:do_deploy" 43do_image_wic[depends] += "virtual/bootloader:do_deploy"
44do_image_wic[mcdepends] += "mc::k3r5:virtual/bootloader:do_deploy mc::k3r5:ti-sci-fw:do_deploy"
45do_image_tar[mcdepends] += "mc::k3r5:virtual/bootloader:do_deploy mc::k3r5:ti-sci-fw:do_deploy"
diff --git a/conf/machine/include/k3r5.inc b/conf/machine/include/k3r5.inc
new file mode 100644
index 00000000..52fcf38b
--- /dev/null
+++ b/conf/machine/include/k3r5.inc
@@ -0,0 +1,23 @@
1# TI K3 Armv7 profile for Cortex-R5F cores
2
3require conf/machine/include/ti-soc.inc
4SOC_FAMILY_append = ":k3r5"
5
6# The closest of existing tunes for Cortex-R5F
7DEFAULTTUNE = "armv7athf"
8require conf/machine/include/tune-cortexa8.inc
9
10# R5 runs early bootloader and loads SYSFW
11# https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/am65x/README
12# https://git.ti.com/cgit/ti-u-boot/ti-u-boot/tree/board/ti/j721e/README
13PREFERRED_PROVIDER_virtual/kernel = "linux-dummy"
14PREFERRED_PROVIDER_virtual/bootloader = "u-boot-ti-staging"
15PREFERRED_PROVIDER_u-boot = "u-boot-ti-staging"
16
17SPL_BINARY = ""
18UBOOT_SUFFIX = "bin"
19UBOOT_BINARY = "tiboot3.${UBOOT_SUFFIX}"
20UBOOT_IMAGE = "tiboot3-${MAINMACHINE}-${PV}-${PR}.${UBOOT_SUFFIX}"
21UBOOT_SYMLINK = "tiboot3-${MAINMACHINE}.${UBOOT_SUFFIX}"
22
23PACKAGECONFIG_pn-u-boot-ti-staging = ""
diff --git a/conf/machine/j7-evm-k3r5.conf b/conf/machine/j7-evm-k3r5.conf
new file mode 100644
index 00000000..b9e8cc01
--- /dev/null
+++ b/conf/machine/j7-evm-k3r5.conf
@@ -0,0 +1,11 @@
1#@TYPE: Machine
2#@NAME: J7 EVM (R5F)
3#@DESCRIPTION: Machine configuration for the TI J7 EVM (R5F core)
4
5require conf/machine/include/k3r5.inc
6
7SYSFW_SOC = "j721e"
8SYSFW_CONFIG = "evm"
9SYSFW_SUFFIX = "gp"
10
11UBOOT_MACHINE = "j721e_evm_r5_defconfig"
diff --git a/conf/machine/j7-hs-evm-k3r5.conf b/conf/machine/j7-hs-evm-k3r5.conf
new file mode 100644
index 00000000..53a7016f
--- /dev/null
+++ b/conf/machine/j7-hs-evm-k3r5.conf
@@ -0,0 +1,13 @@
1#@TYPE: Machine
2#@NAME: J7 HS EVM (R5F)
3#@DESCRIPTION: Machine configuration for the TI J7 HS EVM (R5F core)
4
5require conf/machine/include/k3r5.inc
6
7SYSFW_SOC = "j721e"
8SYSFW_CONFIG = "evm"
9SYSFW_SUFFIX = "hs"
10
11UBOOT_MACHINE = "j721e_hs_evm_r5_defconfig"
12
13TI_SECURE_DEV_PKG = "${TI_SECURE_DEV_PKG_K3}"
diff --git a/conf/multiconfig/k3r5-sr2.conf b/conf/multiconfig/k3r5-sr2.conf
new file mode 100644
index 00000000..17082141
--- /dev/null
+++ b/conf/multiconfig/k3r5-sr2.conf
@@ -0,0 +1,3 @@
1require k3r5.conf
2
3MACHINE_append = "-sr2"
diff --git a/conf/multiconfig/k3r5.conf b/conf/multiconfig/k3r5.conf
new file mode 100644
index 00000000..8c8f0c3f
--- /dev/null
+++ b/conf/multiconfig/k3r5.conf
@@ -0,0 +1,5 @@
1MAINMACHINE := "${MACHINE}"
2
3DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images/${MAINMACHINE}"
4
5MACHINE_append = "-k3r5"
diff --git a/recipes-bsp/ti-sci-fw/ti-sci-fw_2020.04.bb b/recipes-bsp/ti-sci-fw/ti-sci-fw_2020.04.bb
new file mode 100644
index 00000000..b17147a4
--- /dev/null
+++ b/recipes-bsp/ti-sci-fw/ti-sci-fw_2020.04.bb
@@ -0,0 +1,94 @@
1SUMMARY = "TI SCI firmware (SYSFW)"
2
3LICENSE = "TI-TFL"
4LIC_FILES_CHKSUM = "file://LICENSE.ti;md5=b5aebf0668bdf95621259288c4a46d76"
5
6DEPENDS = "openssl-native u-boot-mkimage-native dtc-native"
7
8CLEANBROKEN = "1"
9PR = "r0"
10
11# Loaded by R5F core
12COMPATIBLE_MACHINE = "k3r5"
13COMPATIBLE_MACHINE_aarch64 = "null"
14
15PACKAGE_ARCH = "${MACHINE_ARCH}"
16
17TI_SECURE_DEV_PKG ?= ""
18export TI_SECURE_DEV_PKG
19
20SRCREV = "6b02b1ea07da65a68444e86439ad5b031e9fd5a2"
21BRANCH ?= "ti-linux-firmware"
22SRCREV_imggen = "79f3807e0b169f2029dec9f3a679c231f4deb625"
23SRCREV_FORMAT = "imggen"
24
25SRC_URI = " \
26 git://git.ti.com/processor-firmware/ti-linux-firmware.git;protocol=git;branch=${BRANCH} \
27 git://git.ti.com/k3-image-gen/k3-image-gen.git;protocol=git;branch=master;destsuffix=imggen;name=imggen \
28"
29
30S = "${WORKDIR}/git"
31
32SYSFW_SOC ?= "unknown"
33SYSFW_CONFIG ?= "unknown"
34
35SYSFW_PREFIX = "ti-sci-firmware"
36SYSFW_SUFFIX ?= "unknown"
37
38SYSFW_BASE = "${SYSFW_PREFIX}-${SYSFW_SOC}-${SYSFW_SUFFIX}"
39
40SYSFW_TISCI = "${S}/ti-sysfw/${SYSFW_BASE}*.bin"
41
42SYSFW_BINARY = "sysfw-${SYSFW_SOC}-${SYSFW_CONFIG}.itb"
43SYSFW_VBINARY = "sysfw-${PV}-${SYSFW_SOC}-${SYSFW_CONFIG}.itb"
44SYSFW_IMAGE = "sysfw-${SYSFW_SOC}-${SYSFW_CONFIG}.itb"
45SYSFW_SYMLINK ?= "sysfw.itb"
46
47CFLAGS[unexport] = "1"
48LDFLAGS[unexport] = "1"
49AS[unexport] = "1"
50LD[unexport] = "1"
51
52do_configure[noexec] = "1"
53
54EXTRA_OEMAKE = "\
55 CROSS_COMPILE=${TARGET_PREFIX} SYSFW_DL_URL='' SYSFW_HS_DL_URL='' SYSFW_HS_INNER_CERT_DL_URL='' \
56 SYSFW_PATH="${SYSFW_TISCI}" SOC=${SYSFW_SOC} CONFIG=${SYSFW_CONFIG} \
57"
58EXTRA_OEMAKE_HS = " \
59 HS=1 SYSFW_HS_PATH="${S}/ti-sysfw/${SYSFW_BASE}-enc.bin" SYSFW_HS_INNER_CERT_PATH="${S}/ti-sysfw/${SYSFW_BASE}-cert.bin" \
60"
61EXTRA_OEMAKE_append = "${@['',' ${EXTRA_OEMAKE_HS}']['${SYSFW_SUFFIX}' == 'hs']}"
62
63do_compile() {
64 cd ${WORKDIR}/imggen/
65 oe_runmake
66}
67
68do_install() {
69 install -d ${D}/boot
70 install -m 644 ${WORKDIR}/imggen/${SYSFW_BINARY} ${D}/boot/${SYSFW_VBINARY}
71 ln -sf ${SYSFW_VBINARY} ${D}/boot/${SYSFW_IMAGE}
72 if [ ! -z "${SYSFW_SYMLINK}" ]; then
73 ln -sf ${SYSFW_VBINARY} ${D}/boot/${SYSFW_SYMLINK}
74 fi
75}
76
77FILES_${PN} = "/boot"
78
79inherit deploy
80
81do_deploy () {
82 install -d ${DEPLOYDIR}
83 install -m 644 ${WORKDIR}/imggen/${SYSFW_BINARY} ${DEPLOYDIR}/${SYSFW_VBINARY}
84 rm -f ${DEPLOYDIR}/${SYSFW_IMAGE}
85 ln -sf ${SYSFW_VBINARY} ${DEPLOYDIR}/${SYSFW_IMAGE}
86 if [ ! -z "${SYSFW_SYMLINK}" ]; then
87 rm -f ${DEPLOYDIR}/${SYSFW_SYMLINK}
88 ln -sf ${SYSFW_VBINARY} ${DEPLOYDIR}/${SYSFW_SYMLINK}
89 fi
90
91 install -m 644 ${SYSFW_TISCI} ${DEPLOYDIR}/
92}
93
94addtask deploy before do_build after do_compile
diff --git a/recipes-bsp/u-boot/u-boot-ti.inc b/recipes-bsp/u-boot/u-boot-ti.inc
index 04ff559d..8f8f0afe 100644
--- a/recipes-bsp/u-boot/u-boot-ti.inc
+++ b/recipes-bsp/u-boot/u-boot-ti.inc
@@ -57,6 +57,7 @@ export TI_SECURE_DEV_PKG
57SPL_UART_BINARY = "u-boot-spl.bin" 57SPL_UART_BINARY = "u-boot-spl.bin"
58SPL_UART_BINARY_keystone = "" 58SPL_UART_BINARY_keystone = ""
59SPL_UART_BINARY_k3 = "" 59SPL_UART_BINARY_k3 = ""
60SPL_UART_BINARY_k3r5 = ""
60SPL_UART_BINARY_lego-ev3 = "" 61SPL_UART_BINARY_lego-ev3 = ""
61 62
62SPL_UART_IMAGE ?= "${SPL_UART_BINARY}-${MACHINE}-${PV}-${PR}" 63SPL_UART_IMAGE ?= "${SPL_UART_BINARY}-${MACHINE}-${PV}-${PR}"