[meta-ti,dunfell,v3] machine: Add am62xx evm configuration

Message ID 20220324222129.9313-1-reatmon@ti.com
State Superseded
Headers show
Series [meta-ti,dunfell,v3] machine: Add am62xx evm configuration | expand

Commit Message

Ryan Eatmon March 24, 2022, 10:21 p.m. UTC
From: Nishanth Menon <nm@ti.com>

Lets add the basic AM62xx-evm configuration.

Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Hari Nagalla <hnagalla@ti.com>
Signed-off-by: Ryan Eatmon <reatmon@ti.com>
---
v2: Removed ti-graphics patch, and removed lpm-demo patches.
v3: Squashed and cleaned up the previous patches.

 conf/machine/am62xx-evm-k3r5.conf          | 11 +++++++++
 conf/machine/am62xx-evm.conf               | 13 ++++++++++
 conf/machine/include/am62xx.inc            | 17 +++++++++++++
 recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb     | 18 ++++++++++++++
 recipes-bsp/u-boot/u-boot-ti.inc           |  7 ++++++
 recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb | 28 ++++++++++++++++++++++
 6 files changed, 94 insertions(+)
 create mode 100644 conf/machine/am62xx-evm-k3r5.conf
 create mode 100644 conf/machine/am62xx-evm.conf
 create mode 100644 conf/machine/include/am62xx.inc

Comments

Andrew Davis March 25, 2022, 1:47 a.m. UTC | #1
On 3/24/22 5:21 PM, Ryan Eatmon via lists.yoctoproject.org wrote:
> @@ -167,6 +182,10 @@ ALTERNATIVE_${PN}_am64xx = "\
>                       am64-main-r5f1_1-fw \
>                       am64-mcu-m4f0_0-fw \
>                       "
> +ALTERNATIVE_${PN}_am62xx = "\
> +                    am62-mcu-m4f0_0-fw \
> +		            am62-main-r5f0_0-fw \


^^ Looks like some tabs found there way in here..

Why do we have these indented so far anyway, this whole file has wacky
indenting, needs normalized.

Andrew

> +                    "
>   
>   ALTERNATIVE_${PN}_j7 = "\
>                       j7-mcu-r5f0_0-fw \
> @@ -216,6 +235,9 @@ TARGET_MAIN_R5FSS1_0_am64xx = "am64-main-r5f1_0-fw"
>   TARGET_MAIN_R5FSS1_1_am64xx = "am64-main-r5f1_1-fw"
>   TARGET_MCU_M4FSS0_0_am64xx = "am64-mcu-m4f0_0-fw"
>   
> +TARGET_MAIN_R5FSS0_0_am62xx = "am62-main-r5f0_0-fw"
> +TARGET_MCU_M4FSS0_0_am62xx = "am62-mcu-m4f0_0-fw"
> +
Denys Dmytriyenko March 25, 2022, 8:30 p.m. UTC | #2
On Thu, Mar 24, 2022 at 08:47:12PM -0500, Andrew F. Davis via lists.yoctoproject.org wrote:
> On 3/24/22 5:21 PM, Ryan Eatmon via lists.yoctoproject.org wrote:
> >@@ -167,6 +182,10 @@ ALTERNATIVE_${PN}_am64xx = "\
> >                      am64-main-r5f1_1-fw \
> >                      am64-mcu-m4f0_0-fw \
> >                      "
> >+ALTERNATIVE_${PN}_am62xx = "\
> >+                    am62-mcu-m4f0_0-fw \
> >+		            am62-main-r5f0_0-fw \
> 
> 
> ^^ Looks like some tabs found there way in here..
> 
> Why do we have these indented so far anyway, this whole file has wacky
> indenting, needs normalized.

Some quotes from the manual for 3 different cases - shell code, python code 
and multi-line statements:

===============================================
Indentation: Use spaces for indentation rather than than tabs. For shell 
functions, both currently work. However, it is a policy decision of the Yocto 
Project to use tabs in shell functions. Realize that some layers have a policy 
to use spaces for all indentation.

Python Function Whitespace: All Python functions must now use four spaces for 
indentation. Previously, an inconsistent mix of spaces and tabs existed, which 
made extending these functions using _append or _prepend complicated given 
that Python treats whitespace as syntactically significant. If you are 
defining or extending any Python functions (e.g. populate_packages, do_unpack, 
do_patch and so forth) in custom recipes or classes, you need to ensure you 
are using consistent four-space indentation.

Line Continuation: \ - Use the backward slash (\) character to split a 
statement over multiple lines. Place the slash character at the end of the 
line that is to be continued on the next line:

     VAR = "A really long \
            line"
===============================================

As you can see in the final example of multi-line, it shows the second line 
starting where its content begins in the previous line. But it is not required 
to indent like that, especially if the left part before the assignment sign is 
very long, e.g.:

ALTERNATIVE_${PN}_am62xx = "am62-mcu-m4f0_0-fw \
                            am62-main-r5f0_0-fw \

Instead, you could start at the beginning of the line or use minimal 
indentation of few spaces (no tabs here):

ALTERNATIVE_${PN}_am62xx = " \
am62-mcu-m4f0_0-fw \
am62-main-r5f0_0-fw \

ALTERNATIVE_${PN}_am62xx = " \
    am62-mcu-m4f0_0-fw \
    am62-main-r5f0_0-fw \

Both are acceptable.

Tabs to be only used in shell functions, such as do_compile, do_install, etc.

And one more final comment - when making functional changes, please keep the 
existing indentation as is. If indentation need to be cleaned up or changed 
for a recipe, should be a separate patch just for that w/o any functionality 
or code changes - don't mix them in a single patch, unless it's a one-off.
Ryan Eatmon March 25, 2022, 9 p.m. UTC | #3
On 3/24/2022 20:47, Andrew Davis wrote:
> On 3/24/22 5:21 PM, Ryan Eatmon via lists.yoctoproject.org wrote:
>> @@ -167,6 +182,10 @@ ALTERNATIVE_${PN}_am64xx = "\
>>                       am64-main-r5f1_1-fw \
>>                       am64-mcu-m4f0_0-fw \
>>                       "
>> +ALTERNATIVE_${PN}_am62xx = "\
>> +                    am62-mcu-m4f0_0-fw \
>> +                    am62-main-r5f0_0-fw \
> 
> 
> ^^ Looks like some tabs found there way in here..

I'll remove those errant tabs in v4.

> Why do we have these indented so far anyway, this whole file has wacky
> indenting, needs normalized.

The formatting has been in there for quite a while, so a more general 
file clean up might be in order.  I'll save that for another commit 
after we get past all of the am62xx changes.



> Andrew
> 
>> +                    "
>>   ALTERNATIVE_${PN}_j7 = "\
>>                       j7-mcu-r5f0_0-fw \
>> @@ -216,6 +235,9 @@ TARGET_MAIN_R5FSS1_0_am64xx = "am64-main-r5f1_0-fw"
>>   TARGET_MAIN_R5FSS1_1_am64xx = "am64-main-r5f1_1-fw"
>>   TARGET_MCU_M4FSS0_0_am64xx = "am64-mcu-m4f0_0-fw"
>> +TARGET_MAIN_R5FSS0_0_am62xx = "am62-main-r5f0_0-fw"
>> +TARGET_MCU_M4FSS0_0_am62xx = "am62-mcu-m4f0_0-fw"
>> +
> 

-- 
Ryan Eatmon
reatmon@ti.com

Patch

diff --git a/conf/machine/am62xx-evm-k3r5.conf b/conf/machine/am62xx-evm-k3r5.conf
new file mode 100644
index 00000000..724a8d4a
--- /dev/null
+++ b/conf/machine/am62xx-evm-k3r5.conf
@@ -0,0 +1,11 @@ 
+#@TYPE: Machine
+#@NAME: AM62XX EVM (R5F)
+#@DESCRIPTION: Machine configuration for the TI AM62xx EVM (R5F core)
+
+require conf/machine/include/k3r5.inc
+
+SYSFW_SOC = "am62x"
+SYSFW_CONFIG = "evm"
+SYSFW_SUFFIX = "gp"
+
+UBOOT_MACHINE = "am62x_evm_r5_defconfig"
diff --git a/conf/machine/am62xx-evm.conf b/conf/machine/am62xx-evm.conf
new file mode 100644
index 00000000..600abb58
--- /dev/null
+++ b/conf/machine/am62xx-evm.conf
@@ -0,0 +1,13 @@ 
+#@TYPE: Machine
+#@NAME: AM62XX EVM
+#@DESCRIPTION: Machine configuration for the TI AM62XX EVM
+
+require conf/machine/include/am62xx.inc
+
+KERNEL_DEVICETREE = " \
+    ti/k3-am625-sk.dtb \
+    ti/k3-am625-sk-lpmdemo.dtb \
+    ti/k3-am625-minimal.dtb \
+"
+
+UBOOT_MACHINE = "am62x_evm_a53_defconfig"
diff --git a/conf/machine/include/am62xx.inc b/conf/machine/include/am62xx.inc
new file mode 100644
index 00000000..e8823dd2
--- /dev/null
+++ b/conf/machine/include/am62xx.inc
@@ -0,0 +1,17 @@ 
+require conf/machine/include/k3.inc
+SOC_FAMILY_append = ":am62xx"
+
+MACHINE_FEATURES += "screen touchscreen"
+
+SERIAL_CONSOLES = "115200;ttyS2"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
+
+# AM62 supports multi-certificate images, use the same
+IMAGE_BOOT_FILES = "${IMAGE_BOOT_FILES_MULTI_CERT}"
+
+do_image_wic[mcdepends] = "mc::k3r5:ti-sci-fw:do_deploy"
+do_image_tar[mcdepends] = "mc::k3r5:ti-sci-fw:do_deploy"
+
+TFA_BOARD = "lite"
+OPTEEMACHINE = "k3-am65x"
+OPTEEOUTPUTMACHINE = "k3"
diff --git a/recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb b/recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb
index 646833a7..099473b4 100644
--- a/recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb
+++ b/recipes-bsp/ti-sci-fw/ti-sci-fw_git.bb
@@ -6,6 +6,7 @@  DEPENDS_append_j7200-hs-evm-k3r5 = " virtual/bootloader"
 DEPENDS_append_j721s2-evm-k3r5 = " virtual/bootloader"
 DEPENDS_append_am64xx-evm-k3r5 = " virtual/bootloader"
 DEPENDS_append_am64xx-hs-evm-k3r5 = " virtual/bootloader"
+DEPENDS_append_am62xx-evm-k3r5 = " virtual/bootloader"
 
 CLEANBROKEN = "1"
 PR = "${INC_PR}.2"
@@ -29,6 +30,7 @@  SYSFW_PREFIX_j7-hs-evm-k3r5-sr1-1 = "ti-fs-firmware"
 SYSFW_PREFIX_j7200-evm-k3r5 = "ti-fs-firmware"
 SYSFW_PREFIX_j7200-hs-evm-k3r5 = "ti-fs-firmware"
 SYSFW_PREFIX_j721s2-evm-k3r5 = "ti-fs-firmware"
+SYSFW_PREFIX_am62xx-evm-k3r5 = "ti-fs-firmware"
 
 SYSFW_SUFFIX ?= "unknown"
 
@@ -63,6 +65,7 @@  EXTRA_OEMAKE_append_j7200-hs-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-s
 EXTRA_OEMAKE_append_j721s2-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-spl.bin""
 EXTRA_OEMAKE_append_am64xx-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-spl.bin""
 EXTRA_OEMAKE_append_am64xx-hs-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-spl.bin""
+EXTRA_OEMAKE_append_am62xx-evm-k3r5 = " SBL="${STAGING_DIR_HOST}/boot/u-boot-spl.bin""
 
 do_compile() {
 	cd ${WORKDIR}/imggen/
@@ -170,4 +173,19 @@  do_deploy_am64xx-hs-evm-k3r5() {
         install -m 644 ${SYSFW_TISCI} ${DEPLOYDIR}/
 }
 
+do_install_am62xx-evm-k3r5() {
+	install -d ${D}/boot
+	install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${D}/boot/${UBOOT_IMAGE}
+	ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_SYMLINK}
+	ln -sf ${UBOOT_IMAGE} ${D}/boot/${UBOOT_BINARY}
+}
+
+do_deploy_am62xx-evm-k3r5() {
+	install -d ${DEPLOYDIR}
+	install -m 644 ${WORKDIR}/imggen/${UBOOT_BINARY} ${DEPLOYDIR}/${UBOOT_IMAGE}
+	ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_SYMLINK}
+	ln -sf ${UBOOT_IMAGE} ${DEPLOYDIR}/${UBOOT_BINARY}
+	install -m 644 ${SYSFW_TISCI} ${DEPLOYDIR}/
+}
+
 addtask 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 7ed6c5b4..231b7647 100644
--- a/recipes-bsp/u-boot/u-boot-ti.inc
+++ b/recipes-bsp/u-boot/u-boot-ti.inc
@@ -41,6 +41,7 @@  PACKAGECONFIG[dm] = "DM=${STAGING_DIR_HOST}${nonarch_base_libdir}/firmware/pdk-i
 
 PACKAGECONFIG_append_aarch64 = " atf optee"
 PACKAGECONFIG_append_j7 = " dm"
+PACKAGECONFIG_append_am62xx = " dm"
 
 COMPATIBLE_MACHINE = "(ti-soc)"
 
@@ -69,6 +70,7 @@  SPL_UART_BINARY_j7200-hs-evm-k3r5 = "u-boot-spl.bin"
 SPL_UART_BINARY_j721s2-evm-k3r5 = "u-boot-spl.bin"
 SPL_UART_BINARY_am64xx-evm-k3r5 = "u-boot-spl.bin"
 SPL_UART_BINARY_am64xx-hs-evm-k3r5 = "u-boot-spl.bin"
+SPL_UART_BINARY_am62xx-evm-k3r5 = "u-boot-spl.bin"
 
 SPL_UART_IMAGE ?= "${SPL_UART_BINARY}-${MACHINE}-${PV}-${PR}"
 SPL_UART_SYMLINK ?= "${SPL_UART_BINARY}-${MACHINE}"
@@ -419,4 +421,9 @@  do_deploy_append_am64xx-hs-evm-k3r5 () {
 	mv ${DEPLOYDIR}/u-boot-spl.bin ${DEPLOYDIR}/u-boot-spl-r5spl.bin || true
 }
 
+do_deploy_append_am62xx-evm-k3r5 () {
+	mv ${DEPLOYDIR}/tiboot3.bin ${DEPLOYDIR}/tiboot3-r5spl.bin || true
+	mv ${DEPLOYDIR}/u-boot-spl.bin ${DEPLOYDIR}/u-boot-spl-r5spl.bin || true
+}
+
 TOOLCHAIN = "gcc"
diff --git a/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb b/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb
index c5852dbd..d219d4f0 100644
--- a/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb
+++ b/recipes-ti/ti-rtos-bin/ti-rtos-firmware.bb
@@ -19,6 +19,7 @@  PLAT_SFX_j7200-hs-evm = "j7200"
 PLAT_SFX_j721s2-evm = "j721s2"
 PLAT_SFX_am65xx = "am65xx"
 PLAT_SFX_am64xx = "am64xx"
+PLAT_SFX_am62xx = "am62x"
 
 FILESEXTRAPATHS_prepend := "${METATIBASE}/recipes-bsp/ti-sci-fw/files/:"
 require recipes-bsp/ti-linux-fw/ti-linux-fw.inc
@@ -77,6 +78,13 @@  do_install_prepend_am64xx() {
         )
 }
 
+# Update the am62xx ipc binaries to be consistent with other platforms
+do_install_prepend_am62xx() {
+        ( cd ${RTOS_IPC_FW_DIR}; \
+                mv am62-mcu-m4f0_0-fw ipc_echo_baremetal_test_mcu2_0_release_strip.xer5f; \
+        )
+}
+
 #Install all R5 & DSP ipc echo test binaries in lib/firmware/pdk-ipc, with softlinks up a level
 do_install() {
 
@@ -154,6 +162,13 @@  do_install_am64xx() {
     install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_baremetal_test_mcu3_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
 }
 
+do_install_am62xx() {
+    install -d ${LEGACY_IPC_FW_DIR}
+    install -m 0644 ${RTOS_IPC_FW_DIR}/ipc_echo_baremetal_test_mcu2_0_release_strip.xer5f ${LEGACY_IPC_FW_DIR}
+    # DM Firmware
+    install -m 0644 ${RTOS_DM_FW_DIR}/ipc_echo_testb_mcu1_0_release_strip.xer5f ${LEGACY_DM_FW_DIR}
+}
+
 # Set up names for the firmwares
 ALTERNATIVE_${PN}_am65xx = "\
                     am65x-mcu-r5f0_0-fw \
@@ -167,6 +182,10 @@  ALTERNATIVE_${PN}_am64xx = "\
                     am64-main-r5f1_1-fw \
                     am64-mcu-m4f0_0-fw \
                     "
+ALTERNATIVE_${PN}_am62xx = "\
+                    am62-mcu-m4f0_0-fw \
+		            am62-main-r5f0_0-fw \
+                    "
 
 ALTERNATIVE_${PN}_j7 = "\
                     j7-mcu-r5f0_0-fw \
@@ -216,6 +235,9 @@  TARGET_MAIN_R5FSS1_0_am64xx = "am64-main-r5f1_0-fw"
 TARGET_MAIN_R5FSS1_1_am64xx = "am64-main-r5f1_1-fw"
 TARGET_MCU_M4FSS0_0_am64xx = "am64-mcu-m4f0_0-fw"
 
+TARGET_MAIN_R5FSS0_0_am62xx = "am62-main-r5f0_0-fw"
+TARGET_MCU_M4FSS0_0_am62xx = "am62-mcu-m4f0_0-fw"
+
 TARGET_MCU_R5FSS0_0_j7 = "j7-mcu-r5f0_0-fw"
 TARGET_MCU_R5FSS0_1_j7 = "j7-mcu-r5f0_1-fw"
 TARGET_MAIN_R5FSS0_0_j7 = "j7-main-r5f0_0-fw"
@@ -254,6 +276,9 @@  ALTERNATIVE_LINK_NAME[am64-main-r5f1_0-fw] = "${base_libdir}/firmware/${TARGET_M
 ALTERNATIVE_LINK_NAME[am64-main-r5f1_1-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS1_1}"
 ALTERNATIVE_LINK_NAME[am64-mcu-m4f0_0-fw] = "${base_libdir}/firmware/${TARGET_MCU_M4FSS0_0}"
 
+ALTERNATIVE_LINK_NAME[am62-main-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_0}"
+ALTERNATIVE_LINK_NAME[am62-mcu-m4f0_0-fw] = "${base_libdir}/firmware/${TARGET_MCU_M4FSS0_0}"
+
 ALTERNATIVE_LINK_NAME[j7-mcu-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MCU_R5FSS0_0}"
 ALTERNATIVE_LINK_NAME[j7-mcu-r5f0_1-fw] = "${base_libdir}/firmware/${TARGET_MCU_R5FSS0_1}"
 ALTERNATIVE_LINK_NAME[j7-main-r5f0_0-fw] = "${base_libdir}/firmware/${TARGET_MAIN_R5FSS0_0}"
@@ -289,6 +314,9 @@  ALTERNATIVE_TARGET[am64-main-r5f1_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_e
 ALTERNATIVE_TARGET[am64-main-r5f1_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu2_1_release_strip.xer5f"
 ALTERNATIVE_TARGET[am64-mcu-m4f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu3_0_release_strip.xer5f"
 
+ALTERNATIVE_TARGET[am62-main-r5f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_testb_mcu1_0_release_strip.xer5f"
+ALTERNATIVE_TARGET[am62-mcu-m4f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu2_0_release_strip.xer5f"
+
 ALTERNATIVE_TARGET[j7-mcu-r5f0_0-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_testb_mcu1_0_release_strip.xer5f"
 ALTERNATIVE_TARGET[j7-mcu-r5f0_1-fw] = "${base_libdir}/firmware/pdk-ipc/ipc_echo_test_mcu1_1_release_strip.xer5f"
 ALTERNATIVE_TARGET[j7-main-r5f0_0-fw] = "${base_libdir}/firmware/ethfw/app_remoteswitchcfg_server_strip.xer5f"