This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMDS64GPEVM: Emmc bootloader

Part Number: TMDS64GPEVM

We have made custom am64x board based on Evm . In our custom board size of boot0 partition of EMMC is 2MB . We are able to flash first 2 bootloaders but we are not able to flash the uboot.img to boot0 partition of emmc due to size limitation . 

is it possible to load uboot form user partition ?

  • Hi Paras,
    I'll look into it, and get back to you in few days.
    Best,
    -Hong

  • Hi Paras,
    In TI AM64x Linux SDK, tiboot3.bin, tispl.bin, and u-boot.img boot by default from the same boot media.
    For eMMC, three binary are in eMMC boot area, which normally uses an underlying storage technology more reliable than the user area.
    1. Boot area is raw partition, where binary load is at the fixed offset, for example,
    - tiboot3.bin @sector 0 (R5 SPL, and loaded by bootrom)
    - tispl.bin @sector 0x400 (A53 SPL, and loaded by R5 SPL)
    - u-boot.img @sector 0x1400 (A53 u-boot, and loaded by A53 SPL)
    The offsets are defined in "am64x_evm_r5_defconfig" for "tispl.bin", and "am64x_evm_a53_defconfig" for "u-boot.img"
    One option would be optimizing the three binary size to see if it is feasible to fit all three into eMMC boot area.
    2. If binary optimization not feasible, in theory, it is doable to load "u-boot.img" from user area.
    A basic idea: in spl_mmc_load() in "$u-boot/common/spl/spl_mmc.c", when filename=="u-boot.img", re-direct to eMMC user area instead of eMMC boot area.
    It would involve further code customization to bring EXT4/EXT3 FS support depending on eMMC user partition configured.
    Best,
    -Hong

  • Hi Hong, 

    I just want to know if Falcon boot is possible as we don`t have any specific requirement for u-boot.  

  • Hi Paras,

    Falcon mode is not supported on K3 family of devices, i.e. AM64x.

    Best,

    -Hong

  • Hi, hong , 

    I have optimized the bootloaders (by disabling unused commands and drivers)  now sizes of bootloaders are -> 421KB(tiboot3.bin) , 680KB(tispl.bin) and 868KB(u-boot.img) . I have flashed bootloaders to emmc boot-0 partition and linux is booting fine .  

    But now i can neither reset from the u-boot shell or reboot from bash shell . In boot case shell is stuck 

    Uboot-shell -> pb


    U-Boot SPL 2021.01-00002-g91e4aee2b6 (May 10 2022 - 14:09:32 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.5.0--v2021.05 (Terrific Llam')
    SPL initial stack usage: 13392 bytes
    Trying to boot from MMC1
    init_env from device 9 not supported!
    Starting ATF on ARM64 core...

    NOTICE: BL31: v2.5(release):08.00.00.004-dirty
    NOTICE: BL31: Built : 21:46:29, Aug 10 2021

    U-Boot SPL 2021.01-00002-g91e4aee2b6 (May 10 2022 - 14:10:32 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.5.0--v2021.05 (Terrific Llam')
    Trying to boot from MMC1


    U-Boot 2021.01-00002-g91e4aee2b6-dirty (May 10 2022 - 14:40:15 +0530)

    SoC: AM64X SR1.0
    Model: Texas Instruments AM642 EVM
    DRAM: 2 GiB
    MMC: mmc@fa10000: 0, mmc@fa00000: 1
    In: serial@2800000
    Out: serial@2800000
    Err: serial@2800000
    Hit any key to stop autoboot: 0
    =>
    =>
    => reset
    resetting ...

    From bash shell using the default image 

    [ OK ] Stopped target Local File Systems.
    Unmounting /media/ram...
    Unmounting Temporary Directory (/tmp)...
    Unmounting /var/volatile...
    [ OK ] Unmounted /media/ram.
    [ OK ] Unmounted Temporary Directory (/tmp).
    [ OK ] Unmounted /var/volatile.
    [ OK ] Stopped target Local File Systems (Pre).
    [ OK ] Stopped target Swap.
    [ OK ] Reached target Unmount All Filesystems.
    [ OK ] Stopped Remount Root and Kernel File Systems.
    [ OK ] Stopped Create Static Device Nodes in /dev.
    [ OK ] Reached target Shutdown.
    [ OK ] Reached target Final Step.
    [ OK ] Started Reboot.
    [ OK ] Reached target Reboot.
    [ 40.453631] systemd-shutdown[1]: Syncing filesystems and block devices.
    [ 40.460726] systemd-shutdown[1]: Sending SIGTERM to remaining processes...
    [ 40.476418] systemd-journald[147]: Received SIGTERM from PID 1 (systemd-shutdow).
    [ 40.488729] systemd-shutdown[1]: Sending SIGKILL to remaining processes...
    [ 40.504823] systemd-shutdown[1]: Unmounting file systems.
    [ 40.513661] [853]: Remounting '/' read-only in with options '(null)'.
    [ 40.536243] EXT4-fs (mmcblk0p1): re-mounted. Opts: (null)
    [ 40.548868] systemd-shutdown[1]: All filesystems unmounted.
    [ 40.554578] systemd-shutdown[1]: Deactivating swaps.
    [ 40.559844] systemd-shutdown[1]: All swaps deactivated.
    [ 40.565092] systemd-shutdown[1]: Detaching loop devices.
    [ 40.575141] systemd-shutdown[1]: All loop devices detached.
    [ 40.580855] systemd-shutdown[1]: Detaching DM devices.
    [ 40.586533] systemd-shutdown[1]: All DM devices detached.
    [ 40.591961] systemd-shutdown[1]: All filesystems, swaps, loop devices and DM devices detached.
    [ 40.606339] systemd-shutdown[1]: Syncing filesystems and block devices.
    [ 40.613327] systemd-shutdown[1]: Rebooting.
    [ 40.642355] reboot: Restarting system

    Is there any dependency on uboot for doing soft reset ?

    Have i disabled something specific from menuconfig of spl/u-boot which is responsible for soft reset/reboot ? 

    Please Note : if i use the bootloaders (un-touched /unmodified [using default defconfig] then reset form uboot-shell and reboot from bash shell is working . 

  • Hi Paras,
    "reset" cmd @u-boot is supported by u-boot DM driver "ti_sci_sysreset" in "u-boot/drivers/sysreset/sysreset-ti-sci.c"
    It depends on "CONFIG_SYSRESET_TI_SCI".
    There's similar kernel TI_SCI driver for "reboot" in Linux kernel.
    Best,
    -Hong

  • diff --git a/A_file.txt b/B_file.txt
    index a7a1160..08fbe3c 100644
    --- a/A_file.txt
    +++ b/B_file.txt
    @@ -175,9 +175,7 @@ CONFIG_SPL_LDSCRIPT="arch/arm/cpu/armv8/u-boot-spl.lds"
     # CONFIG_TARGET_XENGUEST_ARM64 is not set
     # CONFIG_TI_SECURE_DEVICE is not set
     CONFIG_SYS_TEXT_BASE=0x80800000
    -CONFIG_TI_I2C_BOARD_DETECT=y
    -CONFIG_EEPROM_BUS_ADDRESS=0
    -CONFIG_EEPROM_CHIP_ADDRESS=0x50
    +# CONFIG_TI_I2C_BOARD_DETECT is not set
     # CONFIG_TI_COMMON_CMD_OPTIONS is not set
     CONFIG_SPL_GPIO_SUPPORT=y
     CONFIG_SPL_LIBCOMMON_SUPPORT=y
    @@ -433,7 +431,7 @@ CONFIG_SPL_SEPARATE_BSS=y
     CONFIG_SPL_BANNER_PRINT=y
     # CONFIG_SPL_DISPLAY_PRINT is not set
     CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_SECTOR=y
    -CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x1400
    +CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_SECTOR=0x8C0
     CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_DATA_PART_OFFSET=0x0
     # CONFIG_SYS_MMCSD_RAW_MODE_U_BOOT_USE_PARTITION is not set
     # CONFIG_SUPPORT_EMMC_BOOT_OVERRIDE_PART_CONFIG is not set
    @@ -491,16 +489,16 @@ CONFIG_SPL_RAM_DEVICE=y
     CONFIG_SPL_SPI_FLASH_SFDP_SUPPORT=y
     # CONFIG_SPL_SPI_FLASH_MTD is not set
     CONFIG_SPL_SPI_LOAD=y
    -CONFIG_SPL_THERMAL=y
    +# CONFIG_SPL_THERMAL is not set
     CONFIG_SPL_USB_HOST_SUPPORT=y
    -CONFIG_SPL_USB_STORAGE=y
    +# CONFIG_SPL_USB_STORAGE is not set
     CONFIG_SPL_USB_GADGET=y
     # CONFIG_SPL_USB_ETHER is not set
     CONFIG_SPL_DFU=y
     CONFIG_SPL_DFU_RAM=y
     # CONFIG_SPL_USB_SDP_SUPPORT is not set
     # CONFIG_SPL_WATCHDOG_SUPPORT is not set
    -CONFIG_SPL_YMODEM_SUPPORT=y
    +# CONFIG_SPL_YMODEM_SUPPORT is not set
     # CONFIG_SPL_ATF is not set
     # CONFIG_SPL_AM33XX_ENABLE_RTC32K_OSC is not set
     # CONFIG_SPL_OPTEE is not set
    @@ -543,9 +541,9 @@ CONFIG_BOOTM_LINUX=y
     CONFIG_BOOTM_NETBSD=y
     # CONFIG_BOOTM_OPENRTOS is not set
     # CONFIG_BOOTM_OSE is not set
    -CONFIG_BOOTM_PLAN9=y
    -CONFIG_BOOTM_RTEMS=y
    -CONFIG_BOOTM_VXWORKS=y
    +# CONFIG_BOOTM_PLAN9 is not set
    +# CONFIG_BOOTM_RTEMS is not set
    +# CONFIG_BOOTM_VXWORKS is not set
     CONFIG_CMD_BOOTEFI=y
     CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y
     # CONFIG_CMD_BOOTEFI_HELLO is not set
    @@ -571,8 +569,7 @@ CONFIG_CMD_EXPORTENV=y
     CONFIG_CMD_IMPORTENV=y
     CONFIG_CMD_EDITENV=y
     # CONFIG_CMD_GREPENV is not set
    -CONFIG_CMD_SAVEENV=y
    -# CONFIG_CMD_ERASEENV is not set
    +# CONFIG_CMD_SAVEENV is not set
     CONFIG_CMD_ENV_EXISTS=y
     # CONFIG_CMD_ENV_CALLBACK is not set
     # CONFIG_CMD_ENV_FLAGS is not set
    @@ -595,7 +592,7 @@ CONFIG_CMD_CRC32=y
     CONFIG_CMD_MEMORY=y
     # CONFIG_CMD_MEM_SEARCH is not set
     # CONFIG_CMD_MX_CYCLIC is not set
    -CONFIG_CMD_RANDOM=y
    +# CONFIG_CMD_RANDOM is not set
     # CONFIG_CMD_MEMTEST is not set
     # CONFIG_CMD_SHA1SUM is not set
     # CONFIG_CMD_STRINGS is not set
    @@ -605,7 +602,7 @@ CONFIG_CMD_RANDOM=y
     #
     CONFIG_CMD_LZMADEC=y
     CONFIG_CMD_UNLZ4=y
    -CONFIG_CMD_UNZIP=y
    +# CONFIG_CMD_UNZIP is not set
     # CONFIG_CMD_ZIP is not set
     
     #
    @@ -628,7 +625,7 @@ CONFIG_RANDOM_UUID=y
     # CONFIG_CMD_IDE is not set
     # CONFIG_CMD_IO is not set
     # CONFIG_CMD_IOTRACE is not set
    -CONFIG_CMD_I2C=y
    +# CONFIG_CMD_I2C is not set
     CONFIG_CMD_LOADB=y
     CONFIG_CMD_LOADS=y
     # CONFIG_CMD_LSBLK is not set
    @@ -637,7 +634,7 @@ CONFIG_CMD_MMC=y
     # CONFIG_CMD_BKOPS_ENABLE is not set
     # CONFIG_CMD_MMC_SWRITE is not set
     # CONFIG_CMD_CLONE is not set
    -CONFIG_CMD_MTD=y
    +# CONFIG_CMD_MTD is not set
     # CONFIG_CMD_MUX is not set
     # CONFIG_CMD_ONENAND is not set
     # CONFIG_CMD_OSD is not set
    @@ -651,12 +648,11 @@ CONFIG_CMD_PINMUX=y
     # CONFIG_CMD_SAVES is not set
     # CONFIG_CMD_SCSI is not set
     # CONFIG_CMD_SDRAM is not set
    -CONFIG_CMD_SF=y
    -# CONFIG_CMD_SF_TEST is not set
    +# CONFIG_CMD_SF is not set
     # CONFIG_CMD_SPI is not set
     # CONFIG_CMD_TSI148 is not set
     # CONFIG_CMD_UNIVERSE is not set
    -CONFIG_CMD_USB=y
    +# CONFIG_CMD_USB is not set
     # CONFIG_CMD_USB_SDP is not set
     # CONFIG_CMD_USB_MASS_STORAGE is not set
     
    @@ -671,37 +667,6 @@ CONFIG_CMD_SETEXPR=y
     #
     # Android support commands
     #
    -CONFIG_CMD_NET=y
    -CONFIG_CMD_BOOTP=y
    -CONFIG_CMD_DHCP=y
    -CONFIG_BOOTP_BOOTPATH=y
    -CONFIG_BOOTP_DNS=y
    -# CONFIG_BOOTP_DNS2 is not set
    -CONFIG_BOOTP_GATEWAY=y
    -CONFIG_BOOTP_HOSTNAME=y
    -# CONFIG_BOOTP_PREFER_SERVERIP is not set
    -CONFIG_BOOTP_SUBNETMASK=y
    -# CONFIG_BOOTP_NTPSERVER is not set
    -# CONFIG_CMD_PCAP is not set
    -CONFIG_BOOTP_PXE=y
    -CONFIG_BOOTP_PXE_CLIENTARCH=0x16
    -CONFIG_BOOTP_VCI_STRING="U-Boot.armv8"
    -CONFIG_CMD_TFTPBOOT=y
    -# CONFIG_CMD_TFTPPUT is not set
    -# CONFIG_CMD_TFTPSRV is not set
    -CONFIG_NET_TFTP_VARS=y
    -# CONFIG_CMD_RARP is not set
    -CONFIG_CMD_NFS=y
    -CONFIG_CMD_MII=y
    -CONFIG_CMD_MDIO=y
    -CONFIG_CMD_PING=y
    -# CONFIG_CMD_CDP is not set
    -# CONFIG_CMD_SNTP is not set
    -# CONFIG_CMD_DNS is not set
    -# CONFIG_CMD_LINK_LOCAL is not set
    -# CONFIG_CMD_ETHSW is not set
    -CONFIG_CMD_PXE=y
    -# CONFIG_CMD_WOL is not set
     
     #
     # Misc commands
    @@ -826,7 +791,6 @@ CONFIG_OF_SPL_REMOVE_PROPS="interrupt-parent interrupts"
     # Environment
     #
     CONFIG_ENV_SUPPORT=y
    -CONFIG_SAVEENV=y
     # CONFIG_ENV_OVERWRITE is not set
     CONFIG_ENV_IS_NOWHERE=y
     # CONFIG_ENV_IS_IN_EEPROM is not set
    @@ -853,14 +817,7 @@ CONFIG_SYS_MMC_ENV_PART=0
     # CONFIG_ENV_ACCESS_IGNORE_FORCE is not set
     CONFIG_SPL_ENV_IS_NOWHERE=y
     # CONFIG_VERSION_VARIABLE is not set
    -CONFIG_NET=y
    -# CONFIG_PROT_UDP is not set
    -# CONFIG_BOOTP_SEND_HOSTNAME is not set
    -CONFIG_NET_RANDOM_ETHADDR=y
    -# CONFIG_NETCONSOLE is not set
    -# CONFIG_IP_DEFRAG is not set
    -CONFIG_TFTP_BLOCKSIZE=1468
    -CONFIG_TFTP_WINDOWSIZE=1
    +# CONFIG_NET is not set
     
     #
     # Device Drivers
    @@ -972,12 +929,12 @@ CONFIG_DFU=y
     CONFIG_DFU_OVER_USB=y
     # CONFIG_DFU_TFTP is not set
     # CONFIG_DFU_TIMEOUT is not set
    -CONFIG_DFU_MMC=y
    -CONFIG_DFU_RAM=y
    -CONFIG_DFU_SF=y
    +# CONFIG_DFU_MMC is not set
    +# CONFIG_DFU_RAM is not set
    +# CONFIG_DFU_SF is not set
     # CONFIG_DFU_VIRT is not set
     # CONFIG_SET_DFU_ALT_INFO is not set
    -CONFIG_SYS_DFU_DATA_BUF_SIZE=0x40000
    +CONFIG_SYS_DFU_DATA_BUF_SIZE=0x800000
     CONFIG_SYS_DFU_MAX_FILE_SIZE=0x800000
     
     #
    @@ -993,7 +950,6 @@ CONFIG_TI_K3_PSIL=y
     # Fastboot support
     #
     # CONFIG_USB_FUNCTION_FASTBOOT is not set
    -# CONFIG_UDP_FUNCTION_FASTBOOT is not set
     CONFIG_FIRMWARE=y
     CONFIG_SPL_FIRMWARE=y
     CONFIG_ARM_PSCI_FW=y
    @@ -1244,77 +1200,9 @@ CONFIG_MULTIPLEXER=y
     CONFIG_MUX_MMIO=y
     # CONFIG_BITBANGMII is not set
     # CONFIG_MV88E6352_SWITCH is not set
    -CONFIG_PHYLIB=y
    -# CONFIG_PHY_ADDR_ENABLE is not set
    -# CONFIG_B53_SWITCH is not set
    -# CONFIG_MV88E61XX_SWITCH is not set
    -# CONFIG_PHYLIB_10G is not set
    -# CONFIG_PHY_AQUANTIA is not set
    -# CONFIG_PHY_ATHEROS is not set
    -# CONFIG_PHY_BROADCOM is not set
    -# CONFIG_PHY_CORTINA is not set
    -# CONFIG_PHY_DAVICOM is not set
    -# CONFIG_PHY_ET1011C is not set
    -# CONFIG_PHY_LXT is not set
    -# CONFIG_PHY_MARVELL is not set
    -# CONFIG_PHY_MESON_GXL is not set
    -# CONFIG_PHY_MICREL is not set
    -# CONFIG_PHY_MSCC is not set
    -# CONFIG_PHY_NATSEMI is not set
    -# CONFIG_PHY_REALTEK is not set
    -# CONFIG_PHY_SMSC is not set
    -# CONFIG_PHY_TERANETICS is not set
    -CONFIG_PHY_TI=y
    -CONFIG_PHY_TI_DP83867=y
    -# CONFIG_PHY_TI_GENERIC is not set
    -# CONFIG_PHY_VITESSE is not set
    -# CONFIG_PHY_XILINX is not set
    -# CONFIG_PHY_XILINX_GMII2RGMII is not set
    -CONFIG_PHY_FIXED=y
    -# CONFIG_PHY_NCSI is not set
     # CONFIG_FSL_PFE is not set
    -CONFIG_DM_ETH=y
    -# CONFIG_DM_MDIO is not set
    +# CONFIG_DM_ETH is not set
     # CONFIG_DM_ETH_PHY is not set
    -CONFIG_NETDEVICES=y
    -# CONFIG_PHY_GIGE is not set
    -# CONFIG_ALTERA_TSE is not set
    -# CONFIG_BCM_SF2_ETH is not set
    -# CONFIG_BCMGENET is not set
    -# CONFIG_DWC_ETH_QOS is not set
    -# CONFIG_EEPRO100 is not set
    -# CONFIG_ETH_DESIGNWARE is not set
    -# CONFIG_ETHOC is not set
    -# CONFIG_FMAN_ENET is not set
    -# CONFIG_FTMAC100 is not set
    -# CONFIG_FTGMAC100 is not set
    -# CONFIG_MCFFEC is not set
    -# CONFIG_FSLDMAFEC is not set
    -# CONFIG_KS8851_MLL is not set
    -# CONFIG_MACB is not set
    -# CONFIG_RGMII is not set
    -# CONFIG_MII is not set
    -# CONFIG_PCNET is not set
    -# CONFIG_QE_UEC is not set
    -# CONFIG_RTL8139 is not set
    -# CONFIG_RTL8169 is not set
    -# CONFIG_SMC911X is not set
    -# CONFIG_SUN7I_GMAC is not set
    -# CONFIG_SUN4I_EMAC is not set
    -# CONFIG_SUN8I_EMAC is not set
    -# CONFIG_SH_ETHER is not set
    -# CONFIG_DRIVER_TI_CPSW is not set
    -# CONFIG_DRIVER_TI_EMAC is not set
    -# CONFIG_DRIVER_TI_KEYSTONE_NET is not set
    -CONFIG_TI_AM65_CPSW_NUSS=y
    -# CONFIG_TI_AM64_ICSSG_PRUETH is not set
    -# CONFIG_XILINX_AXIEMAC is not set
    -# CONFIG_XILINX_EMACLITE is not set
    -# CONFIG_ZYNQ_GEM is not set
    -# CONFIG_SYS_DPAA_QBMAN is not set
    -# CONFIG_TSEC_ENET is not set
    -# CONFIG_MEDIATEK_ETH is not set
    -# CONFIG_HIGMACV300_ETH is not set
     # CONFIG_PCI is not set
     
     #
    @@ -1487,8 +1375,7 @@ CONFIG_SPI_MEM=y
     # CONFIG_ATMEL_SPI is not set
     # CONFIG_BCMSTB_SPI is not set
     # CONFIG_CORTINA_SFLASH is not set
    -CONFIG_CADENCE_QSPI=y
    -CONFIG_CADENCE_QSPI_PHY=y
    +# CONFIG_CADENCE_QSPI is not set
     # CONFIG_CF_SPI is not set
     # CONFIG_DESIGNWARE_SPI is not set
     # CONFIG_EXYNOS_SPI is not set
    @@ -1541,8 +1428,7 @@ CONFIG_SYSRESET_TI_SCI=y
     # CONFIG_SYSRESET_MPC83XX is not set
     # CONFIG_TEE is not set
     # CONFIG_OPTEE is not set
    -CONFIG_DM_THERMAL=y
    -# CONFIG_TI_DRA7_THERMAL is not set
    +# CONFIG_DM_THERMAL is not set
     
     #
     # Timer Support
    @@ -1630,7 +1516,7 @@ CONFIG_USB_CDNS3_TI=y
     #
     # USB peripherals
     #
    -CONFIG_USB_STORAGE=y
    +# CONFIG_USB_STORAGE is not set
     # CONFIG_USB_KEYBOARD is not set
     CONFIG_USB_GADGET=y
     CONFIG_USB_GADGET_MANUFACTURER="Texas Instruments"
    @@ -1649,7 +1535,6 @@ CONFIG_USB_FUNCTION_MASS_STORAGE=y
     # CONFIG_USB_FUNCTION_ROCKUSB is not set
     # CONFIG_USB_FUNCTION_SDP is not set
     # CONFIG_USB_FUNCTION_THOR is not set
    -# CONFIG_USB_ETHER is not set
     # CONFIG_USB_HOST_ETHER is not set
     
     #
    

    i have created the diff file  of .config file for default version of defconfig of spl/u-boot image and modified  . 

    I have not disabled anything related to "SYSRESET_TI_SCI" either in uboot or in kernel. 

    Moreover same Kernel Image is used in both case.  If i use the default defconfig for SPL/U-boot image then reset/reboot works.

    This looks like a bug in uboot. 

  • Hi Paras,
    Can we run some test on your setup?
    - add "#define DEBUG" on the very top in "u-boot/drivers/sysreset/sysreset-ti-sci.c"
    - build u-boot
    - run "reset" cmd @u-boot prompt
    - any debug msg printout from "u-boot/drivers/sysreset/sysreset-ti-sci.c"?
    Best,
    -Hong

  • I see anydebug messages  if i add "#define DEBUG" in "u-boot/drivers/sysreset/sysreset-ti-sci.c"

    Starting ATF on ARM64 core...

    NOTICE: BL31: v2.5(release):08.00.00.004-dirty
    NOTICE: BL31: Built : 21:46:29, Aug 10 2021

    U-Boot SPL 2021.01-00002-g91e4aee2b6-dirty (May 16 2022 - 11:21:59 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0015 '21.5.0--v2021.05 (Terrific Llam')
    Trying to boot from MMC1


    U-Boot 2021.01-00002-g91e4aee2b6-dirty (May 16 2022 - 11:21:59 +0530)

    ti_sci_sysreset_probe(dev=00000000802388b0)
    SoC: AM64X SR1.0
    Model: Texas Instruments AM642 EVM
    DRAM: 2 GiB
    MMC: mmc@fa10000: 0, mmc@fa00000: 1
    In: serial@2800000
    Out: serial@2800000
    Err: serial@2800000
    Hit any key to stop autoboot: 0
    =>
    => reset
    resetting ...
    ti_sci_sysreset_probe(dev=00000000fdefea40)
    ti_sci_sysreset_request(dev=00000000fdefea40, type=1)

    contents of "u-boot/drivers/sysreset/sysreset-ti-sci.c

    #define DEBUG 1

    #include <common.h>
    #include <dm.h>
    #include <errno.h>
    #include <log.h>
    #include <sysreset.h>
    #include <dm/device_compat.h>
    #include <linux/err.h>
    #include <linux/soc/ti/ti_sci_protocol.h>

    /**
    * struct ti_sci_sysreset_data - sysreset controller information structure
    * @sci: TI SCI handle used for communication with system controller
    */
    struct ti_sci_sysreset_data {
    const struct ti_sci_handle *sci;
    };

    static int ti_sci_sysreset_probe(struct udevice *dev)
    {
    struct ti_sci_sysreset_data *data = dev_get_priv(dev);

    debug("%s(dev=%p)\n", __func__, dev);

    if (!data)
    return -ENOMEM;

    /* Store handle for communication with the system controller */
    data->sci = ti_sci_get_handle(dev);
    if (IS_ERR(data->sci))
    return PTR_ERR(data->sci);

    return 0;
    }

    static int ti_sci_sysreset_request(struct udevice *dev, enum sysreset_t type)
    {
    struct ti_sci_sysreset_data *data = dev_get_priv(dev);
    const struct ti_sci_handle *sci = data->sci;
    const struct ti_sci_core_ops *cops = &sci->ops.core_ops;
    int ret;

    debug("%s(dev=%p, type=%d)\n", __func__, dev, type);

    ret = cops->reboot_device(sci);
    if (ret)
    dev_err(dev, "%s: reboot_device failed (%d)\n", __func__, ret);

    return ret;
    }

    static struct sysreset_ops ti_sci_sysreset_ops = {
    .request = ti_sci_sysreset_request,
    };

    static const struct udevice_id ti_sci_sysreset_of_match[] = {
    { .compatible = "ti,sci-sysreset", },
    { /* sentinel */ },
    };

    U_BOOT_DRIVER(ti_sci_sysreset) = {
    .name = "ti-sci-sysreset",
    .id = UCLASS_SYSRESET,
    .of_match = ti_sci_sysreset_of_match,
    .probe = ti_sci_sysreset_probe,
    .priv_auto_alloc_size = sizeof(struct ti_sci_sysreset_data),
    .ops = &ti_sci_sysreset_ops,
    };