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.

AM6442: Enable Ethernet with IPC remoteproc

Part Number: AM6442
Other Parts Discussed in Thread: SYSCONFIG, DP83869

Tool/software:

Hi Team,

My customer is trying ethernet on the EVM with the following configuration:

  • A53: Linux
  • R5F0-0: RTOS (A53 remoteproc intializes core)

Could you give steps on how they can implement this? They tried combining some of the sample code provided, but could not get it working.

I have asked them to refer to the thread below, but because they are on Linux sdk v.10, they could not get the steps working.

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1290012/am6442-running-enet_icssg_layer2-example-on-r5f-in-combination-with-linux

Could you give step-by-step to help customer get it running?

The steps they have tried on their own are as follows: (General idea is adding Enet(ICSS) function to ipc example)

  1. Import ipc_rpmsg_echo_linux example
  2. Add Enet(ICSS) EEPROM and I2C
    1. In Sysconfig, add peripherals and match them to enet_lwip_icssg sample 
  3. Build and debug
    1. They copied the outputted file to SD card's /lib/firmware and booted SD card

They've also added the devicetree file. https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/4857.k3_2D00_am642_2D00_evm.dts

Best regards,

Mari Tsunoda

  • Hello Tsunoda-san,

    It will be a couple of days before I have the time to try this out on the latest SDK on my side. I am sending your thread to another team member in the meantime to see if they can offer assistance.

    Regards,

    Nick

  • Hello Tsunoda-san,

    The E2E you have referred to above is the correct place to start. I will list down the steps in more detail below for the customer to use it with SDK v10:

    MCU+ SDK example modifications:

    1. All the modifications needed in the example are listed on this page: https://dev.ti.com/tirex/explore/node?node=A__AScRgxl3hmonfFqU7DrFFw__AM64-ACADEMY__WI1KRXP__LATEST

    Note: Since the auto-generated linker file is not used by enet_lwip_icssg example, the changes made in Update linker file page will have to be applied manually.  

    2. Rebuild the example to get the .out file, copy this file to the /lib/firmware/ti-ipc of the root partition.

    Processor SDK modifications:

    1. Device tree changes - Set 'status = "disabled";' for all ICSSG related nodes in the device tree.

    It would be easiest to replace all the content of the icssg nodes with status = "disabled". Consequently, the respective pinmux settings of all nodes will have to be removed as well. See my reply here.

    2. Resource configuration changes - Update the <ti-u-boot-folder>/board/ti/rm-cfg.yaml file to assign the PKTDMA channels for PRU Ethernet to R5F instead of the Linux A53 cores 

    Update the rm-cfg file using the resource partitioning tool, follow the detailed steps present here. Copy the generated file and replace the existing one with this.

    Note: The steps in the link above are for R5F0_1 core, make sure to add the resources to MAIN_0_R5_1 (means R5F subsystem 0 core 0).

    3. Compile and build the modified k3-am642-evm.dts file to generate corresponding .dtb file with "make linux-dtbs". Replace it in /boot folder of the SD card root partition.

    4. Build u-boot and sysfw to generate the tiboot3.bin file with "make u-boot sysfw-image". Replace the tiboot3 in the SD card boot partition with our generated file.

    Booting remote core from linux:

    Follow the steps from here to boot remote core R5F0-0 from Linux.


    Do let me know if you face any issues.

    Regards,

    Nitika

  • Hi Nitika,

    They have followed your steps but are still having issues. Let me go step-by-step of everything they have done based on what you have mentioned. (Written in blue)

    MCU+ SDK example modifications:

    1. All the modifications needed in the example are listed on this page: https://dev.ti.com/tirex/explore/node?node=A__AScRgxl3hmonfFqU7DrFFw__AM64-ACADEMY__WI1KRXP__LATEST

    Note: Since the auto-generated linker file is not used by enet_lwip_icssg example, the changes made in Update linker file page will have to be applied manually.  

    • Generate the resource table as listed below in documentation
    • Add linux IPC to remote core project by adding IPC and enabling "Linux A53 IPC RP Message"
      Disable other cores because they will not be using them to communicate via RPMSG. 
      Disable "A53SS0 Core 0" as well because they are using Linux for this core. 
      After configuration, the screen changed:

      To enable remote core debug, the checked "Enable Memory Log" in "Debug Log".
      They also enabled "Info Log". 
      Changes made like below.
    • Update the linker.cmd file as instructed in documentation like below: 
      Note: Since the auto-generated linker file is not used by enet_lwip_icssg example, the changes made in Update linker file page will have to be applied manually.
      However, since MEMORY CONFIGURATOR is not used and the linker.cmd file needs to be edited manually, they used the one we provided before:
      #include "ti_enet_config.h"
      
      /* This is the stack that is used by code running within main()
       * In case of NORTOS,
       * - This means all the code outside of ISR uses this stack
       * In case of FreeRTOS
       * - This means all the code until vTaskStartScheduler() is called in main()
       *   uses this stack.
       * - After vTaskStartScheduler() each task created in FreeRTOS has its own stack
       */
      --stack_size=8192
      /* This is the heap size for malloc() API in NORTOS and FreeRTOS
       * This is also the heap used by pvPortMalloc in FreeRTOS
       */
      --heap_size=1024
      -e_vectors  /* This is the entry of the application, _vector MUST be plabed starting address 0x0 */
      
      /* This is the size of stack when R5 is in IRQ mode
       * In NORTOS,
       * - Here interrupt nesting is disabled as of now
       * - This is the stack used by ISRs registered as type IRQ
       * In FreeRTOS,
       * - Here interrupt nesting is enabled
       * - This is stack that is used initally when a IRQ is received
       * - But then the mode is switched to SVC mode and SVC stack is used for all user ISR callbacks
       * - Hence in FreeRTOS, IRQ stack size is less and SVC stack size is more
       */
      __IRQ_STACK_SIZE = 256;
      /* This is the size of stack when R5 is in IRQ mode
       * - In both NORTOS and FreeRTOS nesting is disabled for FIQ
       */
      __FIQ_STACK_SIZE = 256;
      __SVC_STACK_SIZE = 4096; /* This is the size of stack when R5 is in SVC mode */
      __ABORT_STACK_SIZE = 256;  /* This is the size of stack when R5 is in ABORT mode */
      __UNDEFINED_STACK_SIZE = 256;  /* This is the size of stack when R5 is in UNDEF mode */
      
      SECTIONS
      {
          /* This has the R5F entry point and vector table, this MUST be at 0x0 */
          .vectors:{} palign(8) > R5F_VECS
      
          /* This has the R5F boot code until MPU is enabled,  this MUST be at a address < 0x80000000
           * i.e this cannot be placed in DDR
           */
          GROUP {
              .text.hwi: palign(8)
              .text.cache: palign(8)
              .text.mpu: palign(8)
              .text.boot: palign(8)
              .text:abort: palign(8) /* this helps in loading symbols when using XIP mode */
          } > R5F_TCMA
      
          UNION:
          {
              .icssfw: palign(128)
      
              .icss_mem: type = NOLOAD {
      #if (ENET_SYSCFG_ICSSG0_ENABLED == 1)
          #if(ENET_SYSCFG_DUAL_MAC == 1)
              #if(ENET_SYSCFG_DUALMAC_PORT1_ENABLED == 1)
                  *(*gEnetSoc_icssg0HostPoolMem_0)
                  *(*gEnetSoc_icssg0HostQueueMem_0)
                  *(*gEnetSoc_icssg0ScratchMem_0)
                  #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                      *(*gEnetSoc_icssg0HostPreQueueMem_0)
                  #endif
              #else
                  *(*gEnetSoc_icssg0HostPoolMem_1)
                  *(*gEnetSoc_icssg0HostQueueMem_1)
                  *(*gEnetSoc_icssg0ScratchMem_1)
                  #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                          *(*gEnetSoc_icssg0HostPreQueueMem_1)
                  #endif
              #endif
          #endif
      #endif
      #if (ENET_SYSCFG_ICSSG1_ENABLED == 1)
          #if(ENET_SYSCFG_DUAL_MAC == 1)
              #if(ENET_SYSCFG_DUALMAC_PORT1_ENABLED == 1)
                      *(*gEnetSoc_icssg1HostPoolMem_0)
                      *(*gEnetSoc_icssg1HostQueueMem_0)
                      *(*gEnetSoc_icssg1ScratchMem_0)
                  #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                      *(*gEnetSoc_icssg1HostPreQueueMem_0)
                  #endif
              #else
                      *(*gEnetSoc_icssg1HostPoolMem_1)
                      *(*gEnetSoc_icssg1HostQueueMem_1)
                      *(*gEnetSoc_icssg1ScratchMem_1)
                  #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                      *(*gEnetSoc_icssg1HostPreQueueMem_1)
                  #endif
              #endif
          #endif
      #endif
      #if (ENET_SYSCFG_ICSSG0_ENABLED == 1)
          #if(ENET_SYSCFG_DUAL_MAC == 0)
              *(*gEnetSoc_icssg0PortPoolMem_0)
              *(*gEnetSoc_icssg0PortPoolMem_1)
              *(*gEnetSoc_icssg0HostPoolMem_0)
              *(*gEnetSoc_icssg0HostPoolMem_1)
              *(*gEnetSoc_icssg0HostQueueMem_0)
              *(*gEnetSoc_icssg0HostQueueMem_1)
              *(*gEnetSoc_icssg0ScratchMem_0)
              *(*gEnetSoc_icssg0ScratchMem_1)
              #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                  *(*gEnetSoc_icssg0HostPreQueueMem_0)
                  *(*gEnetSoc_icssg0HostPreQueueMem_1)
              #endif
          #endif
      #endif
      #if (ENET_SYSCFG_ICSSG1_ENABLED == 1)
          #if(ENET_SYSCFG_DUAL_MAC == 0)
              *(*gEnetSoc_icssg1PortPoolMem_0)
              *(*gEnetSoc_icssg1PortPoolMem_1)
              *(*gEnetSoc_icssg1HostPoolMem_0)
              *(*gEnetSoc_icssg1HostPoolMem_1)
              *(*gEnetSoc_icssg1HostQueueMem_0)
              *(*gEnetSoc_icssg1HostQueueMem_1)
              *(*gEnetSoc_icssg1ScratchMem_0)
              *(*gEnetSoc_icssg1ScratchMem_1)
              #if (ENET_SYSCFG_PREMPTION_ENABLE == 1)
                  *(*gEnetSoc_icssg1HostPreQueueMem_0)
                  *(*gEnetSoc_icssg1HostPreQueueMem_1)
              #endif
          #endif
      #endif
              }
      
          } > DDR_1
      
          /* This is rest of code. This can be placed in DDR if DDR is available and needed */
          GROUP {
              .text:   {} palign(8)   /* This is where code resides */
              .rodata: {} palign(8)   /* This is where const's go */
          } > DDR_1
      
          /* This is rest of initialized data. This can be placed in DDR if DDR is available and needed */
          GROUP {
              .data:   {} palign(8)   /* This is where initialized globals and static go */
          } > DDR_1
      
          /* This is rest of uninitialized data. This can be placed in DDR if DDR is available and needed */
          GROUP {
              .sysmem: {} palign(8)   /* This is where the malloc heap goes */
              .stack:  {} palign(8)   /* This is where the main() stack goes */
          } > DDR_1
      
          GROUP {
              .bss:    {} palign(8)   /* This is where uninitialized globals go */
              RUN_START(__BSS_START)
              RUN_END(__BSS_END)
          } > DDR_1
      
          /* This is where the stacks for different R5F modes go */
          GROUP {
              .irqstack: {. = . + __IRQ_STACK_SIZE;} align(8)
              RUN_START(__IRQ_STACK_START)
              RUN_END(__IRQ_STACK_END)
              .fiqstack: {. = . + __FIQ_STACK_SIZE;} align(8)
              RUN_START(__FIQ_STACK_START)
              RUN_END(__FIQ_STACK_END)
              .svcstack: {. = . + __SVC_STACK_SIZE;} align(8)
              RUN_START(__SVC_STACK_START)
              RUN_END(__SVC_STACK_END)
              .abortstack: {. = . + __ABORT_STACK_SIZE;} align(8)
              RUN_START(__ABORT_STACK_START)
              RUN_END(__ABORT_STACK_END)
              .undefinedstack: {. = . + __UNDEFINED_STACK_SIZE;} align(8)
              RUN_START(__UNDEFINED_STACK_START)
              RUN_END(__UNDEFINED_STACK_END)
          } > DDR_1
      
      
          .enet_dma_mem {
              *(*ENET_DMA_DESC_MEMPOOL)
              *(*ENET_DMA_RING_MEMPOOL)
      #if (ENET_SYSCFG_PKT_POOL_ENABLE == 1)
              *(*ENET_DMA_PKT_MEMPOOL)
      #endif
          } (NOLOAD) > DDR_1
      
           GROUP {
      	    /* This is the resource table used by Linux to know where the IPC "VRINGs" are located */
      	    .resource_table: {} palign(4096)
      	} > DDR_0
      
          .bss.ipc_vring_mem   (NOLOAD) : {} > RTOS_NORTOS_IPC_SHM_MEM
      }
      
      /*
      NOTE: Below memory is reserved for DMSC usage
       - During Boot till security handoff is complete
         0x701E0000 - 0x701FFFFF (128KB)
       - After "Security Handoff" is complete (i.e at run time)
         0x701FC000 - 0x701FFFFF (16KB)
      
       Security handoff is complete when this message is sent to the DMSC,
         TISCI_MSG_SEC_HANDOVER
      
       This should be sent once all cores are loaded and all application
       specific firewall calls are setup.
      */
      
      MEMORY
      {
          R5F_VECS  : ORIGIN = 0x00000000 , LENGTH = 0x00000040
          R5F_TCMA  : ORIGIN = 0x00000040 , LENGTH = 0x00007FC0
          R5F_TCMB0 : ORIGIN = 0x41010000 , LENGTH = 0x00008000
      
          /* memory segment used to hold CPU specific non-cached data, MAKE to add a MPU entry to mark this as non-cached */
          NON_CACHE_MEM : ORIGIN = 0x70060000 , LENGTH = 0x8000
      
          /* when using multi-core application's i.e more than one R5F/M4F active, make sure
           * this memory does not overlap with other R5F's
           */
          MSRAM     : ORIGIN = 0x70080000 , LENGTH = 0x40000
      
          /* This section can be used to put XIP section of the application in flash, make sure this does not overlap with
           * other CPUs. Also make sure to add a MPU entry for this section and mark it as cached and code executable
           */
          FLASH     : ORIGIN = 0x60100000 , LENGTH = 0x80000
      
           /* when using multi-core application's i.e more than one R5F/M4F active, make sure
           * this memory does not overlap with other R5F's
           */
          /* Resource table must be placed at the start of DDR_0 when R5 cores are early booting with Linux */
          DDR_0       : ORIGIN = 0xA0100000 , LENGTH = 0x100000
          DDR_1       : ORIGIN = 0xA0200000 , LENGTH = 0xE00000
      
          /* shared memory segments */
          /* On R5F,
           * - make sure there is a MPU entry which maps below regions as non-cache
           */
          RTOS_NORTOS_IPC_SHM_MEM : ORIGIN = 0xA5000000, LENGTH = 0x00800000
      
      }
      
      
    • Allocated peripherals 
      • Since they do not intent to use other peripherals for IPC, no need to configure.
    • Allocate memory
      • allocated in linker.cmd so not necessary to configure.

    2. Rebuild the example to get the .out file, copy this file to the /lib/firmware/ti-ipc of the root partition.

    • After building the project in CCS, the put the .out file in the indicated location.

    Processor SDK modifications:

    1. Device tree changes - Set 'status = "disabled";' for all ICSSG related nodes in the device tree.

    It would be easiest to replace all the content of the icssg nodes with status = "disabled". Consequently, the respective pinmux settings of all nodes will have to be removed as well. See my reply here.

    • Changed the .dts file a little (check below)
      // SPDX-License-Identifier: GPL-2.0
      /*
       * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
       */
      
      /dts-v1/;
      
      #include <dt-bindings/phy/phy.h>
      #include <dt-bindings/leds/common.h>
      #include <dt-bindings/gpio/gpio.h>
      #include <dt-bindings/net/ti-dp83867.h>
      #include "k3-am642.dtsi"
      
      #include "k3-serdes.h"
      
      / {
      	compatible = "ti,am642-evm", "ti,am642";
      	model = "Texas Instruments AM642 EVM";
      
      	chosen {
      		stdout-path = &main_uart0;
      	};
      
      	aliases {
      		serial0 = &mcu_uart0;
      		serial1 = &main_uart1;
      		serial2 = &main_uart0;
      		serial3 = &main_uart3;
      		i2c0 = &main_i2c0;
      		i2c1 = &main_i2c1;
      		mmc0 = &sdhci0;
      		mmc1 = &sdhci1;
      		ethernet0 = &cpsw_port1;
      		ethernet1 = &cpsw_port2;
      		ethernet2 = &icssg1_emac0;
      	};
      
      	memory@80000000 {
      		bootph-all;
      		device_type = "memory";
      		/* 2G RAM */
      		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
      	};
      
      	reserved-memory {
      		#address-cells = <2>;
      		#size-cells = <2>;
      		ranges;
      
      		secure_ddr: optee@9e800000 {
      			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
      			alignment = <0x1000>;
      			no-map;
      		};
      
      		main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa0000000 0x00 0x100000>;
      			no-map;
      		};
      
      		main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa0100000 0x00 0xf00000>;
      			no-map;
      		};
      
      		main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa1000000 0x00 0x100000>;
      			no-map;
      		};
      
      		main_r5fss0_core1_memory_region: r5f-memory@a1100000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa1100000 0x00 0xf00000>;
      			no-map;
      		};
      
      		main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa2000000 0x00 0x100000>;
      			no-map;
      		};
      
      		main_r5fss1_core0_memory_region: r5f-memory@a2100000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa2100000 0x00 0xf00000>;
      			no-map;
      		};
      
      		main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa3000000 0x00 0x100000>;
      			no-map;
      		};
      
      		main_r5fss1_core1_memory_region: r5f-memory@a3100000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa3100000 0x00 0xf00000>;
      			no-map;
      		};
      
      		mcu_m4fss_dma_memory_region: m4f-dma-memory@a4000000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa4000000 0x00 0x100000>;
      			no-map;
      		};
      
      		mcu_m4fss_memory_region: m4f-memory@a4100000 {
      			compatible = "shared-dma-pool";
      			reg = <0x00 0xa4100000 0x00 0xf00000>;
      			no-map;
      		};
      
      		rtos_ipc_memory_region: ipc-memories@a5000000 {
      			reg = <0x00 0xa5000000 0x00 0x00800000>;
      			alignment = <0x1000>;
      			no-map;
      		};
      	};
      
      	evm_12v0: regulator-0 {
      		/* main DC jack */
      		bootph-all;
      		compatible = "regulator-fixed";
      		regulator-name = "evm_12v0";
      		regulator-min-microvolt = <12000000>;
      		regulator-max-microvolt = <12000000>;
      		regulator-always-on;
      		regulator-boot-on;
      	};
      
      	vsys_5v0: regulator-1 {
      		/* output of LM5140 */
      		compatible = "regulator-fixed";
      		regulator-name = "vsys_5v0";
      		regulator-min-microvolt = <5000000>;
      		regulator-max-microvolt = <5000000>;
      		vin-supply = <&evm_12v0>;
      		regulator-always-on;
      		regulator-boot-on;
      	};
      
      	vsys_3v3: regulator-2 {
      		/* output of LM5140 */
      		bootph-all;
      		compatible = "regulator-fixed";
      		regulator-name = "vsys_3v3";
      		regulator-min-microvolt = <3300000>;
      		regulator-max-microvolt = <3300000>;
      		vin-supply = <&evm_12v0>;
      		regulator-always-on;
      		regulator-boot-on;
      	};
      
      	vdd_mmc1: regulator-3 {
      		/* TPS2051BD */
      		bootph-all;
      		compatible = "regulator-fixed";
      		regulator-name = "vdd_mmc1";
      		regulator-min-microvolt = <3300000>;
      		regulator-max-microvolt = <3300000>;
      		regulator-boot-on;
      		enable-active-high;
      		vin-supply = <&vsys_3v3>;
      		gpio = <&exp1 6 GPIO_ACTIVE_HIGH>;
      	};
      
      	vddb: regulator-4 {
      		compatible = "regulator-fixed";
      		regulator-name = "vddb_3v3_display";
      		regulator-min-microvolt = <3300000>;
      		regulator-max-microvolt = <3300000>;
      		vin-supply = <&vsys_3v3>;
      		regulator-always-on;
      		regulator-boot-on;
      	};
      
      	vtt_supply: regulator-5 {
      		bootph-all;
      		compatible = "regulator-fixed";
      		regulator-name = "vtt";
      		pinctrl-names = "default";
      		pinctrl-0 = <&ddr_vtt_pins_default>;
      		regulator-min-microvolt = <3300000>;
      		regulator-max-microvolt = <3300000>;
      		gpio = <&main_gpio0 12 GPIO_ACTIVE_HIGH>;
      		vin-supply = <&vsys_3v3>;
      		enable-active-high;
      		regulator-always-on;
      		regulator-boot-on;
      	};
      
      	leds {
      		compatible = "gpio-leds";
      
      		led-0 {
      			label = "am64-evm:red:heartbeat";
      			gpios = <&exp1 16 GPIO_ACTIVE_HIGH>;
      			linux,default-trigger = "heartbeat";
      			function = LED_FUNCTION_HEARTBEAT;
      			default-state = "off";
      		};
      	};
      
      	mdio_mux: mux-controller {
      		compatible = "gpio-mux";
      		#mux-control-cells = <0>;
      
      		mux-gpios = <&exp1 12 GPIO_ACTIVE_HIGH>;
      	};
      
      	mdio_mux_1: mdio-mux-1 {
      		compatible = "mdio-mux-multiplexer";
      		mux-controls = <&mdio_mux>;
      		mdio-parent-bus = <&cpsw3g_mdio>;
      		#address-cells = <1>;
      		#size-cells = <0>;
      
      		mdio@1 {
      			reg = <0x1>;
      			#address-cells = <1>;
      			#size-cells = <0>;
      
      			cpsw3g_phy3: ethernet-phy@3 {
      				reg = <3>;
      			};
      		};
      	};
      
      	transceiver1: can-phy0 {
      		compatible = "ti,tcan1042";
      		#phy-cells = <0>;
      		max-bitrate = <5000000>;
      		standby-gpios = <&exp1 8 GPIO_ACTIVE_HIGH>;
      	};
      
      	transceiver2: can-phy1 {
      		compatible = "ti,tcan1042";
      		#phy-cells = <0>;
      		max-bitrate = <5000000>;
      		standby-gpios = <&exp1 9 GPIO_ACTIVE_HIGH>;
      	};
      
      	icssg1_eth: icssg1-eth {
      		status = "disabled";
      	};
      };
      
      &main_pmx0 {
      	main_mmc1_pins_default: main-mmc1-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
      			AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
      			AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
      			AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
      			AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
      			AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
      			AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
      			AM64X_IOPAD(0x029c, PIN_INPUT, 0) /* (C20) MMC1_SDWP */
      			AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB */
      		>;
      	};
      
      	main_uart1_pins_default: main-uart1-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0248, PIN_INPUT, 0)		/* (D16) UART1_CTSn */
      			AM64X_IOPAD(0x024c, PIN_OUTPUT, 0)		/* (E16) UART1_RTSn */
      			AM64X_IOPAD(0x0240, PIN_INPUT, 0)		/* (E15) UART1_RXD */
      			AM64X_IOPAD(0x0244, PIN_OUTPUT, 0)		/* (E14) UART1_TXD */
      		>;
      	};
      
      	main_uart0_pins_default: main-uart0-default-pins {
      		bootph-all;
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */
      			AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */
      			AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
      			AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
      		>;
      	};
      
      	main_spi0_pins_default: main-spi0-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0210, PIN_INPUT, 0) /* (D13) SPI0_CLK */
      			AM64X_IOPAD(0x0208, PIN_OUTPUT, 0) /* (D12) SPI0_CS0 */
      			AM64X_IOPAD(0x0214, PIN_OUTPUT, 0) /* (A13) SPI0_D0 */
      			AM64X_IOPAD(0x0218, PIN_INPUT, 0) /* (A14) SPI0_D1 */
      		>;
      	};
      
      	main_i2c0_pins_default: main-i2c0-default-pins {
      		bootph-all;
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */
      			AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */
      		>;
      	};
      
      	main_i2c1_pins_default: main-i2c1-default-pins {
      		bootph-all;
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */
      			AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */
      		>;
      	};
      
      	mdio1_pins_default: mdio1-default-pins {
      		bootph-all;
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
      			AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
      		>;
      	};
      
      	rgmii1_pins_default: rgmii1-default-pins {
      		bootph-all;
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* (W5) PRG0_PRU1_GPO7.RGMII1_RD0 */
      			AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* (Y5) PRG0_PRU1_GPO9.RGMII1_RD1 */
      			AM64X_IOPAD(0x01d8, PIN_INPUT, 4) /* (V6) PRG0_PRU1_GPO10.RGMII1_RD2 */
      			AM64X_IOPAD(0x01f4, PIN_INPUT, 4) /* (V5) PRG0_PRU1_GPO17.RGMII1_RD3 */
      			AM64X_IOPAD(0x0188, PIN_INPUT, 4) /* (AA5) PRG0_PRU0_GPO10.RGMII1_RXC */
      			AM64X_IOPAD(0x0184, PIN_INPUT, 4) /* (W6) PRG0_PRU0_GPO9.RGMII1_RX_CTL */
      			AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* (V15) PRG1_PRU1_GPO7.RGMII1_TD0 */
      			AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* (V14) PRG1_PRU1_GPO9.RGMII1_TD1 */
      			AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* (W14) PRG1_PRU1_GPO10.RGMII1_TD2 */
      			AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* (AA14) PRG1_PRU1_GPO17.RGMII1_TD3 */
      			AM64X_IOPAD(0x00e0, PIN_OUTPUT, 4) /* (U14) PRG1_PRU0_GPO10.RGMII1_TXC */
      			AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_GPO9.RGMII1_TX_CTL */
      		>;
      	};
      
             rgmii2_pins_default: rgmii2-default-pins {
      		bootph-all;
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */
      			AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */
      			AM64X_IOPAD(0x0110, PIN_INPUT, 4) /* (AA12) PRG1_PRU1_GPO2.RGMII2_RD2 */
      			AM64X_IOPAD(0x0114, PIN_INPUT, 4) /* (Y12) PRG1_PRU1_GPO3.RGMII2_RD3 */
      			AM64X_IOPAD(0x0120, PIN_INPUT, 4) /* (U11) PRG1_PRU1_GPO6.RGMII2_RXC */
      			AM64X_IOPAD(0x0118, PIN_INPUT, 4) /* (W12) PRG1_PRU1_GPO4.RGMII2_RX_CTL */
      			AM64X_IOPAD(0x0134, PIN_OUTPUT, 4) /* (AA10) PRG1_PRU1_GPO11.RGMII2_TD0 */
      			AM64X_IOPAD(0x0138, PIN_OUTPUT, 4) /* (V10) PRG1_PRU1_GPO12.RGMII2_TD1 */
      			AM64X_IOPAD(0x013c, PIN_OUTPUT, 4) /* (U10) PRG1_PRU1_GPO13.RGMII2_TD2 */
      			AM64X_IOPAD(0x0140, PIN_OUTPUT, 4) /* (AA11) PRG1_PRU1_GPO14.RGMII2_TD3 */
      			AM64X_IOPAD(0x0148, PIN_OUTPUT, 4) /* (Y10) PRG1_PRU1_GPO16.RGMII2_TXC */
      			AM64X_IOPAD(0x0144, PIN_OUTPUT, 4) /* (Y11) PRG1_PRU1_GPO15.RGMII2_TX_CTL */
      		>;
      	};
      
      	main_usb0_pins_default: main-usb0-default-pins {
      		bootph-all;
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
      		>;
      	};
      
      	ospi0_pins_default: ospi0-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */
      			AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */
      			AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* (M19) OSPI0_D0 */
      			AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* (M18) OSPI0_D1 */
      			AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* (M20) OSPI0_D2 */
      			AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* (M21) OSPI0_D3 */
      			AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* (P21) OSPI0_D4 */
      			AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* (P20) OSPI0_D5 */
      			AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* (N18) OSPI0_D6 */
      			AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* (M17) OSPI0_D7 */
      			AM64X_IOPAD(0x0008, PIN_INPUT, 0) /* (N19) OSPI0_DQS */
      		>;
      	};
      
      	main_ecap0_pins_default: main-ecap0-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
      		>;
      	};
      
      	main_mcan0_pins_default: main-mcan0-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* (B17) MCAN0_RX */
      			AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* (A17) MCAN0_TX */
      		>;
      	};
      
      	main_mcan1_pins_default: main-mcan1-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
      			AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
      		>;
      	};
      
      	ddr_vtt_pins_default: ddr-vtt-default-pins {
      		bootph-all;
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0030, PIN_OUTPUT_PULLUP, 7) /* (L18) OSPI0_CSN1.GPIO0_12 */
      		>;
      	};
      
      	icssg1_mdio1_pins_default: icssg1-mdio1-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* (Y6) PRG1_MDIO0_MDC */
      			AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA6) PRG1_MDIO0_MDIO */
      		>;
      	};
      
      	icssg1_iep0_pins_default: icssg1-iep0-default-pins {
      		pinctrl-single,pins = <
      			AM64X_IOPAD(0x0104, PIN_OUTPUT, 2) /* (W7) PRG1_PRU0_GPO19.PRG1_IEP0_EDC_SYNC_OUT0 */
      		>;
      	};
      };
      
      &main_uart0 {
      	bootph-all;
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_uart0_pins_default>;
      	current-speed = <115200>;
      };
      
      /* main_uart1 is reserved for firmware usage */
      &main_uart1 {
      	status = "reserved";
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_uart1_pins_default>;
      };
      
      &main_i2c0 {
      	bootph-all;
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_i2c0_pins_default>;
      	clock-frequency = <400000>;
      
      	gpio@38 {
      		/* TCA9554 */
      		compatible = "nxp,pca9554";
      		reg = <0x38>;
      		gpio-controller;
      		#gpio-cells = <2>;
      		gpio-line-names = "HSE_DETECT";
      	};
      
      	eeprom@50 {
      		/* AT24CM01 */
      		compatible = "atmel,24c1024";
      		reg = <0x50>;
      	};
      };
      
      &main_i2c1 {
      	bootph-all;
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_i2c1_pins_default>;
      	clock-frequency = <400000>;
      
      	exp1: gpio@22 {
      		bootph-all;
      		compatible = "ti,tca6424";
      		reg = <0x22>;
      		gpio-controller;
      		#gpio-cells = <2>;
      		gpio-line-names = "GPIO_eMMC_RSTn", "CAN_MUX_SEL",
      				  "GPIO_CPSW1_RST", "GPIO_RGMII1_RST",
      				  "GPIO_RGMII2_RST", "GPIO_PCIe_RST_OUT",
      				  "MMC1_SD_EN", "FSI_FET_SEL",
      				  "MCAN0_STB_3V3", "MCAN1_STB_3V3",
      				  "CPSW_FET_SEL", "CPSW_FET2_SEL",
      				  "PRG1_RGMII2_FET_SEL", "TEST_GPIO2",
      				  "GPIO_OLED_RESETn", "VPP_LDO_EN",
      				  "TEST_LED1", "TP92", "TP90", "TP88",
      				  "TP87", "TP86", "TP89", "TP91";
      	};
      
      	/* osd9616p0899-10 */
      	display@3c {
      		compatible = "solomon,ssd1306fb-i2c";
      		reg = <0x3c>;
      		reset-gpios = <&exp1 14 GPIO_ACTIVE_LOW>;
      		vbat-supply = <&vddb>;
      		solomon,height = <16>;
      		solomon,width = <96>;
      		solomon,com-seq;
      		solomon,com-invdir;
      		solomon,page-offset = <0>;
      		solomon,prechargep1 = <2>;
      		solomon,prechargep2 = <13>;
      	};
      };
      
      &main_gpio0 {
      	bootph-all;
      };
      
      /* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
      &mcu_gpio0 {
      	status = "reserved";
      };
      
      &mcu_gpio_intr {
      	status = "reserved";
      };
      
      &main_spi0 {
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_spi0_pins_default>;
      	ti,pindir-d0-out-d1-in;
      	eeprom@0 {
      		compatible = "microchip,93lc46b";
      		reg = <0>;
      		spi-max-frequency = <1000000>;
      		spi-cs-high;
      		data-size = <16>;
      	};
      };
      
      /* eMMC */
      &sdhci0 {
      	status = "okay";
      	non-removable;
      	ti,driver-strength-ohm = <50>;
      	disable-wp;
      	bootph-all;
      };
      
      /* SD/MMC */
      &sdhci1 {
      	bootph-all;
      	status = "okay";
      	vmmc-supply = <&vdd_mmc1>;
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_mmc1_pins_default>;
      	disable-wp;
      };
      
      &usbss0 {
      	bootph-all;
      	ti,vbus-divider;
      	ti,usb2-only;
      };
      
      &usb0 {
      	bootph-all;
      	dr_mode = "otg";
      	maximum-speed = "high-speed";
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_usb0_pins_default>;
      };
      
      &cpsw3g {
      	bootph-all;
      	pinctrl-names = "default";
      	pinctrl-0 = <&rgmii1_pins_default>, <&rgmii2_pins_default>;
      
      	/* Map HW8_TS_PUSH to GENF1 */
      	cpts@3d000 {
      		ti,pps = <7 1>;
      	};
      };
      
      &cpsw_port1 {
      	bootph-all;
      	phy-mode = "rgmii-rxid";
      	phy-handle = <&cpsw3g_phy0>;
      };
      
      &cpsw_port2 {
      	phy-mode = "rgmii-rxid";
      	phy-handle = <&cpsw3g_phy3>;
      };
      
      &cpsw3g_mdio {
      	bootph-all;
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&mdio1_pins_default>;
      
      	cpsw3g_phy0: ethernet-phy@0 {
      		bootph-all;
      		reg = <0>;
      		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
      		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
      	};
      };
      
      &tscadc0 {
      	/* ADC is reserved for R5 usage */
      	status = "reserved";
      };
      
      &ospi0 {
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&ospi0_pins_default>;
      
      	flash@0 {
      		compatible = "jedec,spi-nor";
      		reg = <0x0>;
      		spi-tx-bus-width = <8>;
      		spi-rx-bus-width = <8>;
      		spi-max-frequency = <25000000>;
      		cdns,tshsl-ns = <60>;
      		cdns,tsd2d-ns = <60>;
      		cdns,tchsh-ns = <60>;
      		cdns,tslch-ns = <60>;
      		cdns,read-delay = <4>;
      
      		partitions {
      			compatible = "fixed-partitions";
      			#address-cells = <1>;
      			#size-cells = <1>;
      
      			partition@0 {
      				label = "ospi.tiboot3";
      				reg = <0x0 0x100000>;
      			};
      
      			partition@100000 {
      				label = "ospi.tispl";
      				reg = <0x100000 0x200000>;
      			};
      
      			partition@300000 {
      				label = "ospi.u-boot";
      				reg = <0x300000 0x400000>;
      			};
      
      			partition@700000 {
      				label = "ospi.env";
      				reg = <0x700000 0x40000>;
      			};
      
      			partition@740000 {
      				label = "ospi.env.backup";
      				reg = <0x740000 0x40000>;
      			};
      
      			partition@800000 {
      				label = "ospi.rootfs";
      				reg = <0x800000 0x37c0000>;
      			};
      
      			partition@3fc0000 {
      				label = "ospi.phypattern";
      				reg = <0x3fc0000 0x40000>;
      			};
      		};
      	};
      };
      
      &mailbox0_cluster2 {
      	status = "okay";
      
      	mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
      		ti,mbox-rx = <0 0 2>;
      		ti,mbox-tx = <1 0 2>;
      	};
      
      	mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
      		ti,mbox-rx = <2 0 2>;
      		ti,mbox-tx = <3 0 2>;
      	};
      };
      
      &mailbox0_cluster4 {
      	status = "okay";
      
      	mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
      		ti,mbox-rx = <0 0 2>;
      		ti,mbox-tx = <1 0 2>;
      	};
      
      	mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
      		ti,mbox-rx = <2 0 2>;
      		ti,mbox-tx = <3 0 2>;
      	};
      };
      
      &mailbox0_cluster6 {
      	status = "okay";
      
      	mbox_m4_0: mbox-m4-0 {
      		ti,mbox-rx = <0 0 2>;
      		ti,mbox-tx = <1 0 2>;
      	};
      };
      
      &main_r5fss0_core0 {
      	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
      	memory-region = <&main_r5fss0_core0_dma_memory_region>,
      			<&main_r5fss0_core0_memory_region>;
      };
      
      &main_r5fss0_core1 {
      	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
      	memory-region = <&main_r5fss0_core1_dma_memory_region>,
      			<&main_r5fss0_core1_memory_region>;
      };
      
      &main_r5fss1_core0 {
      	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
      	memory-region = <&main_r5fss1_core0_dma_memory_region>,
      			<&main_r5fss1_core0_memory_region>;
      };
      
      &main_r5fss1_core1 {
      	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
      	memory-region = <&main_r5fss1_core1_dma_memory_region>,
      			<&main_r5fss1_core1_memory_region>;
      };
      
      &mcu_m4fss {
      	mboxes = <&mailbox0_cluster6 &mbox_m4_0>;
      	memory-region = <&mcu_m4fss_dma_memory_region>,
      			<&mcu_m4fss_memory_region>;
      	status = "okay";
      };
      
      &serdes_ln_ctrl {
      	idle-states = <AM64_SERDES0_LANE0_PCIE0>;
      };
      
      &serdes0 {
      	serdes0_pcie_link: phy@0 {
      		reg = <0>;
      		cdns,num-lanes = <1>;
      		#phy-cells = <0>;
      		cdns,phy-type = <PHY_TYPE_PCIE>;
      		resets = <&serdes_wiz0 1>;
      	};
      };
      
      &pcie0_rc {
      	status = "okay";
      	reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
      	phys = <&serdes0_pcie_link>;
      	phy-names = "pcie-phy";
      	num-lanes = <1>;
      };
      
      &ecap0 {
      	status = "okay";
      	/* PWM is available on Pin 1 of header J12 */
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_ecap0_pins_default>;
      };
      
      &main_mcan0 {
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_mcan0_pins_default>;
      	phys = <&transceiver1>;
      };
      
      &main_mcan1 {
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&main_mcan1_pins_default>;
      	phys = <&transceiver2>;
      };
      
      &icssg1_mdio {
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&icssg1_mdio1_pins_default>;
      
      	icssg1_phy1: ethernet-phy@f {
      		reg = <0xf>;
      		tx-internal-delay-ps = <250>;
      		rx-internal-delay-ps = <2000>;
      	};
      };
      
      #define TS_OFFSET(pa, val)     (0x4+(pa)*4) (0x10000 | val)
      
      &timesync_router {
      	status = "okay";
      	pinctrl-names = "default";
      	pinctrl-0 = <&cpsw_cpts_pps>;
      
      	/*
      	 * Use Time Sync Router to map GENF1 input to HW8_TS_PUSH output as well
      	 * as the PRU ICSSG0 SYNC1 output.
      	 */
      	cpsw_cpts_pps: cpsw-cpts-pps {
      		pinctrl-single,pins = <
      			/* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
      			TS_OFFSET(37, 22)
      			/* pps [cpts genf1] in22 -> out26 [SYNC1_OUT pin] */
      			TS_OFFSET(26, 22)
      			>;
      	};
      };
      
      &icssg1_iep0 {
      	pinctrl-names = "default";
      	pinctrl-0 = <&icssg1_iep0_pins_default>;
      };
      
      
      /* additional settings */
      
      &icssg0 {
      	status = "disabled";
      };
      
      &icssg1 {
      	status = "disabled";
      };
      
      &icssg0_mdio {
      	status = "disabled";
      };
      
      &icssg1_mdio {
      	status = "disabled";
      };
      
      &icssg1_iep0_pins_default {
      	status = "disabled";
      };
      
      &sdhci0 {
      	no-1-8-v;
      };
      

    2. Resource configuration changes - Update the <ti-u-boot-folder>/board/ti/rm-cfg.yaml file to assign the PKTDMA channels for PRU Ethernet to R5F instead of the Linux A53 cores 

    Update the rm-cfg file using the resource partitioning tool, follow the detailed steps present here. Copy the generated file and replace the existing one with this.

    Note: The steps in the link above are for R5F0_1 core, make sure to add the resources to MAIN_0_R5_1 (means R5F subsystem 0 core 0).

    • Generated the rm-cfg.yaml file from SysConfig (Software Product: Keystone3 Resource Partitioning Tool 0.5, Device: AM64x)
    • Selected Browse and opened the file in C:\ti\mcu_plus_sdk_am64x_10_00_00_20\tools\sysfw\boardcfg\respart\am64x\k3-respart-tool-0.5\out
    • Disable A53 ICSSG1
      • Packet DMA:
        • Change ICSSG1 Tx/Rx Channels Count to 0 and ignore the warnings.
      • Packet DMA Ring accelerator:
        • Change the ICSSG1 Tx/Rx channel count to 0. "ICSSG1 Rx flows Count" also becomes 0 automatically.
    • Enable ICSSG1 on R0 side
      • Packet DMA: 
        • Change ICSSG1 TX channels count to 8, Rx channels count to 4 (This was by default configured to A53)
      • Packet DMA Ring Accelerator:
        • Change ICSSG1 TX channels count to 8, Rx channels count to 64 (This was by default configured to A53)

    • All the resource sharing errors are resolved
    • Since they need to change the shared configurations for ICSSG1, they changed the "Share from Host" to "MAIN_0_R5_1" and "To The Host" to "None". Changed these all for the modules that show errors and the errors are resolved.
    • Save the generated rm-cfg.yaml file.
    • However, since the generated rm-cfg.yaml file does not fulfill the format required (causes error during build), they made the changes below.

    • Place the rm-cfg.yaml file in <ti-u-boot-folder>/board/ti/am64x
      #
      # K3 System Firmware Resource Management Configuration Data
      # Auto generated from K3 Resource Partitioning tool
      #
      # Copyright (C) 2019-2021 Texas Instruments Incorporated - https://www.ti.com/
      #
      # Redistribution and use in source and binary forms, with or without
      # modification, are permitted provided that the following conditions
      # are met:
      #
      #    Redistributions of source code must retain the above copyright
      #    notice, this list of conditions and the following disclaimer.
      #
      #    Redistributions in binary form must reproduce the above copyright
      #    notice, this list of conditions and the following disclaimer in the
      #    documentation and/or other materials provided with the
      #    distribution.
      #
      #    Neither the name of Texas Instruments Incorporated nor the names of
      #    its contributors may be used to endorse or promote products derived
      #    from this software without specific prior written permission.
      #
      # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
      # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
      # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
      # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
      # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
      # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
      # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
      # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
      # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
      # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
      # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
      #
      
      ---
      
      rm-cfg:
        rm_boardcfg:
          # boardcfg_abi_rev
          rev:
            boardcfg_abi_maj: 0x0
            boardcfg_abi_min: 0x1
      
          # boardcfg_rm_host_cfg
          host_cfg:
            subhdr:
              magic: 0x4C41
              size: 356
            host_cfg_entries:
              -  # 1
                host_id: 12
                allowed_atype: 0b101010
                allowed_qos: 0xAAAA
                allowed_orderid: 0xAAAAAAAA
                allowed_priority: 0xAAAA
                allowed_sched_priority: 0xAA
              -  # 2
                host_id: 30
                allowed_atype: 0b101010
                allowed_qos: 0xAAAA
                allowed_orderid: 0xAAAAAAAA
                allowed_priority: 0xAAAA
                allowed_sched_priority: 0xAA
              -  # 3
                host_id: 36
                allowed_atype: 0b101010
                allowed_qos: 0xAAAA
                allowed_orderid: 0xAAAAAAAA
                allowed_priority: 0xAAAA
                allowed_sched_priority: 0xAA
              -  # 4
                host_id: 38
                allowed_atype: 0b101010
                allowed_qos: 0xAAAA
                allowed_orderid: 0xAAAAAAAA
                allowed_priority: 0xAAAA
                allowed_sched_priority: 0xAA
              -  # 5
                host_id: 41
                allowed_atype: 0b101010
                allowed_qos: 0xAAAA
                allowed_orderid: 0xAAAAAAAA
                allowed_priority: 0xAAAA
                allowed_sched_priority: 0xAA
              -  # 6
                host_id: 43
                allowed_atype: 0b101010
                allowed_qos: 0xAAAA
                allowed_orderid: 0xAAAAAAAA
                allowed_priority: 0xAAAA
                allowed_sched_priority: 0xAA
              -  # 7
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 8
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 9
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 10
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 11
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 12
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 13
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 14
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 15
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 16
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 17
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 18
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 19
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 20
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 21
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 22
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 23
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 24
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 25
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 26
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 27
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 28
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 29
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 30
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 31
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
              -  # 32
                host_id: 0
                allowed_atype: 0
                allowed_qos: 0
                allowed_orderid: 0
                allowed_priority: 0
                allowed_sched_priority: 0
      
          # boardcfg_rm_resasg
          resasg:
            subhdr:
              magic: 0x7B25
              size: 8
            resasg_entries_size: 1408
            reserved: 0
            # .resasg_entries is set via boardcfg_rm_local
      
      
        # This is actually part of .resasg
        resasg_entries:
          # Compare event Interrupt Router
      
          -
            start_resource: 0
            num_resource: 16
            type: 64
            host_id: 12
            reserved: 0
      
          -
            start_resource: 16
            num_resource: 4
            type: 64
            host_id: 35
            reserved: 0
      
          -
            start_resource: 16
            num_resource: 4
            type: 64
            host_id: 36
            reserved: 0
      
          -
            start_resource: 20
            num_resource: 4
            type: 64
            host_id: 38
            reserved: 0
      
          -
            start_resource: 24
            num_resource: 4
            type: 64
            host_id: 41
            reserved: 0
      
          -
            start_resource: 28
            num_resource: 4
            type: 64
            host_id: 43
            reserved: 0
      
          -
            start_resource: 32
            num_resource: 8
            type: 64
            host_id: 128
            reserved: 0
          # Main GPIO Interrupt Router
      
          -
            start_resource: 0
            num_resource: 8
            type: 192
            host_id: 12
            reserved: 0
      
          -
            start_resource: 0
            num_resource: 8
            type: 192
            host_id: 36
            reserved: 0
      
          -
            start_resource: 8
            num_resource: 4
            type: 192
            host_id: 38
            reserved: 0
      
          -
            start_resource: 12
            num_resource: 2
            type: 192
            host_id: 41
            reserved: 0
      
          -
            start_resource: 14
            num_resource: 2
            type: 192
            host_id: 43
            reserved: 0
          # MCU GPIO Interrupt Router
      
          -
            start_resource: 0
            num_resource: 4
            type: 320
            host_id: 12
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 4
            type: 320
            host_id: 30
            reserved: 0
          # Timesync Interrupt Router
      
          -
            start_resource: 0
            num_resource: 41
            type: 384
            host_id: 128
            reserved: 0
          # Block Copy DMA Global event trigger
      
          -
            start_resource: 50176
            num_resource: 136
            type: 1666
            host_id: 128
            reserved: 0
          # Block Copy DMA Global config
      
          -
            start_resource: 0
            num_resource: 1
            type: 1667
            host_id: 128
            reserved: 0
          # Block Copy DMA Rings for Block copy channels
      
          -
            start_resource: 0
            num_resource: 12
            type: 1677
            host_id: 12
            reserved: 0
      
          -
            start_resource: 12
            num_resource: 6
            type: 1677
            host_id: 35
            reserved: 0
      
          -
            start_resource: 12
            num_resource: 6
            type: 1677
            host_id: 36
            reserved: 0
      
          -
            start_resource: 18
            num_resource: 2
            type: 1677
            host_id: 38
            reserved: 0
      
          -
            start_resource: 20
            num_resource: 4
            type: 1677
            host_id: 41
            reserved: 0
      
          -
            start_resource: 24
            num_resource: 2
            type: 1677
            host_id: 43
            reserved: 0
      
          -
            start_resource: 26
            num_resource: 1
            type: 1677
            host_id: 30
            reserved: 0
      
          -
            start_resource: 27
            num_resource: 1
            type: 1677
            host_id: 128
            reserved: 0
          # Block Copy DMA Rings for Split TR Rx channel
      
          -
            start_resource: 48
            num_resource: 6
            type: 1678
            host_id: 12
            reserved: 0
      
          -
            start_resource: 54
            num_resource: 6
            type: 1678
            host_id: 35
            reserved: 0
      
          -
            start_resource: 54
            num_resource: 6
            type: 1678
            host_id: 36
            reserved: 0
      
          -
            start_resource: 60
            num_resource: 2
            type: 1678
            host_id: 38
            reserved: 0
      
          -
            start_resource: 62
            num_resource: 4
            type: 1678
            host_id: 41
            reserved: 0
      
          -
            start_resource: 66
            num_resource: 2
            type: 1678
            host_id: 43
            reserved: 0
          # Block Copy DMA Rings for Split TR Tx channel
      
          -
            start_resource: 28
            num_resource: 6
            type: 1679
            host_id: 12
            reserved: 0
      
          -
            start_resource: 34
            num_resource: 6
            type: 1679
            host_id: 35
            reserved: 0
      
          -
            start_resource: 34
            num_resource: 6
            type: 1679
            host_id: 36
            reserved: 0
      
          -
            start_resource: 40
            num_resource: 2
            type: 1679
            host_id: 38
            reserved: 0
      
          -
            start_resource: 42
            num_resource: 4
            type: 1679
            host_id: 41
            reserved: 0
      
          -
            start_resource: 46
            num_resource: 2
            type: 1679
            host_id: 43
            reserved: 0
          # Block Copy DMA Block copy channels
      
          -
            start_resource: 0
            num_resource: 12
            type: 1696
            host_id: 12
            reserved: 0
      
          -
            start_resource: 12
            num_resource: 6
            type: 1696
            host_id: 35
            reserved: 0
      
          -
            start_resource: 12
            num_resource: 6
            type: 1696
            host_id: 36
            reserved: 0
      
          -
            start_resource: 18
            num_resource: 2
            type: 1696
            host_id: 38
            reserved: 0
      
          -
            start_resource: 20
            num_resource: 4
            type: 1696
            host_id: 41
            reserved: 0
      
          -
            start_resource: 24
            num_resource: 2
            type: 1696
            host_id: 43
            reserved: 0
      
          -
            start_resource: 26
            num_resource: 1
            type: 1696
            host_id: 30
            reserved: 0
      
          -
            start_resource: 27
            num_resource: 1
            type: 1696
            host_id: 128
            reserved: 0
          # Block Copy DMA Split TR Rx channels
      
          -
            start_resource: 0
            num_resource: 6
            type: 1697
            host_id: 12
            reserved: 0
      
          -
            start_resource: 6
            num_resource: 6
            type: 1697
            host_id: 35
            reserved: 0
      
          -
            start_resource: 6
            num_resource: 6
            type: 1697
            host_id: 36
            reserved: 0
      
          -
            start_resource: 12
            num_resource: 2
            type: 1697
            host_id: 38
            reserved: 0
      
          -
            start_resource: 14
            num_resource: 4
            type: 1697
            host_id: 41
            reserved: 0
      
          -
            start_resource: 18
            num_resource: 2
            type: 1697
            host_id: 43
            reserved: 0
          # Block Copy DMA Split TR Tx channels
      
          -
            start_resource: 0
            num_resource: 6
            type: 1698
            host_id: 12
            reserved: 0
      
          -
            start_resource: 6
            num_resource: 6
            type: 1698
            host_id: 35
            reserved: 0
      
          -
            start_resource: 6
            num_resource: 6
            type: 1698
            host_id: 36
            reserved: 0
      
          -
            start_resource: 12
            num_resource: 2
            type: 1698
            host_id: 38
            reserved: 0
      
          -
            start_resource: 14
            num_resource: 4
            type: 1698
            host_id: 41
            reserved: 0
      
          -
            start_resource: 18
            num_resource: 2
            type: 1698
            host_id: 43
            reserved: 0
          # DMASS Interrupt aggregator Virtual interrupts
      
          -
            start_resource: 5
            num_resource: 35
            type: 1802
            host_id: 12
            reserved: 0
      
          -
            start_resource: 44
            num_resource: 14
            type: 1802
            host_id: 35
            reserved: 0
      
          -
            start_resource: 44
            num_resource: 14
            type: 1802
            host_id: 36
            reserved: 0
      
          -
            start_resource: 58
            num_resource: 14
            type: 1802
            host_id: 38
            reserved: 0
      
          -
            start_resource: 92
            num_resource: 14
            type: 1802
            host_id: 41
            reserved: 0
      
          -
            start_resource: 106
            num_resource: 14
            type: 1802
            host_id: 43
            reserved: 0
      
          -
            start_resource: 168
            num_resource: 16
            type: 1802
            host_id: 30
            reserved: 0
          # DMASS Interrupt aggregator Global events
      
          -
            start_resource: 16
            num_resource: 512
            type: 1805
            host_id: 12
            reserved: 0
      
          -
            start_resource: 528
            num_resource: 256
            type: 1805
            host_id: 35
            reserved: 0
      
          -
            start_resource: 528
            num_resource: 256
            type: 1805
            host_id: 36
            reserved: 0
      
          -
            start_resource: 784
            num_resource: 192
            type: 1805
            host_id: 38
            reserved: 0
      
          -
            start_resource: 976
            num_resource: 256
            type: 1805
            host_id: 41
            reserved: 0
      
          -
            start_resource: 1232
            num_resource: 192
            type: 1805
            host_id: 43
            reserved: 0
      
          -
            start_resource: 1424
            num_resource: 96
            type: 1805
            host_id: 30
            reserved: 0
      
          -
            start_resource: 1520
            num_resource: 16
            type: 1805
            host_id: 128
            reserved: 0
          # DMASS timer manager event
      
          -
            start_resource: 0
            num_resource: 1024
            type: 1807
            host_id: 128
            reserved: 0
          # Packet DMA Tx channel error event
      
          -
            start_resource: 4096
            num_resource: 42
            type: 1808
            host_id: 128
            reserved: 0
          # Packet DMA Tx flow completion event
      
          -
            start_resource: 4608
            num_resource: 112
            type: 1809
            host_id: 128
            reserved: 0
          # Packet DMA Rx channel error event
      
          -
            start_resource: 5120
            num_resource: 29
            type: 1810
            host_id: 128
            reserved: 0
          # Packet DMA Rx flow completion event
      
          -
            start_resource: 5632
            num_resource: 176
            type: 1811
            host_id: 128
            reserved: 0
          # Packet DMA Rx flow starvation event
      
          -
            start_resource: 6144
            num_resource: 176
            type: 1812
            host_id: 128
            reserved: 0
          # Packet DMA Rx flow firewall event
      
          -
            start_resource: 6656
            num_resource: 176
            type: 1813
            host_id: 128
            reserved: 0
          # Block copy DMA BC channel error event
      
          -
            start_resource: 8192
            num_resource: 28
            type: 1814
            host_id: 128
            reserved: 0
          # Block copy DMA BC channel data completion event
      
          -
            start_resource: 8704
            num_resource: 28
            type: 1815
            host_id: 128
            reserved: 0
          # Block copy DMA BC channel ring completion event
      
          -
            start_resource: 9216
            num_resource: 28
            type: 1816
            host_id: 128
            reserved: 0
          # Block copy DMA Tx channel error event
      
          -
            start_resource: 9728
            num_resource: 20
            type: 1817
            host_id: 128
            reserved: 0
          # Block copy DMA Tx channel data completion event
      
          -
            start_resource: 10240
            num_resource: 20
            type: 1818
            host_id: 128
            reserved: 0
          # Block copy DMA Tx channel ring completion event
      
          -
            start_resource: 10752
            num_resource: 20
            type: 1819
            host_id: 128
            reserved: 0
          # Block copy DMA Rx channel error event
      
          -
            start_resource: 11264
            num_resource: 20
            type: 1820
            host_id: 128
            reserved: 0
          # Block copy DMA Rx channel data completion event
      
          -
            start_resource: 11776
            num_resource: 20
            type: 1821
            host_id: 128
            reserved: 0
          # Block copy DMA Rx channel ring completion event
      
          -
            start_resource: 12288
            num_resource: 20
            type: 1822
            host_id: 128
            reserved: 0
          # DMASS UDMA global config
      
          -
            start_resource: 0
            num_resource: 1
            type: 1923
            host_id: 128
            reserved: 0
          # Packet DMA Free rings for Tx channel
      
          -
            start_resource: 0
            num_resource: 4
            type: 1936
            host_id: 12
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 3
            type: 1936
            host_id: 35
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 3
            type: 1936
            host_id: 36
            reserved: 0
      
          -
            start_resource: 7
            num_resource: 2
            type: 1936
            host_id: 38
            reserved: 0
      
          -
            start_resource: 9
            num_resource: 4
            type: 1936
            host_id: 41
            reserved: 0
      
          -
            start_resource: 13
            num_resource: 2
            type: 1936
            host_id: 43
            reserved: 0
      
          -
            start_resource: 15
            num_resource: 1
            type: 1936
            host_id: 30
            reserved: 0
          # Packet DMA Rings for CPSW Tx channel
      
          -
            start_resource: 16
            num_resource: 64
            type: 1937
            host_id: 12
            reserved: 0
      
          -
            start_resource: 16
            num_resource: 64
            type: 1937
            host_id: 36
            reserved: 0
          # Packet DMA Rings for SA2UL Tx channel1
      
          -
            start_resource: 88
            num_resource: 8
            type: 1939
            host_id: 12
            reserved: 0
      
          -
            start_resource: 88
            num_resource: 8
            type: 1939
            host_id: 36
            reserved: 0
          # Packet DMA Rings for ICSSG0 Tx channel
      
          -
            start_resource: 96
            num_resource: 8
            type: 1940
            host_id: 12
            reserved: 0
      
          -
            start_resource: 96
            num_resource: 8
            type: 1940
            host_id: 36
            reserved: 0
          # Packet DMA Rings for ICSSG1 Tx channel
      
          -
            start_resource: 104
            num_resource: 8
            type: 1941
            host_id: 36
            reserved: 0
          # Packet DMA Free rings for Rx channel
      
          -
            start_resource: 112
            num_resource: 4
            type: 1942
            host_id: 12
            reserved: 0
      
          -
            start_resource: 116
            num_resource: 3
            type: 1942
            host_id: 35
            reserved: 0
      
          -
            start_resource: 116
            num_resource: 3
            type: 1942
            host_id: 36
            reserved: 0
      
          -
            start_resource: 119
            num_resource: 2
            type: 1942
            host_id: 38
            reserved: 0
      
          -
            start_resource: 121
            num_resource: 4
            type: 1942
            host_id: 41
            reserved: 0
      
          -
            start_resource: 125
            num_resource: 2
            type: 1942
            host_id: 43
            reserved: 0
      
          -
            start_resource: 127
            num_resource: 1
            type: 1942
            host_id: 30
            reserved: 0
          # Packet DMA Rings for CPSW Rx channel
      
          -
            start_resource: 128
            num_resource: 16
            type: 1943
            host_id: 12
            reserved: 0
      
          -
            start_resource: 128
            num_resource: 16
            type: 1943
            host_id: 36
            reserved: 0
          # Packet DMA Rings for SA2UL Rx channel1
      
          -
            start_resource: 144
            num_resource: 8
            type: 1945
            host_id: 128
            reserved: 0
          # Packet DMA Rings for SA2UL Rx channel2
      
          -
            start_resource: 152
            num_resource: 8
            type: 1946
            host_id: 12
            reserved: 0
      
          -
            start_resource: 152
            num_resource: 8
            type: 1946
            host_id: 36
            reserved: 0
          # Packet DMA Rings for SA2UL Rx channel3
      
          -
            start_resource: 152
            num_resource: 8
            type: 1947
            host_id: 12
            reserved: 0
      
          -
            start_resource: 152
            num_resource: 8
            type: 1947
            host_id: 36
            reserved: 0
          # Packet DMA Rings for ICSSG0 Rx channel
      
          -
            start_resource: 160
            num_resource: 64
            type: 1948
            host_id: 12
            reserved: 0
      
          -
            start_resource: 160
            num_resource: 64
            type: 1948
            host_id: 36
            reserved: 0
          # Packet DMA Rings for ICSSG1 Rx channel
      
          -
            start_resource: 224
            num_resource: 64
            type: 1949
            host_id: 36
            reserved: 0
          # Packet DMA Free Tx channels
      
          -
            start_resource: 0
            num_resource: 4
            type: 1955
            host_id: 12
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 3
            type: 1955
            host_id: 35
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 3
            type: 1955
            host_id: 36
            reserved: 0
      
          -
            start_resource: 7
            num_resource: 2
            type: 1955
            host_id: 38
            reserved: 0
      
          -
            start_resource: 9
            num_resource: 4
            type: 1955
            host_id: 41
            reserved: 0
      
          -
            start_resource: 13
            num_resource: 2
            type: 1955
            host_id: 43
            reserved: 0
      
          -
            start_resource: 15
            num_resource: 1
            type: 1955
            host_id: 30
            reserved: 0
          # Packet DMA CPSW Tx channels
      
          -
            start_resource: 16
            num_resource: 8
            type: 1956
            host_id: 12
            reserved: 0
      
          -
            start_resource: 16
            num_resource: 8
            type: 1956
            host_id: 36
            reserved: 0
          # Packet DMA SA2UL Tx channel1
      
          -
            start_resource: 25
            num_resource: 1
            type: 1958
            host_id: 12
            reserved: 0
      
          -
            start_resource: 25
            num_resource: 1
            type: 1958
            host_id: 36
            reserved: 0
          # Packet DMA ICSSG0 Tx channels
      
          -
            start_resource: 26
            num_resource: 8
            type: 1959
            host_id: 12
            reserved: 0
      
          -
            start_resource: 26
            num_resource: 8
            type: 1959
            host_id: 36
            reserved: 0
          # Packet DMA ICSSG1 Tx channels
      
          -
            start_resource: 34
            num_resource: 8
            type: 1960
            host_id: 36
            reserved: 0
          # Packet DMA Free Rx channels
      
          -
            start_resource: 0
            num_resource: 4
            type: 1961
            host_id: 12
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 3
            type: 1961
            host_id: 35
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 3
            type: 1961
            host_id: 36
            reserved: 0
      
          -
            start_resource: 7
            num_resource: 2
            type: 1961
            host_id: 38
            reserved: 0
      
          -
            start_resource: 9
            num_resource: 4
            type: 1961
            host_id: 41
            reserved: 0
      
          -
            start_resource: 13
            num_resource: 2
            type: 1961
            host_id: 43
            reserved: 0
      
          -
            start_resource: 15
            num_resource: 1
            type: 1961
            host_id: 30
            reserved: 0
          # Packet DMA Free flows for Rx channels
      
          -
            start_resource: 0
            num_resource: 4
            type: 1962
            host_id: 12
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 3
            type: 1962
            host_id: 35
            reserved: 0
      
          -
            start_resource: 4
            num_resource: 3
            type: 1962
            host_id: 36
            reserved: 0
      
          -
            start_resource: 7
            num_resource: 2
            type: 1962
            host_id: 38
            reserved: 0
      
          -
            start_resource: 9
            num_resource: 4
            type: 1962
            host_id: 41
            reserved: 0
      
          -
            start_resource: 13
            num_resource: 2
            type: 1962
            host_id: 43
            reserved: 0
      
          -
            start_resource: 15
            num_resource: 1
            type: 1962
            host_id: 30
            reserved: 0
          # Packet DMA CPSW Rx channel
      
          -
            start_resource: 16
            num_resource: 1
            type: 1963
            host_id: 12
            reserved: 0
      
          -
            start_resource: 16
            num_resource: 1
            type: 1963
            host_id: 36
            reserved: 0
          # Packet DMA CPSW Rx flows
      
          -
            start_resource: 16
            num_resource: 16
            type: 1964
            host_id: 12
            reserved: 0
      
          -
            start_resource: 16
            num_resource: 16
            type: 1964
            host_id: 36
            reserved: 0
          # Packet DMA SA2UL Rx channel0 flows
      
          -
            start_resource: 32
            num_resource: 8
            type: 1966
            host_id: 128
            reserved: 0
          # Packet DMA SA2UL Rx channel1 flows
      
          -
            start_resource: 32
            num_resource: 8
            type: 1968
            host_id: 128
            reserved: 0
          # Packet DMA SA2UL Rx channel2
      
          -
            start_resource: 19
            num_resource: 1
            type: 1969
            host_id: 12
            reserved: 0
      
          -
            start_resource: 19
            num_resource: 1
            type: 1969
            host_id: 36
            reserved: 0
          # Packet DMA SA2UL Rx channel2 flows
      
          -
            start_resource: 40
            num_resource: 8
            type: 1970
            host_id: 12
            reserved: 0
      
          -
            start_resource: 40
            num_resource: 8
            type: 1970
            host_id: 36
            reserved: 0
          # Packet DMA SA2UL Rx channel3
      
          -
            start_resource: 20
            num_resource: 1
            type: 1971
            host_id: 12
            reserved: 0
      
          -
            start_resource: 20
            num_resource: 1
            type: 1971
            host_id: 36
            reserved: 0
          # Packet DMA SA2UL Rx channel3 flows
      
          -
            start_resource: 40
            num_resource: 8
            type: 1972
            host_id: 12
            reserved: 0
      
          -
            start_resource: 40
            num_resource: 8
            type: 1972
            host_id: 36
            reserved: 0
          # Packet DMA ICSSG0 Rx channel
      
          -
            start_resource: 21
            num_resource: 4
            type: 1973
            host_id: 12
            reserved: 0
      
          -
            start_resource: 21
            num_resource: 4
            type: 1973
            host_id: 36
            reserved: 0
          # Packet DMA ICSSG0 Rx flows
      
          -
            start_resource: 48
            num_resource: 64
            type: 1974
            host_id: 12
            reserved: 0
      
          -
            start_resource: 48
            num_resource: 64
            type: 1974
            host_id: 36
            reserved: 0
          # Packet DMA ICSSG1 Rx channel
      
          -
            start_resource: 25
            num_resource: 4
            type: 1975
            host_id: 36
            reserved: 0
          # Packet DMA ICSSG1 Rx flows
      
          -
            start_resource: 112
            num_resource: 64
            type: 1976
            host_id: 36
            reserved: 0
          # Packet DMA Ring accelerator error event
      
          -
            start_resource: 0
            num_resource: 1
            type: 2112
            host_id: 128
            reserved: 0
          # Packet DMA virt_id range
      
          -
            start_resource: 2
            num_resource: 2
            type: 2122
            host_id: 12
            reserved: 0
          # Packet DMA Rings for IPC
      
          -
            start_resource: 20
            num_resource: 2
            type: 2124
            host_id: 35
            reserved: 0
      
          -
            start_resource: 20
            num_resource: 2
            type: 2124
            host_id: 36
            reserved: 0
      
          -
            start_resource: 22
            num_resource: 2
            type: 2124
            host_id: 38
            reserved: 0
      
          -
            start_resource: 24
            num_resource: 2
            type: 2124
            host_id: 41
            reserved: 0
      
          -
            start_resource: 26
            num_resource: 2
            type: 2124
            host_id: 43
            reserved: 0
      
          -
            start_resource: 28
            num_resource: 4
            type: 2124
            host_id: 128
            reserved: 0
      

    3. Compile and build the modified k3-am642-evm.dts file to generate corresponding .dtb file with "make linux-dtbs". Replace it in /boot folder of the SD card root partition.

    • placed the dts file in board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/
    • Build the device tree with > make linux-dtbs
    • Copy the .dtb file generated to the SD card
      $ cd $SDK_INSTALL_DIR
      $ make linux-dtbs
      $ sudo cp board-support/ti-linux-kernel-6.6.32+git-ti/arch/arm64/boot/dts/ti/k3-am642-evm.dtb /media/<username>/rootfs/boot/
      

    4. Build u-boot and sysfw to generate the tiboot3.bin file with "make u-boot sysfw-image". Replace the tiboot3 in the SD card boot partition with our generated file.

    • "make u-boot sysfw-image" fails so use "make u-boot" and copy the generated file to SD card
      $ cd $SDK_INSTALL_DIR
      $ make u-boot
      $ make u-boot_stage
      $ sudo DESTDIR=/media/<username>/boot make u-boot_install
      

    Booting remote core from linux:

    Follow the steps from here to boot remote core R5F0-0 from Linux.

    • Place the symbol link in the filepath for remoteproc
      $ cd /lib/firmware
      $ ln -sf /lib/firmware/ti-ipc/enet_lwip_icssg_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out am64-main-r5f0_0-fw
      
    • Reboot linux
    • Find remoteproc and check boot status. (R5F0_0 is remoteproc0)
      $ head /sys/class/remoteproc/remoteproc*/name
      ==> /sys/class/remoteproc/remoteproc0/name <==
      78000000.r5f
      
      ==> /sys/class/remoteproc/remoteproc1/name <==
      5000000.m4fss
      
      ==> /sys/class/remoteproc/remoteproc2/name <==
      78200000.r5f
      
      ==> /sys/class/remoteproc/remoteproc3/name <==
      78400000.r5f
      $ head /sys/class/remoteproc/remoteproc*/state
      ==> /sys/class/remoteproc/remoteproc0/state <==
      running
      
      ==> /sys/class/remoteproc/remoteproc1/state <==
      offline
      
      ==> /sys/class/remoteproc/remoteproc2/state <==
      offline
      
      ==> /sys/class/remoteproc/remoteproc3/state <==
      offline
      
    • Check logs from R5F core, but nothing is output
    • After debugging and adding log outputs, they realized that SOC_moduleSetClockFrequencyWithParent does not return SystemP_SUCCESS

    • Here are all the logs:
      [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
      [    0.000000] Linux version 6.6.32-ti-g6de6e418c80e-dirty (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 13.3.0, GNU ld (GNU Binutils) 2.42.0.20240716) #1 SMP PREEMPT Fri Jul 26 14:32:20 UTC 2024
      [    0.000000] KASLR disabled due to lack of seed
      [    0.000000] Machine model: Texas Instruments AM642 EVM
      [    0.000000] earlycon: ns16550a0 at MMIO32 0x0000000002800000 (options '')
      [    0.000000] printk: bootconsole [ns16550a0] enabled
      [    0.000000] efi: UEFI not found.
      [    0.000000] OF: reserved mem: 0x000000009e800000..0x000000009fffffff (24576 KiB) nomap non-reusable optee@9e800000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0000000, size 1 MiB
      [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a0000000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a0000000..0x00000000a00fffff (1024 KiB) nomap non-reusable r5f-dma-memory@a0000000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a0100000, size 15 MiB
      [    0.000000] OF: reserved mem: initialized node r5f-memory@a0100000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a0100000..0x00000000a0ffffff (15360 KiB) nomap non-reusable r5f-memory@a0100000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1000000, size 1 MiB
      [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a1000000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a1000000..0x00000000a10fffff (1024 KiB) nomap non-reusable r5f-dma-memory@a1000000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a1100000, size 15 MiB
      [    0.000000] OF: reserved mem: initialized node r5f-memory@a1100000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a1100000..0x00000000a1ffffff (15360 KiB) nomap non-reusable r5f-memory@a1100000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2000000, size 1 MiB
      [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a2000000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a2000000..0x00000000a20fffff (1024 KiB) nomap non-reusable r5f-dma-memory@a2000000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a2100000, size 15 MiB
      [    0.000000] OF: reserved mem: initialized node r5f-memory@a2100000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a2100000..0x00000000a2ffffff (15360 KiB) nomap non-reusable r5f-memory@a2100000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3000000, size 1 MiB
      [    0.000000] OF: reserved mem: initialized node r5f-dma-memory@a3000000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a3000000..0x00000000a30fffff (1024 KiB) nomap non-reusable r5f-dma-memory@a3000000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a3100000, size 15 MiB
      [    0.000000] OF: reserved mem: initialized node r5f-memory@a3100000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a3100000..0x00000000a3ffffff (15360 KiB) nomap non-reusable r5f-memory@a3100000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4000000, size 1 MiB
      [    0.000000] OF: reserved mem: initialized node m4f-dma-memory@a4000000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a4000000..0x00000000a40fffff (1024 KiB) nomap non-reusable m4f-dma-memory@a4000000
      [    0.000000] Reserved memory: created DMA memory pool at 0x00000000a4100000, size 15 MiB
      [    0.000000] OF: reserved mem: initialized node m4f-memory@a4100000, compatible id shared-dma-pool
      [    0.000000] OF: reserved mem: 0x00000000a4100000..0x00000000a4ffffff (15360 KiB) nomap non-reusable m4f-memory@a4100000
      [    0.000000] OF: reserved mem: 0x00000000a5000000..0x00000000a57fffff (8192 KiB) nomap non-reusable ipc-memories@a5000000
      [    0.000000] Zone ranges:
      [    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
      [    0.000000]   DMA32    empty
      [    0.000000]   Normal   empty
      [    0.000000] Movable zone start for each node
      [    0.000000] Early memory node ranges
      [    0.000000]   node   0: [mem 0x0000000080000000-0x000000009e7fffff]
      [    0.000000]   node   0: [mem 0x000000009e800000-0x00000000a57fffff]
      [    0.000000]   node   0: [mem 0x00000000a5800000-0x00000000ffffffff]
      [    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
      [    0.000000] cma: Reserved 32 MiB at 0x00000000fba00000 on node -1
      [    0.000000] psci: probing for conduit method from DT.
      [    0.000000] psci: PSCIv1.1 detected in firmware.
      [    0.000000] psci: Using standard PSCI v0.2 function IDs
      [    0.000000] psci: Trusted OS migration not required
      [    0.000000] psci: SMC Calling Convention v1.4
      [    0.000000] percpu: Embedded 20 pages/cpu s42920 r8192 d30808 u81920
      [    0.000000] pcpu-alloc: s42920 r8192 d30808 u81920 alloc=20*4096
      [    0.000000] pcpu-alloc: [0] 0 [0] 1 
      [    0.000000] Detected VIPT I-cache on CPU0
      [    0.000000] CPU features: detected: GIC system register CPU interface
      [    0.000000] CPU features: detected: ARM erratum 845719
      [    0.000000] alternatives: applying boot alternatives
      [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 omap2-nand.0:2m(NAND.tiboot3),2m(NAND.tispl),2m(NAND.tiboot3.backup),4m(NAND.u-boot),256k(NAND.u-boot-env),256k(NAND.u-boot-env.backup),-(NAND.file-system) root=PARTUUID=b3fe93ea-02 rw rootfstype=ext4 rootwait
      [    0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear)
      [    0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear)
      [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
      [    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
      [    0.000000] software IO TLB: area num 2.
      [    0.000000] software IO TLB: mapped [mem 0x00000000f7800000-0x00000000fb800000] (64MB)
      [    0.000000] Memory: 1822800K/2097152K available (11968K kernel code, 1250K rwdata, 4036K rodata, 2432K init, 502K bss, 241584K reserved, 32768K cma-reserved)
      [    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
      [    0.000000] rcu: Preemptible hierarchical RCU implementation.
      [    0.000000] rcu: 	RCU event tracing is enabled.
      [    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
      [    0.000000] 	Trampoline variant of Tasks RCU enabled.
      [    0.000000] 	Tracing variant of Tasks RCU enabled.
      [    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
      [    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
      [    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
      [    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
      [    0.000000] GICv3: 256 SPIs implemented
      [    0.000000] GICv3: 0 Extended SPIs implemented
      [    0.000000] Root IRQ handler: gic_handle_irq
      [    0.000000] GICv3: GICv3 features: 16 PPIs
      [    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001840000
      [    0.000000] ITS [mem 0x01820000-0x0182ffff]
      [    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
      [    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
      [    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
      [    0.000000] ITS: using cache flushing for cmd queue
      [    0.000000] GICv3: using LPI property table @0x0000000080040000
      [    0.000000] GIC: using cache flushing for LPI property table
      [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080050000
      [    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
      [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
      [    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
      [    0.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
      [    0.008657] Console: colour dummy device 80x25
      [    0.013267] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
      [    0.023946] pid_max: default: 32768 minimum: 301
      [    0.028776] LSM: initializing lsm=capability,integrity
      [    0.034168] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
      [    0.041751] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
      [    0.051876] RCU Tasks: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
      [    0.059232] RCU Tasks Trace: Setting shift to 1 and lim to 1 rcu_task_cb_adjust=1.
      [    0.067225] rcu: Hierarchical SRCU implementation.
      [    0.072138] rcu: 	Max phase no-delay instances is 1000.
      [    0.077792] Platform MSI: msi-controller@1820000 domain created
      [    0.084191] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
      [    0.093759] EFI services will not be available.
      [    0.098757] smp: Bringing up secondary CPUs ...
      [    0.112436] Detected VIPT I-cache on CPU1
      [    0.112542] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
      [    0.112563] GICv3: CPU1: using allocated LPI pending table @0x0000000080060000
      [    0.112623] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
      [    0.112772] smp: Brought up 1 node, 2 CPUs
      [    0.142158] SMP: Total of 2 processors activated.
      [    0.146970] CPU features: detected: 32-bit EL0 Support
      [    0.152242] CPU features: detected: CRC32 instructions
      [    0.157565] CPU: All CPU(s) started at EL2
      [    0.161751] alternatives: applying system-wide alternatives
      [    0.169434] devtmpfs: initialized
      [    0.183333] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
      [    0.193347] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
      [    0.201761] pinctrl core: initialized pinctrl subsystem
      [    0.207792] DMI not present or invalid.
      [    0.212568] NET: Registered PF_NETLINK/PF_ROUTE protocol family
      [    0.219776] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
      [    0.227218] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
      [    0.235324] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
      [    0.243548] audit: initializing netlink subsys (disabled)
      [    0.249391] audit: type=2000 audit(0.156:1): state=initialized audit_enabled=0 res=1
      [    0.249981] thermal_sys: Registered thermal governor 'step_wise'
      [    0.257337] thermal_sys: Registered thermal governor 'power_allocator'
      [    0.263753] cpuidle: using governor menu
      [    0.274694] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
      [    0.281703] ASID allocator initialised with 65536 entries
      [    0.299298] platform a40000.pinctrl: Fixed dependency cycle(s) with /bus@f4000/pinctrl@a40000/cpsw-cpts-pps
      [    0.314023] Modules: 27680 pages in range for non-PLT usage
      [    0.314046] Modules: 519200 pages in range for PLT usage
      [    0.320791] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
      [    0.333180] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
      [    0.339586] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
      [    0.346521] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
      [    0.352925] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
      [    0.359861] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
      [    0.366265] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
      [    0.373199] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
      [    0.381549] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR2.0 JTAGID[0x1bb3802f] Detected
      [    0.391259] iommu: Default domain type: Translated
      [    0.396213] iommu: DMA domain TLB invalidation policy: strict mode
      [    0.402933] SCSI subsystem initialized
      [    0.407071] libata version 3.00 loaded.
      [    0.407318] usbcore: registered new interface driver usbfs
      [    0.412984] usbcore: registered new interface driver hub
      [    0.418458] usbcore: registered new device driver usb
      [    0.424282] pps_core: LinuxPPS API ver. 1 registered
      [    0.429370] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
      [    0.438716] PTP clock support registered
      [    0.442940] EDAC MC: Ver: 3.0.0
      [    0.447062] scmi_core: SCMI protocol bus registered
      [    0.452592] FPGA manager framework
      [    0.456242] Advanced Linux Sound Architecture Driver Initialized.
      [    0.463739] vgaarb: loaded
      [    0.467054] clocksource: Switched to clocksource arch_sys_counter
      [    0.473624] VFS: Disk quotas dquot_6.6.0
      [    0.477682] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
      [    0.492600] NET: Registered PF_INET protocol family
      [    0.497936] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
      [    0.507717] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
      [    0.516499] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
      [    0.524433] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
      [    0.532656] TCP bind hash table entries: 16384 (order: 7, 524288 bytes, linear)
      [    0.540696] TCP: Hash tables configured (established 16384 bind 16384)
      [    0.547649] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
      [    0.554585] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
      [    0.562139] NET: Registered PF_UNIX/PF_LOCAL protocol family
      [    0.568597] RPC: Registered named UNIX socket transport module.
      [    0.574707] RPC: Registered udp transport module.
      [    0.579518] RPC: Registered tcp transport module.
      [    0.584324] RPC: Registered tcp-with-tls transport module.
      [    0.589930] RPC: Registered tcp NFSv4.1 backchannel transport module.
      [    0.596523] NET: Registered PF_XDP protocol family
      [    0.601442] PCI: CLS 0 bytes, default 64
      [    0.606956] Initialise system trusted keyrings
      [    0.611859] workingset: timestamp_bits=46 max_order=19 bucket_order=0
      [    0.618919] squashfs: version 4.0 (2009/01/31) Phillip Lougher
      [    0.625341] NFS: Registering the id_resolver key type
      [    0.630592] Key type id_resolver registered
      [    0.634872] Key type id_legacy registered
      [    0.638993] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
      [    0.645845] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
      [    0.693998] Key type asymmetric registered
      [    0.698202] Asymmetric key parser 'x509' registered
      [    0.703276] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 244)
      [    0.710842] io scheduler mq-deadline registered
      [    0.715498] io scheduler kyber registered
      [    0.719650] io scheduler bfq registered
      [    0.726997] pinctrl-single 4084000.pinctrl: 33 pins, size 132
      [    0.733552] pinctrl-single f4000.pinctrl: 180 pins, size 720
      [    0.741291] pinctrl-single a40000.pinctrl: 512 pins, size 2048
      [    0.755014] Serial: 8250/16550 driver, 12 ports, IRQ sharing enabled
      [    0.774813] loop: module loaded
      [    0.779547] megasas: 07.725.01.00-rc1
      [    0.788290] tun: Universal TUN/TAP device driver, 1.6
      [    0.794981] VFIO - User Level meta-driver version: 0.3
      [    0.801707] usbcore: registered new interface driver usb-storage
      [    0.808548] i2c_dev: i2c /dev entries driver
      [    0.814331] sdhci: Secure Digital Host Controller Interface driver
      [    0.820699] sdhci: Copyright(c) Pierre Ossman
      [    0.825460] sdhci-pltfm: SDHCI platform and OF driver helper
      [    0.832181] ledtrig-cpu: registered to indicate activity on CPUs
      [    0.838758] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
      [    0.846304] usbcore: registered new interface driver usbhid
      [    0.852030] usbhid: USB HID core driver
      [    0.856393] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100
      [    0.863360] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100
      [    0.870215] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100
      [    0.878796] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
      [    0.888054] optee: probing for conduit method.
      [    0.892653] optee: revision 4.2 (12d7c4ee)
      [    0.909352] optee: dynamic shared memory is enabled
      [    0.919585] random: crng init done
      [    0.923260] optee: initialized driver
      [    0.929637] NET: Registered PF_PACKET protocol family
      [    0.934952] Key type dns_resolver registered
      [    0.948898] registered taskstats version 1
      [    0.953478] Loading compiled-in X.509 certificates
      [    0.974514] ti-sci 44043000.system-controller: ABI: 4.0 (firmware rev 0x000a '10.0.8--v10.00.08 (Fiery Fox)')
      [    1.126531] pca953x 0-0038: supply vcc not found, using dummy regulator
      [    1.133501] pca953x 0-0038: using no AI
      [    1.159889] omap_i2c 20000000.i2c: bus 0 rev0.12 at 400 kHz
      [    1.167715] pca953x 1-0022: supply vcc not found, using dummy regulator
      [    1.174690] pca953x 1-0022: using AI
      [    1.200387] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
      [    1.206641] ti-sci-intr bus@f4000:interrupt-controller@a00000: Interrupt Router 3 domain created
      [    1.216027] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
      [    1.228414] ti-udma 485c0100.dma-controller: Number of rings: 68
      [    1.236430] ti-udma 485c0100.dma-controller: Channels: 24 (bchan: 12, tchan: 6, rchan: 6)
      [    1.246763] ti-udma 485c0000.dma-controller: Number of rings: 288
      [    1.261867] ti-udma 485c0000.dma-controller: Channels: 32 (tchan: 21, rchan: 11)
      [    1.272655] printk: console [ttyS2] disabled
      [    1.277535] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 245, base_baud = 3000000) is a 8250
      [    1.286465] printk: console [ttyS2] enabled
      [    1.294972] printk: bootconsole [ns16550a0] disabled
      [    1.312140] spi-nor spi0.0: s28hs512t (65536 Kbytes)
      [    1.317275] 7 fixed-partitions partitions found on MTD device fc40000.spi.0
      [    1.324242] Creating 7 MTD partitions on "fc40000.spi.0":
      [    1.329639] 0x000000000000-0x000000100000 : "ospi.tiboot3"
      [    1.336656] 0x000000100000-0x000000300000 : "ospi.tispl"
      [    1.343453] 0x000000300000-0x000000700000 : "ospi.u-boot"
      [    1.350247] 0x000000700000-0x000000740000 : "ospi.env"
      [    1.356789] 0x000000740000-0x000000780000 : "ospi.env.backup"
      [    1.364065] 0x000000800000-0x000003fc0000 : "ospi.rootfs"
      [    1.370873] 0x000003fc0000-0x000004000000 : "ospi.phypattern"
      [    1.387682] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
      [    1.431062] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
      [    1.441355] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
      [    1.449533] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
      [    1.462442] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
      [    1.469575] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
      [    1.476319] pps pps0: new PPS source ptp0
      [    1.480786] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
      [    1.498734] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
      [    1.511879] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
      [    1.522274] mmc0: CQHCI version 5.10
      [    1.531422] davinci_gpio 601000.gpio: error -ENXIO: IRQ index 2 not found
      [    1.542176] j721e-pcie f102000.pcie: host bridge /bus@f4000/pcie@f102000 ranges:
      [    1.549661] j721e-pcie f102000.pcie:       IO 0x0068001000..0x0068010fff -> 0x0068001000
      [    1.557887] j721e-pcie f102000.pcie:      MEM 0x0068011000..0x006fffffff -> 0x0068011000
      [    1.563706] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
      [    1.566093] j721e-pcie f102000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x0000000000
      [    1.655863] mmc0: Command Queue Engine enabled
      [    1.660397] mmc0: new high speed MMC card at address 0001
      [    1.666671] mmcblk0: mmc0:0001 S0J56X 14.8 GiB
      [    1.673186]  mmcblk0: p1
      [    1.676460] mmcblk0boot0: mmc0:0001 S0J56X 31.5 MiB
      [    1.682702] mmcblk0boot1: mmc0:0001 S0J56X 31.5 MiB
      [    1.688864] mmcblk0rpmb: mmc0:0001 S0J56X 4.00 MiB, chardev (239:0)
      [    2.586327] j721e-pcie f102000.pcie: PCI host bridge to bus 0000:00
      [    2.592691] pci_bus 0000:00: root bus resource [bus 00-ff]
      [    2.598182] pci_bus 0000:00: root bus resource [io  0x0000-0xffff] (bus address [0x68001000-0x68010fff])
      [    2.607654] pci_bus 0000:00: root bus resource [mem 0x68011000-0x6fffffff]
      [    2.614562] pci 0000:00:00.0: [104c:b010] type 01 class 0x060400
      [    2.620580] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0xfffffffff 64bit pref]
      [    2.627964] pci 0000:00:00.0: supports D1
      [    2.631974] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
      [    2.640472] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
      [    2.648721] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
      [    2.655411] pci 0000:00:00.0: BAR 0: no space for [mem size 0x1000000000 64bit pref]
      [    2.663154] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x1000000000 64bit pref]
      [    2.671240] pci 0000:00:00.0: PCI bridge to [bus 01]
      [    2.676406] pcieport 0000:00:00.0: of_irq_parse_pci: failed with rc=-22
      [    2.683477] pcieport 0000:00:00.0: PME: Signaling with IRQ 356
      [    2.689731] pcieport 0000:00:00.0: AER: enabled with IRQ 356
      [    2.698115] mmc1: CQHCI version 5.10
      [    2.700800] clk: Disabling unused clocks
      [    2.733990] ALSA device list:
      [    2.737001]   No soundcards found.
      [    2.741659] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
      [    2.749478] Waiting for root device PARTUUID=b3fe93ea-02...
      [    2.808429] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
      [    2.815976] mmcblk1: mmc1:aaaa SC16G 14.8 GiB
      [    2.825532]  mmcblk1: p1 p2
      [    2.869907] EXT4-fs (mmcblk1p2): recovery complete
      [    2.875849] EXT4-fs (mmcblk1p2): mounted filesystem 64c0c1c5-b7dd-4d74-9678-cf67a373eb03 r/w with ordered data mode. Quota mode: none.
      [    2.888068] VFS: Mounted root (ext4 filesystem) on device 179:98.
      [    2.900789] devtmpfs: mounted
      [    2.905431] Freeing unused kernel memory: 2432K
      [    2.910083] Run /sbin/init as init process
      [    2.914178]   with arguments:
      [    2.914182]     /sbin/init
      [    2.914186]   with environment:
      [    2.914189]     HOME=/
      [    2.914193]     TERM=linux
      [    3.188073] systemd[1]: System time before build time, advancing clock.
      [    3.245586] NET: Registered PF_INET6 protocol family
      [    3.252105] Segment Routing with IPv6
      [    3.255877] In-situ OAM (IOAM) with IPv6
      [    3.306949] systemd[1]: systemd 255.4^ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -TPM2 -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK -XKBCOMMON +UTMP +SYSVINIT default-hierarchy=unified)
      [    3.338885] systemd[1]: Detected architecture arm64.
      [    3.364053] systemd[1]: Hostname set to <am64xx-evm>.
      [    3.842928] systemd[1]: /usr/lib/systemd/system/bt-enable.service:9: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
      [    4.016024] systemd[1]: /etc/systemd/system/sync-clocks.service:11: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
      [    4.129091] systemd[1]: Queued start job for default target Graphical Interface.
      [    4.167260] systemd[1]: Created slice Slice /system/getty.
      [    4.194348] systemd[1]: Created slice Slice /system/modprobe.
      [    4.218360] systemd[1]: Created slice Slice /system/serial-getty.
      [    4.241621] systemd[1]: Created slice User and Session Slice.
      [    4.263817] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
      [    4.287778] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
      [    4.311471] systemd[1]: Expecting device /dev/ttyS2...
      [    4.327532] systemd[1]: Reached target Path Units.
      [    4.343397] systemd[1]: Reached target Remote File Systems.
      [    4.363377] systemd[1]: Reached target Slice Units.
      [    4.379415] systemd[1]: Reached target Swaps.
      [    4.437501] systemd[1]: Listening on RPCbind Server Activation Socket.
      [    4.463561] systemd[1]: Reached target RPC Port Mapper.
      [    4.495411] systemd[1]: Listening on Process Core Dump Socket.
      [    4.519906] systemd[1]: Listening on initctl Compatibility Named Pipe.
      [    4.545112] systemd[1]: Listening on Journal Audit Socket.
      [    4.568292] systemd[1]: Listening on Journal Socket (/dev/log).
      [    4.592403] systemd[1]: Listening on Journal Socket.
      [    4.616567] systemd[1]: Listening on Network Service Netlink Socket.
      [    4.646018] systemd[1]: Listening on udev Control Socket.
      [    4.668235] systemd[1]: Listening on udev Kernel Socket.
      [    4.692294] systemd[1]: Listening on User Database Manager Socket.
      [    4.739715] systemd[1]: Mounting Huge Pages File System...
      [    4.788867] systemd[1]: Mounting POSIX Message Queue File System...
      [    4.802075] systemd[1]: Mounting Kernel Debug File System...
      [    4.816176] systemd[1]: Kernel Trace File System was skipped because of an unmet condition check (ConditionPathExists=/sys/kernel/tracing).
      [    4.848978] systemd[1]: Mounting Temporary Directory /tmp...
      [    4.896178] systemd[1]: Starting Create List of Static Device Nodes...
      [    4.944409] systemd[1]: Starting Load Kernel Module configfs...
      [    4.957339] systemd[1]: Starting Load Kernel Module drm...
      [    5.008252] systemd[1]: Starting Load Kernel Module fuse...
      [    5.040920] fuse: init (API version 7.39)
      [    5.060585] systemd[1]: Starting RPC Bind...
      [    5.083871] systemd[1]: File System Check on Root Device was skipped because of an unmet condition check (ConditionPathIsReadWrite=!/).
      [    5.132335] systemd[1]: Starting Journal Service...
      [    5.188130] systemd[1]: Starting Load Kernel Modules...
      [    5.239994] systemd[1]: Starting Generate network units from Kernel command line...
      [    5.254972] cryptodev: loading out-of-tree module taints kernel.
      [    5.266779] cryptodev: driver 1.13 loaded.
      [    5.298747] systemd[1]: Starting Remount Root and Kernel File Systems...
      [    5.322760] systemd-journald[105]: Collecting audit messages is enabled.
      [    5.340366] systemd[1]: Starting Coldplug All udev Devices...
      [    5.386674] systemd[1]: Started RPC Bind.
      [    5.412705] systemd[1]: Mounted Huge Pages File System.
      [    5.440454] systemd[1]: Mounted POSIX Message Queue File System.
      [    5.472725] systemd[1]: Mounted Kernel Debug File System.
      [    5.480212] EXT4-fs (mmcblk1p2): re-mounted 64c0c1c5-b7dd-4d74-9678-cf67a373eb03 r/w. Quota mode: none.
      [    5.510742] systemd[1]: Started Journal Service.
      [    5.957613] systemd-journald[105]: Received client request to flush runtime journal.
      [    6.355010] audit: type=1334 audit(1709054767.160:2): prog-id=6 op=LOAD
      [    6.367253] audit: type=1334 audit(1709054767.160:3): prog-id=7 op=LOAD
      [    6.763735] audit: type=1334 audit(1709054767.572:4): prog-id=8 op=LOAD
      [    6.807223] audit: type=1334 audit(1709054767.612:5): prog-id=9 op=LOAD
      [    6.986906] audit: type=1334 audit(1709054767.792:6): prog-id=10 op=LOAD
      [    7.002726] audit: type=1334 audit(1709054767.804:7): prog-id=11 op=LOAD
      [    7.014368] audit: type=1334 audit(1709054767.804:8): prog-id=12 op=LOAD
      [    8.533869] audit: type=1334 audit(1709058567.052:9): prog-id=13 op=LOAD
      [    9.055286] dbus-broker-lau[295]: memfd_create() called without MFD_EXEC or MFD_NOEXEC_SEAL set
      [    9.339238] audit: type=1334 audit(1709058567.856:10): prog-id=14 op=LOAD
      [    9.359230] audit: type=1334 audit(1709058567.856:11): prog-id=15 op=LOAD
      [   10.098369] Bluetooth: Core ver 2.22
      [   10.104206] NET: Registered PF_BLUETOOTH protocol family
      [   10.110711] Bluetooth: HCI device and connection manager initialized
      [   10.119232] Bluetooth: HCI socket layer initialized
      [   10.125495] Bluetooth: L2CAP socket layer initialized
      [   10.131346] Bluetooth: SCO socket layer initialized
      [   10.797600] cfg80211: Loading compiled-in X.509 certificates for regulatory database
      [   10.835784] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
      [   10.836828] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
      [   11.066752] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL)
      [   11.107944] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
      [   12.083923] CAN device driver interface
      [   12.232298] at24 0-0050: supply vcc not found, using dummy regulator
      [   12.285891] at24 0-0050: 131072 byte 24c1024 EEPROM, writable, 1 bytes/write
      [   12.470278] platform 78000000.r5f: configured R5F for remoteproc mode
      [   12.486963] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000
      [   12.537097] remoteproc remoteproc0: 78000000.r5f is available
      [   12.616931] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@a4000000
      [   12.619660] remoteproc remoteproc0: powering up 78000000.r5f
      [   12.633569] remoteproc remoteproc0: Booting fw image am64-main-r5f0_0-fw, size 3171508
      [   12.642213] k3-m4-rproc 5000000.m4fss: configured M4 for remoteproc mode
      [   12.651552] rproc-virtio rproc-virtio.0.auto: assigned reserved memory node r5f-dma-memory@a0000000
      [   12.661220] platform 78200000.r5f: configured R5F for remoteproc mode
      [   12.667738] k3-m4-rproc 5000000.m4fss: local reset is deasserted for device
      [   12.676696] virtio_rpmsg_bus virtio0: rpmsg host is online
      [   12.679262] remoteproc remoteproc1: 5000000.m4fss is available
      [   12.682593] rproc-virtio rproc-virtio.0.auto: registered virtio0 (type 7)
      [   12.693762] remoteproc remoteproc1: Direct firmware load for am64-mcu-m4f0_0-fw failed with error -2
      [   12.694974] remoteproc remoteproc0: remote processor 78000000.r5f is now up
      [   12.714516] platform 78200000.r5f: assigned reserved memory node r5f-dma-memory@a1000000
      [   12.714791] remoteproc remoteproc1: powering up 5000000.m4fss
      [   12.733021] remoteproc remoteproc2: 78200000.r5f is available
      [   12.736903] remoteproc remoteproc1: Direct firmware load for am64-mcu-m4f0_0-fw failed with error -2
      [   12.740771] remoteproc remoteproc2: Direct firmware load for am64-main-r5f0_1-fw failed with error -2
      [   12.752403] remoteproc remoteproc1: request_firmware failed: -2
      [   12.759004] remoteproc remoteproc2: powering up 78200000.r5f
      [   12.771920] remoteproc remoteproc2: Direct firmware load for am64-main-r5f0_1-fw failed with error -2
      [   12.781611] remoteproc remoteproc2: request_firmware failed: -2
      [   13.111486] m_can_platform 20701000.can: m_can device registered (irq=364, version=32)
      [   13.129500] m_can_platform 20711000.can: m_can device registered (irq=365, version=32)
      [   13.168281] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
      [   13.398033] gpio-mux mux-controller: 2-way mux-controller registered
      [   14.443740] m_can_platform 20701000.can main_mcan0: renamed from can0
      [   14.515531] m_can_platform 20711000.can main_mcan1: renamed from can1
      [   14.763563] k3_r5_rproc bus@f4000:r5fss@78000000: Timed out waiting for 78200000.r5f core to power up!
      [   14.799479] platform 78400000.r5f: configured R5F for remoteproc mode
      [   14.815386] platform 78400000.r5f: assigned reserved memory node r5f-dma-memory@a2000000
      [   14.837281] remoteproc remoteproc3: 78400000.r5f is available
      [   14.853005] remoteproc remoteproc3: Direct firmware load for am64-main-r5f1_0-fw failed with error -2
      [   14.865838] remoteproc remoteproc3: powering up 78400000.r5f
      [   14.871758] remoteproc remoteproc3: Direct firmware load for am64-main-r5f1_0-fw failed with error -2
      [   14.881356] remoteproc remoteproc3: request_firmware failed: -2
      [   16.467549] EXT4-fs (mmcblk0p1): mounted filesystem 426ccc15-15d1-4f9a-b36f-ffb26bed1039 r/w with ordered data mode. Quota mode: none.
      [   16.875424] k3_r5_rproc bus@f4000:r5fss@78400000: Timed out waiting for 78400000.r5f core to power up!
      [   25.129126] kauditd_printk_skb: 2 callbacks suppressed
      [   25.129144] audit: type=1006 audit(1709058583.648:14): pid=963 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=1 res=1
      [   25.147752] audit: type=1300 audit(1709058583.648:14): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffdc22bd78 a2=1 a3=1 items=0 ppid=1 pid=963 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="(systemd)" exe="/usr/lib/systemd/systemd-executor" key=(null)
      [   25.174526] audit: type=1327 audit(1709058583.648:14): proctitle="(systemd)"
      [   25.192524] audit: type=1334 audit(1709058583.712:15): prog-id=18 op=LOAD
      [   25.200595] audit: type=1300 audit(1709058583.712:15): arch=c00000b7 syscall=280 success=yes exit=8 a0=5 a1=ffffde2d80b8 a2=90 a3=0 items=0 ppid=1 pid=963 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="systemd" exe="/usr/lib/systemd/systemd" key=(null)
      [   25.227764] audit: type=1327 audit(1709058583.712:15): proctitle="(systemd)"
      [   25.235900] audit: type=1334 audit(1709058583.712:16): prog-id=18 op=UNLOAD
      [   25.244043] audit: type=1300 audit(1709058583.712:16): arch=c00000b7 syscall=57 success=yes exit=0 a0=8 a1=1 a2=0 a3=ffffabc55c60 items=0 ppid=1 pid=963 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="systemd" exe="/usr/lib/systemd/systemd" key=(null)
      [   25.270357] audit: type=1327 audit(1709058583.712:16): proctitle="(systemd)"
      [   25.278056] audit: type=1334 audit(1709058583.712:17): prog-id=19 op=LOAD
      

    Can you check to see why the clock frequency setting is failing?

    Best regards,

    Mari

  • Hi Mari,

    One issue that I can see is with the dts file, icssg1_iep0 should be disabled instead of the associated pins.

    &icssg1_iep0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&icssg1_iep0_pins_default>;
    };
    
    &icssg1_iep0_pins_default {
    	status = "disabled";
    };

    Thank you for the detailed steps above, I will look more into it and get back to you in some time.

    Regards, 

    Nitika

  • Hi Nitika,

    Do you have any updates on this?

    Best regards,

    Mari

  • Hi Mari,

    Did the above suggested change in the dts file help? Is the example failing at the same location even with that change?

    Regards,

    Nitika

  • As mentioned in webex chat on thursday, the change in the dts file did not resolve this issue.

  • Hi Mari,

    Please find the modified below

    MCU+ SDK example changes: linker.cmd and example.syscfg 

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/7181.example.syscfg

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/7181.linker.cmd

    Processor SDK modifications: modified rm-cfg, k3-am642-evm.dts and k3-am64-main.dtsi files

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/5483.rm_2D00_cfg.yaml

    k3-am642-evm.dts modifications - https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/5483.k3_2D00_am642_2D00_evm.dts

    diff --git a/arch/arm64/boot/dts/ti/k3-am642-evm.dts b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
    index 671c62bfc..54aed9b20 100644
    --- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
    @@ -687,6 +687,7 @@
     	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
     	memory-region = <&main_r5fss0_core0_dma_memory_region>,
     			<&main_r5fss0_core0_memory_region>;
    +	sram = <&r5f0_0_sram>;
     };
     
     &main_r5fss0_core1 {
    @@ -799,3 +800,28 @@
     	pinctrl-names = "default";
     	pinctrl-0 = <&icssg1_iep0_pins_default>;
     };
    +
    +&cpsw_port2 {
    +	status = "disabled";
    +};
    +
    +&mdio_mux_1 {
    +	status = "disabled";
    +};
    +
    +
    +&icssg0 {
    +	status = "disabled";
    +};
    +
    +&icssg1 {
    +	status = "disabled";
    +};
    +
    +&icssg1_eth {
    +	status = "disabled";
    +};
    +
    +&ospi0 {
    +	status = "disabled";
    +};

    k3-am64-main.dtsi modifications

    diff --git a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
    index 7b4cc0578..ff0deddaa 100644
    --- a/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am64-main.dtsi
    @@ -24,6 +24,10 @@
     		#size-cells = <1>;
     		ranges = <0x0 0x00 0x70000000 0x200000>;
     
    +		r5f0_0_sram: r5f0_0_sram@0 {
    +			reg = <0x0 0x180000>;
    +		};
    +
     		tfa-sram@1c0000 {
     			reg = <0x1c0000 0x20000>;
     		};

    Regards,

    Nitika

  • Hi Nitikal

    Thank you for the update! 

    Just checking - is this for version 9.2 or 10.1?

    Best regards,

    Mari Tsunoda

  • After modifying the above files, the same steps as mentioned in my first reply can be followed:

    1. Rebuild the example to get the .out file, copy this file to the /lib/firmware/ti-ipc of the root partition.

    2. Modify the rm-cfg file and re-build the U-boot binaries - using 'make u-boot'

    3. Modify the k3-am642-evm.dts and k3-am64-main.dtsi file in processor SDK and rebuild the kernel - using 'make linux'

    4. Replace the generated k3-am642-evm.dtb file and the u-boot files in the SD card (see U-boot files)

    4. Follow the steps from here to boot remote core R5F0-0 from Linux.

  • Just checking - is this for version 9.2 or 10.1?

    The above files are on SDK version 9.2

    Regards,

    Nitika

  • Hi Mari, 

    Just a ping, I have updated this reply

    Regards,

    Nitika

  • Hi Nitika,

    Thanks, will tell them to use v.9.2 on their end and match ICSDK.

    And thank you for testing this on short notice!

    Best regards,

    Mari

  • For future readers, the big difference in the update Nitika made was resolving the resource conflict where both Linux and the R5F project were requesting the same I2C instance (Nitika, correct me if I got that wrong).

    You can find more information about ensuring that your projects do not have resource conflicts in the AM64x academy's Multicore module:

    Application development on Remote Cores > Modify the remote core application to be loaded by Linux
    https://dev.ti.com/tirex/explore/node?node=A__AaxbsDidZkzMnkMKgzk7bQ__AM64-ACADEMY__WI1KRXP__LATEST 

    How to allocate peripherals:
    https://dev.ti.com/tirex/explore/node?node=A__AaxbsDidZkzMnkMKgzk7bQ__AM64-ACADEMY__WI1KRXP__LATEST

    Regards,

    Nick

  • Hi Nitika, Nick,

    Do you know if the same files should be able to boot on SDK 10.1 as well?

    Best regards,

    Mari Tsunoda

  • Hi Mari,

    The same files might not directly work for 10.1 since the SDKs have undergone significant changes from 9.2 to 10.1. But, I expect following the same steps and changes in SDK 10.1 should work.

    I think a team member is working on testing this with SDK 10.1, let me confirm with them and get back to you.

    Regards,

    Nitika

  • Hi Nitika,

    Thanks for the reply. Please keep me updated.

    Best regards,

    Mari

  • Hi Mari, I started working on this. Please give me few days to ramp-up. I will follow up with you here.

    Thank you,

    Paula

  • Hi Paula,

    Thanks for the update. Please let me know when you get it working.

    Best regards,

    Mari

  • Hi Paula,

    Just checking in - do you have any updates for me?

    Best regards,

    Mari Tsunoda

  • Hi Mari, not yet had to jump to other projects. Coming back to this this week. I will report at the end of the week

    thank you,

    Paula

  • Hi Paula,

    Please let me know if you have updates. 

    I need to update the customer.

    Best regards,

    Mari Tsunoda

  • Hi Mari, working on that. I will give you an update tomorrow

    thank you

    Paula

  • Hi Mari, I successfully was able to "enet_lwip_icssg_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out" with IPC remoteproc using latest AM64x MCU+SDK10.1 and latest AM64x Linux SDK 10.1

    I followed steps explained above by Nitika, Nick and followed Academy links. I will later summarize steps in an FAQ for future readers, but for now let me share files used and high-level changes

    File changed in Linux SDK:

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/mod_5F00_k3_2D00_am64_2D00_main.dtsi

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/mod_5F00_rm_2D00_cfg.yaml

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/mod_5F00_k3_2D00_am642_2D00_evm.dts

    MCU+SDK Changes:

    SysConfig

    - Remove UART uncheck in debug log, so no UART used in RTOS. Or, you can also change to another USARTx different to USART0 as this one is used in linux

    - Enable IPC to get a resource table

    - Take out I2C1 peripheral to avoid conflict with Linux

    Linker.cmd

    - Add DDR section for resource table

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/8272.linker.cmd

    Thank you,

    Paula

  • Hi Paula,

    Thanks for getting the example working! I will send the files to my customer with the changes as well. 

    Best regards,

    Mari Tsunoda

  • Hi Paula, Nitika,

    Could you tell me when ICSDK v.10.1 will be released? They want to match for MCU+SDK v.10.1

    Best regards,

    Mari Tsunoda

  • Hi Mari,

    The assigned expert is out of office for this and next week. Responses to this thread will be delayed.

    Thanks for your patience.

    Regards,

    Tushar

  • Hi Tushar,

    Thanks for letting me know. I actually see the answer I need on this thread so no answer needed:

    (+) AM6442: Looking for Industrial Communications SDK for AM64x v10 forecast release date - Processors forum - Processors - TI E2E support forums

    Best regards,

    Mari Tsunoda

  • Hi Mari,

    Thanks for the above confirmation. Closing the thread.

    Regards,

    Tushar

  • Hi Paula,

    Thank you for making this FAQ thread! This will be helpful for my other customers as well.

    Best regards,

    Mari Tsunoda

  • Hi Paula,

    I just got a follow-up from my customer. The new example files are failing at the same step as mentioned in a previous reply. Do you know what could be the cause for this?

    After debugging and adding log outputs, they realized that SOC_moduleSetClockFrequencyWithParent does not return SystemP_SUCCESS

    I have asked them to send the R5F side files as well with the changes you mentioned in your reply 2 weeks ago. 

    Best regards,

    Mari

  • Hi Mari, just to confirm do they use the same files posted? or created their own ones?. Checking if there is any possible difference. 

    One file I didn't share was sysconfig. Attached just in case

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/4571.example.syscfg

    Thank you,

    Paula

  • Hi Paula,

    They created their own and tried to follow the steps listed in the FAQ as well.

    They sent me their changed files. Would you be able to take a look at them for any differences?

    (I will send these via email)

    I will check if they have tried to directly replace the files.

    Best regards,

    Mari Tsunoda

  • Hello Mari,

    Have we triple-checked that the customer is actually using the updated Linux devicetree file, applying the updated u-boot changes, and is loading the updated R5F binaries? That is the most common kind of issue I see in cases like this, where the customer rebuilds the files, copies them to the SD card, but does not finish updating the links, replacing files, etc.

    Regards,

    Nick

  • Hi Mari, I just tested shared MCU+SDK *.out from customer in my setup and it is working. FW is loading OK as shown below:

    root@am64xx-evm:~# dmesg | grep remoteproc
    [ 9.919805] k3-m4-rproc 5000000.m4fss: configured M4 for remoteproc mode
    [ 9.972764] remoteproc remoteproc0: 5000000.m4fss is available
    [ 10.027220] platform 78000000.r5f: configured R5F for remoteproc mode
    [ 10.060743] remoteproc remoteproc1: 78000000.r5f is available
    [ 10.309686] remoteproc remoteproc1: powering up 78000000.r5f
    [ 10.318555] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 3110148
    [ 10.403811] remoteproc remoteproc1: remote processor 78000000.r5f is now up

    root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc1/state
    running

    So, the issue is probably in their Linux side or in FW's symbolic link.

    Can they send me their DTS, DTSI, or rm-cfg.yaml instead of just diff files? Or, alternatively, can they compare shared files in FAQ (or here) with theirs? 

    Also, echoing Nick, if they can double check they replaced correctly the files before building Linux, update correctly the SD card, and new "am64-main-r5f0_0-fw" symbolic link is correct, it would be great

    thank you,

    Paula

  • Hi Paula,

    Thanks for checking.

    Can they send me their DTS, DTSI, or rm-cfg.yaml instead of just diff files? Or, alternatively, can they compare shared files in FAQ (or here) with theirs?

    I got these files as well. I have sent them to you via email.

    This is their log after they boot the R5F core through remoteproc. It seems like the core starts, but cannot get out of system_init().

    They have checked their symbolic links and made sure that the files have been replaced with the newest date reflected.

    Best regards,

    Mari Tsunoda

  • Hi Paula,

    Were you able to check their files that I shared with you through TI drive?

    Best regards,

    Mari

  • Hi Mari, 

    Can you add me to this mail chain as well?

    Regards,

    Nitika

  • Hi Paula, Nitika,

    Were you able to determine the cause of the system_init() failing?

    Best regards,

    Mari

  • Hi Mari, no yet. I was able to reproduce it but not yet able to debug it

    Thank you,

    Paula

  • Hi Mari, in order to get the demo to work correctly with Linux SDK and MCU+SDK 10.1 I have to further modify DTS from /board-support/ti-linux_xxxx/arch/arm64/boot/dts/k3-am642-evm.dts as well as /board-support/ti-u-boot-xxxxx/arch/arm/dts/k3-am642-evm.dts

    In both files I completely deleted ICSSG1 to avoid conflicts with R5F using it.

    After updating both DTS files, run "make linux" "make u-boot" and cp u-boot files to SD Card (example below) the application passed system_init() hang and worked OK

    • ~/ti-processor-sdk-linux-am64xx-evm-xxxx/board-support/u-boot-build$ cp a53/tispl.bin /media/alice/boot/
    • ~/ti-processor-sdk-linux-am64xx-evm-xxxx/board-support/u-boot-build$ cp a53/u-boot.img /media/alice/boot/
    • ~/ti-processor-sdk-linux-am64xx-evm-xxxx/board-support/u-boot-build$ cp r5/tiboot3.bin /media/alice/boot/
    • ~/ti-processor-sdk-linux-am64xx-evm-xxxx//board-support/ti-linux-kernel-xxxx/arch/arm64/boot/dts/ti$ sudo cp k3-am642-evm.dtb /media/alice/root/boot/dtb/ti/ (If you face "read-only filesystem" you might would need to do a mount point for this "root" partition)

    Example log below:

    root@am64xx-evm:~# cat /sys/kernel/debug/remoteproc/remoteproc0/trace0
    [unknown] 0.000000s : Before System_init
    [unknown] 0.000000s : start System_init()
    [r5f0-0] 0.003887s :  end System_init()
    [r5f0-0] 0.003916s :  start Board_init()
    [r5f0-0] 0.003934s :  end Board_init()
    [r5f0-0] 0.004196s : ==========================
    [r5f0-0] 0.006959s : ENET LWIP App
    [r5f0-0] 0.009680s : ==========================
    [r5f0-0] 0.012622s : Enabling clocks!
    [r5f0-0] 0.015315s : EnetAppUtils_reduceCoreMacAllocation: Reduced Mac Address Allocation for CoreId:1 From 4 To 1
    [r5f0-0] 0.024545s :
    [r5f0-0] 0.130878s : Mdio_open: MDIO Manual_Mode enabled
    Open MAC port 1134413s :
    [r5f0-0] 0.137210s : EnetPhy_bindDriver: PHY 15: OUI:080028 Model:0f Ver:01 <-> 'DP83869' : OK
    Open MAC port 2144499s :
    [r5f0-0] 0.147196s : EnetPhy_bindDriver: PHY 3: OUI:080028 Model:0f Ver:01 <-> 'DP83869' : OK
    PHY 3 is alive.154375s :
    [r5f0-0] 0.158652s : PHY 15 is alive
    [r5f0-0] 0.165085s : Starting lwIP, local interface IP is dhcp-enabled
    [r5f0-0] 0.170113s : [LWIPIF_LWIP] NETIF INIT SUCCESS
    [r5f0-0] 0.173619s : Host MAC address-0 : 34:08:e1:80:b5:e8
    [r5f0-0] 0.178340s : [LWIPIF_LWIP] Enet has been started successfully
    [r5f0-0] 0.183508s : [0]status_callback==UP, local interface IP is 0.0.0.0
    [r5f0-0] 0.189216s : UDP server listening on port 5001

    Example DTS files below:

    uboot_dts.zip

    kernel_dts.zip

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/mod_5F00_k3_2D00_am64_2D00_main_5F00_v1.dtsi

    I will update FAQ later with this fix

    Thank you,

    Paula

  • Hi Paula, (+Nitika, Nick)

    Great news! They were able to get it working on their end! Thank you so much for your support on this. 

    I will close this thread for now and will set up another one if they have additional questions.

    Best regards,

    Mari