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.

AM62P: snagrecover error

Part Number: AM62P
Other Parts Discussed in Thread: AM625,

I'm using AM62P5 Processor usinf TI's BSP linux 6.6 and I'm using this command 
We made a custom hardware based on AM62P-SK-EVM

$ snagrecover -s am625 -f ./am62px-lohr.yaml, and I had this output

2025-11-11 13:08:36,144 [INFO] Starting recovery of am625 board
2025-11-11 13:08:36,146 [INFO] Installing firmware tiboot3
2025-11-11 13:08:36,146 [INFO] Searching for partition id...
2025-11-11 13:08:36,147 [INFO] Found DFU Functional descriptor: wTransferSize = 512
2025-11-11 13:08:36,148 [INFO] Downloading file...
2025-11-11 13:08:37,890 [INFO] Could not read status after end of manifest phase
2025-11-11 13:08:37,890 [INFO] Done
2025-11-11 13:08:37,890 [INFO] Done installing firmware tiboot3
Traceback (most recent call last):
  File "/home/sergio.r/.local/bin/snagrecover", line 8, in <module>
    sys.exit(cli())
             ^^^^^
  File "/home/sergio.r/.local/lib/python3.12/site-packages/snagrecover/cli.py", line 140, in cli
    recovery()
  File "/home/sergio.r/.local/lib/python3.12/site-packages/snagrecover/recoveries/am6x.py", line 26, in main
    if dfu.search_partid(dev, "bootloader") is not None:
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sergio.r/.local/lib/python3.12/site-packages/snagrecover/protocols/dfu.py", line 46, in search_partid
    desc = usb.util.get_string(dev, intf.iInterface)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/sergio.r/.local/lib/python3.12/site-packages/usb/util.py", line 309, in get_string
    raise ValueError("The device has no langid"

In the processors side I had this output

picocom v3.1

port is        : /dev/ttyUSB0
flowcontrol    : none
baudrate is    : 115200
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : yes
hangup is      : no
nolock is      : yes
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        : 
omap is        : 
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
Terminal ready

U-Boot SPL 2025.01-00551-g743712b9ee4b (Jul 31 2025 - 11:32:44 +0000)
SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
SPL initial stack usage: 17056 bytes
SPL: failed to boot from all boot devices
### ERROR ### Please RESET the board ###

Does anyone know how can I fix it?

BR,

 

  • Thank you, 

    Now I'm having this output when power up the board

    U-Boot SPL 2025.01-00551-g743712b9ee4b (Jul 31 2025 - 11:32:44 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    SPL initial stack usage: 17056 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty
    NOTICE:  BL31: Built : 07:01:36, Jul  1 2025
    


    On my previous board (AM62P STARTER KIT EVM), I had this output

    U-Boot SPL 2024.04-ti-g29d0c23d67ee (Nov 29 2024 - 11:41:54 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    SPL initial stack usage: 1904 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed

    Whats the difference between SPL 2024 e SPL 2025?


    BR,

  • Hi Sergio,

    Now I'm having this output when power up the board

    I assume that your issue was resolved after following the steps in the shared guide, please confirm the same.

    Whats the difference between SPL 2024 e SPL 2025?

    It is just some version difference, maybe you were using an older SDK version previously.

    Best Regards,

    Meet.

  • Now when I power on the board I have this output

    U-Boot SPL 2024.04-ti-g29d0c23d67ee (Nov 29 2024 - 11:41:54 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    SPL initial stack usage: 17056 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty
    NOTICE:  BL31: Built : 07:01:36, Jul  1 2025
    

  • Hi Sergio,

    Please allow me some time to test this on my EVM.

    Best Regards,

    Meet.

  • maybe this help,

    it's my bootloader device tree

    // SPDX-License-Identifier: GPL-2.0-only OR MIT
    /*
     * Device Tree file for the AM62P5 Board
     */
    
    #include <dt-bindings/leds/common.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/net/ti-dp83867.h>
    #include <dt-bindings/bus/ti-sysc.h>
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h> 
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    
    / {
    	compatible = "ti,am62p5-sk", "ti,am62p5";
    	model = "AM62P5 SK - BOOTLOADER";
    
    	aliases {
    		serial0 = &main_uart0;
    		serial1 = &wkup_uart0;
    		mmc0 = &sdhci0;
    		ethernet0 = &cpsw_port1;
    		usb0 = &usb0;
    		usb1 = &usb1;
    	};
    
    	chosen {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		stdout-path = &main_uart0;
    
    	};
    
    	memory@80000000 {
    		/* 8G RAM */
    		reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    		      <0x00000008 0x80000000 0x00000001 0x80000000>;
    		device_type = "memory";
    		bootph-pre-ram;
    	};
    
    	reserved_memory: reserved-memory {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		secure_tfa_ddr: tfa@9e780000 {
    			reg = <0x00 0x9e780000 0x00 0x80000>;
    			no-map;
    		};
    
    		secure_ddr: optee@9e800000 {
    			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
    			no-map;
    		};
    
    		wkup_r5fss0_core0_memory_region: r5f-dma-memory@9c900000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x9c900000 0x00 0x01e00000>;
    			no-map;
    		};
    	};
    
        vmain_pd: regulator-0 {
    		/* TPS65988 PD CONTROLLER OUTPUT */
    		compatible = "regulator-fixed";
    		regulator-name = "vmain_pd";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		regulator-always-on;
    		regulator-boot-on;
    		bootph-all;
    	};
    
    	vcc_5v0: regulator-1 {
    		/* Output of TPS630702RNMR */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_5v0";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		vin-supply = <&vmain_pd>;
    		regulator-always-on;
    		regulator-boot-on;
    		bootph-all;
    	};
    
    	vcc_3v3_main: regulator-2 {
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_3v3_main";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vmain_pd>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vcc_3v3_sys: regulator-3 {
    		/* output of TPS222965DSGT */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_3v3_sys";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vcc_3v3_main>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vdd_1v8_codec: regulator-4 {
    		compatible = "regulator-fixed";
    		regulator-name = "vdd_1v8_codec";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		vin-supply = <&vcc_3v3_main>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	leds {
    		compatible = "gpio-leds";
    		pinctrl-names = "default";
    		pinctrl-0 = <&usr_led_1_pins_default>, <&usr_led_2_pins_default>;
    
    		led-0 {
    			label = "am62-sk:green:heartbeat";
    			gpios = <&main_gpio0 72 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			function = LED_FUNCTION_HEARTBEAT;
    			default-state = "off";
    		};
    
    		led-1 {
    			label = "am62-sk:red:heartbeat";
    			gpios = <&mcu_gpio0 21 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			function = LED_FUNCTION_HEARTBEAT;
    			default-state = "off";
    		};
    	};
    
    	opp-table {
    		/* Add 1.4GHz OPP for am62p5-sk board. Requires VDD_CORE at 0v85 */
    		opp-1400000000 {
    			opp-hz = /bits/ 64 <1400000000>;
    			opp-supported-hw = <0x01 0x0004>;
    			clock-latency-ns = <6000000>;
    		};
    	};
    };
    
    &main_i2c0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c0_pins_default>;
    	clock-frequency = <400000>;
    
    };
    
    &main_i2c1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <400000>;
    
    };
    
    &main_i2c2 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c2_pins_default>;
    	clock-frequency = <400000>;
    
    };
    
    &sdhci0 {
    	status = "okay";
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    	bootph-all;
    };
    
    &main_gpio0 {
    	bootph-all;
    };
    
    &main_gpio1 {
    	bootph-all;
    };
    
    &mcu_pmx0 {
    	bootph-all;
    	
    	usr_led_2_pins_default: usr-led-2-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_MCU_IOPAD(0x005c, PIN_INPUT, 7) /* (F14) MCU_RESETSTATz.MCU_GPIO0_21 */
    		>;
    	};
    };
    
    &main_pmx0 {
    	bootph-all;
    
    	usr_led_1_pins_default: usr-led-1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x0128, PIN_INPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 - LED_DEBUG1*/
    		>;
    	};
    
    	main_i2c0_pins_default: main_i2c0-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B25) I2C0_SCL */
    			AM62PX_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A24) I2C0_SDA */
    		>;
    	};
    	main_i2c1_pins_default: main_i2c1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (C24) I2C1_SCL */
    			AM62PX_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (B24) I2C1_SDA */
    		>;
    	};
    	main_i2c2_pins_default: main_i2c2-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (T22) GPMC0_CSn2.I2C2_SCL */
    			AM62PX_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (U25) GPMC0_CSn3.I2C2_SDA */
    		>;
    	};
    
    	main_rgmii1_pins_default: main_rgmii1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x014c, PIN_INPUT, 0) /* (B15) RGMII1_RD0 */
    			AM62PX_IOPAD(0x0150, PIN_INPUT, 0) /* (B16) RGMII1_RD1 */
    			AM62PX_IOPAD(0x0154, PIN_INPUT, 0) /* (A14) RGMII1_RD2 */
    			AM62PX_IOPAD(0x0158, PIN_INPUT, 0) /* (B14) RGMII1_RD3 */
    			AM62PX_IOPAD(0x0148, PIN_INPUT, 0) /* (A16) RGMII1_RXC */
    			AM62PX_IOPAD(0x0144, PIN_INPUT, 0) /* (A15) RGMII1_RX_CTL */
    			AM62PX_IOPAD(0x0134, PIN_INPUT, 0) /* (A18) RGMII1_TD0 */
    			AM62PX_IOPAD(0x0138, PIN_INPUT, 0) /* (C17) RGMII1_TD1 */
    			AM62PX_IOPAD(0x013c, PIN_INPUT, 0) /* (A17) RGMII1_TD2 */
    			AM62PX_IOPAD(0x0140, PIN_INPUT, 0) /* (C16) RGMII1_TD3 */
    			AM62PX_IOPAD(0x0130, PIN_INPUT, 0) /* (B17) RGMII1_TXC */
    			AM62PX_IOPAD(0x012c, PIN_INPUT, 0) /* (B18) RGMII1_TX_CTL */
    		>;
    	};
    
    	main_uart0_pins_default: main_uart0-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x01c8, PIN_INPUT, 0) /* (A22) UART0_RXD */
    			AM62PX_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (B22) UART0_TXD */
    		>;
    	};
    
    	main_wkup_uart0_pins_default: main_wkup_uart0-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_MCU_IOPAD(0x0024, PIN_INPUT, 0) /* (D8) WKUP_UART0_RXD */
    			AM62PX_MCU_IOPAD(0x0028, PIN_OUTPUT, 0) /* (D7) WKUP_UART0_TXD */
    		>;
    	};
    
    	main_usb0_pins_default: main_usb0-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x0258, PIN_OUTPUT, 0) /* (G21) USB1_DRVVBUS */
    		>;
    	};
    	main_usb1_pins_default: main_usb1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x0254, PIN_OUTPUT, 0) /* (G22) USB0_DRVVBUS */
    		>;
    	};
    
    	main_mdio1_pins_default: mymdio1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x0160, PIN_OUTPUT, 0) /* (F17) MDIO0_MDC */
    			AM62PX_IOPAD(0x015c, PIN_INPUT, 0) /* (F16) MDIO0_MDIO */
    		>;
    	};
    };
    
    &epwm0{
    	status = "okay";
    };
    
    &epwm1{
    	status = "okay";
    };
    
    &cpsw3g {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_rgmii1_pins_default>;
    };
    
    &cpsw_port1 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy0>;
    };
    
    &cpsw_port2 {
    	status = "disabled";
    };
    
    &cpsw3g_mdio {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mdio1_pins_default>;
    	status = "okay";
    
    	cpsw3g_phy0: ethernet-phy@0 {
    		reg = <0>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    		ti,min-output-impedance;
    	};
    
    };
    
    &main_uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart0_pins_default>;
    	status = "okay";
    	bootph-all;
    };
    
    &mailbox0_cluster0 {
    	mbox_r5_0: mbox-r5-0 {
    		ti,mbox-rx = <0 0 0>;
    		ti,mbox-tx = <1 0 0>;
    	};
    };
    
    &mailbox0_cluster1 {
    	mbox_mcu_r5_0: mbox-mcu-r5-0 {
    		ti,mbox-rx = <0 0 0>;
    		ti,mbox-tx = <1 0 0>;
    	};
    };
    
    &wkup_uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_wkup_uart0_pins_default>;
    	status = "okay";
    	bootph-all;
    };
    
    /* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
    &mcu_gpio0 {
    	status = "reserved";
    };
    
    &mcu_gpio_intr {
    	status = "reserved";
    };
    
    &mcu_r5fss0 {
    	status = "okay";
    };
    
    &usbss0 {
    	status = "okay";
    	ti,vbus-divider;
    };
    
    &usbss1 {
    	status = "okay";
    	ti,vbus-divider;
    };
    
    &usb0 {
    	dr_mode = "host";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb0_pins_default>;
    };
    
    &usb1 {
    	dr_mode = "host";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb1_pins_default>;
    };

  • I've solved this first part of the problem, now i'm having this error

    U-Boot SPL 2024.04-ti-g29d0c23d67ee (Nov 29 2024 - 11:41:54 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    SPL initial stack usage: 17056 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.13.0(release):v2.13.0-259-ge0c4d3903b-dirty
    NOTICE:  BL31: Built : 07:01:36, Jul  1 2025
    
    U-Boot SPL 2024.04-ti-g29d0c23d67ee (Nov 29 2024 - 11:41:54 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    SPL initial stack usage: 1776 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2024.04-ti-g29d0c23d67ee (Nov 29 2024 - 11:41:54 +0000)
    
    SoC:   AM62PX SR1.0 HS-FS
    Model: LOHR AM62P SOM on Head Unit Advanced BOOTLOADER
    DRAM:  2 GiB (effective 8 GiB)
    Core:  68 devices, 27 uclasses, devicetree: separate
    MMC:   mmc@fa10000: 0
    Loading Environment from FAT... Unable to read "uboot.env" from mmc0:1... 
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0 
    switch to partitions #0, OK
    mmc0(part 0) is current device
    SD/MMC found on device 0
    Failed to load 'uEnv.txt'
    46316032 bytes read in 179 ms (246.8 MiB/s)
    Failed to load 'ti/k3-am62p5-sk.dtb'
    Failed to load '/boot/Image'
    Failed to load '/boot/dtb/ti/k3-am62p5-lohr-hu-advanced.dtb'
    libfdt fdt_check_header(): FDT_ERR_BADMAGIC
    No FDT memory address configured. Please configure
    the FDT address via "fdt addr <address>" command.
    Aborting!
    ERROR: Did not find a cmdline Flattened Device Tree
    Could not find a valid device tree
    Scanning for bootflows in all bootdevs
    Seq  Method       State   Uclass    Part  Name                      Filename
    ---  -----------  ------  --------  ----  ------------------------  ----------------
    Scanning global bootmeth 'efi_mgr':
    No EFI system partition
    No EFI system partition
    Failed to persist EFI variables
    No EFI system partition
    Failed to persist EFI variables
    No EFI system partition
    Failed to persist EFI variables
      0  efi_mgr      ready   (none)       0  <NULL>                    
    ** Booting bootflow '<NULL>' with efi_mgr
    Loading Boot0000 'mmc 0' failed
    EFI boot manager: Cannot load any image
    Boot failed (err=-14)
    Scanning bootdev 'mmc@fa10000.bootdev':
    Bus usb@31000000: Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    Bus usb@31100000: Register 1000840 NbrPorts 1
    Starting the controller
    USB XHCI 1.10
    scanning bus usb@31000000 for devices... 1 USB Device(s) found
    scanning bus usb@31100000 for devices... 1 USB Device(s) found
    ethernet@8000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT 
    !
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_startup failed
    am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error
    ethernet@8000000port@1 Waiting for PHY auto negotiation to complete......... TIMEOUT 
    !
    am65_cpsw_nuss_port ethernet@8000000port@1: phy_startup failed
    am65_cpsw_nuss_port ethernet@8000000port@1: am65_cpsw_start end error
    No more bootdevs
    ---  -----------  ------  --------  ----  ------------------------  ----------------
    (1 bootflow, 1 valid)
    => 
    

  • It seems like u-boot is not able to find the filesystem, could you confirm what all images you have flashed to eMMC, you can share your Snagfactory yaml configuration file you used for flashing.

    Also, it would be helpful to know how you were able to resolve the earlier issue.

  • the previous faliure i've resolved adding this to my binman

    	/* Added by meta-lohr: tiboot3 image for LOHR board (R5 SPL) */
    	tiboot3-am62px-hs-lohr.bin {
    		filename = "tiboot3-am62px-hs-lohr.bin";
    		symlink = "tiboot3.bin";
    
    		ti-secure-rom {
    			content = <&u_boot_spl_lohr>, <&ti_fs_enc_fs_lohr>, <&combined_tifs_cfg_fs>,
    				  <&combined_dm_cfg_fs_lohr>, <&sysfw_inner_cert_fs_lohr>;
    			combined;
    			dm-data;
    			sysfw-inner-cert;
    			keyfile = "custMpk.pem";
    			sw-rev = <1>;
    			content-sbl = <&u_boot_spl_lohr>;
    			content-sysfw = <&ti_fs_enc_fs_lohr>;
    			content-sysfw-data = <&combined_tifs_cfg_fs>;
    			content-sysfw-inner-cert = <&sysfw_inner_cert_fs_lohr>;
    			content-dm-data = <&combined_dm_cfg_fs_lohr>;
    			load = <0x43c00000>;
    			load-sysfw = <0x40000>;
    			load-sysfw-data = <0x67000>;
    			load-dm-data = <0x43c4a800>;
    		};
    
    		u_boot_spl_lohr: u-boot-spl {
    			no-expanded;
    		};
    
    		/* Use same sysfw artifact names as FS node by default; adjust filenames if needed */
    		ti_fs_enc_fs_lohr: ti-fs-enc.bin {
    			filename = "ti-sysfw/ti-fs-firmware-am62px-hs-fs-enc.bin";
    			type = "blob-ext";
    			optional;
    		};
    
    		sysfw_inner_cert_fs_lohr: sysfw-inner-cert {
    			filename = "ti-sysfw/ti-fs-firmware-am62px-hs-fs-cert.bin";
    			type = "blob-ext";
    			optional;
    		};
    
    		combined_dm_cfg_fs_lohr: combined-dm-cfg.bin {
    			filename = "combined-dm-cfg.bin";
    			type = "blob-ext";
    		};
    
    		/* embed LOHR-specific spl DTB for ATF/DDR info */
    		lohr_fdt: fdt-0 {
    			description = "k3-am62p5-lohr-hu-advanced";
    			type = "flat_dt";
    			arch = "arm";
    			compression = "none";
    
    			ti-secure {
    				content = <&spl_am62p5_lohr_dtb>;
    				keyfile = "custMpk.pem";
    			};
    
    			spl_am62p5_lohr_dtb: blob-ext {
    				filename = "spl/dts/k3-am62p5-lohr-hu-advanced.dtb";
    			};
    		};
    	};
    };
    
    #endif /* CONFIG_TARGET_AM62P5_R5_EVM */
    
    #if IS_ENABLED(CONFIG_TARGET_AM62P5_A53_EVM)


    How can I do that "share your Snagfactory yaml configuration file you used for flashing."? I've never used this tool.

    BR.

  • How can I do that "share your Snagfactory yaml configuration file you used for flashing."? I've never used this tool.

    Then can you let me know how you are flashing these images to the eMMC and what all images have been flashed?

  • I'm using Balena etcher with a .wic that I created with a storage.ext4 and a rootfs.ext4. My system was developed based on k3-am62p-sk.

    BR.

  • Could you please share the output of the following commands?

    => printenv
    => mmc dev 0
    => mmc part
    => ls mmc 0:1
    => ls mmc 0:2 /boot

    Thanks

  • => printenv 
    addr_fit=0x90000000
    arch=arm
    args_all=setenv optargs ${optargs} earlycon=ns16550a,mmio32,0x02800000 ${mtdparts}
    args_mmc=load mmc 0:1 ${loadaddr} Image; load mmc 0:1 ${fdt_addr_r} ti/k3-am62p5-sk.dtb; run finduuid; setenv optargs "${optargs} vt.global_cursor_default=0 consoleblank=0 fbcon=map:0 logo.n
    ologo"; setenv vidargs video=LVDS-1:1280x720@60,bpp=32; setenv bootargs console=${console} quiet vmalloc=256M ${optargs} root=/dev/mmcblk${mmcdev}p${mmcpart} ro rootfstype=${mmcrootfstype} $
    {vidargs}
    baudrate=115200
    board=am62px
    board_name=am62px
    boot=mmc
    boot_fdt=try
    boot_fit=0
    boot_rprocs=if test ${dorprocboot} -eq 1 && test ${boot} = mmc; then rproc init; run boot_rprocs_mmc; fi;
    boot_rprocs_mmc=env set rproc_id; env set rproc_fw; env set secure_suffix; if test ${secure_rprocs} -eq 1; then env set secure_suffix -sec; fi; for i in ${rproc_fw_binaries} ; do if test -z 
    "${rproc_id}" ; then env set rproc_id $i; else env set rproc_fw $i${secure_suffix}; run rproc_load_and_boot_one; env set rproc_id; env set rproc_fw; fi; done
    boot_targets=mmc1 mmc0 usb pxe dhcp
    bootargs=console=ttyS2,115200n8 quiet vmalloc=256M earlycon=ns16550a,mmio32,0x02800000 vt.global_cursor_default=0 consoleblank=0 fbcon=map:0 logo.nologo earlycon=ns16550a,mmio32,0x02800000 v
    t.global_cursor_default=0 consoleblank=0 fbcon=map:0 logo.nologo earlycon=ns16550a,mmio32,0x02800000 vt.global_cursor_default=0 consoleblank=0 fbcon=map:0 logo.nologo root=/dev/mmcblk0p2 ro 
    rootfstype=ext4 rootwait video=LVDS-1:1280x720@60,bpp=32
    bootcmd=run envboot; run bootcmd_ti_mmc; bootflow scan -lb
    bootcmd_ti_mmc=run init_${boot}; run update_do_main_cpsw0_qsgmii_phyinit; if test ${do_main_cpsw0_qsgmii_phyinit} -eq 1; then run main_cpsw0_qsgmii_phyinit; fi; run boot_rprocs; if test ${bo
    ot_fit} -eq 1; then run get_fit_${boot}; run get_fit_overlaystring; run run_fit; else; run get_kern_${boot}; run get_fdt_${boot}; run get_overlay_${boot}; run run_kern; fi;
    bootdelay=2
    bootdir=/boot
    bootenvfile=uEnv.txt
    bootm_size=0x10000000
    bootpart=0:2
    bootscript=echo Running bootscript from mmc${mmcdev} ...; source ${loadaddr}
    console=ttyS2,115200n8
    cpu=armv8
    dfu_alt_info_emmc=rawemmc raw 0 0x800000 mmcpart 1; rootfs part 0 1; tiboot3.bin.raw raw 0x0 0x400 mmcpart 1; tispl.bin.raw raw 0x400 0x1000 mmcpart 1; u-boot.img.raw raw 0x1400 0x2000 mmcpa
    rt 1; u-env.raw raw 0x3400 0x100 mmcpart 1; sysfw.itb.raw raw 0x3600 0x800 mmcpart 1
    dfu_alt_info_mmc=boot part 1 1; rootfs part 1 2; tiboot3.bin fat 1 1; tispl.bin fat 1 1; u-boot.img fat 1 1; uEnv.txt fat 1 1; sysfw.itb fat 1 1
    dfu_alt_info_nand=NAND.tiboot3 part 0 1; NAND.tispl part 0 2; NAND.tiboot3.backup part 0 3; NAND.u-boot part 0 4; NAND.u-boot-env part 0 5; NAND.u-boot-env.backup part 0 6; NAND.file-system 
    part 0 7
    dfu_alt_info_ospi=tiboot3.bin raw 0x0 0x080000; tispl.bin raw 0x080000 0x200000; u-boot.img raw 0x280000 0x400000; u-boot-env raw 0x680000 0x020000; sysfw.itb raw 0x6c0000 0x100000; rootfs r
    aw 0x800000 0x3800000
    dfu_alt_info_ospi_nand=ospi_nand.tiboot3 part 1; ospi_nand.tispl part 2; ospi_nand.u-boot part 3; ospi_nand.env part 4; ospi_nand.env.backup part 5; ospi_nand.rootfs part 6; ospi_nand.phypat
    tern part 7
    dfu_alt_info_ram=tispl.bin ram 0x80080000 0x200000; u-boot.img ram 0x81000000 0x400000
    do_main_cpsw0_qsgmii_phyinit=0
    dorprocboot=0
    dtboaddr=0x89000000
    envboot=if mmc dev ${mmcdev}; then if mmc rescan; then echo SD/MMC found on device ${mmcdev}; if test -n "${loadbootscript}" && run loadbootscript; then run bootscript; else if run loadboote
    nv; then echo Loaded env from ${bootenvfile}; run importbootenv; fi; if test -n $uenvcmd; then echo Running uenvcmd ...; run uenvcmd; fi; fi; fi; fi;
    ethact=ethernet@8000000port@1
    ethaddr=86:37:7c:a6:c6:32
    fdt_addr_r=0x88000000
    fdtaddr=0x88000000
    fdtcontroladdr=fdea1230
    fdtfile=ti/k3-am62p5-lohr-hu-advanced.dtb
    fdtoverlay_addr_r=0x89500000
    fileaddr=82000000
    filesize=2c2ba00
    findfdt=echo WARN: fdtfile already set. Stop using findfdt in script
    finduuid=part uuid ${boot} ${bootpart} uuid
    get_fdt_mmc=load mmc ${bootpart} ${fdtaddr} ${bootdir}/dtb/${fdtfile}
    get_fit_config=setexpr name_fit_config gsub / _ conf-${fdtfile}
    get_fit_mmc=load mmc ${bootpart} ${addr_fit} ${bootdir}/${name_fit}
    get_fit_overlaystring=for overlay in $name_overlays; do; setexpr name_fit_overlay gsub / _ conf-${overlay}; setenv overlaystring ${overlaystring}'#'${name_fit_overlay}; done;
    get_kern_mmc=load mmc ${bootpart} ${loadaddr} ${bootdir}/${name_kern}
    get_overlay_mmc=fdt address ${fdtaddr}; fdt resize 0x100000; for overlay in $name_overlays; do; load mmc ${bootpart} ${dtboaddr} ${bootdir}/dtb/${overlay} && fdt apply ${dtboaddr}; done;
    importbootenv=echo Importing environment from mmc${mmcdev} ...; env import -t ${loadaddr} ${filesize}
    init_mmc=run args_all args_mmc
    kernel_addr_r=0x82000000
    loadaddr=0x82000000
    loadbootenv=fatload mmc ${mmcdev} ${loadaddr} ${bootenvfile}
    loadfdt=load ${devtype} ${bootpart} ${fdtaddr} ${bootdir}/dtb/${fdtfile}
    loadimage=load ${devtype} ${bootpart} ${loadaddr} ${bootdir}/${bootfile}
    mmcboot=if mmc dev ${mmcdev}; then devnum=${mmcdev}; devtype=mmc; if mmc rescan; then echo SD/MMC found on device ${mmcdev}; if run loadimage; then run args_mmc; if test ${boot_fit} -eq 1; t
    hen run run_fit; else run mmcloados; fi; fi; fi; fi;
    mmcdev=0
    mmcloados=if test ${boot_fdt} = yes || test ${boot_fdt} = try; then if run get_fdt_mmc; then bootz ${loadaddr} - ${fdtaddr}; else if test ${boot_fdt} = try; then bootz; else echo WARN: Canno
    t load the DT; fi; fi; else bootz; fi;
    mmcpart=2
    mmcrootfstype=ext4 rootwait
    name_fit=fitImage
    name_kern=Image
    optargs=earlycon=ns16550a,mmio32,0x02800000 vt.global_cursor_default=0 consoleblank=0 fbcon=map:0 logo.nologo earlycon=ns16550a,mmio32,0x02800000 vt.global_cursor_default=0 consoleblank=0 fb
    con=map:0 logo.nologo earlycon=ns16550a,mmio32,0x02800000 vt.global_cursor_default=0 consoleblank=0 fbcon=map:0 logo.nologo
    partitions=name=rootfs,start=0,size=-,uuid=${uuid_gpt_rootfs}
    pxefile_addr_r=0x80100000
    ramdisk_addr_r=0x88080000
    rd_spec=-
    rdaddr=0x88080000
    rproc_fw_binaries= 0 /lib/firmware/am62p-mcu-r5f0_0-fw
    rproc_load_and_boot_one=if load mmc ${bootpart} $loadaddr ${rproc_fw}; then if rproc load ${rproc_id} ${loadaddr} ${filesize}; then rproc start ${rproc_id}; fi; fi
    run_fit=run get_fit_config; bootm ${addr_fit}#${name_fit_config}${overlaystring}
    run_kern=booti ${loadaddr} ${rd_spec} ${fdtaddr}
    scriptaddr=0x80000000
    secure_rprocs=0
    soc=k3
    splashfile=ti_logo_414x97_32bpp.bmp.gz
    splashimage=0x80200000
    splashpos=m,m
    splashsource=mmc
    stderr=serial@2800000
    stdin=serial@2800000
    stdout=serial@2800000
    update_do_main_cpsw0_qsgmii_phyinit=setenv do_main_cpsw0_qsgmii_phyinit 0;
    update_to_fit=setenv loadaddr ${addr_fit}; setenv bootfile ${name_fit}
    uuid=11723f83-02
    vendor=ti
    vidargs=video=LVDS-1:1280x720@60,bpp=32

    Environment size: 6782/126972 bytes


    => mmc dev 0
    switch to partitions #0, OK
    mmc0(part 0) is current device
    => mmc part

    Partition Map for MMC device 0  --   Partition Type: DOS

    Part    Start Sector    Num Sectors     UUID            Type
      1     2048            262144          11723f83-01     0c Boot
      2     264192          4614144         11723f83-02     83
      3     4878336         7157760         11723f83-03     83
      4     12036096        3158016         11723f83-04     83
    => ls mmc 0:1
     46316032   Image
                ti/
       323594   tiboot3.bin
      1428947   tispl.bin
      1205775   u-boot.img
       126976   uboot.env
                boot/

    5 file(s), 2 dir(s)

    => ls mmc 0:2 /boot
    <DIR>       4096 .
    <DIR>       4096 ..
    => 

  • => mmc dev 0
    switch to partitions #0, OK
    mmc0(part 0) is current device
    => mmc part
    
    Partition Map for MMC device 0  --   Partition Type: DOS
    
    Part    Start Sector    Num Sectors     UUID            Type
      1     2048            262144          11723f83-01     0c Boot
      2     264192          4614144         11723f83-02     83
      3     4878336         7157760         11723f83-03     83
      4     12036096        3158016         11723f83-04     83
    => ls mmc 0:1
     46316032   Image
                ti/
       323594   tiboot3.bin
      1428947   tispl.bin
      1205775   u-boot.img
       126976   uboot.env
                boot/
    
    5 file(s), 2 dir(s)
    
    => ls mmc 0:2 /boot
    <DIR>       4096 .
    <DIR>       4096 ..

    According to this output, the eMMC is partitioned into 4 logical partitions but there is nothing in the "/boot" directory of the second partition. Since, the bootpart is set to "0:2" in the environment variables, the U-Boot will try to load the Kernel and the DTB from this partition.

    If you have flashed the rootfs to another partition then please modify the bootpart environment variables to that partition.

  • Thanks, that resolved my problem. Now when I enter in the kernel it appears strange charaters as shown bellow. Any thoughts about it? 

    U-Boot SPL 2024.04-ti-g29d0c23d67ee (Nov 29 2024 - 11:41:54 +0000)
    SYSFW ABI: 4.0 (firmware rev 0x000b '11.1.5--v11.01.05 (Fancy Rat)')
    SPL initial stack usage: 17056 bytes
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    ��� ����ͭ�ݮKc����ˬ,����-����� �ٹ��렫�;�r$h�2��j-Ƚ4hˮ��'٦��ͅ"�����.


    BR,

  • Now when I enter in the kernel it appears strange charaters as shown bellow. Any thoughts about it?

    I do not see the kernel logs. The logs stops after the R5 SPL itself. Is that the issue? If yes, how did you confirm that the kernel is booting successfully.

  • I'cant confirm, but it appears some messages, but all of then in this format "��� ����ͭ�ݮKc����ˬ,����-����� �ٹ��렫�;�r$h�2��j-Ƚ4hˮ��'٦��ͅ"�����."

    Also as we used the same device tree for the kernel, just for a test, our device tree for bootloader is seen below.

    #include <dt-bindings/leds/common.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/net/ti-dp83867.h>
    #include <dt-bindings/bus/ti-sysc.h>
    #include <dt-bindings/input/input.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    
    / {
    	compatible = "ti,am62p5-sk", "ti,am62p5";
    	model = "AM62P5 SK - BOOTLOADER";
    
    	aliases {
    		serial0 = &main_uart0;
    		serial1 = &wkup_uart0;
    		mmc0 = &sdhci0;
    		ethernet0 = &cpsw_port1;
    		usb0 = &usb0;
    		usb1 = &usb1;
    	};
    
    	chosen {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		stdout-path = &main_uart0;
    
    	};
    
    	connector {
    		compatible = "gpio-usb-a-connector", "usb-a-connector";
    		pinctrl-names = "default";
    		pinctrl-0 = <&main_usb_id_pins_default>;
    		id-gpios = <&main_gpio0 40 GPIO_ACTIVE_HIGH>;
    		label = "USB_0";
    		self-powered;
    		vbus-supply = <&reg_usb0_vbus>;
    
    		port {
    			usb_dr_connector: endpoint {
    				remote-endpoint = <&usb0_ep>;
    			};
    		};
    	};
    
    	memory@80000000 {
    		/* 8G RAM */
    		//reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
    		//      <0x00000008 0x80000000 0x00000001 0x80000000>;
    		/* 2G RAM */
    		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
    		device_type = "memory";
    	};
    
    	reserved_memory: reserved-memory {
    		#address-cells = <2>;
    		#size-cells = <2>;
    		ranges;
    
    		secure_tfa_ddr: tfa@9e780000 {
    			reg = <0x00 0x9e780000 0x00 0x80000>;
    			no-map;
    		};
    
    		secure_ddr: optee@9e800000 {
    			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
    			no-map;
    		};
    
    		wkup_r5fss0_core0_memory_region: r5f-dma-memory@9c900000 {
    			compatible = "shared-dma-pool";
    			reg = <0x00 0x9c900000 0x00 0x01e00000>;
    			no-map;
    		};
    	};
    
        vmain_pd: regulator-0 {
    		/* TPS65988 PD CONTROLLER OUTPUT */
    		compatible = "regulator-fixed";
    		regulator-name = "vmain_pd";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vcc_5v0: regulator-1 {
    		/* Output of TPS630702RNMR */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_5v0";
    		regulator-min-microvolt = <5000000>;
    		regulator-max-microvolt = <5000000>;
    		vin-supply = <&vmain_pd>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vcc_3v3_main: regulator-2 {
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_3v3_main";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vmain_pd>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vcc_3v3_sys: regulator-3 {
    		/* output of TPS222965DSGT */
    		compatible = "regulator-fixed";
    		regulator-name = "vcc_3v3_sys";
    		regulator-min-microvolt = <3300000>;
    		regulator-max-microvolt = <3300000>;
    		vin-supply = <&vcc_3v3_main>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vdd_1v8_codec: regulator-4 {
    		compatible = "regulator-fixed";
    		regulator-name = "vdd_1v8_codec";
    		regulator-min-microvolt = <1800000>;
    		regulator-max-microvolt = <1800000>;
    		vin-supply = <&vcc_3v3_main>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	reg_usb0_vbus: regulator-usb0-vbus {
    		compatible = "regulator-fixed";
    		pinctrl-names = "default";
    		pinctrl-0 = <&pinctrl_usb0_en>;
    		gpios = <&main_gpio1 50 GPIO_ACTIVE_HIGH>;
    		enable-active-high;
    		regulator-max-microvolt = <5000000>;
    		regulator-min-microvolt = <5000000>;
    		regulator-name = "USB_0_EN";
    	};
    
    	// extcon_usb0: extcon_usb0 {
    	// 	compatible = "linux,extcon-usb-gpio";
    	// 	ti,enable-id-detection;
    	// 	id-gpio = <&main_gpio0 40 GPIO_ACTIVE_HIGH>;
    	// };
    
    	leds {
    		compatible = "gpio-leds";
    		pinctrl-names = "default";
    		pinctrl-0 = <&usr_led_1_pins_default>, <&usr_led_2_pins_default>;
    
    		led-0 {
    			label = "am62-sk:green:heartbeat";
    			gpios = <&main_gpio0 72 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			function = LED_FUNCTION_HEARTBEAT;
    			default-state = "on";
    		};
    
    		led-1 {
    			label = "am62-sk:red:heartbeat";
    			gpios = <&mcu_gpio0 21 GPIO_ACTIVE_HIGH>;
    			linux,default-trigger = "heartbeat";
    			function = LED_FUNCTION_HEARTBEAT;
    			default-state = "off";
    		};
    	};
    
    	opp-table {
    		/* Add 1.4GHz OPP for am62p5-sk board. Requires VDD_CORE at 0v85 */
    		opp-1400000000 {
    			opp-hz = /bits/ 64 <1400000000>;
    			opp-supported-hw = <0x01 0x0004>;
    			clock-latency-ns = <6000000>;
    		};
    	};
    };
    
    &main_i2c0 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c0_pins_default>;
    	clock-frequency = <400000>;
    
    };
    
    &main_i2c1 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <400000>;
    
    };
    
    &main_i2c2 {
    	status = "okay";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c2_pins_default>;
    	clock-frequency = <400000>;
    
    };
    
    &sdhci0 {
    	status = "okay";
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &main_gpio0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb_id_control_pins_default>;
    
    	usb_id_ctrl_high: usb-id-ctrl-high {
    		gpio-hog;
    		gpios = <39 GPIO_ACTIVE_HIGH>;
    		line-name = "USB_ID_CTRL";
    		output-high;
    	};
    };
    
    &main_gpio1 {
    	status = "okay";
    };
    
    &mcu_pmx0 {
    
    	usr_led_2_pins_default: usr-led-2-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_MCU_IOPAD(0x005c, PIN_OUTPUT, 7) /* (F14) MCU_RESETSTATz.MCU_GPIO0_21 */
    		>;
    	};
    };
    
    &main_pmx0 {
    
    	usr_led_1_pins_default: usr-led-1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x0128, PIN_OUTPUT, 7) /* (K25) MMC2_SDWP.GPIO0_72 - LED_DEBUG1*/
    		>;
    	};
    
    	main_i2c0_pins_default: main-i2c0-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x01e0, PIN_INPUT_PULLUP, 0) /* (B25) I2C0_SCL */
    			AM62PX_IOPAD(0x01e4, PIN_INPUT_PULLUP, 0) /* (A24) I2C0_SDA */
    		>;
    	};
    	main_i2c1_pins_default: main-i2c1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x01e8, PIN_INPUT_PULLUP, 0) /* (C24) I2C1_SCL */
    			AM62PX_IOPAD(0x01ec, PIN_INPUT_PULLUP, 0) /* (B24) I2C1_SDA */
    		>;
    	};
    	main_i2c2_pins_default: main_i2c2-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x00b0, PIN_INPUT_PULLUP, 1) /* (T22) GPMC0_CSn2.I2C2_SCL */
    			AM62PX_IOPAD(0x00b4, PIN_INPUT_PULLUP, 1) /* (U25) GPMC0_CSn3.I2C2_SDA */
    		>;
    	};
    
    	main_rgmii1_pins_default: main_rgmii1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x014c, PIN_INPUT, 0) /* (B15) RGMII1_RD0 */
    			AM62PX_IOPAD(0x0150, PIN_INPUT, 0) /* (B16) RGMII1_RD1 */
    			AM62PX_IOPAD(0x0154, PIN_INPUT, 0) /* (A14) RGMII1_RD2 */
    			AM62PX_IOPAD(0x0158, PIN_INPUT, 0) /* (B14) RGMII1_RD3 */
    			AM62PX_IOPAD(0x0148, PIN_INPUT, 0) /* (A16) RGMII1_RXC */
    			AM62PX_IOPAD(0x0144, PIN_INPUT, 0) /* (A15) RGMII1_RX_CTL */
    			AM62PX_IOPAD(0x0134, PIN_INPUT, 0) /* (A18) RGMII1_TD0 */
    			AM62PX_IOPAD(0x0138, PIN_INPUT, 0) /* (C17) RGMII1_TD1 */
    			AM62PX_IOPAD(0x013c, PIN_INPUT, 0) /* (A17) RGMII1_TD2 */
    			AM62PX_IOPAD(0x0140, PIN_INPUT, 0) /* (C16) RGMII1_TD3 */
    			AM62PX_IOPAD(0x0130, PIN_INPUT, 0) /* (B17) RGMII1_TXC */
    			AM62PX_IOPAD(0x012c, PIN_INPUT, 0) /* (B18) RGMII1_TX_CTL */
    		>;
    	};
    
    	main_uart0_pins_default: main_uart0-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x01c8, PIN_INPUT, 0) /* (A22) UART0_RXD */
    			AM62PX_IOPAD(0x01cc, PIN_OUTPUT, 0) /* (B22) UART0_TXD */
    		>;
    	};
    
    	main_wkup_uart0_pins_default: main-wkup-uart0-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_MCU_IOPAD(0x0024, PIN_INPUT, 0) /* (D8) WKUP_UART0_RXD */
    			AM62PX_MCU_IOPAD(0x0028, PIN_OUTPUT, 0) /* (D7) WKUP_UART0_TXD */
    		>;
    	};
    
    	// main_usb0_pins_default: main-usb0-default-pins {
    	// 	pinctrl-single,pins = <
    	// 		AM62PX_IOPAD(0x0254, PIN_OUTPUT, 0) /* (G22) USB0_DRVVBUS */
    	// 	>;
    	// };
    
    	main_usb1_pins_default: main-usb1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x0258, PIN_OUTPUT, 0) /* (G21) USB1_DRVVBUS */
    		>;
    	};
    
    	main_mdio1_pins_default: main-mdio1-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x0160, PIN_OUTPUT, 0) /* (F17) MDIO0_MDC */
    			AM62PX_IOPAD(0x015c, PIN_INPUT, 0) /* (F16) MDIO0_MDIO */
    		>;
    	};
    
    	main_usb_id_pins_default: main-usb-id-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x00a4, PIN_INPUT, 7) /* (P25) GPMC0_DIR.GPIO0_40 - USB_ID*/
    		>;
    	};
    
    	main_usb_id_control_pins_default: main-usb-id-control-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x00a0, PIN_INPUT, 7) /* (P24) GPMC0_WPn.GPIO0_39 - USB_ID_Control*/
    		>;
    	};
    
    	pinctrl_usb0_en: main-gpio1-50-default-pins {
    		pinctrl-single,pins = <
    			AM62PX_IOPAD(0x0254, PIN_INPUT, 7) /* (G22) USB0_DRVVBUS.GPIO1_50 */
    		>;
    	};
    };
    
    &epwm0{
    	status = "okay";
    };
    
    &epwm1{
    	status = "okay";
    };
    
    &cpsw3g {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_rgmii1_pins_default>;
    };
    
    &cpsw_port1 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy0>;
    	mac-address = [86 37 7c a6 c6 32];
    };
    
    &cpsw_port2 {
    	status = "disabled";
    };
    
    &cpsw3g_mdio {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mdio1_pins_default>;
    	status = "okay";
    
    	cpsw3g_phy0: ethernet-phy@0 {
    		reg = <0>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    		ti,min-output-impedance;
    	};
    
    };
    
    &main_uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart0_pins_default>;
    	status = "okay";
    };
    
    &mailbox0_cluster0 {
    	mbox_r5_0: mbox-r5-0 {
    		ti,mbox-rx = <0 0 0>;
    		ti,mbox-tx = <1 0 0>;
    	};
    };
    
    &mailbox0_cluster1 {
    	mbox_mcu_r5_0: mbox-mcu-r5-0 {
    		ti,mbox-rx = <0 0 0>;
    		ti,mbox-tx = <1 0 0>;
    	};
    };
    
    &wkup_uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_wkup_uart0_pins_default>;
    	status = "okay";
    };
    
    /* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
    &mcu_gpio0 {
    	status = "reserved";
    };
    
    &mcu_gpio_intr {
    	status = "reserved";
    };
    
    &mcu_r5fss0 {
    	status = "okay";
    };
    
    &usbss0 {
    	status = "okay";
    	ti,vbus-divider;
    };
    
    &usbss1 {
    	status = "okay";
    	ti,vbus-divider;
    };
    
    &usb0 {
    	status = "okay";
    	adp-disable;
    	usb-role-switch;
    	//maximum-speed = "low-speed";
    	port {
    		usb0_ep: endpoint {
    			remote-endpoint = <&usb_dr_connector>;
    		};
    	};
    
    	//dr_mode = "otg";
    	//extcon = <&extcon_usb0>;
    	//pinctrl-names = "default";
    	//pinctrl-0 = <&main_usb0_pins_default>;
    };
    
    &usb1 {
    	status = "okay";
    	dr_mode = "host";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb1_pins_default>;
    };


  • Hello,

    Just a few responses back, I could see that you were able to completely boot to A53 U-Boot. But, the latest logs don't show that. What is changed now that garbage characters are coming on the UART console?

  • I've figured out, it was my bootargs.