SK-AM62P-LP: Boot Failure After GPT Update for Larger Bootloader (DM Firmware >7MB)

Part Number: SK-AM62P-LP

Hi Team,

We are working with the following setup:

  • Processor SDK Android for AM62Px: 11_00_01
  • Android Version: 16
  • Kernel Version: 6.12

Requirement

We need to increase the bootloader partition size, as our DM core application size exceeds 7MB, resulting in a total bootloader size requirement of ~8MB+. Link

Changes Done

We modified the GPT layout in:
include/env/ti/android.env

diff --git a/include/env/ti/android.env b/include/env/ti/android.env
index 7732213e..1c9bd64d 100644
--- a/include/env/ti/android.env
+++ b/include/env/ti/android.env
@@ -1,8 +1,8 @@
 /* Android partitions
  * += is needed because \n is converted by space in .env files */
-partitions=name=bootloader,start=5M,size=8M,uuid=${uuid_gpt_bootloader};
+partitions=name=bootloader,start=5M,size=16M,uuid=${uuid_gpt_bootloader};
 partitions+=name=tiboot3,start=4M,size=1M,uuid=${uuid_gpt_tiboot3};
-partitions+=name=misc,start=13824K,size=512K,uuid=${uuid_gpt_misc};
+partitions+=name=misc,start=21M,size=512K,uuid=${uuid_gpt_misc};
 partitions+=name=frp,size=512K,uuid=${uuid_gpt_frp};
 partitions+=name=boot_a,size=40M,uuid=${uuid_gpt_boot_a};
 partitions+=name=boot_b,size=40M,uuid=${uuid_gpt_boot_b};
diff --git a/include/env/ti/k3_dfu.env b/include/env/ti/k3_dfu.env

Issue 1: DFU (snagrecover) Failure

While running:

snagrecover -s am625 -f ./am62px-sk-evm-hsfs.yaml

We encountered the following error during tispl download:

snagrecover -s am625 -f ./am62px-sk-evm-hsfs.yaml
2026-05-08 19:36:36,811 [INFO] Starting recovery of am625 board
2026-05-08 19:36:36,814 [INFO] Installing firmware tiboot3
2026-05-08 19:36:36,814 [INFO] Searching for partition id...
2026-05-08 19:36:36,815 [INFO] Found DFU Functional descriptor: wTransferSize = 512
2026-05-08 19:36:36,815 [INFO] Downloading file...
2026-05-08 19:36:37,241 [INFO] Could not read status after end of manifest phase
2026-05-08 19:36:37,241 [INFO] Done
2026-05-08 19:36:37,241 [INFO] Done installing firmware tiboot3
2026-05-08 19:36:38,255 [INFO] Installing firmware tispl
2026-05-08 19:36:38,255 [INFO] Searching for partition id...
2026-05-08 19:36:38,256 [INFO] Found DFU Functional descriptor: wTransferSize = 4096
2026-05-08 19:36:38,256 [INFO] Downloading file...
Traceback (most recent call last):
  File "/home/user/.local/bin/snagrecover", line 8, in <module>
    sys.exit(cli())
  File "/home/user/.local/lib/python3.10/site-packages/snagrecover/cli.py", line 185, in cli
    recovery()
  File "/home/user/.local/lib/python3.10/site-packages/snagrecover/recoveries/am6x.py", line 33, in main
    run_firmware(dev, "tispl")
  File "/home/user/.local/lib/python3.10/site-packages/snagrecover/firmware/firmware.py", line 204, in run_firmware
    am6x_run(port, fw_name, fw_blob)
  File "/home/user/.local/lib/python3.10/site-packages/snagrecover/firmware/firmware.py", line 86, in am6x_run
    dfu_cmd.download_and_run(fw_blob, partid, offset=0, size=len(fw_blob))
  File "/home/user/.local/lib/python3.10/site-packages/snagrecover/protocols/dfu.py", line 158, in download_and_run
    raise ValueError("DFU error code reported by device!")
ValueError: DFU error code reported by device!

Workaround Attempt

diff --git a/include/env/ti/k3_dfu.env b/include/env/ti/k3_dfu.env
index d89f8863..450d5666 100644
--- a/include/env/ti/k3_dfu.env
+++ b/include/env/ti/k3_dfu.env
@@ -25,7 +25,7 @@ dfu_alt_info_ospi=
        rootfs raw 0x800000 0x3800000
 
 dfu_alt_info_ram=
-       tispl.bin ram 0x80080000 0x200000;
+       tispl.bin ram 0x80080000 0x800000;
        u-boot.img ram 0x81000000 0x400000
 
 dfu_alt_info_ospi_nand=
diff --git a/include/env/ti/k3_dfu_combined.env b/include/env/ti/k3_dfu_combined.env
index ce3a1203..7182b4a5 100644
--- a/include/env/ti/k3_dfu_combined.env
+++ b/include/env/ti/k3_dfu_combined.env
@@ -23,5 +23,5 @@ dfu_alt_info_ospi=
        rootfs raw 0x800000 0x3800000
 
 dfu_alt_info_ram=
-       tispl.bin ram 0x80080000 0x200000;
+       tispl.bin ram 0x80080000 0x800000;
        u-boot.img ram 0x81000000 0x400000

With this change:

  • Sngrecover succeeds
  • DM core display application runs successfully on HDMI
  • Bootloader size increased to 16MB

Issue 2: Boot Failure from eMMC

After switching boot mode from DFU → eMMC, the board fails to boot:

U-Boot SPL 2025.01-gef2eb76b6504-dirty (May 08 2026 - 19:13:06 +0530)
SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05d (Fancy Rat)')
Set clock rates for '/a53@0', CPU: 1250MHz at Speed Grade 'U'
SPL initial stack usage: 17104 bytes
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

Questions

  1. Is increasing the bootloader partition to 16MB sufficient, or are there additional constraints (e.g., tiboot3/tispl layout alignment, ROM expectations)?
  2. Do we need to update any additional configurations when modifying GPT (e.g., binman layout, tiboot3 offsets, SYSFW expectations)?
  3. Could this failure be due to:
    • Incorrect partition offsets after resizing?
    • Mismatch between DFU RAM layout and eMMC layout?
    • Boot ROM / SPL limitations?
  4. What is the recommended approach to support bootloader size >16MB on AM62Px?
  5. Is there any official guidance for handling large DM firmware inside tispl.bin?

Any guidance would be greatly appreciated.