Skip to content

Commit

Permalink
How-To Guide: Add Boot Optimization Guide
Browse files Browse the repository at this point in the history
This is the definitive guide for customers to optimize their boot time
in the Sitara MPU AM62xx portfolio. It links all the work done from
ROM, bootloaders (SBL), kernel and userspace to get a display up in less
than 1s.
SPL optimization are have been moved to a later release and will be
added to the guide then.

Several files need to be added to enable customers achieve these
optimizations faster and reduce the burden on E2E support

Signed-off-by: Aashvij Shenai <[email protected]>
  • Loading branch information
AashvijShenai committed Mar 29, 2024
1 parent ff1c57a commit 4128a8d
Show file tree
Hide file tree
Showing 23 changed files with 4,264 additions and 0 deletions.
1 change: 1 addition & 0 deletions configs/AM62AX/AM62AX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ linux/How_to_Guides/Host/K3_Resource_Partitioning_Tool
#linux/How_to_Guides/Host/How_to_Setup_and_Debug_using_Lauterbach
linux/How_to_Guides/Host/SYSFW_Trace_Parser
linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customization
linux/How_to_Guides/Target/How_to_boot_quickly
linux/How_to_Guides/Target/How_to_test_MCAN_on_AM62x
linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux
linux/How_to_Guides/Target/How_to_playback_audio_over_HDMI
Expand Down
1 change: 1 addition & 0 deletions configs/AM62PX/AM62PX_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ linux/How_to_Guides/Target/How_to_test_MCAN_on_AM62x
linux/How_to_Guides/Target/How_to_enable_DT_overlays_in_linux
linux/How_to_Guides/Target/How_to_playback_audio_over_HDMI
linux/How_to_Guides/Target/How_to_enable_display_sharing_between_remotecore_and_Linux
linux/How_to_Guides/Target/How_to_boot_quickly
linux/How_to_Guides/Target/How_to_enable_Microtips_LVDS_Panel
linux/How_to_Guides/Target/How_to_Use_K3Conf_Tool
linux/How_to_Guides/Target/Runtime_debug_unlock_on_secure_device
Expand Down
1 change: 1 addition & 0 deletions configs/AM62X/AM62X_linux_toc.txt
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,7 @@ linux/How_to_Guides/Host/K3_Resource_Partitioning_Tool
linux/How_to_Guides/Host/How_to_Setup_and_Debug_using_Lauterbach
linux/How_to_Guides/Host/SYSFW_Trace_Parser
linux/How_to_Guides/Target/Processor_SDK_Linux_File_System_Optimization_Customization
linux/How_to_Guides/Target/How_to_boot_quickly
#linux/How_to_Guides/Target/How_to_flash_emmc_device # We do not support this for now
linux/How_to_Guides/Target/How_to_suspend_to_ram_on_AM62x
linux/How_to_Guides/Target/How_to_test_MCAN_on_AM62x
Expand Down
107 changes: 107 additions & 0 deletions source/files/AM62P-Change-DMA-allocation.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
From 17508b3e3a8991ecc0cf767ad2302d34141b8616 Mon Sep 17 00:00:00 2001
From: Aashvij Shenai <[email protected]>
Date: Fri, 29 Mar 2024 15:40:53 +0530
Subject: [PATCH] am62px: Change DMA allocation

This patch removes the DMA channel allocations fo A53 and MCU cores so
that the first channels are allocated to DM R5. This will be used to
demonstrate the use of High Capacity BCDMA channels. In Am62Px, there
are 4 HC channels
---
.../am62px/sciclient_defaultBoardcfg_rm.c | 42 ++++---------------
1 file changed, 9 insertions(+), 33 deletions(-)

diff --git a/source/drivers/sciclient/sciclient_default_boardcfg/am62px/sciclient_defaultBoardcfg_rm.c b/source/drivers/sciclient/sciclient_default_boardcfg/am62px/sciclient_defaultBoardcfg_rm.c
index a22e6f6b4459..05d228843932 100644
--- a/source/drivers/sciclient/sciclient_default_boardcfg/am62px/sciclient_defaultBoardcfg_rm.c
+++ b/source/drivers/sciclient/sciclient_default_boardcfg/am62px/sciclient_defaultBoardcfg_rm.c
@@ -96,7 +96,7 @@ __attribute__(( aligned(128), section(".boardcfg_data") )) =
.magic = TISCI_BOARDCFG_RM_RESASG_MAGIC_NUM,
.size = (uint16_t) sizeof(struct tisci_boardcfg_rm_resasg),
},
- .resasg_entries_size = 123 * sizeof(struct tisci_boardcfg_rm_resasg_entry),
+ .resasg_entries_size = 119 * sizeof(struct tisci_boardcfg_rm_resasg_entry),
},
},
.resasg_entries = {
@@ -154,34 +154,22 @@ __attribute__(( aligned(128), section(".boardcfg_data") )) =
.start_resource = 0,
.host_id = TISCI_HOST_ID_ALL,
},
- {
- .num_resource = 18,
- .type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_RING_BLOCK_COPY_CHAN),
- .start_resource = 0,
- .host_id = TISCI_HOST_ID_A53_2,
- },
{
.num_resource = 6,
.type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_RING_BLOCK_COPY_CHAN),
- .start_resource = 18,
+ .start_resource = 0,
.host_id = TISCI_HOST_ID_WKUP_0_R5_0,
},
{
.num_resource = 6,
.type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_RING_BLOCK_COPY_CHAN),
- .start_resource = 18,
+ .start_resource = 0,
.host_id = TISCI_HOST_ID_WKUP_0_R5_1,
},
{
- .num_resource = 2,
- .type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_RING_BLOCK_COPY_CHAN),
- .start_resource = 24,
- .host_id = TISCI_HOST_ID_MCU_0_R5_0,
- },
- {
- .num_resource = 6,
+ .num_resource = 26,
.type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_RING_BLOCK_COPY_CHAN),
- .start_resource = 26,
+ .start_resource = 6,
.host_id = TISCI_HOST_ID_ALL,
},
{
@@ -238,34 +226,22 @@ __attribute__(( aligned(128), section(".boardcfg_data") )) =
.start_resource = 52,
.host_id = TISCI_HOST_ID_ALL,
},
- {
- .num_resource = 18,
- .type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_BLOCK_COPY_CHAN),
- .start_resource = 0,
- .host_id = TISCI_HOST_ID_A53_2,
- },
{
.num_resource = 6,
.type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_BLOCK_COPY_CHAN),
- .start_resource = 18,
+ .start_resource = 0,
.host_id = TISCI_HOST_ID_WKUP_0_R5_0,
},
{
.num_resource = 6,
.type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_BLOCK_COPY_CHAN),
- .start_resource = 18,
+ .start_resource = 0,
.host_id = TISCI_HOST_ID_WKUP_0_R5_1,
},
{
- .num_resource = 2,
- .type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_BLOCK_COPY_CHAN),
- .start_resource = 24,
- .host_id = TISCI_HOST_ID_MCU_0_R5_0,
- },
- {
- .num_resource = 6,
+ .num_resource = 26,
.type = TISCI_RESASG_UTYPE (TISCI_DEV_DMASS0_BCDMA_0, TISCI_RESASG_SUBTYPE_BCDMA_BLOCK_COPY_CHAN),
- .start_resource = 26,
+ .start_resource = 6,
.host_id = TISCI_HOST_ID_ALL,
},
{
--
2.34.1

165 changes: 165 additions & 0 deletions source/files/am62ax_nor.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,165 @@
From 46fc19268d993d410607c5a99b9d9a6f21dff812 Mon Sep 17 00:00:00 2001
From: Aashvij Shenai <[email protected]>
Date: Wed, 27 Mar 2024 16:01:57 +0530
Subject: [PATCH] am62ax: Use NOR

Signed-off-by: Aashvij Shenai <[email protected]>
---
arch/arm/dts/k3-am62a-main.dtsi | 3 +--
arch/arm/dts/k3-am62a7-sk-u-boot.dtsi | 4 ++++
arch/arm/dts/k3-am62a7-sk.dts | 10 +++++-----
configs/am62ax_evm_a53_defconfig | 11 +++++++++--
configs/am62ax_evm_r5_defconfig | 19 +++++++++++++++++--
5 files changed, 36 insertions(+), 11 deletions(-)

diff --git a/arch/arm/dts/k3-am62a-main.dtsi b/arch/arm/dts/k3-am62a-main.dtsi
index 41aec3a82e86..63f33a71101f 100644
--- a/arch/arm/dts/k3-am62a-main.dtsi
+++ b/arch/arm/dts/k3-am62a-main.dtsi
@@ -553,7 +553,6 @@
#address-cells = <2>;
#size-cells = <2>;
ranges;
- status = "disabled";

ospi0: spi@fc40000 {
compatible = "ti,am654-ospi", "cdns,qspi-nor";
@@ -566,7 +565,7 @@
clocks = <&k3_clks 75 7>;
assigned-clocks = <&k3_clks 75 7>;
assigned-clock-parents = <&k3_clks 75 8>;
- assigned-clock-rates = <166666666>;
+ assigned-clock-rates = <25000000>;
power-domains = <&k3_pds 75 TI_SCI_PD_EXCLUSIVE>;
#address-cells = <1>;
#size-cells = <0>;
diff --git a/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi b/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi
index 090520500570..8de960facff5 100644
--- a/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi
+++ b/arch/arm/dts/k3-am62a7-sk-u-boot.dtsi
@@ -215,6 +215,10 @@

partitions {
bootph-pre-ram;
+
+ partition@3fc0000 {
+ u-boot,dm-spl;
+ };
};
};
};
diff --git a/arch/arm/dts/k3-am62a7-sk.dts b/arch/arm/dts/k3-am62a7-sk.dts
index f727b5f82580..6898b412e9d0 100644
--- a/arch/arm/dts/k3-am62a7-sk.dts
+++ b/arch/arm/dts/k3-am62a7-sk.dts
@@ -409,7 +409,7 @@
pinctrl-0 = <&ospi0_pins_default>;

flash@0{
- compatible = "spi-nand";
+ compatible = "jedec,spi-nor";
reg = <0x0>;
spi-tx-bus-width = <8>;
spi-rx-bus-width = <8>;
@@ -451,14 +451,14 @@
reg = <0x6c0000 0x40000>;
};

- partition@2000000 {
+ partition@800000 {
label = "ospi_nand.rootfs";
- reg = <0x2000000 0x5fc0000>;
+ reg = <0x800000 0x37c0000>;
};

- partition@7fc0000 {
+ partition@3fc0000 {
label = "ospi_nand.phypattern";
- reg = <0x7fc0000 0x40000>;
+ reg = <0x3fc0000 0x40000>;
};
};
};
diff --git a/configs/am62ax_evm_a53_defconfig b/configs/am62ax_evm_a53_defconfig
index 5442796a82e7..bbb1c01d71f4 100644
--- a/configs/am62ax_evm_a53_defconfig
+++ b/configs/am62ax_evm_a53_defconfig
@@ -48,8 +48,9 @@ CONFIG_SPL_DM_MAILBOX=y
CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_MTD_LOAD=y
CONFIG_SYS_MTD_U_BOOT_OFFS=0x280000
-CONFIG_SPL_NAND_SPI_SUPPORT=y
CONFIG_SPL_DM_SPI_FLASH=y
+CONFIG_SPL_SPI_FLASH_SUPPORT=y
+CONFIG_SPL_SPI_SUPPORT=y
CONFIG_SPL_POWER_DOMAIN=y
CONFIG_SPL_RAM_SUPPORT=y
CONFIG_SPL_USB_GADGET=y
@@ -117,8 +118,14 @@ CONFIG_SPL_MMC_SDHCI_ADMA=y
CONFIG_MMC_SDHCI_AM654=y
CONFIG_MTD=y
CONFIG_DM_MTD=y
-CONFIG_MTD_SPI_NAND=y
CONFIG_DM_SPI_FLASH=y
+CONFIG_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPI_FLASH_SOFT_RESET=y
+CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_S28HX_T=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_MT35XU=y
CONFIG_PHY_TI_DP83867=y
CONFIG_TI_AM65_CPSW_NUSS=y
CONFIG_PINCTRL=y
diff --git a/configs/am62ax_evm_r5_defconfig b/configs/am62ax_evm_r5_defconfig
index 156d5a188096..7ee8724b672a 100644
--- a/configs/am62ax_evm_r5_defconfig
+++ b/configs/am62ax_evm_r5_defconfig
@@ -12,6 +12,10 @@ CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x43c3a7f0
CONFIG_ENV_SIZE=0x20000
CONFIG_ENV_OFFSET=0x680000
CONFIG_SPL_DM_SPI=y
+CONFIG_SPI=y
+CONFIG_DM_SPI=y
+CONFIG_CADENCE_QSPI=y
+CONFIG_CADENCE_QSPI_PHY=y
CONFIG_DEFAULT_DEVICE_TREE="k3-am62a7-r5-sk"
CONFIG_SPL_TEXT_BASE=0x43c00000
CONFIG_DM_RESET=y
@@ -50,8 +54,12 @@ CONFIG_SPL_DMA=y
CONFIG_SPL_DM_MAILBOX=y
CONFIG_SPL_MTD_SUPPORT=y
CONFIG_SPL_MTD_LOAD=y
-CONFIG_SPL_NAND_SPI_SUPPORT=y
+# CONFIG_SPL_NAND_SPI_SUPPORT=y
CONFIG_SPL_DM_SPI_FLASH=y
+CONFIG_SPL_SPI_FLASH_SUPPORT=y
+CONFIG_SPL_SPI_SUPPORT=y
+CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPL_SPI_LOAD=y
CONFIG_SPL_DM_RESET=y
CONFIG_SPL_POWER_DOMAIN=y
CONFIG_SPL_RAM_SUPPORT=y
@@ -103,8 +111,15 @@ CONFIG_MMC_SDHCI_ADMA=y
CONFIG_MMC_SDHCI_AM654=y
CONFIG_MTD=y
CONFIG_DM_MTD=y
-CONFIG_MTD_SPI_NAND=y
CONFIG_DM_SPI_FLASH=y
+CONFIG_SF_DEFAULT_MODE=0
+CONFIG_SPI_FLASH_SFDP_SUPPORT=y
+CONFIG_SPI_FLASH_SOFT_RESET=y
+CONFIG_SPI_FLASH_SOFT_RESET_ON_BOOT=y
+CONFIG_SPI_FLASH_SPANSION=y
+CONFIG_SPI_FLASH_S28HX_T=y
+CONFIG_SPI_FLASH_STMICRO=y
+CONFIG_SPI_FLASH_MT35XU=y
CONFIG_PINCTRL=y
# CONFIG_PINCTRL_GENERIC is not set
CONFIG_SPL_PINCTRL=y

base-commit: 7d050099177240f6cdf8992310f2cf4941e954af
prerequisite-patch-id: 26f3054c6516aae6a335c354a876ab1690a42de1
--
2.34.1

Loading

0 comments on commit 4128a8d

Please sign in to comment.