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.

[参考译文] PROCESSOR-SDK-AM64X:更改 K3-am642-evm.dts 后的 AM64X-GP-EVM 引导问题(尝试从 R5F 加载时修复错误22的初始问题)

Guru**** 657500 points
Other Parts Discussed in Thread: SYSCONFIG, TMDS64EVM
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1221223/processor-sdk-am64x-am64x-gp-evm-boot-issue-after-changing-k3-am642-evm-dts-while-fixing-initial-issue-of-error-22-while-trying-to-load-from-r5f

器件型号:PROCESSOR-SDK-AM64X
主题中讨论的其他器件:SysConfigTMDS64EVM

我参考了 thread processor-sdk-AM64X:通过 Linux 加载 R5 FW - SOC 时钟问题-处理器论坛-处理器- TI E2E 支持论坛中的注释

以下是我对 K3-am642-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 2bd50d4bb2..50d707073c 100644
--- a/arch/arm64/boot/dts/ti/k3-am642-evm.dts
+++ b/arch/arm64/boot/dts/ti/k3-am642-evm.dts
@@ -21,11 +21,6 @@ chosen {
 		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
 	};
 
-	aliases {
-		ethernet2 = &icssg1_emac0;
-		ethernet3 = &icssg1_emac1;
-	};
-
 	memory@80000000 {
 		device_type = "memory";
 		/* 2G RAM */
@@ -219,65 +214,7 @@ transceiver2: can-phy1 {
 	};
 
 	icssg1_eth: icssg1-eth {
-		compatible = "ti,am642-icssg-prueth";
-		pinctrl-names = "default";
-		pinctrl-0 = <&icssg1_rgmii1_pins_default>;
-
-		sram = <&oc_sram>;
-		ti,prus = <&pru1_0>, <&rtu1_0>, <&tx_pru1_0>, <&pru1_1>, <&rtu1_1>, <&tx_pru1_1>;
-		firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
-				"ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
-				"ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
-				"ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
-				"ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
-				"ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
-
-		ti,pruss-gp-mux-sel = <2>,	/* MII mode */
-				      <2>,
-				      <2>,
-				      <2>,	/* MII mode */
-				      <2>,
-				      <2>;
-
-		mii-g-rt = <&icssg1_mii_g_rt>;
-		mii-rt = <&icssg1_mii_rt>;
-		iep = <&icssg1_iep0>,  <&icssg1_iep1>;
-
-		interrupt-parent = <&icssg1_intc>;
-		interrupts = <24 0 2>, <25 1 3>;
-		interrupt-names = "tx_ts0", "tx_ts1";
-
-		dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */
-		       <&main_pktdma 0xc201 15>, /* egress slice 0 */
-		       <&main_pktdma 0xc202 15>, /* egress slice 0 */
-		       <&main_pktdma 0xc203 15>, /* egress slice 0 */
-		       <&main_pktdma 0xc204 15>, /* egress slice 1 */
-		       <&main_pktdma 0xc205 15>, /* egress slice 1 */
-		       <&main_pktdma 0xc206 15>, /* egress slice 1 */
-		       <&main_pktdma 0xc207 15>, /* egress slice 1 */
-		       <&main_pktdma 0x4200 15>, /* ingress slice 0 */
-		       <&main_pktdma 0x4201 15>, /* ingress slice 1 */
-		       <&main_pktdma 0x4202 0>, /* mgmnt rsp slice 0 */
-		       <&main_pktdma 0x4203 0>; /* mgmnt rsp slice 1 */
-		dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
-			    "tx1-0", "tx1-1", "tx1-2", "tx1-3",
-			    "rx0", "rx1",
-			    "rxmgm0", "rxmgm1";
-
-		icssg1_emac0: ethernet-mii0 {
-			phy-handle = <&icssg1_phy1>;
-			phy-mode = "rgmii-rxid";
-			syscon-rgmii-delay = <&main_conf 0x4110>;
-			/* Filled in by bootloader */
-			local-mac-address = [00 00 00 00 00 00];
-		};
-
-		icssg1_emac1: ethernet-mii1 {
-			syscon-rgmii-delay = <&main_conf 0x4114>;
-			/* Filled in by bootloader */
-			local-mac-address = [00 00 00 00 00 00];
-			status = "disabled";
-		};
+		status = "disabled";
 	};
 };
 
@@ -285,18 +222,21 @@ &main_r5fss0_core0 {
 	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
 	memory-region = <&main_r5fss0_core0_dma_memory_region>,
 			<&main_r5fss0_core0_memory_region>;
+	sram = <&main_r5fss0_core0_sram>;
 };
 
 &main_r5fss0_core1 {
 	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
 	memory-region = <&main_r5fss0_core1_dma_memory_region>,
 			<&main_r5fss0_core1_memory_region>;
+	sram = <&main_r5fss0_core1_sram>;
 };
 
 &main_r5fss1_core0 {
 	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
 	memory-region = <&main_r5fss1_core0_dma_memory_region>,
 			<&main_r5fss1_core0_memory_region>;
+	sram = <&main_r5fss1_core0_sram>;
 };
 
 &main_r5fss1_core1 {
@@ -309,6 +249,7 @@ &mcu_m4fss {
 	mboxes = <&mailbox0_cluster6 &mbox_m4_0>;
 	memory-region = <&mcu_m4fss_dma_memory_region>,
 			<&mcu_m4fss_memory_region>;
+	sram = <&main_r5fss1_core1_sram>;
 };
 
 &main_pmx0 {
@@ -398,22 +339,6 @@ AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
 		>;
 	};
 
-	ospi0_pins_default: ospi0-pins-default {
-		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_mcan0_pins_default: main-mcan0-pins-default {
 		pinctrl-single,pins = <
 			AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* (B17) MCAN0_RX */
@@ -428,13 +353,6 @@ AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
 		>;
 	};
 
-	icssg1_mdio1_pins_default: icssg1-mdio1-pins-default {
-		pinctrl-single,pins = <
-			AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* (Y6) PRG1_MDIO0_MDC */
-			AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA6) PRG1_MDIO0_MDIO */
-		>;
-	};
-
 	icssg1_rgmii1_pins_default: icssg1-rgmii1-pins-default {
 		pinctrl-single,pins = <
 			AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
@@ -724,28 +642,11 @@ &pcie0_ep {
 
 &tscadc0 {
 	/* ADC is reserved for R5 usage */
-	status = "reserved";
+	status = "disabled";
 };
 
 &ospi0 {
-	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>;
-		cdns,phy-mode;
-		#address-cells = <1>;
-		#size-cells = <1>;
-	};
+	status = "disabled";
 };
 
 &main_mcan0 {
@@ -760,19 +661,39 @@ &main_mcan1 {
 	phys = <&transceiver2>;
 };
 
+/* Modify sram label present in k3-am64-main.dtsi */
+&oc_sram {
+    main_r5fss0_core0_sram: r5f-sram@80000 {
+        reg = <0x80000 0x40000>;
+    };
+    
+    main_r5fss0_core1_sram: r5f-sram@c0000 {
+        reg = <0xc0000 0x40000>;
+    };
+    
+    main_r5fss1_core0_sram: r5f-sram@100000 {
+        reg = <0x100000 0x40000>;
+    };
+    
+    main_r5fss1_core1_sram: r5f-sram@140000 {
+        reg = <0x140000 0x40000>;
+    };
+};
+
+&icssg0 {
+	status = "disabled";
+};
+
+&icssg1 {
+	status = "disabled";
+};
+
 &icssg0_mdio {
 	status = "disabled";
 };
 
 &icssg1_mdio {
-	pinctrl-names = "default";
-	pinctrl-0 = <&icssg1_mdio1_pins_default>;
-
-	icssg1_phy1: ethernet-phy@0 {
-		reg = <0xf>;
-		tx-internal-delay-ps = <250>;
-		rx-internal-delay-ps = <2000>;
-	};
+	status = "disabled";
 };
 
 &icssg1_iep0 {

当我将它复制到 AM64X-GP-EVM 的/boot 文件夹时、我看到启动会卡住。 以下是日志-

switch to partitions #0, OK
mmc1 is current device
SD/MMC found on device 1
Failed to load 'boot.scr'
1490 bytes read in 5 ms (291 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc1 ...
Running uenvcmd ...
1 bytes read in 3 ms (0 Bytes/s)
Already setup.
19147264 bytes read in 811 ms (22.5 MiB/s)
42795 bytes read in 11 ms (3.7 MiB/s)
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
   Loading Device Tree to 000000008fef2000, end 000000008fffffff ... OK

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 5.10.168-g2c23e6c538 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1 SMP PREEMPT Mon Feb 27 14:16:24 UTC 2023
[    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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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: /bus@f4000/pcie@f102000: Missing device_type
[    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-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] cma: Reserved 512 MiB at 0x00000000dd000000
[    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.2
[    0.000000] /cpus/cpu@1: missing enable-method property
[    0.000000] percpu: Embedded 22 pages/cpu s51288 r8192 d30632 u90112
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=fc40000.spi.0:1m(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);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=47b6d3e0-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] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 1398696K/2097152K available (11200K kernel code, 1162K rwdata, 4308K rodata, 1920K init, 431K bss, 174168K reserved, 524288K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, 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=1.
[    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=1
[    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] GICv3: Distributor has no Range Selector support
[    0.000000] GICv3: 16 PPIs implemented
[    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 @0x0000000080030000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080040000
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000005] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008550] Console: colour dummy device 80x25
[    0.013145] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.023820] pid_max: default: 32768 minimum: 301
[    0.028641] LSM: Security Framework initializing
[    0.033429] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.041008] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.050142] /cpus/cpu-map/cluster0/core0: Can't get CPU for leaf core
[    0.057521] rcu: Hierarchical SRCU implementation.
[    0.062748] Platform MSI: msi-controller@1820000 domain created
[    0.069117] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.078392] EFI services will not be available.
[    0.083187] smp: Bringing up secondary CPUs ...
[    0.087829] smp: Brought up 1 node, 1 CPU
[    0.091924] SMP: Total of 1 processors activated.
[    0.096740] CPU features: detected: 32-bit EL0 Support
[    0.101994] CPU features: detected: CRC32 instructions
[    0.115529] CPU: All CPU(s) started at EL2
[    0.119738] alternatives: patching kernel code
[    0.125936] devtmpfs: initialized
[    0.131624] Duplicate name in mmc@fa00000, renamed to "#1"
[    0.137293] Duplicate name in mmc@fa00000, renamed to "#2"
[    0.142910] Duplicate name in mmc@fa00000, renamed to "#3"
[    0.148531] Duplicate name in mmc@fa00000, renamed to "#4"
[    0.154195] Duplicate name in ethernet@8000000, renamed to "#1"
[    0.160302] Duplicate name in port@1, renamed to "#1"
[    0.165474] Duplicate name in port@1, renamed to "#2"
[    0.170644] Duplicate name in port@1, renamed to "#3"
[    0.175816] Duplicate name in port@1, renamed to "#4"
[    0.180988] Duplicate name in port@1, renamed to "#5"
[    0.186162] Duplicate name in port@1, renamed to "#6"
[    0.191347] Duplicate name in port@2, renamed to "#1"
[    0.196514] Duplicate name in port@2, renamed to "#2"
[    0.201683] Duplicate name in port@2, renamed to "#3"
[    0.206856] Duplicate name in port@2, renamed to "#4"
[    0.212028] Duplicate name in port@2, renamed to "#5"
[    0.217239] Duplicate name in ethernet-phy@0, renamed to "#1"
[    0.223144] Duplicate name in cpts@3d000, renamed to "#1"
[    0.228667] Duplicate name in cpts@3d000, renamed to "#2"
[    0.234191] Duplicate name in cpts@3d000, renamed to "#3"
[    0.239742] Duplicate name in cpts@39000000, renamed to "#1"
[    0.245537] Duplicate name in cpts@39000000, renamed to "#2"
[    0.251328] Duplicate name in cpts@39000000, renamed to "#3"
[    0.257202] Duplicate name in mailbox@29020000, renamed to "#1"
[    0.263272] Duplicate name in mbox-main-r5fss0-core0, renamed to "#1"
[    0.269877] Duplicate name in mbox-main-r5fss0-core1, renamed to "#1"
[    0.276491] Duplicate name in mailbox@29030000, renamed to "#1"
[    0.282573] Duplicate name in mailbox@29040000, renamed to "#1"
[    0.288640] Duplicate name in mbox-main-r5fss1-core0, renamed to "#1"
[    0.295242] Duplicate name in mbox-main-r5fss1-core1, renamed to "#1"
[    0.301860] Duplicate name in mailbox@29050000, renamed to "#1"
[    0.307937] Duplicate name in mailbox@29060000, renamed to "#1"
[    0.314007] Duplicate name in mbox-m4-0, renamed to "#1"
[    0.319464] Duplicate name in mailbox@29070000, renamed to "#1"
[    0.325586] Duplicate name in r5f@78000000, renamed to "#1"
[    0.331287] Duplicate name in r5f@78000000, renamed to "#2"
[    0.337026] Duplicate name in r5f@78200000, renamed to "#1"
[    0.342725] Duplicate name in r5f@78200000, renamed to "#2"
[    0.348490] Duplicate name in r5f@78400000, renamed to "#1"
[    0.354191] Duplicate name in r5f@78400000, renamed to "#2"
[    0.359933] Duplicate name in r5f@78600000, renamed to "#1"
[    0.365633] Duplicate name in r5f@78600000, renamed to "#2"
[    0.371378] Duplicate name in wiz@f000000, renamed to "#1"
[    0.376991] Duplicate name in wiz@f000000, renamed to "#2"
[    0.382634] Duplicate name in serdes@f000000, renamed to "#1"
[    0.388512] Duplicate name in serdes@f000000, renamed to "#2"
[    0.394417] Duplicate name in phy@0, renamed to "#1"
[    0.399528] Duplicate name in pcie@f102000, renamed to "#1"
[    0.405229] Duplicate name in pcie@f102000, renamed to "#2"
[    0.410930] Duplicate name in pcie@f102000, renamed to "#3"
[    0.416653] Duplicate name in pcie@f102000, renamed to "#4"
[    0.422358] Duplicate name in pcie@f102000, renamed to "#5"
[    0.428065] Duplicate name in pcie@f102000, renamed to "#6"
[    0.433773] Duplicate name in pcie@f102000, renamed to "#7"
[    0.439489] Duplicate name in pcie@f102000, renamed to "#8"
[    0.445210] Duplicate name in pcie@f102000, renamed to "#9"
[    0.450925] Duplicate name in pcie@f102000, renamed to "#10"
[    0.456732] Duplicate name in pcie@f102000, renamed to "#11"
[    0.462539] Duplicate name in pcie@f102000, renamed to "#12"
[    0.468377] Duplicate name in pcie-ep@f102000, renamed to "#1"
[    0.474344] Duplicate name in pcie-ep@f102000, renamed to "#2"
[    0.480326] Duplicate name in pcie-ep@f102000, renamed to "#3"
[    0.486298] Duplicate name in pcie-ep@f102000, renamed to "#4"
[    0.492271] Duplicate name in pcie-ep@f102000, renamed to "#5"
[    0.498265] Duplicate name in cdns-usb@f900000, renamed to "#1"
[    0.504333] Duplicate name in cdns-usb@f900000, renamed to "#2"
[    0.510391] Duplicate name in cdns-usb@f900000, renamed to "#3"
[    0.516467] Duplicate name in usb@f400000, renamed to "#1"
[    0.522112] Duplicate name in tscadc@28001000, renamed to "#1"
[    0.528079] Duplicate name in tscadc@28001000, renamed to "#2"
[    0.534106] Duplicate name in spi@fc40000, renamed to "#1"
[    0.539719] Duplicate name in spi@fc40000, renamed to "#2"
[    0.545347] Duplicate name in spi@fc40000, renamed to "#3"
[    0.550962] Duplicate name in spi@fc40000, renamed to "#4"
[    0.556580] Duplicate name in spi@fc40000, renamed to "#5"
[    0.562215] Duplicate name in flash@0, renamed to "#1"
[    0.567475] Duplicate name in flash@0, renamed to "#2"
[    0.572731] Duplicate name in flash@0, renamed to "#3"
[    0.577992] Duplicate name in flash@0, renamed to "#4"
[    0.583256] Duplicate name in flash@0, renamed to "#5"
[    0.588521] Duplicate name in flash@0, renamed to "#6"
[    0.593785] Duplicate name in flash@0, renamed to "#7"
[    0.599144] Duplicate name in can@20701000, renamed to "#1"
[    0.604885] Duplicate name in can@20711000, renamed to "#1"
[    0.610612] Duplicate name in watchdog@e000000, renamed to "#1"
[    0.616692] Duplicate name in watchdog@e010000, renamed to "#1"
[    0.622860] Duplicate name in coreclk-mux@3c, renamed to "#1"
[    0.628761] Duplicate name in iepclk-mux@30, renamed to "#1"
[    0.634924] Duplicate name in coreclk-mux@3c, renamed to "#1"
[    0.640830] Duplicate name in iepclk-mux@30, renamed to "#1"
[    0.646946] Duplicate name in ethernet-phy@0, renamed to "#1"
[    0.653197] Duplicate name in memory-controller@3b000000, renamed to "#1"
[    0.660205] Duplicate name in main0-thermal, renamed to "#1"
[    0.665995] Duplicate name in main0-thermal, renamed to "#2"
[    0.671805] Duplicate name in main0-crit, renamed to "#1"
[    0.677345] Duplicate name in main1-thermal, renamed to "#1"
[    0.683134] Duplicate name in main1-thermal, renamed to "#2"
[    0.688939] Duplicate name in main1-crit, renamed to "#1"
[    0.694554] Duplicate name in cpu@0, renamed to "#1"
[    0.699637] Duplicate name in cpu@0, renamed to "#2"
[    0.704720] Duplicate name in cpu@0, renamed to "#3"
[    0.709802] Duplicate name in cpu@0, renamed to "#4"
[    0.714887] Duplicate name in cpu@0, renamed to "#5"
[    0.719973] Duplicate name in cpu@0, renamed to "#6"
[    0.725062] Duplicate name in cpu@0, renamed to "#7"
[    0.730152] Duplicate name in cpu@0, renamed to "#8"
[    0.735247] Duplicate name in cpu@1, renamed to "#1"
[    0.740327] Duplicate name in cpu@1, renamed to "#2"
[    0.745407] Duplicate name in cpu@1, renamed to "#3"
[    0.750490] Duplicate name in cpu@1, renamed to "#4"
[    0.755577] Duplicate name in cpu@1, renamed to "#5"
[    0.760664] Duplicate name in cpu@1, renamed to "#6"
[    0.765751] Duplicate name in cpu@1, renamed to "#7"
[    0.770841] Duplicate name in cpu@1, renamed to "#8"
[    0.775942] Duplicate name in l2-cache0, renamed to "#1"
[    0.781378] Duplicate name in l2-cache0, renamed to "#2"
[    0.786812] Duplicate name in l2-cache0, renamed to "#3"
[    0.792298] Duplicate name in optee@9e800000, renamed to "#1"
[    0.798386] Duplicate name in ipc-memories@a5000000, renamed to "#1"
[    0.804901] Duplicate name in fixedregulator-evm12v0, renamed to "#1"
[    0.811490] Duplicate name in fixedregulator-evm12v0, renamed to "#2"
[    0.818079] Duplicate name in fixedregulator-evm12v0, renamed to "#3"
[    0.824673] Duplicate name in fixedregulator-evm12v0, renamed to "#4"
[    0.831281] Duplicate name in fixedregulator-vsys5v0, renamed to "#1"
[    0.837869] Duplicate name in fixedregulator-vsys5v0, renamed to "#2"
[    0.844461] Duplicate name in fixedregulator-vsys5v0, renamed to "#3"
[    0.851053] Duplicate name in fixedregulator-vsys5v0, renamed to "#4"
[    0.857647] Duplicate name in fixedregulator-vsys5v0, renamed to "#5"
[    0.864244] Duplicate name in fixedregulator-vsys3v3, renamed to "#1"
[    0.870836] Duplicate name in fixedregulator-vsys3v3, renamed to "#2"
[    0.877425] Duplicate name in fixedregulator-vsys3v3, renamed to "#3"
[    0.884015] Duplicate name in fixedregulator-vsys3v3, renamed to "#4"
[    0.890609] Duplicate name in fixedregulator-vsys3v3, renamed to "#5"
[    0.897210] Duplicate name in fixed-regulator-sd, renamed to "#1"
[    0.903444] Duplicate name in fixed-regulator-sd, renamed to "#2"
[    0.909679] Duplicate name in fixed-regulator-sd, renamed to "#3"
[    0.915915] Duplicate name in fixed-regulator-sd, renamed to "#4"
[    0.922152] Duplicate name in fixed-regulator-sd, renamed to "#5"
[    0.928405] Duplicate name in fixedregulator-vddb, renamed to "#1"
[    0.934732] Duplicate name in fixedregulator-vddb, renamed to "#2"
[    0.941055] Duplicate name in fixedregulator-vddb, renamed to "#3"
[    0.947380] Duplicate name in fixedregulator-vddb, renamed to "#4"
[    0.953706] Duplicate name in fixedregulator-vddb, renamed to "#5"
[    0.960057] Duplicate name in led-0, renamed to "#1"
[    0.965137] Duplicate name in led-0, renamed to "#2"
[    0.970218] Duplicate name in led-0, renamed to "#3"
[    0.975326] Duplicate name in mdio-mux-1, renamed to "#1"
[    0.980886] Duplicate name in ethernet-phy@3, renamed to "#1"
[    0.986785] Duplicate name in can-phy0, renamed to "#1"
[    0.992150] Duplicate name in can-phy1, renamed to "#1"
[    0.997519] Duplicate name in icssg1-eth, renamed to "#1"
[    1.003048] Duplicate name in icssg1-eth, renamed to "#2"
[    1.008571] Duplicate name in icssg1-eth, renamed to "#3"
[    1.014096] Duplicate name in icssg1-eth, renamed to "#4"
[    1.019629] Duplicate name in icssg1-eth, renamed to "#5"
[    1.025179] Duplicate name in ethernet-mii0, renamed to "#1"
[    1.030973] Duplicate name in ethernet-mii0, renamed to "#2"
[    1.036764] Duplicate name in ethernet-mii0, renamed to "#3"
[    1.042565] Duplicate name in ethernet-mii1, renamed to "#1"
[    1.049480] KASLR disabled due to lack of seed
[    1.054291] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    1.064263] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    1.086834] pinctrl core: initialized pinctrl subsystem
[    1.092931] DMI not present or invalid.
[    1.097667] NET: Registered protocol family 16
[    1.103877] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    1.111273] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    1.119360] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    1.128136] thermal_sys: Registered thermal governor 'step_wise'
[    1.128143] thermal_sys: Registered thermal governor 'power_allocator'
[    1.134487] thermal_sys: main0-thermal: missing polling-delay-passive property
[    1.148536] thermal_sys: failed to build thermal zone main0-thermal: -22
[    1.155385] thermal_sys: main1-thermal: missing polling-delay-passive property
[    1.162767] thermal_sys: failed to build thermal zone main1-thermal: -22
[    1.169685] cpuidle: using governor menu
[    1.173970] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    1.180948] ASID allocator initialised with 65536 entries
[    1.215090] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
[    1.222084] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
[    1.228941] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    1.235788] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
[    1.244063] cryptd: max_cpu_qlen set to 1000
[    1.252089] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR2.0 JTAGID[0x1bb3802f] Detected
[    1.261150] reg-fixed-voltage fixedregulator-evm12v0: Failed to allocate supply name
[    1.269373] reg-fixed-voltage: probe of fixedregulator-evm12v0 failed with error -12
[    1.277389] reg-fixed-voltage fixedregulator-vsys5v0: Failed to allocate supply name
[    1.285325] reg-fixed-voltage: probe of fixedregulator-vsys5v0 failed with error -12
[    1.293283] reg-fixed-voltage fixedregulator-vsys3v3: Failed to allocate supply name
[    1.301206] reg-fixed-voltage: probe of fixedregulator-vsys3v3 failed with error -12
[    1.309162] reg-fixed-voltage fixed-regulator-sd: Failed to allocate supply name
[    1.316729] reg-fixed-voltage: probe of fixed-regulator-sd failed with error -12
[    1.324330] reg-fixed-voltage fixedregulator-vddb: Failed to allocate supply name
[    1.331985] reg-fixed-voltage: probe of fixedregulator-vddb failed with error -12
[    1.340465] iommu: Default domain type: Translated
[    1.345904] SCSI subsystem initialized
[    1.350411] mc: Linux media interface: v0.10
[    1.354813] videodev: Linux video capture interface: v2.00
[    1.360527] pps_core: LinuxPPS API ver. 1 registered
[    1.365602] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    1.374946] PTP clock support registered
[    1.378985] EDAC MC: Ver: 3.0.0
[    1.383651] FPGA manager framework
[    1.387271] Advanced Linux Sound Architecture Driver Initialized.
[    1.394643] clocksource: Switched to clocksource arch_sys_counter
[    1.401213] VFS: Disk quotas dquot_6.6.0
[    1.405293] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.418038] NET: Registered protocol family 2
[    1.422854] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    1.432019] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
[    1.440921] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    1.449153] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
[    1.456900] TCP: Hash tables configured (established 16384 bind 16384)
[    1.463843] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    1.470775] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
[    1.478295] NET: Registered protocol family 1
[    1.483296] RPC: Registered named UNIX socket transport module.
[    1.489418] RPC: Registered udp transport module.
[    1.494227] RPC: Registered tcp transport module.
[    1.499034] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.505622] NET: Registered protocol family 44
[    1.510180] PCI: CLS 0 bytes, default 64
[    1.515024] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    1.528007] Initialise system trusted keyrings
[    1.532979] workingset: timestamp_bits=46 max_order=19 bucket_order=0
[    1.544359] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    1.551086] NFS: Registering the id_resolver key type
[    1.556343] Key type id_resolver registered
[    1.560620] Key type id_legacy registered
[    1.564787] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.571640] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    1.579418] 9p: Installing v9fs 9p2000 file system support
[    1.628151] Key type asymmetric registered
[    1.632387] Asymmetric key parser 'x509' registered
[    1.637477] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
[    1.645107] io scheduler mq-deadline registered
[    1.649756] io scheduler kyber registered
[    1.656483] pinctrl-single 4084000.pinctrl: 33 pins, size 132
[    1.663066] pinctrl-single f4000.pinctrl: 180 pins, size 720
[    1.670033] pinctrl-single a40000.timesync-router: 512 pins, size 2048
[    1.686852] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
[    1.701561] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    1.715863] brd: module loaded
[    1.726583] loop: module loaded
[    1.730932] megasas: 07.714.04.00-rc1
[    1.739517] mdio-mux-multiplexer mdio-mux-1: /mdio-mux-1: failed to get mux-control (0)
[    1.747767] mdio-mux-multiplexer mdio-mux-1: Failed to get mux: -2
[    1.754101] mdio-mux-multiplexer: probe of mdio-mux-1 failed with error -2
[    1.761159] tun: Universal TUN/TAP device driver, 1.6
[    1.767147] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    1.773576] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    1.779694] sky2: driver version 1.30
[    1.784797] VFIO - User Level meta-driver version: 0.3
[    1.791444] i2c /dev entries driver
[    1.796671] sdhci: Secure Digital Host Controller Interface driver
[    1.803081] sdhci: Copyright(c) Pierre Ossman
[    1.808192] sdhci-pltfm: SDHCI platform and OF driver helper
[    1.815268] ledtrig-cpu: registered to indicate activity on CPUs
[    1.821902] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
[    1.830318] optee: probing for conduit method.
I/TC: Reserved shared memory is enabled
I/TC: Dynamic shared memory is enabled
I/TC: Normal World virtualization support is disabled
I/TC: Asynchronous notifications are disabled
[    1.835021] optee: revision 3.20 (8e74d476)
[    1.851621] optee: dynamic shared memory is enabled
[    1.861342] optee: initialized driver
[    1.865684] gpio-mux: probe of mux-controller failed with error -2
[    1.874344] NET: Registered protocol family 17
[    1.879199] 9pnet: Installing 9P2000 support
[    1.883725] Key type dns_resolver registered
[    1.888595] Loading compiled-in X.509 certificates
[    1.911502] ti-sci 44043000.dmsc: lpm region is required for suspend but not provided.
[    1.919726] ti-sci 44043000.dmsc: ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
[    1.976188] gpmc_probe_dt: number of chip-selects not defined
[    1.982162] omap-gpmc: probe of 3b000000.memory-controller failed with error -22
[    1.991268] omap_i2c 20000000.i2c: bus 0 rev0.12 at 100 kHz
[    1.998958] pca953x 1-0022: supply vcc not found, using dummy regulator
[    2.005975] pca953x 1-0022: using AI
[    2.032667] ssd1307fb 1-003c: failed to get VBAT regulator: -517
[    2.038999] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
[    2.046181] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz
[    2.053227] omap_i2c 20030000.i2c: bus 3 rev0.12 at 100 kHz
[    2.059633] ti-sci-intr bus@f4000:bus@4000000:interrupt-controller1: Interrupt Router 5 domain created
[    2.069555] ti-sci-intr bus@f4000:interrupt-controller0: Interrupt Router 3 domain created
[    2.078564] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
[    2.087997] wiz bus@f4000:wiz@f000000: Failed to read num-lanes property
[    2.094983] wiz: probe of bus@f4000:wiz@f000000 failed with error -22
[    2.109361] j721e-pcie f102000.pcie: no num-lanes defined, defaulting to 1
[    2.116537] j721e-pcie f102000.pcie: Unable to get ti,syscon-pcie-ctrl regmap
[    2.123858] j721e-pcie f102000.pcie: pm_runtime_get_sync failed
[    2.130859] ti-udma 485c0100.dma-controller: Number of rings: 68
[    2.138564] ti-udma 485c0100.dma-controller: Channels: 24 (bchan: 12, tchan: 6, rchan: 6)
[    2.148799] ti-udma 485c0000.dma-controller: Number of rings: 288
[    2.163480] ti-udma 485c0000.dma-controller: Channels: 44 (tchan: 29, rchan: 15)
[    2.174475] printk: console [ttyS2] disabled
[    2.179008] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 16, base_baud = 3000000) is a 8250
[    2.187796] printk: console [ttyS2] enabled
[    2.187796] printk: console [ttyS2] enabled
[    2.196247] printk: bootconsole [ns16550a0] disabled
[    2.196247] printk: bootconsole [ns16550a0] disabled
[    2.208381] cadence-qspi fc40000.spi: couldn't determine fifo-depth
[    2.214691] cadence-qspi fc40000.spi: Cannot get mandatory OF data.
[    2.232507] davinci_mdio 8000f00.mdio: Missing bus_freq property in the DT.
[    2.239596] davinci_mdio: probe of 8000f00.mdio failed with error -22
[    2.246191] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
[    2.258896] am65-cpsw-nuss 8000000.ethernet: /bus@f4000/ethernet@8000000/ethernet-ports/port@1 error retrieving port phy: -19
[    2.272340] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:225000000, add_val:3 pps:0
[    2.281559] k3-j72xx-soc-thermal b00000.temperature-sensor: invalid resource
[    2.288698] k3-j72xx-soc-thermal: probe of b00000.temperature-sensor failed with error -22
[    2.299929] sdhci-am654: probe of fa10000.mmc failed with error -22
[    2.308438] mmc0: CQHCI version 5.10
[    2.312195] sdhci-am654 fa00000.mmc: Couldn't find otap-del-sel
[    2.325764] sdhci-am654: probe of fa00000.mmc failed with error -22
[    2.336689] ssd1307fb 1-003c: failed to get VBAT regulator: -517
[    2.343333] ssd1307fb 1-003c: failed to get VBAT regulator: -517
[    2.350461] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present!
[    2.370706] ALSA device list:
[    2.373685]   No soundcards found.
[    2.377616] Waiting for root device PARTUUID=47b6d3e0-02...

您能否谈谈 K3-am642-evm.dts 中的更改有什么问题

我还想获取您对原始问题的意见-

我尝试从 CCS 加载 hello-world 和 EtherCAT-Beckhoff-demo、这两个应用都可以正常运行。 但是、当我尝试通过 SD 卡引导 AM64X-GP-EVM、并将.out 复制到/lib/firmware 并尝试运行 hello-world.out 时、结果显示22个错误代码。

如何解决此问题?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    1) 1)使用 Linux Remoteproc 加载 MCU+项目

    对于要由 Linux 加载的 hello-world 示例、您必须修改 MCU+ SDK 工程、以便它包含一个资源表。 请参考以下正在进行的常见问题解答:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1193620/faq-am62x-am64x-how-to-allow-linux-to-load-m4f-r5f-firmware-by-adding-a-resource-table  

    如果您对使用 Linux Remoteproc 加载 MCU+项目有任何后续问题、请创建单独的 e2e 线程。

    2)内核启动问题  

    好的、看起来您使用的是 AM64x Linux SDK 8.6。

    a)您在上面显示的 Linux devicetree 更改对我来说很好。 Linux 终端输出中没有提到 Remoteproc、因此问题不是因为尝试初始化 R5F、M4F 和 PRU 内核。

    b)我对输出"在.中的名称重复"感到关切。 不应该出现在这里。 您是否对器件树进行了任何其他修改?

    我正在将您的主题重新分配给另一位在 Linux 调试方面经验更丰富的团队成员、以便我们来看看。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    感谢您的快速响应。是的、我使用的是 AM64x Linux SDK 8.6。 我将在星期一尝试#1,并可以发布更新。

    对于第二个,没有,我没有任何其他设备树更改,只是我分享的差异。 我想知道、如果您在#1中建议的方法有效、那么我不需要与设备树相关的修改? 如果不是、那么是的、我需要帮助让它正常工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    加载远程内核是否会导致问题?

    如果 Linux Remoteproc 驱动程序由于没有资源表而无法加载远程内核、则内核将无法加载。 我不能指望它会导致您观察到的所有外设无法加载。

    Linux 调试

    我发送您的线程的团队成员在近期不在城里、因此我会尝试提供更多的调试支持、直到他们回来。

    您能否向我们展示您的 uboot 环境变量? 我想检查 boot_fit、查看是使用 fitImage、还是使用单独的内核映像+ devicetree 二进制文件进行引导。

    调试的下一步是尝试一次对 devicetree 二进制文件进行一项更改、并在开始看到不同行为时进行查找。

    步骤1)使用默认文件系统映像进行引导、无更改。 记录终端输出、以便以后可以参考。

    步骤2)构建内核和未修改的 devicetree、将它们复制到电路板中。 您应该不会看到任何更改

    步骤3)开始一次修改一个对象、重新编译 devicetree 文件、复制到板中、查看行为是否发生变化(例如、首先禁用 PRU 以太网。 是否有任何更改? 然后执行其他操作。 等等)。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Nick、感谢您的意见。

    我曾尝试构建内核、并且未更改的 Linux 器件树。 然后、我在器件树中仅对存储器映射进行了更改。

    我可以看到、只需在 linker.cmd 中进行一些小改动、我就能够加载和运行 hello world 可执行文件。 我使用了  examples/drivers/ipc/ipc_rpmsg_echo_linux 中的 linker.cmd、并能够看到从 R5F 内核运行的可执行文件。

    root@am64xx-evm:~# dmesg | grep 'remoteproc1'
    [    6.659423] remoteproc remoteproc1: 78000000.r5f is available
    [    6.701288] remoteproc remoteproc1: powering up 78000000.r5f
    [    6.708920] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 965988
    [    6.720833]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
    [    6.737104]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
    [    6.748688] remoteproc remoteproc1: remote processor 78000000.r5f is now up
    [    7.477176] remoteproc remoteproc10: 3000c000.txpru is available
    [    7.484040] remoteproc remoteproc11: 300b4000.pru is available
    [    7.493043] remoteproc remoteproc12: 30084000.rtu is available
    [    7.501806] remoteproc remoteproc13: 3008a000.txpru is available
    [    7.516790] remoteproc remoteproc14: 300b8000.pru is available
    [    7.524959] remoteproc remoteproc15: 30086000.rtu is available
    [    7.533189] remoteproc remoteproc16: 3008c000.txpru is available
    [   11.686430] remoteproc remoteproc11: powering up 300b4000.pru
    [   11.738193] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 38224
    [   11.801409] remoteproc remoteproc11: unsupported resource 5
    [   11.830313] remoteproc remoteproc11: remote processor 300b4000.pru is now up
    [   11.861545] remoteproc remoteproc12: powering up 30084000.rtu
    [   11.901751] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30872
    [   11.902031] remoteproc remoteproc12: remote processor 30084000.rtu is now up
    [   11.902080] remoteproc remoteproc13: powering up 3008a000.txpru
    [   11.918824] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 37328
    [   11.918874] remoteproc remoteproc13: remote processor 3008a000.txpru is now up
    root@am64xx-evm:~# 
    root@am64xx-evm:~# 
    root@am64xx-evm:~# 
    root@am64xx-evm:~# ls -l /lib/firmware
    total 33452
    -rw-r--r-- 1 root root    2040 Feb 27 13:38 LICENCE.ibt_firmware
    -rw-r--r-- 1 root root    2046 Feb 27 13:38 LICENCE.iwlwifi_firmware
    lrwxrwxrwx 1 root root      77 May  4 12:52 am64-main-r5f0_0-fw -> ethercat_slave_beckhoff_ssc_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out
    lrwxrwxrwx 1 root root      55 Feb 27 15:24 am64-main-r5f0_1-fw -> /lib/firmware/mcusdk-benchmark_demo/am64-main-r5f0_1-fw
    lrwxrwxrwx 1 root root      55 Feb 27 15:24 am64-main-r5f1_0-fw -> /lib/firmware/mcusdk-benchmark_demo/am64-main-r5f1_0-fw
    lrwxrwxrwx 1 root root      55 Feb 27 15:24 am64-main-r5f1_1-fw -> /lib/firmware/mcusdk-benchmark_demo/am64-main-r5f1_1-fw
    lrwxrwxrwx 1 root root      72 Feb 27 15:23 am64-mcu-m4f0_0-fw -> /lib/firmware/pdk-ipc/ipc_echo_baremetal_test_mcu3_0_release_strip.xer5f
    lrwxrwxrwx 1 root root      49 Feb 27 15:24 am64x-pru0_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt0_0.out
    lrwxrwxrwx 1 root root      49 Feb 27 15:24 am64x-pru0_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt0_1.out
    lrwxrwxrwx 1 root root      49 Feb 27 15:24 am64x-pru1_0-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_0.out
    lrwxrwxrwx 1 root root      49 Feb 27 15:24 am64x-pru1_1-fw -> /lib/firmware/pru/PRU_RPMsg_Echo_Interrupt1_1.out
    lrwxrwxrwx 1 root root      49 Feb 27 15:24 am64x-rtu0_0-fw -> /lib/firmware/pru/RTU_RPMsg_Echo_Interrupt0_0.out
    lrwxrwxrwx 1 root root      49 Feb 27 15:24 am64x-rtu0_1-fw -> /lib/firmware/pru/RTU_RPMsg_Echo_Interrupt0_1.out
    lrwxrwxrwx 1 root root      49 Feb 27 15:24 am64x-rtu1_0-fw -> /lib/firmware/pru/RTU_RPMsg_Echo_Interrupt1_0.out
    lrwxrwxrwx 1 root root      49 Feb 27 15:24 am64x-rtu1_1-fw -> /lib/firmware/pru/RTU_RPMsg_Echo_Interrupt1_1.out
    lrwxrwxrwx 1 root root      35 Feb 27 15:24 am64x-txpru0_0-fw -> /lib/firmware/pru/TX_PRU_Halt_0.out
    lrwxrwxrwx 1 root root      35 Feb 27 15:24 am64x-txpru0_1-fw -> /lib/firmware/pru/TX_PRU_Halt_1.out
    lrwxrwxrwx 1 root root      35 Feb 27 15:24 am64x-txpru1_0-fw -> /lib/firmware/pru/TX_PRU_Halt_0.out
    lrwxrwxrwx 1 root root      35 Feb 27 15:24 am64x-txpru1_1-fw -> /lib/firmware/pru/TX_PRU_Halt_1.out
    -rw-r--r-- 1 root root  965988 May  4 12:49 ethercat_slave_beckhoff_ssc_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out
    -rw-r--r-- 1 root root  487332 May  3 12:13 hello_world_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out
    drwxr-xr-x 2 root root    4096 Feb 27 13:38 intel
    -rw-r--r-- 1 root root  918268 Feb 27 13:32 iwlwifi-3160-17.ucode
    -rw-r--r-- 1 root root 2120860 Feb 27 13:32 iwlwifi-8000C-22.ucode
    -rw-r--r-- 1 root root 2227284 Feb 27 13:32 iwlwifi-8000C-27.ucode
    -rw-r--r-- 1 root root 2310116 Feb 27 13:32 iwlwifi-8000C-31.ucode
    -rw-r--r-- 1 root root 2448976 Feb 27 13:32 iwlwifi-8000C-34.ucode
    -rw-r--r-- 1 root root 2428004 Feb 27 13:32 iwlwifi-8000C-36.ucode
    -rw-r--r-- 1 root root 1811984 Feb 27 13:32 iwlwifi-8265-22.ucode
    -rw-r--r-- 1 root root 2234528 Feb 27 13:32 iwlwifi-8265-27.ucode
    -rw-r--r-- 1 root root 2307104 Feb 27 13:32 iwlwifi-8265-31.ucode
    -rw-r--r-- 1 root root 2440780 Feb 27 13:32 iwlwifi-8265-34.ucode
    -rw-r--r-- 1 root root 2436632 Feb 27 13:32 iwlwifi-8265-36.ucode
    -rw-r--r-- 1 root root 2637216 Feb 27 13:32 iwlwifi-9260-th-b0-jf-b0-33.ucode
    -rw-r--r-- 1 root root 2678092 Feb 27 13:32 iwlwifi-9260-th-b0-jf-b0-34.ucode
    -rw-r--r-- 1 root root 2521412 Feb 27 13:32 iwlwifi-9260-th-b0-jf-b0-38.ucode
    -rw-r--r-- 1 root root 2620656 Feb 27 13:32 iwlwifi-9260-th-b0-jf-b0-41.ucode
    -rw-r--r-- 1 root root 2558176 Feb 27 13:32 iwlwifi-9260-th-b0-jf-b0-43.ucode
    -rw-r--r-- 1 root root 1489668 Feb 27 13:32 iwlwifi-9260-th-b0-jf-b0-46.ucode
    drwxr-xr-x 2 root root    4096 Feb 27 13:48 mcusdk-benchmark_demo
    drwxr-xr-x 2 root root    4096 Feb 27 13:48 pdk-ipc
    drwxr-xr-x 2 root root    4096 Feb 27 15:21 pru
    -rw-r--r-- 1 root root    4592 Feb 27 13:19 regulatory.db
    -rw-r--r-- 1 root root    1182 Feb 27 13:19 regulatory.db.p7s
    drwxr-xr-x 2 root root    4096 Feb 27 15:21 ti-connectivity
    drwxr-xr-x 2 root root    4096 Feb 27 13:47 ti-pruss
    root@am64xx-evm:~# 

     

    但是、我在串行日志中看不到"Hello World"或"EtherCAT started"等输出、就像我们在 CCS 上看到的一样(在 CCS 上、当我加载 EtherCAT Beckhoff 示例时、我看到如下所示的输出、并且我也能够在 TwinCAT 上发现从器件) 但是、当我加载 EtherCAT 从站示例可执行文件时、情况并非如此、如下所示。

    root@am64xx-evm:~# echo stop > /sys/class/remoteproc/remoteproc1/state
    [ 1124.361525] remoteproc remoteproc1: stopped remote processor 78000000.r5f
    root@am64xx-evm:~# 
    root@am64xx-evm:~# 
    root@am64xx-evm:~# cd /lib/firmware/
    root@am64xx-evm:/lib/firmware# 
    root@am64xx-evm:/lib/firmware# ln -sf ethercat_slave_beckhoff_ssc_demo_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out am64-main-r5f0_0-fw
    root@am64xx-evm:/lib/firmware# echo start > /sys/class/remoteproc/remoteproc1/state
    [ 1178.235140] remoteproc remoteproc1: powering up 78000000.r5f
    [ 1178.242591] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 965988
    [ 1178.253886]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
    [ 1178.263907] virtio_rpmsg_bus virtio1: rpmsg host is online
    [ 1178.273678]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
    [ 1178.280989] remoteproc remoteproc1: remote processor 78000000.r5f is now up
    root@am64xx-evm:/lib/firmware# 

    现在、我想弄清楚如何在 AM64X-EVM 板上使其正常工作。 感谢您提供的任何信息。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anika、您好、

    正确的步骤。

    1) 1)让我们首先验证 R5F 代码是否以您期望从 Linux 终端运行的方式。

    请在 SysConfig 中打开 MCU+工程设置并允许 Linux 查看远程内核跟踪日志、如以下所述: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1193620/faq-am62x-am64x-how-to-allow-linux-to-load-m4f-r5f-firmware-by-adding-a-resource-table/4498750#4498750 

    一旦进行了这些更改,代码中的 print()语句应在它们写入 UART 的同时写入 Linux 调试跟踪。

    接下来、让我们从 Linux 终端检查跟踪日志。 您可以参考以下命令: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/552339/how-to-see-log_print-messages-of-c6678-source-onto-tci6638-linux/2017591#2017591

    如果您需要帮助来确定哪个内核是哪个 RemoteprocX 编号(它可以根据哪个内核首先完成初始化的不同在启动之间进行更改)、请参阅 Linux 学院的此页面: https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__ANKEb6LZY6VAX.9xvGwQ-g__linux_academy_am64x__7qm9DIS__LATEST 

    2) 2)在我们验证代码是否按预期运行后、我们可以确保 MCU+内核拥有 UART 外设

    如果在 Linux devicetree 中未专门禁用 UART、则 Linux 将首先获取该 UART、并且 MCU+内核将无法向 UART 发送输出。 与上面的 PRU 更改类似、在顶级 Linux EVM devicetree 文件中、您需要确保具有  

    uart_node (&U)

      状态="已禁用";

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    建议1 -

    我尝试遵循 这里的注释: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1193620/faq-am62x-am64x-how-to-allow-linux-to-load-m4f-r5f-firmware-by-adding-a-resource-table/4498750#4498750 

    我更改了 SysConfig、删除了 IPC 选择、保留了调试日志配置、如图所示。 对于 HelloWorld 示例、linker.cmd 看起来像这样-

    /* 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=16384
    /* This is the heap size for malloc() API in NORTOS and FreeRTOS
     * This is also the heap used by pvPortMalloc in FreeRTOS
     */
    --heap_size=32768
    -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 enabled
     * - This is the stack used by ISRs registered as type IRQ
     * In FreeRTOS,
     * - Here interrupt nesting is disabled
     * - 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
    
        /* 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
    
        GROUP {
            /* This is the resource table used by linux to know where the IPC "VRINGs" are located */
            .resource_table: {} palign(4096)
        } > DDR_0
    
        /* 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 {
            .bss:    {} palign(8)   /* This is where uninitialized globals go */
            RUN_START(__BSS_START)
            RUN_END(__BSS_END)
            .sysmem: {} palign(8)   /* This is where the malloc heap goes */
            .stack:  {} palign(8)   /* This is where the main() stack goes */
        } > 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
    
        /* Sections needed for C projects */
        GROUP {
            .ARM.exidx:  {} palign(8)   /* Needed for C exception handling */
            .init_array: {} palign(8)   /* Contains function pointers called before main */
            .fini_array: {} palign(8)   /* Contains function pointers called after main */
        } > DDR_1
    
        /* General purpose user shared memory, used in some examples */
        .bss.user_shared_mem (NOLOAD) : {} > USER_SHM_MEM
        /* this is used when Debug log's to shared memory are enabled, else this is not used */
        .bss.log_shared_mem  (NOLOAD) : {} > LOG_SHM_MEM
        /* this is used only when IPC RPMessage is enabled, else this is not used */
        .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)
       0x701F4000 - 0x701FFFFF (48KB)
    
     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
    
        /* 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 = 0x1000
        DDR_1       : ORIGIN = 0xA0101000 , LENGTH = 0xEFF000
    
        /* shared memory segments */
        /* On R5F,
         * - make sure there is a MPU entry which maps below regions as non-cache
         */
        USER_SHM_MEM            : ORIGIN = 0xA5000000, LENGTH = 0x80
        LOG_SHM_MEM             : ORIGIN = 0xA5000000 + 0x80, LENGTH = 0x00004000 - 0x80
        RTOS_NORTOS_IPC_SHM_MEM : ORIGIN = 0xA5004000, LENGTH = 0x0000C000
        LINUX_IPC_SHM_MEM       : ORIGIN = 0xA0000000 , LENGTH = 0x100000
    }
    

    以下是 example.syscfg

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM64x_beta" --package "ALV" --part "Default" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM64x@08.05.00"
     * @versions {"tool":"1.14.0+2667"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const debug_log  = scripting.addModule("/kernel/dpl/debug_log");
    const mpu_armv7  = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71 = mpu_armv7.addInstance();
    const mpu_armv72 = mpu_armv7.addInstance();
    const mpu_armv73 = mpu_armv7.addInstance();
    const mpu_armv74 = mpu_armv7.addInstance();
    const mpu_armv75 = mpu_armv7.addInstance();
    const mpu_armv76 = mpu_armv7.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    debug_log.enableMemLog             = true;
    debug_log.enableUartLog            = true;
    debug_log.enableSharedMemLog       = true;
    debug_log.enableSharedMemLogReader = true;
    debug_log.enableLogZoneInfo        = true;
    debug_log.uartLog.$name            = "CONFIG_UART_CONSOLE";
    debug_log.uartLog.UART.$assign     = "USART0";
    
    mpu_armv71.$name             = "CONFIG_MPU_REGION0";
    mpu_armv71.size              = 31;
    mpu_armv71.attributes        = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute      = false;
    
    mpu_armv72.$name             = "CONFIG_MPU_REGION1";
    mpu_armv72.size              = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name             = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr          = 0x41010000;
    mpu_armv73.size              = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv74.$name             = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr          = 0x70000000;
    mpu_armv74.size              = 21;
    
    mpu_armv75.$name             = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr          = 0x60000000;
    mpu_armv75.size              = 28;
    mpu_armv75.accessPermissions = "Supervisor RD, User RD";
    
    mpu_armv76.$name    = "CONFIG_MPU_REGION5";
    mpu_armv76.baseAddr = 0x80000000;
    mpu_armv76.size     = 31;
    
    /**
     * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
     * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
     * re-solve from scratch.
     */
    debug_log.uartLog.UART.RXD.$suggestSolution = "ball.D15";
    debug_log.uartLog.UART.TXD.$suggestSolution = "ball.C16";
    

    我还在 main.c 中添加了"resource_table_no_ipc.h"。 "resource_table_no_ipc.h"如下所示-

    /*
     *  Copyright (C) 2022-2023 Texas Instruments Incorporated
     *
     *  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.
     */
    
    #ifndef RESOURCE_TABLE_NO_IPC_H_
    #define RESOURCE_TABLE_NO_IPC_H_
    
    #ifdef __cplusplus
    extern "C" {
    #endif
    
    #include <stddef.h>
    #include <drivers/ipc_rpmsg/include/ipc_rpmsg_linux_resource_table.h>
    #include <stdint.h>
    #include <kernel/dpl/SystemP.h>
    #include <drivers/hw_include/cslr_soc.h>
    
    /*
     * NOTES
     *
     * - RPMessage_ResourceTable copied from Linux IPC example generated file
     *   ti_drivers_config.c
     *
     * - gDebugMemLog is defined in the generated file ti_dlp_config.c, so mark as
     *   "extern" in this file
     *
     * - The trace log takes 0x1000 (4096 bytes) of space in .bss by default. The
     *   log is viewable from the Linux terminal with the command
     *   # cat /sys/kernel/debug/remoteproc/remoteproc#/trace0
     */
    
    
    /* DebugP log buffer memory and size
     * - This log can be viewed via ROV in CCS
     * - When linux is enabled, this log can also be viewed via linux debugfs
     */
    extern char gDebugMemLog[DebugP_MEM_LOG_SIZE];
    
    /* __attribute__((used)) keeps the resource table from getting optimized out
     * by the compiler
     */
    const RPMessage_ResourceTable gRPMessage_linuxResourceTable __attribute__((used)) __attribute__ ((section (".resource_table"), aligned (4096))) =
    {
        {
            1U,         /* we're the first version that implements this */
            2U,         /* number of entries, MUST be 2 */
            { 0U, 0U, } /* reserved, must be zero */
        },
        /* offsets to the entries */
        {
            offsetof(RPMessage_ResourceTable, vdev),
            offsetof(RPMessage_ResourceTable, trace),
        },
        /* vdev entry */
        {
            RPMESSAGE_RSC_TYPE_VDEV, RPMESSAGE_RSC_VIRTIO_ID_RPMSG,
            0U, 1U, 0U, 0U, 0U, 2U, { 0U, 0U },
        },
        /* the two vrings */
        { RPMESSAGE_RSC_VRING_ADDR_ANY, 4096U, 256U, 1U, 0U },
        { RPMESSAGE_RSC_VRING_ADDR_ANY, 4096U, 256U, 2U, 0U },
        {
            (RPMESSAGE_RSC_TRACE_INTS_VER0 | RPMESSAGE_RSC_TYPE_TRACE),
            (uint32_t)gDebugMemLog, DebugP_MEM_LOG_SIZE,
            0, "trace:r5fss0_0",
        },
    };
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif /* RESOURCE_TABLE_NO_IPC_H_ */
    

    我正在尝试将生成的  hello_world_am64x-evm_r5fss0-0_freertos_ti-arm-clang.out 加载到 r5f0内核。 我观察到可执行文件成功运行、但没有日志。 以下是串行日志-

    [245539.493970] remoteproc remoteproc1: stopped remote processor 78000000.r5f
    [245559.053505] remoteproc remoteproc1: powering up 78000000.r5f
    [245559.060225] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 481260
    [245559.071544]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
    [245559.080871] virtio_rpmsg_bus virtio1: rpmsg host is online
    [245559.088059]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
    [245559.095357] remoteproc remoteproc1: remote processor 78000000.r5f is now up
    [254317.041914] remoteproc remoteproc1: stopped remote processor 78000000.r5f
    [254350.177591] remoteproc remoteproc1: powering up 78000000.r5f
    [254350.184356] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 489380
    [254350.195640]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
    [254350.207928] virtio_rpmsg_bus virtio1: rpmsg host is online
    [254350.215443]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
    [254350.215456] remoteproc remoteproc1: remote processor 78000000.r5f is now up
    

    如果不更改"resource_table_no_ipc.h"并保持 IPC 处于启用状态、串行日志上的输出将保持不变、即日志上未显示 printf。

    您共享的用于启用日志的链接似乎没有有用的信息、因为 如何在 tci6638 Linux -处理器论坛-处理器- TI E2E 支持论坛上查看 c6678源代码的 log_print 消息中提到的链接  已不再可用:(  

    我尝试遵循你的建议#2我看到编译问题如下-

    $ make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- ti/k3-am642-evm.dtb
      DTC     arch/arm64/boot/dts/ti/k3-am642-evm.dtb
    Error: arch/arm64/boot/dts/ti/k3-am642-evm.dts:529.1-11 Label or path uart_node not found
    FATAL ERROR: Syntax error parsing input tree
    make[1]: *** [scripts/Makefile.lib:328: arch/arm64/boot/dts/ti/k3-am642-evm.dtb] Error 1
    make: *** [Makefile:1370: ti/k3-am642-evm.dtb] Error 2
    

    谢谢。此致、

    安基塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    1) 1) 仅供参考:SDK 8.6及更早版本不支持正常关闭  

    在您连接的终端输出中、似乎您在运行时执行 echo > stop and echo > start。 简单来说、在 AM64x SDK 8.6及更早版本的 SDK 中、不支持正常关断。

    这意味着当 Linux RemoteProc 驱动程序停止 R5F 内核时、不会向内核提供任何警告或进入已知良好状态的机会。 这意味着 R5F 没有机会释放它通过器件管理器固件(SYSFW)获取的资源、并且它处于未知状态。 这意味着、如果使用 echo > start 重新启动内核:

    1) 1)它将无法从 SYSFW 请求任何系统资源、因为 SYSFW 认为这些资源仍在使用中

    2)处理器可能会崩溃、具体取决于 R5F 内核所处的状态。

    因此目前、如果您 要加载新固件、我们建议重新启动电路板以避免出现问题。 我们将在 SDK 9.0中支持 AM64x 上的远程内核正常关闭(2023年7月/ 8月左右发布)。

    2)从上次开始澄清评论  

    要从 Linux 查看跟踪日志、可通过在 SysConfig 中启用 Linux IPC 或添加空资源表来实现。 重要的部分是在 SysConfig 中启用存储器日志、如下所述:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1193620/faq-am62x-am64x-how-to-allow-linux-to-load-m4f-r5f-firmware-by-adding-a-resource-table/4498750#4498750 

    "为了允许 Debug 输出写入跟踪日志、Linux 可以在其中看到它们、必须选择 Debug Log > Enable Memory Log。

      "

    看起来是根据您的 SysConfig 设置进行的:

    debug_log.enableMemLog             = true;

    然后、我们会使用一系列类似命令来检查跟踪日志(基于 https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__ANKEb6LZY6VAX.9xvGwQ-g__linux_academy_am64x__7qm9DIS__LATEST 和 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/552339/how-to-see-log_print-messages-of-c6678-source-onto-tci6638-linux/2017591#2017591):的链接)、

    // check for which remoteprocX instance is R5F0_0:
    
    # head /sys/class/remoteproc/remoteproc*/name
    
    // let's say it is remoteproc1 for this boot
    // now check the trace log for R5F0_0:
    
    # cat /sys/kernel/debug/remoteproc/remoteproc1/trace0

    对于 Linux devicetree 更改、UART 节点的名称实际上并非 uart_node。 这取决于您在系统中使用的是哪个 UART (例如、假设您要使用主域 UART 3。 转到 k3-am64-main.dtsi、其中定义了主域外设。 看起来该 UART 实例被称为 MAIN_uart3)。

    请确保您将 devicetree 更改为顶级 board devicetree 文件、而不是定义处理器的.dtsi 文件。 这样您就知道设置将最后应用、仅次于电路板 devicetree 文件包含的.dts 和.dtsi 文件中的所有 devicetree 设置。 这样,您的设置就不会被包含 dtsi 文件的.dts 文件覆盖。

    3) 3)下一个调试步骤  

    进行上述更改后、如果我们在跟踪日志中仍然没有看到预期的"hello world"消息、我们可以使用 CCS 连接到 R5F 并在运行时对其进行调试。 有关如何执行此操作的参考信息、请查看此常见问题 解答:(+)[FAQ] AM62x & AM64x:如何使用 CCS 调试运行中的由 Linux 启动的 M4F 内核? -处理器论坛-处理器- TI E2E 支持论坛

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    希望您今天过得愉快。 感谢您关注我的问题。

    我想分享一些关于该主题的看法。 我曾尝试在"ipc_rpmsg_echo_linux"示例中从 SysConfig 启用存储器日志。 我可以在步骤"cat /sys/kernel/debug/remoteproc/remoteproc1/trace0 "中看到调试跟踪。

    不过、我不确定"hello world"和 "ipc_rpmsg_echo_linux"示例有多不同。 我要深入研究一下。 我们的最终目标是能够以相同的方式运行 EtherCAT 示例。 如果稍后我被卡住,我会发布一个查询。

    再次感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    这听起来不错。 我最后没有确定任何后续操作、但如果您有其他问题、请随意在此处回答(如果问题与我们在此处的讨论无关、请创建新主题)。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Nick、一个非常好的早晨!

    我当时正在尝试在 R5F 内核上加载 EtherCAT Beckhoff 示例(就像我对 Hello World 那样)、该示例似乎不起作用。

    我的观察结果是、通过 SYSCFG 启用 PRU-ICSS 后、ti_drivers_config.c 内生成的代码在 System_Init ()内具有相应的初始化函数。 PRUICSS_INIT()也有一些问题。

    void System_init(void)
    {
        /* DPL init sets up address transalation unit, on some CPUs this is needed
         * to access SCICLIENT services, hence this needs to happen first
         */
        Dpl_init();
        /* We should do sciclient init before we enable power and clock to the peripherals */
        /* SCICLIENT init */
        {
            int32_t retVal = SystemP_SUCCESS;
    
            retVal = Sciclient_init(CSL_CORE_ID_R5FSS0_0);
            DebugP_assertNoLog(SystemP_SUCCESS == retVal);
        }
    
        
        /* initialize PMU */
        CycleCounterP_init(SOC_getSelfCpuClk());
    
    
        PowerClock_init();
        /* Now we can do pinmux */
        Pinmux_init();
        /* finally we initialize all peripheral drivers */
        I2C_init();
        OSPI_init();
        /* IPC Notify */
        {
            IpcNotify_Params notifyParams;
            int32_t status;
    
            /* initialize parameters to default */
            IpcNotify_Params_init(&notifyParams);
    
            /* specify the core on which this API is called */
            notifyParams.selfCoreId = CSL_CORE_ID_R5FSS0_0;
    
            /* list the cores that will do IPC Notify with this core
            * Make sure to NOT list 'self' core in the list below
            */
            notifyParams.numCores = 5;
            notifyParams.coreIdList[0] = CSL_CORE_ID_R5FSS0_1;
            notifyParams.coreIdList[1] = CSL_CORE_ID_R5FSS1_0;
            notifyParams.coreIdList[2] = CSL_CORE_ID_R5FSS1_1;
            notifyParams.coreIdList[3] = CSL_CORE_ID_M4FSS0_0;
            notifyParams.coreIdList[4] = CSL_CORE_ID_A53SS0_0;
            notifyParams.linuxCoreId = CSL_CORE_ID_A53SS0_0;
    
            /* initialize the IPC Notify module */
            status = IpcNotify_init(&notifyParams);
            DebugP_assert(status==SystemP_SUCCESS);
    
        }
        /* IPC RPMessage */
        {
            RPMessage_Params rpmsgParams;
            int32_t status;
    
            /* initialize parameters to default */
            RPMessage_Params_init(&rpmsgParams);
    
            /* VRING mapping from source core to destination core, '-1' means NO VRING,
                r5fss0_0 => {"r5fss0_0":-1,"r5fss0_1":0,"r5fss1_0":1,"r5fss1_1":2,"m4fss0_0":3}
                r5fss0_1 => {"r5fss0_0":4,"r5fss0_1":-1,"r5fss1_0":5,"r5fss1_1":6,"m4fss0_0":7}
                r5fss1_0 => {"r5fss0_0":8,"r5fss0_1":9,"r5fss1_0":-1,"r5fss1_1":10,"m4fss0_0":11}
                r5fss1_1 => {"r5fss0_0":12,"r5fss0_1":13,"r5fss1_0":14,"r5fss1_1":-1,"m4fss0_0":15}
                m4fss0_0 => {"r5fss0_0":16,"r5fss0_1":17,"r5fss1_0":18,"r5fss1_1":19,"m4fss0_0":-1}
             */
            /* TX VRINGs */
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS0_1] = (uintptr_t)gRPMessageVringMem[0];
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS1_0] = (uintptr_t)gRPMessageVringMem[1];
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_R5FSS1_1] = (uintptr_t)gRPMessageVringMem[2];
            rpmsgParams.vringTxBaseAddr[CSL_CORE_ID_M4FSS0_0] = (uintptr_t)gRPMessageVringMem[3];
            /* RX VRINGs */
            rpmsgParams.vringRxBaseAddr[CSL_CORE_ID_R5FSS0_1] = (uintptr_t)gRPMessageVringMem[4];
            rpmsgParams.vringRxBaseAddr[CSL_CORE_ID_R5FSS1_0] = (uintptr_t)gRPMessageVringMem[8];
            rpmsgParams.vringRxBaseAddr[CSL_CORE_ID_R5FSS1_1] = (uintptr_t)gRPMessageVringMem[12];
            rpmsgParams.vringRxBaseAddr[CSL_CORE_ID_M4FSS0_0] = (uintptr_t)gRPMessageVringMem[16];
            /* Other VRING properties */
            rpmsgParams.vringSize = IPC_RPMESSAGE_VRING_SIZE;
            rpmsgParams.vringNumBuf = IPC_RPMESSAGE_NUM_VRING_BUF;
            rpmsgParams.vringMsgSize = IPC_RPMESSAGE_MAX_VRING_BUF_SIZE;
            rpmsgParams.linuxResourceTable = &gRPMessage_linuxResourceTable;
            rpmsgParams.linuxCoreId = CSL_CORE_ID_A53SS0_0;
    
            /* initialize the IPC RP Message module */
            status = RPMessage_init(&rpmsgParams);
            DebugP_assert(status==SystemP_SUCCESS);
        }
    
        PRUICSS_init();
        /* PRU IEP Enable SYNC MODE */
        CSL_REG32_WR(CSL_PRU_ICSSG1_PR1_CFG_SLV_BASE + CSL_ICSSCFG_IEPCLK, 1);
    
        Drivers_uartInit();
    }

    我曾尝试对 Hello World 使用类似的配置(启用了 OSPI、I2C 和 PRUICSS)、但这种配置不起作用。 但是、当我删除 PRUICSS 配置时、该应用程序似乎可以正常工作。

    我曾尝试从 ti-SDK 构建 PRU 固件、但无法在 PRU 内核上加载它(我按照同样的方法尝试在 R5F 内核上加载 hello-world)。

    我正在 https://www.ti.com/tool/PROCESSOR-SDK-AM64X 上下载的 SD 卡上使用 ti-sdk (tisdk-default-image-am64xx-evm.wic.xz)。 我只更改了器件树。

    与 PRU 固件有关的情况有何影响? 如何使其正常工作? 请告知。

    我的目标是通过 Linux (而不是 JTAG、即 CCS)加载固件、使 EtherCAT 从站正常工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    当前形势摘要  

    如果我有任何问题、请更正我:

    1) 1)通过 CCS 加载 R5F 时、您能够让 EtherCAT 从站示例正常工作、如以下链接中所述: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/08_05_00_24/exports/docs/api_guide_am64x/EXAMPLES_INDUSTRIAL_COMMS_ETHERCAT_SLAVE_DEMOS.html

    2) 2)现在您正在尝试执行相同的操作、但通过使用 Linux RPMsg 加载 R5F 内核。 PRUICSS 配置在 FPD-Link 串行器和解串器上

    3) 3)您已经在板级 Linux devicetree 文件中禁用了两个 ICSSG 实例、因此 Linux 应该还没有请求这些资源。

    后续调试步骤  

    您是否能够使用 CCS 连接到 R5F 以查看代码是否在特定位置超时? 连接到由 Linux 初始化的内核的过程记录在以下位置: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1188177/faq-am62x-am64x-how-to-use-ccs-to-debug-a-running-m4f-core-that-was-started-by-linux

    后续尝试  

    我刚才碰巧、我们应该确保应用的电路板配置设置将 ICSSG DMA 资源分配给 R5F 内核、而不是 Linux 内核。 我假设 EtherCAT 使用与通用以太网相同的 DMA 资源。 请此时使用 R5F0_0 -理论上其他 R5F 内核应该也会起作用、但到目前为止、R5F0_0是已经过测试的内核。

    请参考此帖子:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1206420/processor-sdk-am64x-enet-open-failure-from-r5-when-a53-is-running/4596608#4596608

    有关在 Windows 上使用 K3资源分区工具的步骤:(仅在以防万一的情况下附加)

    K3资源分区工具作为 SDK 安装的一部分打包。 要在 Windows 上使用此工具、我们需要从已安装的 SDK 中复制 k3-respart-tool。  我已将这封电子邮件作为 K3-respart-tool 文件夹的 zip 文件附件附上。 解压缩 zip 文件: C:\ti 并按照以下说明在 Windows 上使用。

    1. 下载并安装 SysConfig v1.15 来自https://www.ti.com/tool/download/SYSCONFIG
    2. 提取附加的 zip 地址 C:\ti.
    3. 打开 SysConfig GUI 工具并导航至 k3-respart-tool。
    4. 单击浏览以打开现有设计。 导航至 k3-respart-tool\out 您将找到一个适用于您的平台的基准文件。

    注意 :我们不建议您从头开始,始终加载基准文件 out\xyz-platform-name.syscfg 进行定制。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    我看不到此帖子的任何附件。 我主要查找 K3资源分区工具。 我还在此处查找了工具、但无法访问该链接- https://bitbucket.itg.ti.com/projects/PSDKLA/repos/k3-resource-partitioning/browse

    另外、能否请您查看我正在使用的 Linux 器件树、主要用于 ICSSG -

    // 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/mux/ti-serdes.h>
    #include <dt-bindings/leds/common.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/net/ti-dp83867.h>
    #include "k3-am642.dtsi"
    
    / {
    	compatible =  "ti,am642-evm", "ti,am642";
    	model = "Texas Instruments AM642 EVM";
    
    	chosen {
    		stdout-path = "serial2:115200n8";
    		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
    	};
    
    	aliases {
    		ethernet2 = &icssg1_emac0;
    		ethernet3 = &icssg1_emac1;
    	};
    
    	memory@80000000 {
    		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: fixedregulator-evm12v0 {
    		/* main DC jack */
    		compatible = "regulator-fixed";
    		regulator-name = "evm_12v0";
    		regulator-min-microvolt = <12000000>;
    		regulator-max-microvolt = <12000000>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vsys_5v0: fixedregulator-vsys5v0 {
    		/* 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: fixedregulator-vsys3v3 {
    		/* output of LM5140 */
    		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: fixed-regulator-sd {
    		/* TPS2051BD */
    		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: fixedregulator-vddb {
    		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;
    	};
    
    	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>;
    				tx-internal-delay-ps = <250>;
    				rx-internal-delay-ps = <2000>;
    			};
    		};
    	};
    
    	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 {
    		compatible = "ti,am642-icssg-prueth";
    		pinctrl-names = "default";
    		pinctrl-0 = <&icssg1_rgmii1_pins_default>;
    
    		sram = <&oc_sram>;
    		ti,prus = <&pru1_0>, <&rtu1_0>, <&tx_pru1_0>, <&pru1_1>, <&rtu1_1>, <&tx_pru1_1>;
    		firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
    
    		ti,pruss-gp-mux-sel = <2>,	/* MII mode */
    				      <2>,
    				      <2>,
    				      <2>,	/* MII mode */
    				      <2>,
    				      <2>;
    
    		mii-g-rt = <&icssg1_mii_g_rt>;
    		mii-rt = <&icssg1_mii_rt>;
    		iep = <&icssg1_iep0>,  <&icssg1_iep1>;
    
    		interrupt-parent = <&icssg1_intc>;
    		interrupts = <24 0 2>, <25 1 3>;
    		interrupt-names = "tx_ts0", "tx_ts1";
    
    		dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc201 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc202 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc203 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc204 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc205 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc206 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc207 15>, /* egress slice 1 */
    		       <&main_pktdma 0x4200 15>, /* ingress slice 0 */
    		       <&main_pktdma 0x4201 15>, /* ingress slice 1 */
    		       <&main_pktdma 0x4202 0>, /* mgmnt rsp slice 0 */
    		       <&main_pktdma 0x4203 0>; /* mgmnt rsp slice 1 */
    		dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
    			    "tx1-0", "tx1-1", "tx1-2", "tx1-3",
    			    "rx0", "rx1",
    			    "rxmgm0", "rxmgm1";
    
    		icssg1_emac0: ethernet-mii0 {
    			phy-handle = <&icssg1_phy1>;
    			phy-mode = "rgmii-rxid";
    			syscon-rgmii-delay = <&main_conf 0x4110>;
    			/* Filled in by bootloader */
    			local-mac-address = [00 00 00 00 00 00];
    		};
    
    		icssg1_emac1: ethernet-mii1 {
    			syscon-rgmii-delay = <&main_conf 0x4114>;
    			/* Filled in by bootloader */
    			local-mac-address = [00 00 00 00 00 00];
    			status = "disabled";
    		};
    	};
    };
    
    /* Modify sram label present in k3-am64-main.dtsi */
    &oc_sram {
        main_r5fss0_core0_sram: r5f-sram@80000 {
            reg = <0x80000 0x40000>;
        };
        
        main_r5fss0_core1_sram: r5f-sram@c0000 {
            reg = <0xc0000 0x40000>;
        };
        
        main_r5fss1_core0_sram: r5f-sram@100000 {
            reg = <0x100000 0x40000>;
        };
        
        main_r5fss1_core1_sram: r5f-sram@140000 {
            reg = <0x140000 0x40000>;
        };
    };
    
    &main_r5fss0_core0 {
    	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
    	memory-region = <&main_r5fss0_core0_dma_memory_region>,
    			<&main_r5fss0_core0_memory_region>;
    	sram = <&main_r5fss0_core0_sram>;
    };
    
    &main_r5fss0_core1 {
    	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
    	memory-region = <&main_r5fss0_core1_dma_memory_region>,
    			<&main_r5fss0_core1_memory_region>;
    	sram = <&main_r5fss0_core1_sram>;
    };
    
    &main_r5fss1_core0 {
    	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
    	memory-region = <&main_r5fss1_core0_dma_memory_region>,
    			<&main_r5fss1_core0_memory_region>;
    	sram = <&main_r5fss1_core0_sram>;
    };
    
    &main_r5fss1_core1 {
    	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
    	memory-region = <&main_r5fss1_core1_dma_memory_region>,
    			<&main_r5fss1_core1_memory_region>;
    	sram = <&main_r5fss1_core1_sram>;
    };
    
    &mcu_m4fss {
    	mboxes = <&mailbox0_cluster6 &mbox_m4_0>;
    	memory-region = <&mcu_m4fss_dma_memory_region>,
    			<&mcu_m4fss_memory_region>;
    };
    
    &main_pmx0 {
    	main_mmc1_pins_default: main-mmc1-pins-default {
    		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_uart0_pins_default: main-uart0-pins-default {
    		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-pins-default {
    		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_i2c1_pins_default: main-i2c1-pins-default {
    		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-pins-default {
    		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-pins-default {
    		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-pins-default {
    		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-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
    		>;
    	};
    
    	ospi0_pins_default: ospi0-pins-default {
    		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_mcan0_pins_default: main-mcan0-pins-default {
    		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-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
    			AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
    		>;
    	};
    
    	icssg1_mdio1_pins_default: icssg1-mdio1-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* (Y6) PRG1_MDIO0_MDC */
    			AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA6) PRG1_MDIO0_MDIO */
    		>;
    	};
    
    	icssg1_rgmii1_pins_default: icssg1-rgmii1-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
    			AM64X_IOPAD(0x00bc, PIN_INPUT, 2) /* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
    			AM64X_IOPAD(0x00c0, PIN_INPUT, 2) /* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
    			AM64X_IOPAD(0x00c4, PIN_INPUT, 2) /* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
    			AM64X_IOPAD(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
    			AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
    			AM64X_IOPAD(0x00e4, PIN_INPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
    			AM64X_IOPAD(0x00e8, PIN_INPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
    			AM64X_IOPAD(0x00ec, PIN_INPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
    			AM64X_IOPAD(0x00f0, PIN_INPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
    			AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
    			AM64X_IOPAD(0x00f4, PIN_INPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
    		>;
    	};
    
    	icssg1_iep0_pins_default: icssg1-iep0-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0104, PIN_OUTPUT, 2) /* (W7) PRG1_PRU0_GPO19.PRG1_IEP0_EDC_SYNC_OUT0 */
    		>;
    	};
    
    	main_ecap0_pins_default: main-ecap0-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
    		>;
    	};
    };
    
    &main_uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart0_pins_default>;
    };
    
    /* main_uart1 is reserved for firmware usage */
    &main_uart1 {
    	status = "reserved";
    };
    
    &main_uart2 {
    	status = "disabled";
    };
    
    &main_uart3 {
    	status = "disabled";
    };
    
    &main_uart4 {
    	status = "disabled";
    };
    
    &main_uart5 {
    	status = "disabled";
    };
    
    &main_uart6 {
    	status = "disabled";
    };
    
    &mcu_uart0 {
    	status = "disabled";
    };
    
    &mcu_uart1 {
    	status = "disabled";
    };
    
    &main_i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <400000>;
    
    	exp1: gpio@22 {
    		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>;
    	};
    };
    
    /* mcu_gpio0 is reserved for mcu firmware usage */
    &mcu_gpio0 {
    	status = "reserved";
    };
    
    &mcu_i2c0 {
    	status = "disabled";
    };
    
    &mcu_i2c1 {
    	status = "disabled";
    };
    
    &mcu_spi0 {
    	status = "disabled";
    };
    
    &mcu_spi1 {
    	status = "disabled";
    };
    
    &main_spi0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_spi0_pins_default>;
    	ti,pindir-d0-out-d1-in = <1>;
    	eeprom@0 {
    		compatible = "microchip,93lc46b";
    		reg = <0>;
    		spi-max-frequency = <1000000>;
    		spi-cs-high;
    		data-size = <16>;
    	};
    };
    
    &sdhci0 {
    	/* emmc */
    	bus-width = <8>;
    	non-removable;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &sdhci1 {
    	/* SD/MMC */
    	vmmc-supply = <&vdd_mmc1>;
    	pinctrl-names = "default";
    	bus-width = <4>;
    	pinctrl-0 = <&main_mmc1_pins_default>;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &usbss0 {
    	ti,vbus-divider;
    	ti,usb2-only;
    };
    
    &usb0 {
    	dr_mode = "otg";
    	maximum-speed = "high-speed";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb0_pins_default>;
    };
    
    &cpsw3g {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mdio1_pins_default
    		     &rgmii1_pins_default
    		     &rgmii2_pins_default>;
    
    	cpts@3d000 {
    		ti,pps = <7 1>;
    	};
    };
    
    &cpsw_port1 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy0>;
    };
    
    &cpsw_port2 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy3>;
    };
    
    &cpsw3g_mdio {
    	cpsw3g_phy0: ethernet-phy@0 {
    		reg = <0>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    	};
    };
    
    #define TS_OFFSET(pa, val)     (0x4+(pa)*4) (0x10000 | val)
    
    &timesync_router {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mcu_cpts_pps>;
    
    	/* Example of the timesync routing */
    	mcu_cpts_pps: mcu-cpts-pps {
    		pinctrl-single,pins = <
    				/* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
    				TS_OFFSET(37, 22)
    				/* pps [cpts genf1] in22 -> out25 [SYNC1_OUT pin] */
    				TS_OFFSET(25, 22)
    				>;
    	};
    };
    
    &mailbox0_cluster2 {
    	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_cluster3 {
    	status = "disabled";
    };
    
    &mailbox0_cluster4 {
    	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_cluster5 {
    	status = "disabled";
    };
    
    &mailbox0_cluster6 {
    	mbox_m4_0: mbox-m4-0 {
    		ti,mbox-rx = <0 0 2>;
    		ti,mbox-tx = <1 0 2>;
    	};
    };
    
    &mailbox0_cluster7 {
    	status = "disabled";
    };
    
    &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 {
    	reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
    	phys = <&serdes0_pcie_link>;
    	phy-names = "pcie-phy";
    	num-lanes = <1>;
    };
    
    &pcie0_ep {
    	phys = <&serdes0_pcie_link>;
    	phy-names = "pcie-phy";
    	num-lanes = <1>;
    	status = "disabled";
    };
    
    &tscadc0 {
    	/* ADC is reserved for R5 usage */
    	status = "reserved";
    };
    
    &ospi0 {
    	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>;
    		cdns,phy-mode;
    		#address-cells = <1>;
    		#size-cells = <1>;
    	};
    };
    
    &main_mcan0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcan0_pins_default>;
    	phys = <&transceiver1>;
    };
    
    &main_mcan1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcan1_pins_default>;
    	phys = <&transceiver2>;
    };
    
    &icssg0_mdio {
    	status = "disabled";
    };
    
    &icssg1_mdio {
    	pinctrl-names = "default";
    	
    	icssg1_phy1: ethernet-phy@0 {
    		reg = <0xf>;
    		tx-internal-delay-ps = <250>;
    		rx-internal-delay-ps = <2000>;
    	};
    };
    
    &icssg1_iep0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&icssg1_iep0_pins_default>;
    };
    
    &ecap0 {
    	/* PWM is available on Pin 1 of header J12 */
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_ecap0_pins_default>;
    };
    

    自从尝试安装最新的 MCU_PLUS_SDK (08_06)和最新的 SYSCFG 版本1.16后、我也开始看到以下错误。 之前、我处理的是 MCU_PLUS_SDK 版本08_05和 syscfg 版本1.14。 即使我删除了08_06版本、仍然无法构建、原因是以下错误:

    在我卸载 SYSCFG 1.16并仅保留 SYSCFG 1.14并重新启动我的 PC 后、我在加载 hello-world CCS 工程时看到以下错误-

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    K3资源分区工具捆绑在 board-support/k3-respart-tool 下的 Linux 处理器 SDK 中。

    我将把您的线程重新分配给另一位团队成员、以便就 CCS 项目问题发表意见。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    并且自从我尝试安装最新的 MCU_PLUS_SDK (08_06)和最新的 SYSCFG 版本1.16以来、我也开始看到以下错误。 之前、我处理的是 MCU_PLUS_SDK 版本08_05和 syscfg 版本1.14。 即使我删除了08_06版本、仍然无法构建、因为下面的错误-

    最新版本的  MCU + SDK  不兼容 SysConfig v1.16 工具。

    在正式文件中、还建议使用 SysConfig v1.14。   如需更多信息、请参阅 SDK 工具。

    在我卸载 SYSCFG 1.16并仅保留 SYSCFG 1.14并重新启动 PC 后,我在加载 hello-world CCS 项目时看到以下错误-

    您能否提供在导入 hello world 示例时出现的问题的完整错误日志?

    谢谢。此致、

    图沙尔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    早上好!

    我尝试了以下产品-

    1.调试-我能够附加到 CCS 并在  R5F0内核上加载"ipc_rpmsg_echo_linux_am64x-evm_r5fs0-0_freertos_ti-arm-clang"时添加一个断点。 我无法真正调试 EtherCAT-Beckhoff 示例。 这可能是因为、当我们在 R5F0上加载程序并启动内核时、它就会立即启动。 问题在于 init()函数。

    2.使用资源分区工具-我的观察结果如下:

    使用了 k3-respart-tool、遵循上述论坛博文对 R5F0进行更改并生成了 sciclient_defaultBoardcfg_rm_mcusdk.c、复制并重命名为  sources/sciclient/sciclient_default_boardcfg/am64x_am243x  

    3.将 DIP 开关更改为 UART 引导模式,然后运行

    C:\HBK\dev\ti\mcu_plus_sdk_am64x_08_05_00_24\tools\boot>python uart_uniflash.py -p COM4 --cfg=C:\HBK\dev\ti\mcu_plus_sdk_am64x_08_05_00_24\examples\drivers\boot\sbl_emmc_linux\am64x-evm\r5fss0-0_nortos\default_sbl_emmc_linux_hs.cfg
    
    Parsing config file ...
    Parsing config file ... SUCCESS. Found 4 command(s) !!!
    
    Executing command 1 of 4 ...
    Found flash writer ... sending sbl_prebuilt/am64x-evm/sbl_uart_uniflash.release.hs_fs.tiimage
    Sent flashwriter sbl_prebuilt/am64x-evm/sbl_uart_uniflash.release.hs_fs.tiimage of size 297306 bytes in 29.57s.
    
    Executing command 2 of 4 ...
    Command arguments : --file=C:/HBK/dev/ti/workspaces/sitara01/sbl_emmc_linux_am64x-evm_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_emmc_linux.Debug.hs_fs.tiimage --operation=flash-emmc --flash-offset=0x0
    Sent C:/ti/workspaces/sitara01/sbl_emmc_linux_am64x-evm_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_emmc_linux.Debug.hs_fs.tiimage of size 320085 bytes in 32.24s.
    [STATUS] SUCCESS !!!
    
    Executing command 3 of 4 ...
    Command arguments : --file=C:/HBK/dev/ti/workspaces/sitara01/ipc_rpmsg_echo_linux_am64x-evm_r5fss0-0_freertos_ti-arm-clang/Debug/ipc_rpmsg_echo_linux_am64x-evm_r5fss0-0_freertos_ti-arm-clang.appimage --operation=flash-emmc --flash-offset=0x800000
    Sent C:/ti/workspaces/sitara01/ipc_rpmsg_echo_linux_am64x-evm_r5fss0-0_freertos_ti-arm-clang/Debug/ipc_rpmsg_echo_linux_am64x-evm_r5fss0-0_freertos_ti-arm-clang.appimage of size 64640 bytes in 9.02s.
    [STATUS] SUCCESS !!!
    
    Executing command 4 of 4 ...
    Command arguments : --file=../../tools/boot/linuxAppimageGen/linux.appimage.hs_fs --operation=flash-emmc --flash-offset=0xA00000
    Sent ../../tools/boot/linuxAppimageGen/linux.appimage.hs_fs of size 849099 bytes in 82.55s.
    [STATUS] SUCCESS !!!
    
    All commands from config file are executed !!!

    
    

    成功运行脚本后、将 DIP 开关更改为 EMMC 引导模式。

    EVM 启动时我看到以下错误-

    ▒
    DMSC Firmware Version 8.5.3--v08.05.03 (Chill Capybar
    DMSC Firmware revision 0x8
    DMSC ABI revision 3.1
    
    Some tests have failed!!

    我认为我们的 Sitara 板仅适用于 HS_FS 版本。 下面是 default_sbl_emmc_linux_hs.cfg

    #-----------------------------------------------------------------------------#
    #                                                                             #
    #      DEFAULT CONFIGURATION FILE TO BE USED WITH THE FLASHWRITER SCRIPT      #
    #                               FOR HS DEVICE                                 #
    #                                                                             #
    #-----------------------------------------------------------------------------#
    #
    # By default this config file,
    # - points to pre-built flash writer, bootloader for this HS EVM
    # - The application image points to relative path of the ipc rpmsg linux application image for this HS EVM
    #   - Make sure this application is built before running this script
    # - You can customized this config file to point to your own bootloader and/or application images
    # - You can use --operation=flashverify-emmc if you just want to verify the flash contents and not flash the file.
    #
    
    # First point to sbl_uart_uniflash binary, which function's as a server to flash one or more files to eMMC
    --flash-writer=sbl_prebuilt/am64x-evm/sbl_uart_uniflash.release.hs_fs.tiimage
    
    # Now send one or more files to flash or flashverify as needed. The order of sending files does not matter
    
    # When sending bootloader make sure to flash at offset 0x0. ROM expects bootloader at offset 0x0 of eMMC
    --file=C:/ti/workspaces/sitara01/sbl_emmc_linux_am64x-evm_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_emmc_linux.Debug.hs_fs.tiimage --operation=flash-emmc --flash-offset=0x0
    
    # When sending application image, make sure to flash at offset 0x800000 (default) or to whatever offset your bootloader is configured for
    --file=C:/ti/workspaces/sitara01/ipc_rpmsg_echo_linux_am64x-evm_r5fss0-0_freertos_ti-arm-clang/Debug/ipc_rpmsg_echo_linux_am64x-evm_r5fss0-0_freertos_ti-arm-clang.appimage --operation=flash-emmc --flash-offset=0x800000
    
    # Linux image is flashed at 0xA00000 or to whatever offset your bootloader is configured for
    --file=../../tools/boot/linuxAppimageGen/linux.appimage.hs_fs --operation=flash-emmc --flash-offset=0xA00000
    
    

    我将上面的 ipc_rpmsg_echo_linux 文件更改如下并重试、但仍然看到相同的问题"某些测试失败"

    --file=C:/ti/workspaces/sitara02/ipc_rpmsg_echo_linux_am64x-evm_system_freertos/Debug/ipc_rpmsg_echo_linux_system.appimage --operation=flash-emmc --flash-offset=0x800000

    我之前使用的是 SD 卡和 SD 卡引导模式。

    此外、我还无法找到"一些测试失败了"背后的原因。 您能指出这里可能会出什么问题吗?

    谢谢。

    安基塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    您将为 IPC 示例刷写 GP 应用图像(.appimage)。 这就是为什么、SBL 说"某些测试失败了"。 请刷写 IPC 示例的 HS-FS 应用映像(.appimage.hs_fs)。 之后、应该可以成功引导。

    此致、

    普拉桑特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Prashant:

    我尝试了 hs_fs appimage。 现在我看到下面的错误-

    ▒
    DMSC Firmware Version 8.5.3--v08.05.03 (Chill Capybar
    DMSC Firmware revision 0x8
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : undefined
    [BOOTLOADER_PROFILE] Boot Image Size  : 0 KB
    [BOOTLOADER_PROFILE] Cores present    :
    m4f0-0
    [BOOTLOADER PROFILE] System_init                      :     387243us
    [BOOTLOADER PROFILE] Drivers_open                     :     765607us
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us
    [BOOTLOADER PROFILE] App_loadImages                   :     992630us
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :    3579619us
    
    Image loading done, switching to application ...
    Starting linux and RTOS/Baremetal applications
    
    ERROR: Bootloader_socCpuResetReleaseSel

    Linux appimage 可能有什么问题吗?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    Linux 应用程序映像可能有问题吗?  [/报价]

    大多数情况下是这样。 您是如何创建 Linux Appimage 的。 请确保您正在使用 ATF & OPTEE 的无符号二进制文件、否则引导失败。 PSDK v8.4和 v8.5不包含 ATF 和 OPTEE 的无符号二进制文件。 因此、如果您使用这些 PSDK 版本、则必须自己创建 ATF & OPTEE。

    但是、从 PSDK v8.6开始、PSDK 附带无符号的 ATF & OPTEE 二进制文件。 您可以使用此 PSDK 版本来获取二进制文件。 为方便起见、我将附带 PSDK v8.6中的无符号二进制文件、您可以使用这些二进制文件来生成 Linux Appimage。

    e2e.ti.com/.../2273.prebuilt_2D00_images.zip

    此致、

    普拉桑特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Prashant:

    我下载了预构建图像"am64xx-hs-evm-linux-sdk-bin-08.02.00.23.tar.xz " 从这里 PROCESSOR-SDK-AM64X 软件开发套件(SDK)| TI.com 、以及 我执行了此处所述的步骤 AM64x MCU+ SDK:引导工具 以生成 Linux 应用程序映像。 当我在 Linux 上看到一个错误时、我是从 Windows 执行此操作的。

    [linuxAppimageGen]$ make linux.appimage
    /home/ti/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf/bin/aarch64-none-elf-ld -b binary -A aarch64 --oformat elf64-littleaarch64 --section-start=.data=0x0701a0000 -e 0x0701a0000 /home/angupta/ti/ti-processor-sdk-linux-am64xx-evm-08.06.00.42/board-support/prebuilt-images/bl31.bin -o bl31.elf
    make: /home/ti/gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf/bin/aarch64-none-elf-ld: No such file or directory

    我现在尝试使用您共享的预构建映像。 将在此处发布结果。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    您在 Linux 上看到的错误很可能是因为所需的编译器未安装在${home}/ti 目录中。 此外、您使用的是 PSDK v8.6、但是您使用的是已签名的 bl31.bin 和 bl32.bin 二进制文件。 无符号二进制文件名为 bl31.bin.unsigned 和 bl32.bin.unsigned。

    请参阅以下常见问题解答(尚未完成)、它应该会清除一些内容

    https://e2e.ti.com/.../faq-how-to-generate-linux-appimage-for-linux-sbls-in-mcu-sdk

    此致、

    普拉桑特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢。 我正在遵循您的建议。 但是、由于我使用了其他映像的 hs_fs 版本、因此我对 linux.appimage 和 u-boot-spl.bin-am64xx-evm 有疑问。 这些图像不需要是 hs_fs?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    若要生成 Linux Appimage、不需要 ATF、OPTEE 和 A53 SPL 的带符号二进制文件、因为 MCU+ SDK 将它们打包在一个生成 linux.appimge 的映像中、然后对该映像签名而不是生成 linux.appimage.hs_fs。 然后、对于 HS-FS 电路板、您可以将这个 linux.appimage.hs_fs

    运行时的 SBL 对映像进行身份验证、如果成功地将映像中的每个组件加载到其各自的地址。

    因此、简单地说、对于任何开发板、您都必须使用无符号二进制文件。 MCU+ SDK 会将这些内容打包成一个文件、并为 HS 板签署整个映像本身。

    此致、

    普拉桑特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Prashant:

    我尝试在 Linux 和 Windows 上创建 linuxappimage。

    在 Linux 上、我下载了缺失的编译器。 下面是错误和 config.mak 文件

    export MCU_PLUS_SDK_PATH?=$(abspath ../../..)
    include $(MCU_PLUS_SDK_PATH)/imports.mak
    include $(MCU_PLUS_SDK_PATH)/devconfig/devconfig.mak
    
    APP_IMAGE_SIGN_CMD = $(MCU_PLUS_SDK_PATH)/tools/boot/signing/appimage_x509_cert_gen.py
    
    
    # User needs to point to the path where the unsigned ATF (bl31), OPTEE (bl32.bin)
    # and A53 SPL (u-boot-spl.bin) binaries are build.
    # User needs to build these binaries as mentioned in the Linux SDK documentation
    # The prebuilt images available with Linux SDK is the signed ATF, OPTEE and A53 SPL,
    # but we requires unsigned images to create the linux.appimage and sign the final image
    # for HS-FS/HS devices
    PSDK_LINUX_IMAGE_PATH=$(HOME)/prebuilt_spl
    
    #Path for prebuit images in Processor SDK linux
    #PSDK_LINUX_PREBUILT_IMAGES=$(PSDK_LINUX_IMAGE_PATH)
    PSDK_LINUX_PREBUILT_IMAGES=/home/angupta/ti/ti-processor-sdk-linux-am64xx-evm-08.06.00.42/board-support/prebuilt-images
    
    #Input linux binaries
    ATF_BIN_NAME=bl31.bin.unsigned
    OPTEE_BIN_NAME=bl32.bin.unsigned
    SPL_BIN_NAME=u-boot-spl.bin-am64xx-evm
    
    #Linux image load address
    ATF_LOAD_ADDR=0x0701a0000
    OPTEE_LOAD_ADDR=0x9e800000
    SPL_LOAD_ADDR=0x80080000
    
    #Output appimage name
    LINUX_BOOTIMAGE_NAME=linux.appimage.hs_fs
    

    这是 Linux 上的错误-

    [linuxAppimageGen]$ make -s all
    Creating ATF RPRC image
    make: *** [makefile:99: bl31.bin.rprc] Error 255

    我曾尝试过与您共享的无符号图像,但我仍然看到相同的错误。

    在 Windows 上、make 会导致如下错误、但它确实会创建 Linux 附加映像。  

    C:\HBK\dev\ti\mcu_plus_sdk_am64x_08_05_00_24\tools\boot\linuxAppimageGen>gmake -s all
    Creating ATF RPRC image
    Parsing the input object file, bl31.bin.elf.
    File conversion complete!
    Creating OPTEE RPRC image
    Parsing the input object file, bl32.bin.elf.
    File conversion complete!
    Creating SPL RPRC image
    Parsing the input object file, u-boot-spl.elf.
    File conversion complete!
    .
    Creating
    Generating certificate for linux.appimage ...
    process_begin: CreateProcess(NULL, C:/ti/ccs1210/ccs/utils/cygwin/rm -f temp_stdout.txt, ...) failed.
    make (e=2): The system cannot find the file specified.
    makefile:77: recipe for target 'linux.appimage.hs_fs' failed
    gmake: *** [linux.appimage.hs_fs] Error 2

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    很抱歉给您带来不便、但 MCU+ SDK 似乎正在使用只能在 Windows 上运行的工具(out2rprpc.exe)来生成 RPRC 映像。 您现在可以坚持到 Windows 来创建 Linux Appimage。 如果您需要、我们可以讨论稍后在 Linux 上生成 Linux Appimage 的方法。

    在 Windows 上,使结果产生如下错误,但它的确创建了 Linux 附加图像。

    出现此错误可能是因为未安装 CCS1210、因此系统无法找到 rm 命令的路径。 您可以忽略此错误、因为它是由删除生成的临时文件的命令生成的。

    还有一点:我看到您的 config.mak 文件将 linux_BOOTIMAGE_NAME 更新为 linux.appimage.hs_fs。 请注意、不应修改此变量。 由于 MCU+ SDK 使用  Linux_BOOTIMAGE_NAME 中定义的基名自动生成一个 HS-FS 附加图像。

    因此、如果您要将 linux_BOOTIMAGE_NAME 设置 为 linux.appimage.hs_fs、MCU+ SDK 将生成名为 linux.appimage.hs_fs_fs 的 HS-SF 应用映像。

    简而言之、您需要在 config.mak 中编辑的唯一变量是包含 ATF、OPTEE 和 A53 SPL 的路径和名称的变量。 其他一切都保持不变。

    此致、

    普拉桑特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢 Prashant。 确实有所帮助。 我更正了 CONFIG.mak 作为您的建议、并使用了 Windows 生成的 linux.appimage.hs_fs

    电路板启动、但仍然卡住。 以下是日志-

    I
    ▒
    DMSC Firmware Version 8.5.3--v08.05.03 (Chill Capybar
    DMSC Firmware revision 0x8
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : undefined
    [BOOTLOADER_PROFILE] Boot Image Size  : 0 KB
    [BOOTLOADER_PROFILE] Cores present    :
    m4f0-0
    [BOOTLOADER PROFILE] System_init                      :     385112us
    [BOOTLOADER PROFILE] Drivers_open                     :     765607us
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us
    [BOOTLOADER PROFILE] App_loadImages                   :     992413us
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :    3638568us
    
    Image loading done, switching to application ...
    Starting linux and RTOS/Baremetal applications
    
    ENOTICE: R BL3R1: vO2.R8(relea:se):v2.8 -226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 13:45:56, Feb 27 2023
    I/TC:
    I/TC: OP-TEE version: 3.20.0 (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 Mon Feb 27 13:46:53 UTC 2023 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.5.3--v08.05.03 (Chill Capybar')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    

    我不能理解现在可能会有什么错。 您能评论一下吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    因此、Linux Appimage 即可正常启动。 现在、引导 Linux 的下一项工作就要完成了。 您缺少的部分是 U-Boot 映像。

    请注意、Linux 应用映像仅包含 A53 SPL 映像、而不包含正确的 U-Boot 本身。 A53 SPL 引导 U-Boot、然后由 U-Boot 从 SD 卡引导 Linux 内核。

    在 PSDK 预编译映像路径中、您会找到名为 u-boot.img 的 U-Boot 映像。 您必须在偏移量0x300000处刷写此映像。 要刷写它、您可以在您用于执行刷写的刷写配置文件(.cfg)中添加以下行。

    --file=<path to u-boot.img> --operation=flash --flash-offset=0x300000

    这应该在适当偏移处刷写 U-Boot 映像。 然后、A53 SPL 应能够引导 U-Boot。 最后、如果您在插入 SD 卡时刷写了 WIC 映像、U-Boot 将从 SD 卡引导 Linux 内核。

    此致、

    普拉桑特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    抱歉、我没有正确看到日志。 我仅看到 ATF 和 OPTEE 日志。 A53 SPL 似乎未启动。 一旦 A53 SPL 也开始工作、您就可以按照上述对闪存 U-Boot 的响应进行操作。

    目前、您能否确认您是否共享了完整的日志。 如果是、则 A53无法启动。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    是的、我确实共享了所有日志。 我还尝试了放入 uboot 映像、但我仍然看到器件卡住了与之前相同的日志。

    C:\HBK\dev\ti\mcu_plus_sdk_am64x_08_05_00_24\tools\boot>python uart_uniflash.py -p COM4 --cfg=C:\HBK\dev\ti\mcu_plus_sdk_am64x_08_05_00_24\examples\drivers\boot\sbl_emmc_linux\am64x-evm\r5fss0-0_nortos\default_sbl_emmc_linux_hs.cfg
    
    Parsing config file ...
    Parsing config file ... SUCCESS. Found 5 command(s) !!!
    
    Executing command 1 of 5 ...
    Found flash writer ... sending sbl_prebuilt/am64x-evm/sbl_uart_uniflash.release.hs_fs.tiimage
    Sent flashwriter sbl_prebuilt/am64x-evm/sbl_uart_uniflash.release.hs_fs.tiimage of size 297306 bytes in 29.39s.
    
    Executing command 2 of 5 ...
    Command arguments : --file=C:/HBK/dev/ti/workspaces/sitara01/sbl_emmc_linux_am64x-evm_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_emmc_linux.Debug.hs_fs.tiimage --operation=flash-emmc --flash-offset=0x0
    Sent C:/HBK/dev/ti/workspaces/sitara01/sbl_emmc_linux_am64x-evm_r5fss0-0_nortos_ti-arm-clang/Debug/sbl_emmc_linux.Debug.hs_fs.tiimage of size 320085 bytes in 32.22s.
    [STATUS] SUCCESS !!!
    
    Executing command 3 of 5 ...
    Command arguments : --file=C:/HBK/dev/ti/workspaces/sitara02/ipc_rpmsg_echo_linux_am64x-evm_system_freertos/Debug/ipc_rpmsg_echo_linux_system.appimage.hs_fs --operation=flash-emmc --flash-offset=0x800000
    Sent C:/HBK/dev/ti/workspaces/sitara02/ipc_rpmsg_echo_linux_am64x-evm_system_freertos/Debug/ipc_rpmsg_echo_linux_system.appimage.hs_fs of size 321163 bytes in 50.81s.
    [STATUS] SUCCESS !!!
    
    Executing command 4 of 5 ...
    Command arguments : --file=../../tools/boot/linuxAppimageGen/linux.appimage.hs_fs --operation=flash-emmc --flash-offset=0xA00000
    Sent ../../tools/boot/linuxAppimageGen/linux.appimage.hs_fs of size 889915 bytes in 106.3s.
    [STATUS] SUCCESS !!!
    
    Executing command 5 of 5 ...
    Command arguments : --file=C:/HBK/dev/ti/ti-processor-sdk-linux-am64xx-evm-08.06.00.42/board-support/prebuilt-images/u-boot.img --operation=flash --flash-offset=0x300000
    Sent C:/HBK/dev/ti/ti-processor-sdk-linux-am64xx-evm-08.06.00.42/board-support/prebuilt-images/u-boot.img of size 1131919 bytes in 112.01s.
    [STATUS] SUCCESS !!!
    
    All commands from config file are executed !!!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    Pleaes 让我知道您是否正在使用定制电路板。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是该板的图片-

    这是  TMDS64EVM 电路板、不是定制电路板。

    我还尝试按如下所示刷写 u-boot、即操作从"flash"更改为"flash-emmc"、但日志中的更改仍然没有变化。

    -文件= --operation=flash-eMMC --flash-offset=0x300000

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    感谢您分享电路板的图片。 它有所帮助!

    --file= --operation=flash-eMMC --flash-offset=0x300000[/报价]

    很抱歉、我没有注意到您在使用 eMMC。 flash-eMMC 是闪存到 eMMC 的正确操作。

    接下来、 附加一个 A53 SPL 二进制文件。 请尝试引导使用附加的 A53 SPL 二进制文件生成的 Linux Appimage

    e2e.ti.com/.../u_2D00_boot_2D00_spl.bin_2D00_am64xx_2D00_evm

    此致、

    普拉桑特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Prashant:

    这次的引导日志已经超出了它的范围。 但是、它似乎仍停留在系统初始化阶段。

    我将在这里附加日志。

    DMSC Firmware Version 8.5.3--v08.05.03 (Chill Capybar
    DMSC Firmware revision 0x8
    DMSC ABI revision 3.1
    
    [BOOTLOADER_PROFILE] Boot Media       : undefined 
    [BOOTLOADER_PROFILE] Boot Image Size  : 0 KB 
    [BOOTLOADER_PROFILE] Cores present    : 
    m4f0-0
    [BOOTLOADER PROFILE] System_init                      :     385112us 
    [BOOTLOADER PROFILE] Drivers_open                     :     765607us 
    [BOOTLOADER PROFILE] Board_driversOpen                :          0us 
    [BOOTLOADER PROFILE] App_loadImages                   :     992368us 
    [BOOTLOADER_PROFILE] SBL Total Time Taken             :    3619745us 
    
    Image loading done, switching to application ...
    Starting linux and RTOS/Baremetal applications
    
    ENOTRICE:R  BOL31: Rv2.8(re:lease) :v2B.8-226-g2fcd408bb3-dirty
    NOTICE:  BL31: Built : 13:45:56, Feb 27 2023
    I/TC: 
    I/TC: OP-TEE version: 3.20.0 (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 Mon Feb 27 13:46:53 UTC 2023 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.5.3--v08.05.03 (Chill Capybar')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2021.01 (Jun 09 2023 - 16:22:16 +0530)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.5.3--v08.05.03 (Chill Capybar')
    Trying to boot from MMC1
    Authentication passed
    Authentication passed
    
    
    U-Boot 2021.01-g2ee8efd654 (Feb 27 2023 - 13:48:24 +0000)
    
    SoC:   AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 EVM
    Board: AM64-EVM rev C
    DRAM:  2 GiB
    NAND:  0 MiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from FAT... OK
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Unidentified board claims AM64-EVM in eeprom header
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  2  1  0 
    switch to partitions #0, OK
    mmc1 is current device
    SD/MMC found on device 1
    Failed to load 'boot.scr'
    1490 bytes read in 2 ms (727.5 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    Running uenvcmd ...
    1 bytes read in 1 ms (1000 Bytes/s)
    Already setup.
    19147264 bytes read in 763 ms (23.9 MiB/s)
    43071 bytes read in 6 ms (6.8 MiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 000000008fef2000, end 000000008fffffff ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.168-g2c23e6c538 (oe-user@oe-host) (aarch64-none-linux-gnu-gcc (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 9.2.1 20191025, GNU ld (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10)) 2.33.1.20191209) #1 SMP PREEMPT Mon Feb 27 14:16:24 UTC 2023
    [    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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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 512 MiB at 0x00000000dd000000
    [    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.2
    [    0.000000] percpu: Embedded 22 pages/cpu s51288 r8192 d30632 u90112
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=fc40000.spi.0:1m(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);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=47b6d3e0-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] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] Memory: 1398828K/2097152K available (11200K kernel code, 1162K rwdata, 4308K rodata, 1920K init, 431K bss, 174036K reserved, 524288K 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] GICv3: Distributor has no Range Selector support
    [    0.000000] GICv3: 16 PPIs implemented
    [    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 @0x0000000080030000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080040000
    [    0.000000] arch_timer: cp15 timer(s) running at 225.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x33e45310bc, max_idle_ns: 440795207391 ns
    [    0.000006] sched_clock: 56 bits at 225MHz, resolution 4ns, wraps every 4398046511101ns
    [    0.008627] Console: colour dummy device 80x25
    [    0.013228] Calibrating delay loop (skipped), value calculated using timer frequency.. 450.00 BogoMIPS (lpj=900000)
    [    0.023916] pid_max: default: 32768 minimum: 301
    [    0.028765] LSM: Security Framework initializing
    [    0.033567] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.041151] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.051386] rcu: Hierarchical SRCU implementation.
    [    0.056695] Platform MSI: msi-controller@1820000 domain created
    [    0.063088] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.072385] EFI services will not be available.
    [    0.077319] smp: Bringing up secondary CPUs ...
    I/TC: Secondary CPU 1 initializing
    I/TC: Secondary CPU 1 switching to normal world boot
    [    0.091035] Detected VIPT I-cache on CPU1
    [    0.091079] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
    [    0.091096] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000
    [    0.091166] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.091319] smp: Brought up 1 node, 2 CPUs
    [    0.120736] SMP: Total of 2 processors activated.
    [    0.125559] CPU features: detected: 32-bit EL0 Support
    [    0.130842] CPU features: detected: CRC32 instructions
    [    0.145998] CPU: All CPU(s) started at EL2
    [    0.150214] alternatives: patching kernel code
    [    0.156163] devtmpfs: initialized
    [    0.168474] KASLR disabled due to lack of seed
    [    0.173318] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.183305] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
    [    0.211412] pinctrl core: initialized pinctrl subsystem
    [    0.217565] DMI not present or invalid.
    [    0.222423] NET: Registered protocol family 16
    [    0.229219] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
    [    0.236639] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.244792] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.253737] thermal_sys: Registered thermal governor 'step_wise'
    [    0.253748] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.260439] cpuidle: using governor menu
    [    0.271453] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.278478] ASID allocator initialised with 65536 entries
    [    0.319746] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.326635] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.333493] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.340348] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.348886] cryptd: max_cpu_qlen set to 1000
    [    0.357425] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR2.0 JTAGID[0x1bb3802f] Detected
    [    0.366801] vsys_5v0: supplied by evm_12v0
    [    0.371567] vsys_3v3: supplied by evm_12v0
    [    0.376581] vddb_3v3_display: supplied by vsys_3v3
    [    0.383167] iommu: Default domain type: Translated 
    [    0.388662] SCSI subsystem initialized
    [    0.393295] mc: Linux media interface: v0.10
    [    0.397706] videodev: Linux video capture interface: v2.00
    [    0.403442] pps_core: LinuxPPS API ver. 1 registered
    [    0.408521] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.417874] PTP clock support registered
    [    0.421925] EDAC MC: Ver: 3.0.0
    [    0.426190] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100
    [    0.433196] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100
    [    0.440043] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100
    [    0.447677] FPGA manager framework
    [    0.451301] Advanced Linux Sound Architecture Driver Initialized.
    [    0.458958] clocksource: Switched to clocksource arch_sys_counter
    [    0.465495] VFS: Disk quotas dquot_6.6.0
    [    0.469595] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.484478] NET: Registered protocol family 2
    [    0.489284] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.498591] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
    [    0.507423] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.515691] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
    [    0.523492] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.530448] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
    [    0.537370] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
    [    0.544900] NET: Registered protocol family 1
    [    0.550074] RPC: Registered named UNIX socket transport module.
    [    0.556180] RPC: Registered udp transport module.
    [    0.561032] RPC: Registered tcp transport module.
    [    0.565847] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.572447] NET: Registered protocol family 44
    [    0.577017] PCI: CLS 0 bytes, default 64
    [    0.581984] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.595680] Initialise system trusted keyrings
    [    0.600579] workingset: timestamp_bits=46 max_order=19 bucket_order=0
    [    0.612720] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.619569] NFS: Registering the id_resolver key type
    [    0.624834] Key type id_resolver registered
    [    0.629120] Key type id_legacy registered
    [    0.633318] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.640187] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.648013] 9p: Installing v9fs 9p2000 file system support
    [    0.706499] Key type asymmetric registered
    [    0.710720] Asymmetric key parser 'x509' registered
    [    0.715779] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
    [    0.723349] io scheduler mq-deadline registered
    [    0.727983] io scheduler kyber registered
    [    0.735120] pinctrl-single 4084000.pinctrl: 33 pins, size 132
    [    0.741674] pinctrl-single f4000.pinctrl: 180 pins, size 720
    [    0.748858] pinctrl-single a40000.timesync-router: 512 pins, size 2048
    [    0.767885] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.794230] brd: module loaded
    [    0.806781] loop: module loaded
    [    0.811296] megasas: 07.714.04.00-rc1
    [    0.820719] tun: Universal TUN/TAP device driver, 1.6
    [    0.826879] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.833311] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.839437] sky2: driver version 1.30
    [    0.844806] VFIO - User Level meta-driver version: 0.3
    [    0.851683] i2c /dev entries driver
    [    0.857253] sdhci: Secure Digital Host Controller Interface driver
    [    0.863613] sdhci: Copyright(c) Pierre Ossman
    [    0.868605] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.876040] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.882756] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.891575] optee: probing for conduit method.
    I/TC: Reserved shared memory is enabled
    I/TC: Dynamic shared memory is enabled
    I/TC: Normal World virtualization support is disabled
    I/TC: Asynchronous notifications are disabled
    [    0.896182] optee: revision 3.20 (8e74d476)
    [    0.912904] optee: dynamic shared memory is enabled
    [    0.922735] optee: initialized driver
    [    0.929856] NET: Registered protocol family 17
    [    0.934672] 9pnet: Installing 9P2000 support
    [    0.939152] Key type dns_resolver registered
    [    0.944087] Loading compiled-in X.509 certificates
    [    0.969795] ti-sci 44043000.dmsc: ABI: 3.1 (firmware rev 0x0008 '8.5.3--v08.05.03 (Chill Capybar')
    [    1.037764] omap-gpmc 3b000000.memory-controller: GPMC revision 6.0
    [    1.044284] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.053167] omap_i2c 20000000.i2c: bus 0 rev0.12 at 100 kHz
    [    1.061368] pca953x 1-0022: supply vcc not found, using dummy regulator
    [    1.068373] pca953x 1-0022: using AI
    [    1.124954] Console: switching to mono frame buffer device 12x2
    [    1.159937] ssd1307fb 1-003c: fb0: Solomon SSD1307 framebuffer device registered, using 192 bytes of video memory
    [    1.170691] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
    [    1.177957] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz
    [    1.185180] omap_i2c 20030000.i2c: bus 3 rev0.12 at 100 kHz
    [    1.191546] ti-sci-intr bus@f4000:bus@4000000:interrupt-controller1: Interrupt Router 5 domain created
    [    1.201503] ti-sci-intr bus@f4000:interrupt-controller0: Interrupt Router 3 domain created
    [    1.210641] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
    [    1.233612] j721e-pcie f102000.pcie: host bridge /bus@f4000/pcie@f102000 ranges:
    [    1.241265] j721e-pcie f102000.pcie:       IO 0x0068001000..0x0068010fff -> 0x0068001000
    [    1.249566] j721e-pcie f102000.pcie:      MEM 0x0068011000..0x006fffffff -> 0x0068011000
    [    1.257864] j721e-pcie f102000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x0000000000
    [    1.370308] j721e-pcie f102000.pcie: Link up
    [    1.374904] j721e-pcie f102000.pcie: PCI host bridge to bus 0000:00
    [    1.381330] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    1.386951] pci_bus 0000:00: root bus resource [io  0x0000-0xffff] (bus address [0x68001000-0x68010fff])
    [    1.396654] pci_bus 0000:00: root bus resource [mem 0x68011000-0x6fffffff]
    [    1.403736] pci 0000:00:00.0: [104c:b010] type 01 class 0x060400
    [    1.409902] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0xfffffffff 64bit pref]
    [    1.417468] pci 0000:00:00.0: supports D1
    [    1.421576] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
    [    1.430546] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.439024] pci 0000:01:00.0: [10b5:8733] type 01 class 0x060400
    [    1.445215] pci 0000:01:00.0: reg 0x10: [mem 0x00000000-0x0003ffff]
    [    1.451926] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
    [    1.458283] pci 0000:01:00.0: 4.000 Gb/s available PCIe bandwidth, limited by 5.0 GT/s PCIe x1 link at 0000:00:00.0 (capable of 32.000 Gb/s with 5.0 GT/s PCIe x8 link)
    [    1.473856] pci 0000:01:00.1: [10b5:87d0] type 00 class 0x088000
    [    1.480052] pci 0000:01:00.1: reg 0x10: [mem 0x00000000-0x00001fff]
    [    1.486549] pci 0000:01:00.1: enabling Extended Tags
    [    1.492009] pci 0000:01:00.2: [10b5:87d0] type 00 class 0x088000
    [    1.498201] pci 0000:01:00.2: reg 0x10: [mem 0x00000000-0x00001fff]
    [    1.504697] pci 0000:01:00.2: enabling Extended Tags
    [    1.510150] pci 0000:01:00.3: [10b5:87d0] type 00 class 0x088000
    [    1.516357] pci 0000:01:00.3: reg 0x10: [mem 0x00000000-0x00001fff]
    [    1.516521] pci 0000:01:00.3: enabling Extended Tags
    [    1.516937] pci 0000:01:00.4: [10b5:87d0] type 00 class 0x088000
    [    1.516971] pci 0000:01:00.4: reg 0x10: [mem 0x00000000-0x00001fff]
    [    1.517059] pci 0000:01:00.4: enabling Extended Tags
    [    1.529865] pci 0000:01:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.558913] pci 0000:02:01.0: [10b5:8733] type 01 class 0x060400
    [    1.565396] pci 0000:02:01.0: PME# supported from D0 D3hot D3cold
    [    1.572153] pci 0000:02:02.0: [10b5:8733] type 01 class 0x060400
    [    1.578624] pci 0000:02:02.0: PME# supported from D0 D3hot D3cold
    [    1.585356] pci 0000:02:03.0: [10b5:8733] type 01 class 0x060400
    [    1.591848] pci 0000:02:03.0: PME# supported from D0 D3hot D3cold
    [    1.598560] pci 0000:02:04.0: [10b5:8733] type 01 class 0x060400
    [    1.605022] pci 0000:02:04.0: PME# supported from D0 D3hot D3cold
    [    1.611983] pci 0000:02:08.0: [10b5:8733] type 01 class 0x060400
    [    1.618452] pci 0000:02:08.0: PME# supported from D0 D3hot D3cold
    [    1.625178] pci 0000:02:09.0: [10b5:8733] type 01 class 0x060400
    [    1.631655] pci 0000:02:09.0: PME# supported from D0 D3hot D3cold
    [    1.638369] pci 0000:02:0a.0: [10b5:8733] type 01 class 0x060400
    [    1.644834] pci 0000:02:0a.0: PME# supported from D0 D3hot D3cold
    [    1.651570] pci 0000:02:0b.0: [10b5:8733] type 01 class 0x060400
    [    1.658036] pci 0000:02:0b.0: PME# supported from D0 D3hot D3cold
    [    1.664754] pci 0000:02:0c.0: [10b5:8733] type 01 class 0x060400
    [    1.671235] pci 0000:02:0c.0: PME# supported from D0 D3hot D3cold
    [    1.677969] pci 0000:02:0d.0: [10b5:8733] type 01 class 0x060400
    [    1.684431] pci 0000:02:0d.0: PME# supported from D0 D3hot D3cold
    [    1.692655] pci 0000:02:01.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.700873] pci 0000:02:02.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.709083] pci 0000:02:03.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.717308] pci 0000:02:04.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.725545] pci 0000:02:08.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.725566] pci 0000:02:09.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.725585] pci 0000:02:0a.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.725679] pci 0000:02:0b.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.725699] pci 0000:02:0c.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.725719] pci 0000:02:0d.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.725996] pci 0000:03:00.0: [12d8:e130] type 01 class 0x060400
    [    1.726144] pci 0000:03:00.0: enabling Extended Tags
    [    1.726176] pci 0000:03:00.0: Enable PCIe Retrain Link quirk
    [    1.726336] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
    [    1.737793] pci 0000:03:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    1.811061] pci_bus 0000:04: extended config space not accessible
    [    1.820182] pci_bus 0000:04: busn_res: [bus 04-ff] end is updated to 04
    [    1.826968] pci_bus 0000:03: busn_res: [bus 03-ff] end is updated to 04
    [    1.836579] pci_bus 0000:05: busn_res: [bus 05-ff] end is updated to 05
    [    1.843613] pci 0000:06:00.0: [10ee:1016] type 00 class 0x050000
    [    1.849816] pci 0000:06:00.0: reg 0x10: [mem 0x00000000-0x000fffff]
    [    1.856546] pci 0000:06:00.0: PME# supported from D1 D2 D3hot
    [    1.865464] pci_bus 0000:06: busn_res: [bus 06-ff] end is updated to 06
    [    1.875079] pci_bus 0000:07: busn_res: [bus 07-ff] end is updated to 07
    [    1.884659] pci_bus 0000:08: busn_res: [bus 08-ff] end is updated to 08
    [    1.894263] pci_bus 0000:09: busn_res: [bus 09-ff] end is updated to 09
    [    1.903875] pci_bus 0000:0a: busn_res: [bus 0a-ff] end is updated to 0a
    [    1.913480] pci_bus 0000:0b: busn_res: [bus 0b-ff] end is updated to 0b
    [    1.923124] pci_bus 0000:0c: busn_res: [bus 0c-ff] end is updated to 0c
    [    1.933050] pci_bus 0000:0d: busn_res: [bus 0d-ff] end is updated to 0d
    [    1.933071] pci_bus 0000:02: busn_res: [bus 02-ff] end is updated to 0d
    [    1.933089] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 0d
    [    1.933222] pci 0000:00:00.0: BAR 0: no space for [mem size 0x1000000000 64bit pref]
    [    1.933230] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x1000000000 64bit pref]
    [    1.933240] pci 0000:00:00.0: BAR 14: assigned [mem 0x68100000-0x686fffff]
    [    1.933251] pci 0000:00:00.0: BAR 15: assigned [mem 0x68700000-0x68afffff 64bit pref]
    [    1.933258] pci 0000:00:00.0: BAR 13: assigned [io  0x1000-0x2fff]
    [    1.933277] pci 0000:01:00.0: BAR 14: assigned [mem 0x68100000-0x685fffff]
    [    1.933285] pci 0000:01:00.0: BAR 15: assigned [mem 0x68700000-0x68afffff 64bit pref]
    [    1.933293] pci 0000:01:00.0: BAR 0: assigned [mem 0x68600000-0x6863ffff]
    [    1.933308] pci 0000:01:00.1: BAR 0: assigned [mem 0x68640000-0x68641fff]
    [    1.933322] pci 0000:01:00.2: BAR 0: assigned [mem 0x68642000-0x68643fff]
    [    1.933335] pci 0000:01:00.3: BAR 0: assigned [mem 0x68644000-0x68645fff]
    [    1.933348] pci 0000:01:00.4: BAR 0: assigned [mem 0x68646000-0x68647fff]
    [    1.933361] pci 0000:01:00.0: BAR 13: assigned [io  0x1000-0x2fff]
    [    1.933379] pci 0000:02:01.0: BAR 14: assigned [mem 0x68100000-0x682fffff]
    [    1.933388] pci 0000:02:01.0: BAR 15: assigned [mem 0x68700000-0x688fffff 64bit pref]
    [    1.933397] pci 0000:02:03.0: BAR 14: assigned [mem 0x68300000-0x683fffff]
    [    1.933405] pci 0000:02:09.0: BAR 14: assigned [mem 0x68400000-0x685fffff]
    [    1.933414] pci 0000:02:09.0: BAR 15: assigned [mem 0x68900000-0x68afffff 64bit pref]
    [    1.933422] pci 0000:02:01.0: BAR 13: assigned [io  0x1000-0x1fff]
    [    1.933429] pci 0000:02:09.0: BAR 13: assigned [io  0x2000-0x2fff]
    [    1.933441] pci 0000:03:00.0: PCI bridge to [bus 04]
    [    1.933474] pci 0000:02:01.0: PCI bridge to [bus 03-04]
    [    1.933483] pci 0000:02:01.0:   bridge window [io  0x1000-0x1fff]
    [    1.933496] pci 0000:02:01.0:   bridge window [mem 0x68100000-0x682fffff]
    [    1.933507] pci 0000:02:01.0:   bridge window [mem 0x68700000-0x688fffff 64bit pref]
    [    1.933524] pci 0000:02:02.0: PCI bridge to [bus 05]
    [    1.933579] pci 0000:06:00.0: BAR 0: assigned [mem 0x68300000-0x683fffff]
    [    1.933595] pci 0000:02:03.0: PCI bridge to [bus 06]
    [    1.933608] pci 0000:02:03.0:   bridge window [mem 0x68300000-0x683fffff]
    [    1.933630] pci 0000:02:04.0: PCI bridge to [bus 07]
    [    1.933658] pci 0000:02:08.0: PCI bridge to [bus 08]
    [    1.933686] pci 0000:02:09.0: PCI bridge to [bus 09]
    [    1.933694] pci 0000:02:09.0:   bridge window [io  0x2000-0x2fff]
    [    1.933707] pci 0000:02:09.0:   bridge window [mem 0x68400000-0x685fffff]
    [    1.933718] pci 0000:02:09.0:   bridge window [mem 0x68900000-0x68afffff 64bit pref]
    [    1.933735] pci 0000:02:0a.0: PCI bridge to [bus 0a]
    [    1.933764] pci 0000:02:0b.0: PCI bridge to [bus 0b]
    [    1.933792] pci 0000:02:0c.0: PCI bridge to [bus 0c]
    [    1.933820] pci 0000:02:0d.0: PCI bridge to [bus 0d]
    [    1.933846] pci 0000:01:00.0: PCI bridge to [bus 02-0d]
    [    1.933855] pci 0000:01:00.0:   bridge window [io  0x1000-0x2fff]
    [    1.933868] pci 0000:01:00.0:   bridge window [mem 0x68100000-0x685fffff]
    [    1.933879] pci 0000:01:00.0:   bridge window [mem 0x68700000-0x68afffff 64bit pref]
    [    1.933896] pci 0000:00:00.0: PCI bridge to [bus 01-0d]
    [    1.933903] pci 0000:00:00.0:   bridge window [io  0x1000-0x2fff]
    [    1.933910] pci 0000:00:00.0:   bridge window [mem 0x68100000-0x686fffff]
    [    1.933918] pci 0000:00:00.0:   bridge window [mem 0x68700000-0x68afffff 64bit pref]
    [    1.934257] pcieport 0000:00:00.0: enabling device (0000 -> 0003)
    [    1.934649] pcieport 0000:00:00.0: PME: Signaling with IRQ 44
    [    1.935301] pcieport 0000:01:00.0: enabling device (0000 -> 0003)
    [    2.282398] pcieport 0000:02:01.0: enabling device (0000 -> 0003)
    [    2.291286] pcieport 0000:02:03.0: enabling device (0000 -> 0002)
    [    2.301120] pcieport 0000:02:09.0: enabling device (0000 -> 0003)
    [    2.314158] ti-udma 485c0100.dma-controller: Number of rings: 68
    [    2.322167] ti-udma 485c0100.dma-controller: Channels: 24 (bchan: 12, tchan: 6, rchan: 6)
    [    2.332836] ti-udma 485c0000.dma-controller: Number of rings: 288
    [    2.349081] ti-udma 485c0000.dma-controller: Channels: 44 (tchan: 29, rchan: 15)
    [    2.360791] printk: console [ttyS2] disabled
    [    2.365277] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 16, base_baud = 3000000) is a 8250
    [    2.374056] printk: console [ttyS2] enabled
    [    2.374056] printk: console [ttyS2] enabled
    [    2.382503] printk: bootconsole [ns16550a0] disabled
    [    2.382503] printk: bootconsole [ns16550a0] disabled
    [    2.397276] spi-nor spi0.0: unrecognized JEDEC id bytes: 00 00 00 00 00 00
    [    2.404209] spi-nor: probe of spi0.0 failed with error -2
    [    2.422866] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    2.466970] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    2.476336] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    2.484604] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
    [    2.497518] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
    [    2.504653] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [    2.511465] pps pps0: new PPS source ptp0
    [    2.515945] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
    [    2.526660] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
    [    2.538216] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
    [    2.547635] k3-j72xx-soc-thermal b00000.temperature-sensor: invalid resource
    [    2.547685] k3-j72xx-soc-thermal: probe of b00000.temperature-sensor failed with error -22
    [    2.550218] mmc0: CQHCI version 5.10
    [    2.553867] gpio-mux mux-controller: 2-way mux-controller registered
    [    2.586608] vdd_mmc1: supplied by vsys_3v3
    [    2.591939] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    2.601892] mmc1: CQHCI version 5.10
    [    2.601984] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present!
    [    2.627102] ALSA device list:
    [    2.630123]   No soundcards found.
    [    2.644355] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
    [    2.652881] Waiting for root device PARTUUID=47b6d3e0-02...
    [    2.710752] mmc1: new ultra high speed SDR104 SDHC card at address aaaa
    [    2.717767] mmc0: Command Queue Engine enabled
    [    2.722232] mmc0: new HS200 MMC card at address 0001
    [    2.728141] mmcblk1: mmc1:aaaa SC16G 14.8 GiB 
    [    2.733475] mmcblk0: mmc0:0001 S0J56X 14.8 GiB 
    [    2.738274] mmcblk0boot0: mmc0:0001 S0J56X partition 1 31.5 MiB
    [    2.745248] mmcblk0boot1: mmc0:0001 S0J56X partition 2 31.5 MiB
    [    2.751382]  mmcblk1: p1 p2
    [    2.755555] mmcblk0rpmb: mmc0:0001 S0J56X partition 3 4.00 MiB, chardev (237:0)
    [    2.797902] EXT4-fs (mmcblk1p2): recovery complete
    [    2.805760] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
    [    2.813952] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    2.822719] devtmpfs: mounted
    [    2.827210] Freeing unused kernel memory: 1920K
    [    2.831888] Run /sbin/init as init process
    [    2.982218] systemd[1]: System time before build time, advancing clock.
    [    3.040452] NET: Registered protocol family 10
    [    3.046499] Segment Routing with IPv6
    [    3.084402] systemd[1]: systemd 244.5+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
    [    3.106636] systemd[1]: Detected architecture arm64.
    
    Welcome to Arago 2021.09!
    
    [    3.154085] systemd[1]: Set hostname to <am64xx-evm>.
    [    3.539989] systemd[1]: /lib/systemd/system/startwlansta.service:7: Unknown key name 'After' in section 'Service', ignoring.
    [    3.555038] systemd[1]: /lib/systemd/system/startwlanap.service:7: Unknown key name 'After' in section 'Service', ignoring.
    [    3.603268] systemd[1]: /lib/systemd/system/irqbalanced.service:6: Unknown key name 'ConditionCPUs' in section 'Unit', ignoring.
    [    3.653162] systemd[1]: /lib/systemd/system/docker.socket:6: ListenStream= references a path below legacy directory /var/run/, updating /var/run/docker.sock  /run/docker.sock; please update the unit file accordingly.
    [    3.827947] random: systemd: uninitialized urandom read (16 bytes read)
    [    3.840150] systemd[1]: Created slice system-getty.slice.
    [  OK  ] Created slice system-getty.slice.
    [    3.863241] random: systemd: uninitialized urandom read (16 bytes read)
    [    3.872582] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [    3.895231] random: systemd: uninitialized urandom read (16 bytes read)
    [    3.904555] systemd[1]: Created slice system-syslog\x2dng.slice.
    [  OK  ] Created slice system-syslog\x2dng.slice.
    [    3.929726] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    3.951710] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password ts to Console Directory Watch.
    [    3.975610] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password Ruests to Wall Directory Watch.
    [    3.999583] systemd[1]: Reached target Paths.
    [  OK  ] Reached target Paths.
    [    4.015334] systemd[1]: Reached target Remote File Systems.
    [  OK  ] Reached target Remote File Systems.
    [    4.035299] systemd[1]: Reached target Slices.
    [  OK  ] Reached target Slices.
    [    4.051315] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    4.089530] systemd[1]: Listening on RPCbind Server Activation Socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [    4.111436] systemd[1]: Reached target RPC Port Mapper.
    [  OK  ] Reached target RPC Port Mapper.
    [    4.140277] systemd[1]: Listening on Process Core Dump Socket.
    [  OK  ] Listening on Process Core Dump Socket.
    [    4.163753] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [  OK  ] Listening on initctl Compatibility Named Pipe.
    [    4.191971] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
    [    4.201084] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    4.224148] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    4.240378] systemd[1]: Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [    4.264210] systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    [    4.287864] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    4.318180] systemd[1]: Mounting Huge Pages File System...
             Mounting Huge Pages File System...
    [    4.342024] systemd[1]: Mounting POSIX Message Queue File System...
             Mounting POSIX Message Queue File System...
    [    4.369925] systemd[1]: Mounting Kernel Debug File System...
             Mounting Kernel Debug File System...
    [    4.396406] systemd[1]: Mounting Temporary Directory (/tmp)...
             Mounting Temporary Directory (/tmp)...
    [    4.426834] systemd[1]: Starting Create list of static device nodes for the current kernel...
             Starting Create list of stodes for the current kernel...
    [    4.457737] systemd[1]: Starting RPC Bind...
             Starting RPC Bind...
    [    4.471733] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [    4.492597] systemd[1]: Starting Journal Service...
             Starting Journal Service...
    [    4.515840] systemd[1]: Starting Load Kernel Modules...
             Starting Load Kernel Modules...
    [    4.541823] systemd[1]: Starting Remount Root and Kernel File Systems...
    [    4.552484] cryptodev: loading out-of-tree module taints kernel.
             Starting Remount Root and Kernel File Systems...
    [    4.571463] cryptodev: driver 1.10 loaded.
    [    4.588762] systemd[1]: Starting udev Coldplug all Devices...
             Starting udev Coldplug all Devices...
    [    4.632440] systemd[1]: Started RPC Bind.
    [  OK  ] Started RPC Bind.[    4.645973] EXT4-fs (mmcblk1p2): re-mounted. Opts: (null)
    
    [    4.664302] systemd[1]: Mounted Huge Pages File System.
    [  OK  ] Mounted Huge Pages File System.
    [    4.688193] systemd[1]: Mounted POSIX Message Queue File System.
    [  OK  ] Mounted POSIX Message Queue File System.
    [    4.719844] systemd[1]: Mounted Kernel Debug File System.
    [  OK  ] Mounted Kernel Debug File System.
    [    4.748603] systemd[1]: Mounted Temporary Directory (/tmp).
    [  OK  ] Mounted Temporary Directory (/tmp).
    [    4.776237] systemd[1]: Started Journal Service.
    [  OK  ] Started Journal Service.
    [  OK  ] Started Create list of sta nodes for the current kernel.
    [  OK  ] Started Load Kernel Modules.
    [  OK  ] Started Remount Root and Kernel File Systems.
    [    4.877292] random: systemd-journal: uninitialized urandom read (16 bytes read)
    [    4.886510] random: systemd: uninitialized urandom read (16 bytes read)
             Mounting Kernel Configuration File System.[    4.907164] random: systemd-journal: uninitialized urandom read (16 bytes read)
    ..
             Starting Flush Journal to Persistent Storage...
             Starting Apply Kernel Variables...
    [    4.983155] systemd-journald[168]: Received client request to flush runtime journal.
             Starting Create Static Device Nodes in /dev...
    [  OK  ] Mounted Kernel Configuration File System.
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Apply Kernel Variables.
    [  OK  ] Started Create Static Device Nodes in /dev.
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
             Starting udev Kernel Device Manager...
    [  OK  ] Mounted /media/ram.
    [  OK  ] Mounted /var/volatile.
             Starting Load/Save Random Seed...
    [  OK  ] Reached target Local File Systems.
             Starting Create Volatile Files and Directories...
    [  OK  ] Started udev Kernel Device Manager.
    [  OK  ] Started Create Volatile Files and Directories.
             Starting Network Time Synchronization...
             Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Started udev Coldplug all Devices.
             Starting udev Wait for Complete Device Initialization...
    [  OK  ] Started Network Time Synchronization.
    [  OK  ] Reached target System Time Set.
    [  OK  ] Reached target System Time Synchronized.
    [    6.241150] random: systemd: uninitialized urandom read (16 bytes read)
    [    6.380945] random: crng init done
    [    6.384453] random: 65 urandom warning(s) missed due to ratelimiting
    [  OK  ] Started Load/Save Random Seed.
    [    6.457839] CAN device driver interface
    [    6.505805] 93xx46 spi1.0: 16-bit eeprom 
    [  OK  ] Created slice system-systemd\x2dbacklight.slice.
             Starting Load/Save Screen ess of backlight:ssd1307fb0...
    [  OK  ] Started Load/Save Screen Btness of backlight:ssd1307fb0.
    [    6.725314] davinci_mdio 300b2400.mdio: Configuring MDIO in manual mode
    [    6.771161] davinci_mdio 300b2400.mdio: davinci mdio revision 1.7, bus freq 1000000
    [    6.819183] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@a4000000
    [    6.839879] davinci_mdio 300b2400.mdio: phy[15]: device 300b2400.mdio:0f, driver unknown
    [    6.890855] k3-m4-rproc 5000000.m4fss: configured M4 for IPC-only mode
    [    6.917724] remoteproc remoteproc0: 5000000.m4fss is available
    [    7.008062] platform 78000000.r5f: R5F core may have been powered on by a different host, programmed state (0) != actual state (1)
    [    7.009460] remoteproc remoteproc0: attaching to 5000000.m4fss
    [    7.051403] k3-m4-rproc 5000000.m4fss: M4 initialized in IPC-only mode
    [    7.062700]  remoteproc0#vdev0buffer: assigned reserved memory node m4f-dma-memory@a4000000
    [    7.086828] m_can_platform 20701000.can: m_can device registered (irq=36, version=32)
    [    7.109307] virtio_rpmsg_bus virtio0: rpmsg host is online
    [    7.111364] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.ping-pong addr 0xd
    [    7.114974]  remoteproc0#vdev0buffer: registered virtio0 (type 7)
    [    7.124741] platform 78000000.r5f: configured R5F for IPC-only mode
    [    7.128436] remoteproc remoteproc0: remote processor 5000000.m4fss is now attached
    [    7.143351] m_can_platform 20711000.can: m_can device registered (irq=38, version=32)
    [    7.151468] virtio_rpmsg_bus virtio0: creating channel rpmsg_chrdev addr 0xe
    [    7.165806] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000
    [    7.177643] remoteproc remoteproc1: 78000000.r5f is available
    [    7.187697] remoteproc remoteproc1: attaching to 78000000.r5f
    [    7.197573] platform 78000000.r5f: R5F core initialized in IPC-only mode
    [    7.216672]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
    [    7.226268] virtio_rpmsg_bus virtio1: rpmsg host is online
    [    7.231938] virtio_rpmsg_bus virtio1: creating channel ti.ipc4.ping-pong addr 0xd
    [    7.242618] virtio_rpmsg_bus virtio1: creating channel rpmsg_chrdev addr 0xe
    [    7.250014]  remoteproc1#vdev0buffer: registered virtio1 (type 7)
    [    7.250030] remoteproc remoteproc1: remote processor 78000000.r5f is now attached
    [    7.250559] platform 78200000.r5f: R5F core may have been powered on by a different host, programmed state (0) != actual state (1)
    [    7.264828] platform 78200000.r5f: configured R5F for IPC-only mode
    [    7.290618] remoteproc remoteproc3: 30034000.pru is available
    [    7.338534] platform 78200000.r5f: assigned reserved memory node r5f-dma-memory@a1000000
    [    7.339494] remoteproc remoteproc4: 30004000.rtu is available
    [    7.347128] remoteproc remoteproc2: 78200000.r5f is available
    [    7.358296] remoteproc remoteproc2: attaching to 78200000.r5f
    [    7.365776] platform 78200000.r5f: R5F core initialized in IPC-only mode
    [    7.377991]  remoteproc2#vdev0buffer: assigned reserved memory node r5f-dma-memory@a1000000
    [    7.387292] virtio_rpmsg_bus virtio2: rpmsg host is online
    [    7.392968] virtio_rpmsg_bus virtio2: creating channel ti.ipc4.ping-pong addr 0xd
    [    7.400724]  remoteproc2#vdev0buffer: registered virtio2 (type 7)
    [    7.407507] virtio_rpmsg_bus virtio2: creating channel rpmsg_chrdev addr 0xe
    [    7.415464] remoteproc remoteproc2: remote processor 78200000.r5f is now attached
    [    7.433955] platform 78400000.r5f: R5F core may have been powered on by a different host, programmed state (0) != actual state (1)
    [    7.461274] remoteproc remoteproc6: 3000a000.txpru is available
    [    7.471568] remoteproc remoteproc7: 30038000.pru is available
    [    7.490018] platform 78400000.r5f: configured R5F for IPC-only mode
    [    7.632736] remoteproc remoteproc8: 30006000.rtu is available
    [    7.639156] platform 78400000.r5f: assigned reserved memory node r5f-dma-memory@a2000000
    [    7.649020] remoteproc remoteproc9: 3000c000.txpru is available
    [    7.665469] remoteproc remoteproc5: 78400000.r5f is available
    [    7.698658] remoteproc remoteproc10: 300b4000.pru is available
    [    7.723941] remoteproc remoteproc5: attaching to 78400000.r5f
    [    7.753485] remoteproc remoteproc11: 30084000.rtu is available
    [    7.767472] platform 78400000.r5f: R5F core initialized in IPC-only mode
    [    7.812997] remoteproc remoteproc12: 3008a000.txpru is available
    [    7.821928]  remoteproc5#vdev0buffer: assigned reserved memory node r5f-dma-memory@a2000000
    [    7.857858] remoteproc remoteproc13: 300b8000.pru is available
    [    7.900435] virtio_rpmsg_bus virtio3: rpmsg host is online
    [    7.901079] virtio_rpmsg_bus virtio3: creating channel ti.ipc4.ping-pong addr 0xd
    [    7.919331] virtio_rpmsg_bus virtio3: creating channel rpmsg_chrdev addr 0xe
    [    7.939519] remoteproc remoteproc14: 30086000.rtu is available
    [    7.975702]  remoteproc5#vdev0buffer: registered virtio3 (type 7)
    [    7.983799] remoteproc remoteproc15: 3008c000.txpru is available
    [    8.040338] remoteproc remoteproc5: remote processor 78400000.r5f is now attached
    [    8.054134] platform 78600000.r5f: R5F core may have been powered on by a different host, programmed state (0) != actual state (1)
    [    8.076974] platform 78600000.r5f: configured R5F for IPC-only mode
    [    8.092311] platform 78600000.r5f: assigned reserved memory node r5f-dma-memory@a3000000
    [    8.114379] icssg-prueth icssg1-eth: error -ENODEV: iep0 get failed
    [    8.201659] remoteproc remoteproc16: 78600000.r5f is available
    [    8.271348] remoteproc remoteproc16: attaching to 78600000.r5f
    [    8.271600] platform 78600000.r5f: R5F core initialized in IPC-only mode
    [    8.271623]  remoteproc16#vdev0buffer: assigned reserved memory node r5f-dma-memory@a3000000
    [    8.272225] virtio_rpmsg_bus virtio4: rpmsg host is online
    [    8.273417] virtio_rpmsg_bus virtio4: creating channel ti.ipc4.ping-pong addr 0xd
    [    8.273750] virtio_rpmsg_bus virtio4: creating channel rpmsg_chrdev addr 0xe
    [    8.273912]  remoteproc16#vdev0buffer: registered virtio4 (type 7)
    [    8.273924] remoteproc remoteproc16: remote processor 78600000.r5f is now attached
    [    9.756674] usbcore: registered new interface driver usbfs
    [    9.794861] usbcore: registered new interface driver hub
    [    9.801669] usbcore: registered new device driver usb
    [  OK  ] Created slice system-systemd\x2dfsck.slice.
    [  OK  ] Found device /dev/mmcblk1p1.
    [  OK  ] Started udev Wait for Complete Device Initialization.
    [  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Started Daily rotation of log files.
    [  OK  ] Started Timer service to update the IP on OLED each 10s.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
             Starting Docker Socket for the API.
    [  OK  ] Listening on dropbear.socket.
             Starting Reboot and dump vmcore via kexec...
             Starting File System Check on /dev/mmcblk1p1...
    [  OK  ] Listening on Docker Socket for the API.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
    [  OK  ] Started Job spooling tools.
    [  OK  ] Started Periodic Command Scheduler.
    [  OK  ] Started D-Bus System Message Bus.
             Starting Ethernet Bridge Filtering Tables...
             Starting Print notice about GPLv3 packages...
             Starting IPv6 Packet Filtering Framework...
             Starting IPv4 Packet Filtering Framework...
    [  OK  ] Started irqbalance daemon.
             Starting Matrix GUI...
             Starting startwlanap...
             Starting startwlansta...
             Starting System Logger Daemon "default" instance...
    [   31.254953] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks:
    [   31.261067] rcu: 1-...!: (0 ticks this GP) idle=ed2/1/0x4000000000000000 softirq=4897/4897 fqs=61 
    [   31.270098] (detected by 0, t=5252 jiffies, g=2205, q=1334)
    [   31.275745] Task dump for CPU 1:
    [   31.278966] task:rngd            state:R  running task     stack:    0 pid:  525 ppid:     1 flags:0x00000002
    [   31.288871] Call trace:
    [   31.291323]  __switch_to+0xc0/0x118
    [   31.294811]  vfs_read+0xac/0x1a0
    [   31.298034]  ksys_read+0x6c/0xf8
    [   31.301256]  __arm64_sys_read+0x1c/0x28
    [   31.305089]  el0_svc_common.constprop.0+0x78/0x1c8
    [   31.309871]  do_el0_svc+0x24/0xa0
    [   31.313182]  el0_svc+0x14/0x20
    [   31.316230]  el0_sync_handler+0xb0/0xb8
    [   31.320058]  el0_sync+0x180/0x1c0
    [   31.323371] rcu: rcu_preempt kthread starved for 5130 jiffies! g2205 f0x0 RCU_GP_WAIT_FQS(5) ->state=0x0 ->cpu=0
    [   31.333523] rcu: Unless rcu_preempt kthread gets sufficient CPU time, OOM is now expected behavior.
    [   31.342634] rcu: RCU grace-period kthread stack dump:
    [   31.347674] task:rcu_preempt     state:R  running task     stack:    0 pid:   12 ppid:     2 flags:0x00000028
    [   31.357576] Call trace:
    [   31.360019]  __switch_to+0xc0/0x118
    [   31.363503]  __schedule+0x274/0x760
    [   31.366984]  schedule+0x70/0x108
    [   31.370209]  schedule_timeout+0x178/0x280
    [   31.374214]  rcu_gp_kthread+0x4e8/0xb30
    [   31.378045]  kthread+0x140/0x160
    [   31.381268]  ret_from_fork+0x10/0x30

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Ankita 您好、

    Linux 内核挂起的原因可能是初始化远程内核的 Remoteproc 驱动程序。 从 A53的角度来看、远程内核与 R5F 内核 M4F 内核类似。 由于这些内核已由 SBL 初始化、因此您应该在 PSDK 中禁用远程内核并使用更新后的映像。

    请参阅以下常见问题解答、以禁用 PSDK 中的远程内核

    https://e2e.ti.com/.../faq-am62x-am64x-how-to-disable-unused-cores

    此致、

    普拉桑特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Prashant:

    感谢您的快速回答。

    以下是我将使用的 DTS 文件-

    // 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/mux/ti-serdes.h>
    #include <dt-bindings/leds/common.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/net/ti-dp83867.h>
    #include "k3-am642.dtsi"
    
    / {
    	compatible =  "ti,am642-evm", "ti,am642";
    	model = "Texas Instruments AM642 EVM";
    
    	chosen {
    		stdout-path = "serial2:115200n8";
    		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
    	};
    
    	aliases {
    		ethernet2 = &icssg1_emac0;
    		ethernet3 = &icssg1_emac1;
    	};
    
    	memory@80000000 {
    		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: fixedregulator-evm12v0 {
    		/* main DC jack */
    		compatible = "regulator-fixed";
    		regulator-name = "evm_12v0";
    		regulator-min-microvolt = <12000000>;
    		regulator-max-microvolt = <12000000>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vsys_5v0: fixedregulator-vsys5v0 {
    		/* 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: fixedregulator-vsys3v3 {
    		/* output of LM5140 */
    		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: fixed-regulator-sd {
    		/* TPS2051BD */
    		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: fixedregulator-vddb {
    		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;
    	};
    
    	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>;
    				tx-internal-delay-ps = <250>;
    				rx-internal-delay-ps = <2000>;
    			};
    		};
    	};
    
    	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 {
    		compatible = "ti,am642-icssg-prueth";
    		pinctrl-names = "default";
    		pinctrl-0 = <&icssg1_rgmii1_pins_default>;
    
    		sram = <&oc_sram>;
    		ti,prus = <&pru1_0>, <&rtu1_0>, <&tx_pru1_0>, <&pru1_1>, <&rtu1_1>, <&tx_pru1_1>;
    		firmware-name = "ti-pruss/am65x-sr2-pru0-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-rtu0-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-txpru0-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-pru1-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-rtu1-prueth-fw.elf",
    				"ti-pruss/am65x-sr2-txpru1-prueth-fw.elf";
    
    		ti,pruss-gp-mux-sel = <2>,	/* MII mode */
    				      <2>,
    				      <2>,
    				      <2>,	/* MII mode */
    				      <2>,
    				      <2>;
    
    		mii-g-rt = <&icssg1_mii_g_rt>;
    		mii-rt = <&icssg1_mii_rt>;
    		iep = <&icssg1_iep0>,  <&icssg1_iep1>;
    
    		interrupt-parent = <&icssg1_intc>;
    		interrupts = <24 0 2>, <25 1 3>;
    		interrupt-names = "tx_ts0", "tx_ts1";
    
    		dmas = <&main_pktdma 0xc200 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc201 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc202 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc203 15>, /* egress slice 0 */
    		       <&main_pktdma 0xc204 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc205 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc206 15>, /* egress slice 1 */
    		       <&main_pktdma 0xc207 15>, /* egress slice 1 */
    		       <&main_pktdma 0x4200 15>, /* ingress slice 0 */
    		       <&main_pktdma 0x4201 15>, /* ingress slice 1 */
    		       <&main_pktdma 0x4202 0>, /* mgmnt rsp slice 0 */
    		       <&main_pktdma 0x4203 0>; /* mgmnt rsp slice 1 */
    		dma-names = "tx0-0", "tx0-1", "tx0-2", "tx0-3",
    			    "tx1-0", "tx1-1", "tx1-2", "tx1-3",
    			    "rx0", "rx1",
    			    "rxmgm0", "rxmgm1";
    
    		icssg1_emac0: ethernet-mii0 {
    			phy-handle = <&icssg1_phy1>;
    			phy-mode = "rgmii-rxid";
    			syscon-rgmii-delay = <&main_conf 0x4110>;
    			/* Filled in by bootloader */
    			local-mac-address = [00 00 00 00 00 00];
    		};
    
    		icssg1_emac1: ethernet-mii1 {
    			syscon-rgmii-delay = <&main_conf 0x4114>;
    			/* Filled in by bootloader */
    			local-mac-address = [00 00 00 00 00 00];
    			status = "disabled";
    		};
    	};
    };
    
    /* Modify sram label present in k3-am64-main.dtsi */
    &oc_sram {
        main_r5fss0_core0_sram: r5f-sram@80000 {
            reg = <0x80000 0x40000>;
        };
        
        main_r5fss0_core1_sram: r5f-sram@c0000 {
            reg = <0xc0000 0x40000>;
        };
        
        main_r5fss1_core0_sram: r5f-sram@100000 {
            reg = <0x100000 0x40000>;
        };
        
        main_r5fss1_core1_sram: r5f-sram@140000 {
            reg = <0x140000 0x40000>;
        };
    };
    
    &main_r5fss0_core0 {
    	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
    	memory-region = <&main_r5fss0_core0_dma_memory_region>,
    			<&main_r5fss0_core0_memory_region>;
    	sram = <&main_r5fss0_core0_sram>;
    };
    
    &main_r5fss0_core1 {
    	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
    	memory-region = <&main_r5fss0_core1_dma_memory_region>,
    			<&main_r5fss0_core1_memory_region>;
    	sram = <&main_r5fss0_core1_sram>;
    };
    
    &main_r5fss1_core0 {
    	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
    	memory-region = <&main_r5fss1_core0_dma_memory_region>,
    			<&main_r5fss1_core0_memory_region>;
    	sram = <&main_r5fss1_core0_sram>;
    };
    
    &main_r5fss1_core1 {
    	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
    	memory-region = <&main_r5fss1_core1_dma_memory_region>,
    			<&main_r5fss1_core1_memory_region>;
    	sram = <&main_r5fss1_core1_sram>;
    };
    
    &mcu_m4fss {
    	mboxes = <&mailbox0_cluster6 &mbox_m4_0>;
    	memory-region = <&mcu_m4fss_dma_memory_region>,
    			<&mcu_m4fss_memory_region>;
    };
    
    &main_pmx0 {
    	main_mmc1_pins_default: main-mmc1-pins-default {
    		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_uart0_pins_default: main-uart0-pins-default {
    		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-pins-default {
    		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_i2c1_pins_default: main-i2c1-pins-default {
    		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-pins-default {
    		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-pins-default {
    		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-pins-default {
    		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-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
    		>;
    	};
    
    	ospi0_pins_default: ospi0-pins-default {
    		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_mcan0_pins_default: main-mcan0-pins-default {
    		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-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
    			AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
    		>;
    	};
    
    	icssg1_mdio1_pins_default: icssg1-mdio1-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x015c, PIN_OUTPUT, 0) /* (Y6) PRG1_MDIO0_MDC */
    			AM64X_IOPAD(0x0158, PIN_INPUT, 0) /* (AA6) PRG1_MDIO0_MDIO */
    		>;
    	};
    
    	icssg1_rgmii1_pins_default: icssg1-rgmii1-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
    			AM64X_IOPAD(0x00bc, PIN_INPUT, 2) /* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
    			AM64X_IOPAD(0x00c0, PIN_INPUT, 2) /* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
    			AM64X_IOPAD(0x00c4, PIN_INPUT, 2) /* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
    			AM64X_IOPAD(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
    			AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
    			AM64X_IOPAD(0x00e4, PIN_INPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
    			AM64X_IOPAD(0x00e8, PIN_INPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
    			AM64X_IOPAD(0x00ec, PIN_INPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
    			AM64X_IOPAD(0x00f0, PIN_INPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
    			AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
    			AM64X_IOPAD(0x00f4, PIN_INPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
    		>;
    	};
    
    	icssg1_iep0_pins_default: icssg1-iep0-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0104, PIN_OUTPUT, 2) /* (W7) PRG1_PRU0_GPO19.PRG1_IEP0_EDC_SYNC_OUT0 */
    		>;
    	};
    
    	main_ecap0_pins_default: main-ecap0-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
    		>;
    	};
    };
    
    &main_uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart0_pins_default>;
    };
    
    /* main_uart1 is reserved for firmware usage */
    &main_uart1 {
    	status = "reserved";
    };
    
    &main_uart2 {
    	status = "disabled";
    };
    
    &main_uart3 {
    	status = "disabled";
    };
    
    &main_uart4 {
    	status = "disabled";
    };
    
    &main_uart5 {
    	status = "disabled";
    };
    
    &main_uart6 {
    	status = "disabled";
    };
    
    &mcu_uart0 {
    	status = "disabled";
    };
    
    &mcu_uart1 {
    	status = "disabled";
    };
    
    &main_i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <400000>;
    
    	exp1: gpio@22 {
    		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>;
    	};
    };
    
    /* mcu_gpio0 is reserved for mcu firmware usage */
    &mcu_gpio0 {
    	status = "reserved";
    };
    
    &mcu_i2c0 {
    	status = "disabled";
    };
    
    &mcu_i2c1 {
    	status = "disabled";
    };
    
    &mcu_spi0 {
    	status = "disabled";
    };
    
    &mcu_spi1 {
    	status = "disabled";
    };
    
    &main_spi0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_spi0_pins_default>;
    	ti,pindir-d0-out-d1-in = <1>;
    	eeprom@0 {
    		compatible = "microchip,93lc46b";
    		reg = <0>;
    		spi-max-frequency = <1000000>;
    		spi-cs-high;
    		data-size = <16>;
    	};
    };
    
    &sdhci0 {
    	/* emmc */
    	bus-width = <8>;
    	non-removable;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &sdhci1 {
    	/* SD/MMC */
    	vmmc-supply = <&vdd_mmc1>;
    	pinctrl-names = "default";
    	bus-width = <4>;
    	pinctrl-0 = <&main_mmc1_pins_default>;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &usbss0 {
    	ti,vbus-divider;
    	ti,usb2-only;
    };
    
    &usb0 {
    	dr_mode = "otg";
    	maximum-speed = "high-speed";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb0_pins_default>;
    };
    
    &cpsw3g {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mdio1_pins_default
    		     &rgmii1_pins_default
    		     &rgmii2_pins_default>;
    
    	cpts@3d000 {
    		ti,pps = <7 1>;
    	};
    };
    
    &cpsw_port1 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy0>;
    };
    
    &cpsw_port2 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy3>;
    };
    
    &cpsw3g_mdio {
    	cpsw3g_phy0: ethernet-phy@0 {
    		reg = <0>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    	};
    };
    
    #define TS_OFFSET(pa, val)     (0x4+(pa)*4) (0x10000 | val)
    
    &timesync_router {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mcu_cpts_pps>;
    
    	/* Example of the timesync routing */
    	mcu_cpts_pps: mcu-cpts-pps {
    		pinctrl-single,pins = <
    				/* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
    				TS_OFFSET(37, 22)
    				/* pps [cpts genf1] in22 -> out25 [SYNC1_OUT pin] */
    				TS_OFFSET(25, 22)
    				>;
    	};
    };
    
    &mailbox0_cluster2 {
    	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_cluster3 {
    	status = "disabled";
    };
    
    &mailbox0_cluster4 {
    	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_cluster5 {
    	status = "disabled";
    };
    
    &mailbox0_cluster6 {
    	mbox_m4_0: mbox-m4-0 {
    		ti,mbox-rx = <0 0 2>;
    		ti,mbox-tx = <1 0 2>;
    	};
    };
    
    &mailbox0_cluster7 {
    	status = "disabled";
    };
    
    &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 {
    	reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
    	phys = <&serdes0_pcie_link>;
    	phy-names = "pcie-phy";
    	num-lanes = <1>;
    };
    
    &pcie0_ep {
    	phys = <&serdes0_pcie_link>;
    	phy-names = "pcie-phy";
    	num-lanes = <1>;
    	status = "disabled";
    };
    
    &tscadc0 {
    	/* ADC is reserved for R5 usage */
    	status = "reserved";
    };
    
    &ospi0 {
    	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>;
    		cdns,phy-mode;
    		#address-cells = <1>;
    		#size-cells = <1>;
    	};
    };
    
    &main_mcan0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcan0_pins_default>;
    	phys = <&transceiver1>;
    };
    
    &main_mcan1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcan1_pins_default>;
    	phys = <&transceiver2>;
    };
    
    &icssg0_mdio {
    	status = "disabled";
    };
    
    &icssg1_mdio {
    	pinctrl-names = "default";
    	pinctrl-0 = <&icssg1_mdio1_pins_default>;
    
    	icssg1_phy1: ethernet-phy@0 {
    		reg = <0xf>;
    		tx-internal-delay-ps = <250>;
    		rx-internal-delay-ps = <2000>;
    	};
    };
    
    &icssg1_iep0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&icssg1_iep0_pins_default>;
    };
    
    &ecap0 {
    	/* PWM is available on Pin 1 of header J12 */
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_ecap0_pins_default>;
    };
    

    我要从 R5F 内核运行 EtherCAT 示例应用。 那么、在这种情况下、未使用的内核将是 main_r5fs0_core1、main_r5fs1_core0、 main_r5fs1_core1和 mcu_m4fs?

    另外、我最初是编译 K3-am642-evm.dts 来生成 K3-am642-evm.dTB 、然后将其复制到 EVM 板的/boot 文件夹。 现在、由于电路板未启动、我该如何操作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    好的、这里发生了很多变化。

    1) 1)回到 这个响应中、我认为您正在使用 此处 Linux SDK 文档中记录的 Linux SPL 引导流程。 但是、 这里听起来您实际上是在使用 MCU+ SDK 中记录的 MCU+ SBL 引导流程。 您能否准确确认您要使用的引导流程?

    2) 2)您仍在尝试使用 Linux 初始化 R5F 内核吗? 如果您使用 SBL 引导加载 R5F 二进制文件、则在 Linux 引导期间调用 Linux RemoteProc 驱动程序时、内核将已经运行。

    3) 3)如果您在 SBL 引导期间初始化 R5F 内核、是否希望能够在 Linux 和 R5F 远程内核之间使用 RPMsg 通信?
    3a)如果您要使用 RPMsg、请在 Linux devicetree 中保留 status = Okay
    3B)如果不想使用 RPMsg、可在 Linux devicetree 中设置 status = reserved 或 disabled

    4) 4)在初始 POST 中、您从 Linux devicetree 中删除了 PRU 以太网节点。 但在您最新的 devicetree 中、我会看到 PRU 以太网节点是重新恢复的。 如果您希望 R5F 内核控制 PRU 以太网节点、则应在 Linux devicetree 中禁用 PRU 以太网和 ICSSG 节点、就像在初始 POST 中一样。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    我使用  Linux SPL 引导流程、通过 SD 卡引导 AM64x EVM (从 此处下载 WIC 映像)。 我们最初使用 MCU+SBL 流程进行 SoC 初始化、并测试示例是否有效。

    我转移视线、开始使用这篇帖子中所提到的论坛帖子中建议的 eMMC 流程 、我想我在这里错了。

    现在、我们重新探讨了原始问题-

    1.我们使用 Linux SPL 引导流程,使用 SD 卡。 器件启动后、我们尝试 使用 MCU+SDK 随附的 EtherCAT Beckhoff 示例加载 R5F0内核(使用了本文档)、但它不起作用。

    2.根据 引导流程、我观察到引导 加载程序必须在 R5内核上运行。 这是否就是我尝试使用的运行 EtherCAT 的 R5F0内核? 我是否应该不使用它呢?

    3.使用 Linux SPL 引导流程时,默认情况下不会将二进制文件加载到 R5F0内核中? 如果不是、那么您能否向我指出我可以遵循的文档以避免这样做?

    4.我们需要在 R5F 和 A53内核之间继续使用 RPMsg。

    5.从 Linux 设备树中删除 PRU 以太网节点后、我在引导过程中发现挂起、因此将它们恢复。 我知道我应该将它们移除、以便 EtherCAT 正常工作。 您有什么具体建议吗?

     

    谢谢。

    安基塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    明白了。 根据 Linux SPL 引导流程、R5F0_0确实会启动在 DMSC 内核上运行的 SYSFW、然后运行初始化系统其他部分的 SPL。 但是、SPL 完成运行后、可在 R5F0_0上运行其他固件。

    当 AM64x Linux RemoteProc 驱动程序开始初始化远程内核时、RemoteProc 驱动程序可加载固件并初始化 R5F0_0、就像其他 R5F 内核一样。

    是否可以发布在 Linux devicetree 中禁用 PRU_ICSSG 并从 Linux devicetree 中删除了对 PRU 以太网的引用时观察到的挂起? 原始 POST 中的终端输出还有许多其他错误、这些错误与 PRU 以太网无关、因此我假设您看到的是不同的挂起。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    我使用了以下器件树更改、电路板正常启动(使用 SD 卡引导模式)。 但是、它有一个 IP (以太网连接)。 这是预期结果吗?

    // 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/mux/ti-serdes.h>
    #include <dt-bindings/leds/common.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/net/ti-dp83867.h>
    #include "k3-am642.dtsi"
    
    / {
    	compatible =  "ti,am642-evm", "ti,am642";
    	model = "Texas Instruments AM642 EVM";
    
    	chosen {
    		stdout-path = "serial2:115200n8";
    		bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000";
    	};
    
    	memory@80000000 {
    		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: fixedregulator-evm12v0 {
    		/* main DC jack */
    		compatible = "regulator-fixed";
    		regulator-name = "evm_12v0";
    		regulator-min-microvolt = <12000000>;
    		regulator-max-microvolt = <12000000>;
    		regulator-always-on;
    		regulator-boot-on;
    	};
    
    	vsys_5v0: fixedregulator-vsys5v0 {
    		/* 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: fixedregulator-vsys3v3 {
    		/* output of LM5140 */
    		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: fixed-regulator-sd {
    		/* TPS2051BD */
    		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: fixedregulator-vddb {
    		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;
    	};
    
    	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>;
    				tx-internal-delay-ps = <250>;
    				rx-internal-delay-ps = <2000>;
    			};
    		};
    	};
    
    	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";
    	};
    };
    
    /* Modify sram label present in k3-am64-main.dtsi */
    &oc_sram {
        main_r5fss0_core0_sram: r5f-sram@80000 {
            reg = <0x80000 0x40000>;
        };
        
        main_r5fss0_core1_sram: r5f-sram@c0000 {
            reg = <0xc0000 0x40000>;
        };
        
        main_r5fss1_core0_sram: r5f-sram@100000 {
            reg = <0x100000 0x40000>;
        };
        
        main_r5fss1_core1_sram: r5f-sram@140000 {
            reg = <0x140000 0x40000>;
        };
    };
    
    &main_r5fss0_core0 {
    	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
    	memory-region = <&main_r5fss0_core0_dma_memory_region>,
    			<&main_r5fss0_core0_memory_region>;
    	sram = <&main_r5fss0_core0_sram>;
    };
    
    &main_r5fss0_core1 {
    	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
    	memory-region = <&main_r5fss0_core1_dma_memory_region>,
    			<&main_r5fss0_core1_memory_region>;
    	sram = <&main_r5fss0_core1_sram>;
    };
    
    &main_r5fss1_core0 {
    	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
    	memory-region = <&main_r5fss1_core0_dma_memory_region>,
    			<&main_r5fss1_core0_memory_region>;
    	sram = <&main_r5fss1_core0_sram>;
    };
    
    &main_r5fss1_core1 {
    	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
    	memory-region = <&main_r5fss1_core1_dma_memory_region>,
    			<&main_r5fss1_core1_memory_region>;
    	sram = <&main_r5fss1_core1_sram>;
    };
    
    &mcu_m4fss {
    	mboxes = <&mailbox0_cluster6 &mbox_m4_0>;
    	memory-region = <&mcu_m4fss_dma_memory_region>,
    			<&mcu_m4fss_memory_region>;
    };
    
    &main_pmx0 {
    	main_mmc1_pins_default: main-mmc1-pins-default {
    		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_uart0_pins_default: main-uart0-pins-default {
    		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-pins-default {
    		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_i2c1_pins_default: main-i2c1-pins-default {
    		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-pins-default {
    		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-pins-default {
    		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-pins-default {
    		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-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
    		>;
    	};
    
    	ospi0_pins_default: ospi0-pins-default {
    		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_mcan0_pins_default: main-mcan0-pins-default {
    		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-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
    			AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
    		>;
    	};
    
    	icssg1_rgmii1_pins_default: icssg1-rgmii1-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x00b8, PIN_INPUT, 2) /* (Y7) PRG1_PRU0_GPO0.PRG1_RGMII1_RD0 */
    			AM64X_IOPAD(0x00bc, PIN_INPUT, 2) /* (U8) PRG1_PRU0_GPO1.PRG1_RGMII1_RD1 */
    			AM64X_IOPAD(0x00c0, PIN_INPUT, 2) /* (W8) PRG1_PRU0_GPO2.PRG1_RGMII1_RD2 */
    			AM64X_IOPAD(0x00c4, PIN_INPUT, 2) /* (V8) PRG1_PRU0_GPO3.PRG1_RGMII1_RD3 */
    			AM64X_IOPAD(0x00d0, PIN_INPUT, 2) /* (AA7) PRG1_PRU0_GPO6.PRG1_RGMII1_RXC */
    			AM64X_IOPAD(0x00c8, PIN_INPUT, 2) /* (Y8) PRG1_PRU0_GPO4.PRG1_RGMII1_RX_CTL */
    			AM64X_IOPAD(0x00e4, PIN_INPUT, 2) /* (AA8) PRG1_PRU0_GPO11.PRG1_RGMII1_TD0 */
    			AM64X_IOPAD(0x00e8, PIN_INPUT, 2) /* (U9) PRG1_PRU0_GPO12.PRG1_RGMII1_TD1 */
    			AM64X_IOPAD(0x00ec, PIN_INPUT, 2) /* (W9) PRG1_PRU0_GPO13.PRG1_RGMII1_TD2 */
    			AM64X_IOPAD(0x00f0, PIN_INPUT, 2) /* (AA9) PRG1_PRU0_GPO14.PRG1_RGMII1_TD3 */
    			AM64X_IOPAD(0x00f8, PIN_INPUT, 2) /* (V9) PRG1_PRU0_GPO16.PRG1_RGMII1_TXC */
    			AM64X_IOPAD(0x00f4, PIN_INPUT, 2) /* (Y9) PRG1_PRU0_GPO15.PRG1_RGMII1_TX_CTL */
    		>;
    	};
    
    	icssg1_iep0_pins_default: icssg1-iep0-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0104, PIN_OUTPUT, 2) /* (W7) PRG1_PRU0_GPO19.PRG1_IEP0_EDC_SYNC_OUT0 */
    		>;
    	};
    
    	main_ecap0_pins_default: main-ecap0-pins-default {
    		pinctrl-single,pins = <
    			AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
    		>;
    	};
    };
    
    &main_uart0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_uart0_pins_default>;
    };
    
    /* main_uart1 is reserved for firmware usage */
    &main_uart1 {
    	status = "reserved";
    };
    
    &main_uart2 {
    	status = "disabled";
    };
    
    &main_uart3 {
    	status = "disabled";
    };
    
    &main_uart4 {
    	status = "disabled";
    };
    
    &main_uart5 {
    	status = "disabled";
    };
    
    &main_uart6 {
    	status = "disabled";
    };
    
    &mcu_uart0 {
    	status = "disabled";
    };
    
    &mcu_uart1 {
    	status = "disabled";
    };
    
    &main_i2c1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_i2c1_pins_default>;
    	clock-frequency = <400000>;
    
    	exp1: gpio@22 {
    		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>;
    	};
    };
    
    /* mcu_gpio0 is reserved for mcu firmware usage */
    &mcu_gpio0 {
    	status = "reserved";
    };
    
    &mcu_i2c0 {
    	status = "disabled";
    };
    
    &mcu_i2c1 {
    	status = "disabled";
    };
    
    &mcu_spi0 {
    	status = "disabled";
    };
    
    &mcu_spi1 {
    	status = "disabled";
    };
    
    &main_spi0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_spi0_pins_default>;
    	ti,pindir-d0-out-d1-in = <1>;
    	eeprom@0 {
    		compatible = "microchip,93lc46b";
    		reg = <0>;
    		spi-max-frequency = <1000000>;
    		spi-cs-high;
    		data-size = <16>;
    	};
    };
    
    &sdhci0 {
    	/* emmc */
    	bus-width = <8>;
    	non-removable;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &sdhci1 {
    	/* SD/MMC */
    	vmmc-supply = <&vdd_mmc1>;
    	pinctrl-names = "default";
    	bus-width = <4>;
    	pinctrl-0 = <&main_mmc1_pins_default>;
    	ti,driver-strength-ohm = <50>;
    	disable-wp;
    };
    
    &usbss0 {
    	ti,vbus-divider;
    	ti,usb2-only;
    };
    
    &usb0 {
    	dr_mode = "otg";
    	maximum-speed = "high-speed";
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_usb0_pins_default>;
    };
    
    &cpsw3g {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mdio1_pins_default
    		     &rgmii1_pins_default
    		     &rgmii2_pins_default>;
    
    	cpts@3d000 {
    		ti,pps = <7 1>;
    	};
    };
    
    &cpsw_port1 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy0>;
    };
    
    &cpsw_port2 {
    	phy-mode = "rgmii-rxid";
    	phy-handle = <&cpsw3g_phy3>;
    };
    
    &cpsw3g_mdio {
    	cpsw3g_phy0: ethernet-phy@0 {
    		reg = <0>;
    		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
    		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
    	};
    };
    
    #define TS_OFFSET(pa, val)     (0x4+(pa)*4) (0x10000 | val)
    
    &timesync_router {
    	pinctrl-names = "default";
    	pinctrl-0 = <&mcu_cpts_pps>;
    
    	/* Example of the timesync routing */
    	mcu_cpts_pps: mcu-cpts-pps {
    		pinctrl-single,pins = <
    				/* pps [cpts genf1] in22 -> out37 [cpts hw8_push] */
    				TS_OFFSET(37, 22)
    				/* pps [cpts genf1] in22 -> out25 [SYNC1_OUT pin] */
    				TS_OFFSET(25, 22)
    				>;
    	};
    };
    
    &mailbox0_cluster2 {
    	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_cluster3 {
    	status = "disabled";
    };
    
    &mailbox0_cluster4 {
    	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_cluster5 {
    	status = "disabled";
    };
    
    &mailbox0_cluster6 {
    	mbox_m4_0: mbox-m4-0 {
    		ti,mbox-rx = <0 0 2>;
    		ti,mbox-tx = <1 0 2>;
    	};
    };
    
    &mailbox0_cluster7 {
    	status = "disabled";
    };
    
    &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 {
    	reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
    	phys = <&serdes0_pcie_link>;
    	phy-names = "pcie-phy";
    	num-lanes = <1>;
    };
    
    &pcie0_ep {
    	phys = <&serdes0_pcie_link>;
    	phy-names = "pcie-phy";
    	num-lanes = <1>;
    	status = "disabled";
    };
    
    &tscadc0 {
    	/* ADC is reserved for R5 usage */
    	status = "reserved";
    };
    
    &ospi0 {
    	pinctrl-names = "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>;
    		cdns,phy-mode;
    		#address-cells = <1>;
    		#size-cells = <1>;
    	};
    };
    
    &main_mcan0 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcan0_pins_default>;
    	phys = <&transceiver1>;
    };
    
    &main_mcan1 {
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_mcan1_pins_default>;
    	phys = <&transceiver2>;
    };
    
    &icssg0 {
    	status = "disabled";
    };
    
    &icssg1 {
    	status = "disabled";
    };
    
    &icssg0_mdio {
    	status = "disabled";
    };
    
    &icssg1_mdio {
    	status = "disabled";
    };
    
    &icssg1_iep0 {
    	status= " disabled";
    };
    
    &ecap0 {
    	/* PWM is available on Pin 1 of header J12 */
    	pinctrl-names = "default";
    	pinctrl-0 = <&main_ecap0_pins_default>;
    };

    此外,由于这些设备树发生更改,远程内核 R5F*最初处于脱机状态。 我加载了 EtherCAT Beckhoff 示例,但它没有超越 System_Init ()。

    下面是适用于 EtherCAT Beckhoff 示例的 linker.cmd。

    /**
     * These arguments were used when this file was generated. They will be automatically applied on subsequent loads
     * via the GUI or CLI. Run CLI with '--help' for additional information on how to override these arguments.
     * @cliArgs --device "AM64x_beta" --package "ALV" --part "Default" --context "r5fss0-0" --product "MCU_PLUS_SDK_AM64x@08.05.00"
     * @versions {"tool":"1.14.0+2667"}
     */
    
    /**
     * Import the modules used in this configuration.
     */
    const eeprom          = scripting.addModule("/board/eeprom/eeprom", {}, false);
    const eeprom1         = eeprom.addInstance();
    const flash           = scripting.addModule("/board/flash/flash", {}, false);
    const flash1          = flash.addInstance();
    const led             = scripting.addModule("/board/led/led", {}, false);
    const led1            = led.addInstance();
    const led2            = led.addInstance();
    const led3            = led.addInstance();
    const gpio            = scripting.addModule("/drivers/gpio/gpio", {}, false);
    const gpio1           = gpio.addInstance();
    const i2c             = scripting.addModule("/drivers/i2c/i2c", {}, false);
    const i2c1            = i2c.addInstance();
    const i2c2            = i2c.addInstance();
    const ipc             = scripting.addModule("/drivers/ipc/ipc");
    const pruicss         = scripting.addModule("/drivers/pruicss/pruicss", {}, false);
    const pruicss1        = pruicss.addInstance();
    const ethercat        = scripting.addModule("/industrial_comms/ethercat/ethercat", {}, false);
    const ethercat1       = ethercat.addInstance();
    const addr_translate  = scripting.addModule("/kernel/dpl/addr_translate", {}, false);
    const addr_translate1 = addr_translate.addInstance();
    const debug_log       = scripting.addModule("/kernel/dpl/debug_log");
    const mpu_armv7       = scripting.addModule("/kernel/dpl/mpu_armv7", {}, false);
    const mpu_armv71      = mpu_armv7.addInstance();
    const mpu_armv72      = mpu_armv7.addInstance();
    const mpu_armv73      = mpu_armv7.addInstance();
    const mpu_armv74      = mpu_armv7.addInstance();
    const mpu_armv75      = mpu_armv7.addInstance();
    const mpu_armv76      = mpu_armv7.addInstance();
    const mpu_armv77      = mpu_armv7.addInstance();
    
    /**
     * Write custom configuration values to the imported modules.
     */
    eeprom1.$name = "CONFIG_EEPROM0";
    
    flash1.$name                  = "CONFIG_FLASH0";
    flash1.peripheralDriver.$name = "CONFIG_OSPI0";
    
    led1.name  = "TPIC2810";
    led1.$name = "CONFIG_LED_DIGITAL_OUTPUT";
    
    led2.$name = "CONFIG_LED_RUN";
    
    led3.name    = "Ioexp";
    led3.ioIndex = 16;
    led3.$name   = "CONFIG_LED_ERROR";
    
    gpio1.$name                    = "CONFIG_GPIO0";
    led2.peripheralDriver          = gpio1;
    gpio1.pinDir                   = "OUTPUT";
    gpio1.useMcuDomainPeripherals  = true;
    gpio1.MCU_GPIO.$assign         = "MCU_GPIO0";
    gpio1.MCU_GPIO.gpioPin.$assign = "ball.A7";
    
    i2c1.$name               = "CONFIG_I2C0";
    eeprom1.peripheralDriver = i2c1;
    i2c1.I2C.$assign         = "I2C0";
    i2c1.I2C.SCL.$assign     = "ball.A18";
    i2c1.I2C.SDA.$assign     = "ball.B18";
    
    i2c2.$name            = "CONFIG_I2C1";
    led1.peripheralDriver = i2c2;
    led3.peripheralDriver = i2c2;
    i2c2.I2C.$assign      = "I2C1";
    i2c2.I2C.SCL.$assign  = "ball.C18";
    i2c2.I2C.SDA.$assign  = "ball.B19";
    
    ipc.enableLinuxIpc = true;
    
    ethercat1.$name              = "CONFIG_ETHERCAT0";
    ethercat1.instance           = "ICSSG1";
    ethercat1.ethphy[0].$name    = "CONFIG_ETHPHY0";
    ethercat1.ethphy[1].$name    = "CONFIG_ETHPHY1";
    ethercat1.ethphy[1].mdioPort = 3;
    
    pruicss1.iepSyncMode                     = scripting.forceWrite(true);
    ethercat1.icss                           = pruicss1;
    pruicss1.$name                           = "CONFIG_PRU_ICSS1";
    pruicss1.AdditionalICSSSettings[0].$name = "CONFIG_PRU_ICSS_IO0";
    
    addr_translate1.$name = "CONFIG_ADDR_TRANSLATE_REGION0";
    
    debug_log.enableCssLog  = false;
    debug_log.enableMemLog  = true;
    debug_log.enableUartLog = true;
    debug_log.uartLog.$name = "CONFIG_UART0";
    
    mpu_armv71.$name             = "CONFIG_MPU_REGION0";
    mpu_armv71.size              = 31;
    mpu_armv71.attributes        = "Device";
    mpu_armv71.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv71.allowExecute      = false;
    
    mpu_armv72.$name             = "CONFIG_MPU_REGION1";
    mpu_armv72.size              = 15;
    mpu_armv72.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv73.$name             = "CONFIG_MPU_REGION2";
    mpu_armv73.baseAddr          = 0x41010000;
    mpu_armv73.size              = 15;
    mpu_armv73.accessPermissions = "Supervisor RD+WR, User RD";
    
    mpu_armv74.$name             = "CONFIG_MPU_REGION3";
    mpu_armv74.accessPermissions = "Supervisor RD+WR, User RD";
    mpu_armv74.baseAddr          = 0x70000000;
    mpu_armv74.size              = 21;
    
    mpu_armv75.$name    = "CONFIG_MPU_REGION4";
    mpu_armv75.baseAddr = 0x80000000;
    mpu_armv75.size     = 31;
    
    mpu_armv76.$name = "CONFIG_MPU_REGION5";
    
    mpu_armv77.$name = "CONFIG_MPU_REGION6";
    
    /**
     * Pinmux solution for unlocked pins/peripherals. This ensures that minor changes to the automatic solver in a future
     * version of the tool will not impact the pinmux you originally saw.  These lines can be completely deleted in order to
     * re-solve from scratch.
     */
    flash1.peripheralDriver.OSPI.$suggestSolution              = "OSPI0";
    flash1.peripheralDriver.OSPI.CLK.$suggestSolution          = "ball.N20";
    flash1.peripheralDriver.OSPI.CSn0.$suggestSolution         = "ball.L19";
    flash1.peripheralDriver.OSPI.DQS.$suggestSolution          = "ball.N19";
    flash1.peripheralDriver.OSPI.D7.$suggestSolution           = "ball.M17";
    flash1.peripheralDriver.OSPI.D6.$suggestSolution           = "ball.N18";
    flash1.peripheralDriver.OSPI.D5.$suggestSolution           = "ball.P20";
    flash1.peripheralDriver.OSPI.D4.$suggestSolution           = "ball.P21";
    flash1.peripheralDriver.OSPI.D3.$suggestSolution           = "ball.M21";
    flash1.peripheralDriver.OSPI.D2.$suggestSolution           = "ball.M20";
    flash1.peripheralDriver.OSPI.D1.$suggestSolution           = "ball.M18";
    flash1.peripheralDriver.OSPI.D0.$suggestSolution           = "ball.M19";
    ethercat1.PRU_ICSSG1_MDIO.$suggestSolution                 = "PRU_ICSSG1_MDIO0";
    ethercat1.PRU_ICSSG1_MDIO.MDC.$suggestSolution             = "ball.Y6";
    ethercat1.PRU_ICSSG1_MDIO.MDIO.$suggestSolution            = "ball.AA6";
    ethercat1.PRU_ICSSG1_IEP.$suggestSolution                  = "PRU_ICSSG1_IEP0";
    ethercat1.PRU_ICSSG1_IEP.EDC_LATCH_IN0.$suggestSolution    = "ball.V7";
    ethercat1.PRU_ICSSG1_IEP.EDC_LATCH_IN1.$suggestSolution    = "ball.U13";
    ethercat1.PRU_ICSSG1_IEP.EDC_SYNC_OUT0.$suggestSolution    = "ball.W7";
    ethercat1.PRU_ICSSG1_IEP.EDC_SYNC_OUT1.$suggestSolution    = "ball.U7";
    ethercat1.PRU_ICSSG1_MII_G_RT.$suggestSolution             = "PRU_ICSSG1_MII_G_RT";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD0.$suggestSolution   = "ball.Y7";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD1.$suggestSolution   = "ball.U8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD2.$suggestSolution   = "ball.W8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXD3.$suggestSolution   = "ball.V8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXDV.$suggestSolution   = "ball.Y8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXER.$suggestSolution   = "ball.V13";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_RXLINK.$suggestSolution = "ball.W13";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD0.$suggestSolution   = "ball.AA8";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD1.$suggestSolution   = "ball.U9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD2.$suggestSolution   = "ball.W9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXD3.$suggestSolution   = "ball.AA9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII0_TXEN.$suggestSolution   = "ball.Y9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD0.$suggestSolution   = "ball.W11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD1.$suggestSolution   = "ball.V11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD2.$suggestSolution   = "ball.AA12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXD3.$suggestSolution   = "ball.Y12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXDV.$suggestSolution   = "ball.W12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXER.$suggestSolution   = "ball.AA13";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_RXLINK.$suggestSolution = "ball.U12";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD0.$suggestSolution   = "ball.AA10";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD1.$suggestSolution   = "ball.V10";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD2.$suggestSolution   = "ball.U10";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXD3.$suggestSolution   = "ball.AA11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII1_TXEN.$suggestSolution   = "ball.Y11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MR0_CLK.$suggestSolution = "ball.AA7";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MR1_CLK.$suggestSolution = "ball.U11";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MT0_CLK.$suggestSolution = "ball.V9";
    ethercat1.PRU_ICSSG1_MII_G_RT.MII_MT1_CLK.$suggestSolution = "ball.Y10";
    debug_log.uartLog.UART.$suggestSolution                    = "USART0";
    debug_log.uartLog.UART.RXD.$suggestSolution                = "ball.D15";
    debug_log.uartLog.UART.TXD.$suggestSolution                = "ball.C16";
    

    以下是启动日志-

    root@am64xx-evm:/boot#
    root@am64xx-evm:/boot#
    root@am64xx-evm:/boot#
    root@am64xx-evm:/boot# ▒
    U-Boot SPL 2021.01 (May 07 2023 - 03:05:44 +0000)
    Resetting on cold boot to workaround ErrataID:i2331
    resetting ...
    
    U-Boot SPL 2021.01 (May 07 2023 - 03:05:44 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    SPL initial stack usage: 13424 bytes
    Trying to boot from MMC2
    Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices
    Warning: Did not detect image signing certificate. Skipping authentication to prevent boot failure. This will fail on Security Enforcing(HS-SE) devices
    Authentication passed
    Authentication passed
    Starting ATF on ARM64 core...
    
    NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb
    NOTICE:  BL31: Built : 03:03:30, May  7 2023
    I/TC:
    I/TC: OP-TEE version: 3.20.0-rc1 (gcc version 9.2.1 20191025 (GNU Toolchain for the A-profile Architecture 9.2-2019.12 (arm-9.10))) #1 Sun May  7 03:04:29 UTC 2023 aarch64
    I/TC: WARNING: This OP-TEE configuration might be insecure!
    I/TC: WARNING: Please check optee.readthedocs.io/.../porting_guidelines.html
    I/TC: Primary CPU initializing
    I/TC: SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    I/TC: HUK Initialized
    I/TC: Activated SA2UL device
    I/TC: Enabled firewalls for SA2UL TRNG device
    I/TC: SA2UL TRNG initialized
    I/TC: SA2UL Drivers initialized
    I/TC: Primary CPU switching to normal world boot
    
    U-Boot SPL 2021.01 (May 07 2023 - 03:07:54 +0000)
    SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    Trying to boot from MMC2
    Authentication passed
    Authentication passed
    
    
    U-Boot 2021.01 (May 07 2023 - 03:07:54 +0000)
    
    SoC:   AM64X SR2.0 HS-FS
    Model: Texas Instruments AM642 EVM
    Board: AM64-EVM rev C
    DRAM:  2 GiB
    NAND:  0 MiB
    MMC:   mmc@fa10000: 0, mmc@fa00000: 1
    Loading Environment from FAT... *** Warning - bad CRC, using default environment
    
    In:    serial@2800000
    Out:   serial@2800000
    Err:   serial@2800000
    Unidentified board claims AM64-EVM in eeprom header
    Net:   eth0: ethernet@8000000port@1
    Hit any key to stop autoboot:  0
    switch to partitions #0, OK
    mmc1 is current device
    SD/MMC found on device 1
    Failed to load 'boot.scr'
    574 bytes read in 4 ms (139.6 KiB/s)
    Loaded env from uEnv.txt
    Importing environment from mmc1 ...
    19147264 bytes read in 814 ms (22.4 MiB/s)
    55215 bytes read in 13 ms (4.1 MiB/s)
    ## Flattened Device Tree blob at 88000000
       Booting using the fdt blob at 0x88000000
       Loading Device Tree to 000000008feef000, end 000000008fffffff ... OK
    
    Starting kernel ...
    
    [    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
    [    0.000000] Linux version 5.10.168-g991c5ce91e (oe-user@oe-host) (aarch64-oe-linux-gcc (GCC) 9.5.0, GNU ld (GNU Binutils) 2.34.0.20200910) #1 SMP PREEMPT Thu Jun 15 08:35:21 UTC 2023
    [    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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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] 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 512 MiB at 0x00000000dd000000
    [    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.2
    [    0.000000] percpu: Embedded 22 pages/cpu s51288 r8192 d30632 u90112
    [    0.000000] Detected VIPT I-cache on CPU0
    [    0.000000] CPU features: detected: ARM erratum 845719
    [    0.000000] CPU features: detected: GIC system register CPU interface
    [    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
    [    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 mtdparts=fc40000.spi.0:1m(ospi.tiboot3),2m(ospi.tispl),4m(ospi.u-boot),256k(ospi.env),256k(ospi.env.backup),57088k@8m(ospi.rootfs),256k(ospi.phypattern);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=435198aa-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] mem auto-init: stack:off, heap alloc:off, heap free:off
    [    0.000000] Memory: 1398792K/2097152K available (11200K kernel code, 1162K rwdata, 4308K rodata, 1920K init, 431K bss, 174072K reserved, 524288K 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] GICv3: Distributor has no Range Selector support
    [    0.000000] GICv3: 16 PPIs implemented
    [    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 @0x0000000080030000
    [    0.000000] GIC: using cache flushing for LPI property table
    [    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080040000
    [    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
    [    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
    [    0.000005] sched_clock: 56 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
    [    0.008586] Console: colour dummy device 80x25
    [    0.013182] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
    [    0.023857] pid_max: default: 32768 minimum: 301
    [    0.028682] LSM: Security Framework initializing
    [    0.033470] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.041046] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
    [    0.051019] rcu: Hierarchical SRCU implementation.
    [    0.056294] Platform MSI: msi-controller@1820000 domain created
    [    0.062702] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
    [    0.072007] EFI services will not be available.
    [    0.076925] smp: Bringing up secondary CPUs ...
    I/TC: Secondary CPU 1 initializing
    I/TC: Secondary CPU 1 switching to normal world boot
    [    0.090546] Detected VIPT I-cache on CPU1
    [    0.090588] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000
    [    0.090604] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000
    [    0.090670] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
    [    0.090801] smp: Brought up 1 node, 2 CPUs
    [    0.120184] SMP: Total of 2 processors activated.
    [    0.124995] CPU features: detected: 32-bit EL0 Support
    [    0.130269] CPU features: detected: CRC32 instructions
    [    0.143804] CPU: All CPU(s) started at EL2
    [    0.148012] alternatives: patching kernel code
    [    0.153803] devtmpfs: initialized
    [    0.165250] KASLR disabled due to lack of seed
    [    0.170054] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
    [    0.180030] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
    [    0.204403] pinctrl core: initialized pinctrl subsystem
    [    0.210474] DMI not present or invalid.
    [    0.215191] NET: Registered protocol family 16
    [    0.221648] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
    [    0.229029] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
    [    0.237138] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
    [    0.245958] thermal_sys: Registered thermal governor 'step_wise'
    [    0.245968] thermal_sys: Registered thermal governor 'power_allocator'
    [    0.252576] cpuidle: using governor menu
    [    0.263533] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
    [    0.270544] ASID allocator initialised with 65536 entries
    [    0.304335] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages
    [    0.311218] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages
    [    0.318069] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
    [    0.324918] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages
    [    0.333192] cryptd: max_cpu_qlen set to 1000
    [    0.341123] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR2.0 JTAGID[0x1bb3802f] Detected
    [    0.350517] vsys_5v0: supplied by evm_12v0
    [    0.355220] vsys_3v3: supplied by evm_12v0
    [    0.360085] vddb_3v3_display: supplied by vsys_3v3
    [    0.366469] iommu: Default domain type: Translated
    [    0.371903] SCSI subsystem initialized
    [    0.376433] mc: Linux media interface: v0.10
    [    0.380838] videodev: Linux video capture interface: v2.00
    [    0.386538] pps_core: LinuxPPS API ver. 1 registered
    [    0.391613] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
    [    0.400961] PTP clock support registered
    [    0.405014] EDAC MC: Ver: 3.0.0
    [    0.409165] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100
    [    0.416095] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100
    [    0.422913] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100
    [    0.430469] FPGA manager framework
    [    0.434084] Advanced Linux Sound Architecture Driver Initialized.
    [    0.441491] clocksource: Switched to clocksource arch_sys_counter
    [    0.448014] VFS: Disk quotas dquot_6.6.0
    [    0.452097] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
    [    0.465672] NET: Registered protocol family 2
    [    0.470421] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear)
    [    0.479408] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear)
    [    0.488215] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear)
    [    0.496449] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear)
    [    0.504196] TCP: Hash tables configured (established 16384 bind 16384)
    [    0.511132] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear)
    [    0.518036] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear)
    [    0.525550] NET: Registered protocol family 1
    [    0.530676] RPC: Registered named UNIX socket transport module.
    [    0.536769] RPC: Registered udp transport module.
    [    0.541577] RPC: Registered tcp transport module.
    [    0.546383] RPC: Registered tcp NFSv4.1 backchannel transport module.
    [    0.552972] NET: Registered protocol family 44
    [    0.557538] PCI: CLS 0 bytes, default 64
    [    0.562379] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
    [    0.575386] Initialise system trusted keyrings
    [    0.580279] workingset: timestamp_bits=46 max_order=19 bucket_order=0
    [    0.591358] squashfs: version 4.0 (2009/01/31) Phillip Lougher
    [    0.598245] NFS: Registering the id_resolver key type
    [    0.603484] Key type id_resolver registered
    [    0.607774] Key type id_legacy registered
    [    0.611966] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
    [    0.618817] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
    [    0.626654] 9p: Installing v9fs 9p2000 file system support
    [    0.675440] Key type asymmetric registered
    [    0.679651] Asymmetric key parser 'x509' registered
    [    0.684690] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243)
    [    0.692260] io scheduler mq-deadline registered
    [    0.696895] io scheduler kyber registered
    [    0.703672] pinctrl-single 4084000.pinctrl: 33 pins, size 132
    [    0.710130] pinctrl-single f4000.pinctrl: 180 pins, size 720
    [    0.717102] pinctrl-single a40000.timesync-router: 512 pins, size 2048
    [    0.734314] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled
    [    0.757876] brd: module loaded
    [    0.769284] loop: module loaded
    [    0.773681] megasas: 07.714.04.00-rc1
    [    0.782398] tun: Universal TUN/TAP device driver, 1.6
    [    0.788417] igbvf: Intel(R) Gigabit Virtual Function Network Driver
    [    0.794853] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
    [    0.800966] sky2: driver version 1.30
    [    0.806197] VFIO - User Level meta-driver version: 0.3
    [    0.812768] i2c /dev entries driver
    [    0.818152] sdhci: Secure Digital Host Controller Interface driver
    [    0.824500] sdhci: Copyright(c) Pierre Ossman
    [    0.829811] sdhci-pltfm: SDHCI platform and OF driver helper
    [    0.837089] ledtrig-cpu: registered to indicate activity on CPUs
    [    0.843787] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping ....
    [    0.852192] optee: probing for conduit method.
    I/TC: Reserved shared memory is enabled
    I/TC: Dynamic shared memory is enabled
    I/TC: Normal World virtualization support is disabled
    I/TC: Asynchronous notifications are disabled
    [    0.856815] optee: revision 3.19 (3bc3809a)
    [    0.873458] optee: dynamic shared memory is enabled
    [    0.883202] optee: initialized driver
    [    0.889849] NET: Registered protocol family 17
    [    0.894585] 9pnet: Installing 9P2000 support
    [    0.899043] Key type dns_resolver registered
    [    0.903912] Loading compiled-in X.509 certificates
    [    0.927536] ti-sci 44043000.dmsc: lpm region is required for suspend but not provided.
    [    0.935770] ti-sci 44043000.dmsc: ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar')
    [    0.993047] omap-gpmc 3b000000.memory-controller: GPMC revision 6.0
    [    0.999539] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000
    [    1.008194] omap_i2c 20000000.i2c: bus 0 rev0.12 at 100 kHz
    [    1.015920] pca953x 1-0022: supply vcc not found, using dummy regulator
    [    1.022897] pca953x 1-0022: using AI
    [    1.078907] Console: switching to mono frame buffer device 12x2
    [    1.113796] ssd1307fb 1-003c: fb0: Solomon SSD1307 framebuffer device registered, using 192 bytes of video memory
    [    1.124508] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz
    [    1.131574] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz
    [    1.138648] omap_i2c 20030000.i2c: bus 3 rev0.12 at 100 kHz
    [    1.144888] ti-sci-intr bus@f4000:bus@4000000:interrupt-controller1: Interrupt Router 5 domain created
    [    1.154785] ti-sci-intr bus@f4000:interrupt-controller0: Interrupt Router 3 domain created
    [    1.163842] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created
    [    1.184942] j721e-pcie f102000.pcie: host bridge /bus@f4000/pcie@f102000 ranges:
    [    1.192636] j721e-pcie f102000.pcie:       IO 0x0068001000..0x0068010fff -> 0x0068001000
    [    1.200926] j721e-pcie f102000.pcie:      MEM 0x0068011000..0x006fffffff -> 0x0068011000
    [    1.209216] j721e-pcie f102000.pcie:   IB MEM 0x0000000000..0x0fffffffff -> 0x0000000000
    [    2.221931] j721e-pcie f102000.pcie: PCI host bridge to bus 0000:00
    [    2.228378] pci_bus 0000:00: root bus resource [bus 00-ff]
    [    2.233990] pci_bus 0000:00: root bus resource [io  0x0000-0xffff] (bus address [0x68001000-0x68010fff])
    [    2.243685] pci_bus 0000:00: root bus resource [mem 0x68011000-0x6fffffff]
    [    2.250754] pci 0000:00:00.0: [104c:b010] type 01 class 0x060400
    [    2.256912] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0xfffffffff 64bit pref]
    [    2.264462] pci 0000:00:00.0: supports D1
    [    2.268563] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
    [    2.277173] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
    [    2.288176] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01
    [    2.288222] pci 0000:00:00.0: BAR 0: no space for [mem size 0x1000000000 64bit pref]
    [    2.288229] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x1000000000 64bit pref]
    [    2.288238] pci 0000:00:00.0: PCI bridge to [bus 01]
    [    2.288891] pcieport 0000:00:00.0: PME: Signaling with IRQ 44
    [    2.289862] ti-udma 485c0100.dma-controller: Number of rings: 68
    [    2.291310] ti-udma 485c0100.dma-controller: Channels: 24 (bchan: 12, tchan: 6, rchan: 6)
    [    2.340627] ti-udma 485c0000.dma-controller: Number of rings: 288
    [    2.355631] ti-udma 485c0000.dma-controller: Channels: 44 (tchan: 29, rchan: 15)
    [    2.366793] printk: console [ttyS2] disabled
    [    2.371261] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 16, base_baud = 3000000) is a 8250
    [    2.380029] printk: console [ttyS2] enabled
    [    2.380029] printk: console [ttyS2] enabled
    [    2.388476] printk: bootconsole [ns16550a0] disabled
    [    2.388476] printk: bootconsole [ns16550a0] disabled
    [    2.402631] spi-nor spi0.0: unrecognized JEDEC id bytes: 00 00 00 00 00 00
    [    2.409570] spi-nor: probe of spi0.0 failed with error -2
    [    2.426649] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    2.473501] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    2.482530] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    2.490786] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
    [    2.503672] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
    [    2.510803] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512
    [    2.517517] pps pps0: new PPS source ptp0
    [    2.521957] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
    [    2.532592] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16
    [    2.543555] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
    [    2.552718] k3-j72xx-soc-thermal b00000.temperature-sensor: invalid resource
    [    2.559837] k3-j72xx-soc-thermal: probe of b00000.temperature-sensor failed with error -22
    [    2.571762] mmc1: CQHCI version 5.10
    [    2.571909] gpio-mux mux-controller: 2-way mux-controller registered
    [    2.590653] vdd_mmc1: supplied by vsys_3v3
    [    2.602627] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present!
    [    2.602633] mmc0: CQHCI version 5.10
    [    2.610126] mmc1: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
    [    2.630753] ALSA device list:
    [    2.633749]   No soundcards found.
    [    2.650073] mmc0: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
    [    2.658609] Waiting for root device PARTUUID=435198aa-02...
    [    2.706363] mmc0: new ultra high speed SDR25 SDHC card at address b368
    [    2.715271] mmcblk0: mmc0:b368 NCard 14.6 GiB
    [    2.720205] mmc1: Command Queue Engine enabled
    [    2.724678] mmc1: new HS200 MMC card at address 0001
    [    2.731632]  mmcblk0: p1 p2
    [    2.734571] mmcblk1: mmc1:0001 S0J56X 14.8 GiB
    [    2.739508] mmcblk1boot0: mmc1:0001 S0J56X partition 1 31.5 MiB
    [    2.746557] mmcblk1boot1: mmc1:0001 S0J56X partition 2 31.5 MiB
    [    2.752738] mmcblk1rpmb: mmc1:0001 S0J56X partition 3 4.00 MiB, chardev (237:0)
    [    2.795574] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
    [    2.803776] VFS: Mounted root (ext4 filesystem) on device 179:2.
    [    2.817547] devtmpfs: mounted
    [    2.821949] Freeing unused kernel memory: 1920K
    [    2.826609] Run /sbin/init as init process
    [    3.214355] systemd[1]: System time before build time, advancing clock.
    [    3.318573] NET: Registered protocol family 10
    [    3.324446] Segment Routing with IPv6
    [    3.382042] systemd[1]: systemd 244.5+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPARMOR -SMACK +SYSVINIT +UTMP -LIBCRYPTSETUP -GCRYPT -GNUTLS +ACL +XZ -LZ4 -SECCOMP +BLKID -ELFUTILS +KMOD -IDN2 -IDN -PCRE2 default-hierarchy=hybrid)
    [    3.404208] systemd[1]: Detected architecture arm64.
    
    Welcome to Arago 2021.09!
    
    [    3.455827] systemd[1]: Set hostname to <am64xx-evm>.
    [    3.480285] random: systemd: uninitialized urandom read (16 bytes read)
    [    3.487065] systemd[1]: Initializing machine ID from random generator.
    [    4.195040] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.205703] systemd[1]: Created slice system-getty.slice.
    [  OK  ] Created slice system-getty.slice.
    [    4.225758] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.234220] systemd[1]: Created slice system-serial\x2dgetty.slice.
    [  OK  ] Created slice system-serial\x2dgetty.slice.
    [    4.259380] systemd[1]: Created slice system-syslog\x2dng.slice.
    [  OK  ] Created slice system-syslog\x2dng.slice.
    [    4.283424] systemd[1]: Created slice User and Session Slice.
    [  OK  ] Created slice User and Session Slice.
    [    4.306177] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
    [  OK  ] Started Dispatch Password …ts to Console Directory Watch.
    [    4.330111] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
    [  OK  ] Started Forward Password R…uests to Wall Directory Watch.
    [    4.354106] systemd[1]: Reached target Paths.
    [  OK  ] Reached target Paths.
    [    4.369832] systemd[1]: Reached target Remote File Systems.
    [  OK  ] Reached target Remote File Systems.
    [    4.389809] systemd[1]: Reached target Slices.
    [  OK  ] Reached target Slices.
    [    4.405819] systemd[1]: Reached target Swap.
    [  OK  ] Reached target Swap.
    [    4.452327] systemd[1]: Listening on RPCbind Server Activation Socket.
    [  OK  ] Listening on RPCbind Server Activation Socket.
    [    4.473954] systemd[1]: Reached target RPC Port Mapper.
    [  OK  ] Reached target RPC Port Mapper.
    [    4.493767] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.507531] systemd[1]: Listening on Process Core Dump Socket.
    [  OK  ] Listening on Process Core Dump Socket.
    [    4.529743] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.530221] systemd[1]: Listening on initctl Compatibility Named Pipe.
    [  OK  ] Listening on initctl Compatibility Named Pipe.
    [    4.566311] systemd[1]: Condition check resulted in Journal Audit Socket being skipped.
    [    4.574571] random: systemd: uninitialized urandom read (16 bytes read)
    [    4.582002] systemd[1]: Listening on Journal Socket (/dev/log).
    [  OK  ] Listening on Journal Socket (/dev/log).
    [    4.606554] systemd[1]: Listening on Journal Socket.
    [  OK  ] Listening on Journal Socket.
    [    4.622749] systemd[1]: Listening on Network Service Netlink Socket.
    [  OK  ] Listening on Network Service Netlink Socket.
    [    4.646588] systemd[1]: Listening on udev Control Socket.
    [  OK  ] Listening on udev Control Socket.
    [    4.670286] systemd[1]: Listening on udev Kernel Socket.
    [  OK  ] Listening on udev Kernel Socket.
    [    4.699247] systemd[1]: Mounting Huge Pages File System...
             Mounting Huge Pages File System...
    [    4.719200] systemd[1]: Mounting POSIX Message Queue File System...
             Mounting POSIX Message Queue File System...
    [    4.747119] systemd[1]: Mounting Kernel Debug File System...
             Mounting Kernel Debug File System...
    [    4.776179] systemd[1]: Mounting Temporary Directory (/tmp)...
             Mounting Temporary Directory (/tmp)...
    [    4.799912] systemd[1]: Starting Create list of static device nodes for the current kernel...
             Starting Create list of st…odes for the current kernel...
    [    4.843964] systemd[1]: Starting Start psplash boot splash screen...
             Starting Start psplash boot splash screen...
    [    4.872374] systemd[1]: Starting RPC Bind...
             Starting RPC Bind...
    [    4.914014] systemd[1]: Condition check resulted in File System Check on Root Device being skipped.
    [    4.933670] systemd[1]: Starting Journal Service...
             Starting Journal Service...
    [    4.965731] systemd[1]: Starting Load Kernel Modules...
             Starting Load Kernel Modules...
    [    4.991415] systemd[1]: Starting Remount Root and Kernel File Systems...
             Starting Remount Root and Kernel File Systems...
    [    5.023154] cryptodev: loading out-of-tree module taints kernel.
    [    5.038710] systemd[1]: Starting udev Coldplug all Devices...
             Starting udev Coldplug all Devices...[    5.051627] cryptodev: driver 1.10 loaded.
    
    [    5.069217] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
    [    5.086548] systemd[1]: Started Start psplash boot splash screen.
    [  OK  ] Started Start psplash boot splash screen.
    [    5.110479] systemd[1]: Started RPC Bind.
    [  OK  ] Started RPC Bind.
    [    5.130534] systemd[1]: Started Journal Service.
    [  OK  ] Started Journal Service.
    [  OK  ] Mounted Huge Pages File System.
    [  OK  ] Mounted POSIX Message Queue File System.
    [  OK  ] Mounted Kernel Debug File System.
    [  OK  ] Mounted Temporary Directory (/tmp).
    [  OK  ] Started Create list of sta… nodes for the current kernel.
    [  OK  ] Started Load Kernel Modules.
    [  OK  ] Started Remount Root and Kernel File Systems.
             Mounting Kernel Configuration File System...
    [  OK  ] Started Start psplash-syst…progress communication helper.
             Starting Flush Journal to Persistent Storage...
    [    5.377251] systemd-journald[166]: Received client request to flush runtime journal.
             Starting Apply Kernel Variables...
             Starting Create System Users...
    [  OK  ] Mounted Kernel Configuration File System.
    [  OK  ] Started Flush Journal to Persistent Storage.
    [  OK  ] Started Apply Kernel Variables.
    [  OK  ] Started Create System Users.
    [    5.586662] random: systemd: uninitialized urandom read (16 bytes read)
    [    5.607985] random: systemd: uninitialized urandom read (16 bytes read)
             Starting Create Static Device Nodes in /dev    5.621723] random: systemd-journal: uninitialized urandom read (16 bytes read)
    m...
    [  OK  ] Started udev Coldplug all Devices.
             Starting udev Wait for Complete Device Initialization...
    [  OK  ] Started Create Static Device Nodes in /dev.
    [  OK  ] Reached target Local File Systems (Pre).
             Mounting /media/ram...
             Mounting /var/volatile...
             Starting udev Kernel Device Manager...
    [  OK  ] Mounted /media/ram.
    [  OK  ] Mounted /var/volatile.
             Starting Load/Save Random Seed...
    [  OK  ] Started udev Kernel Device Manager.
    [    6.572915] random: crng init done
    [    6.577436] random: 60 urandom warning(s) missed due to ratelimiting
    [  OK  ] Started Load/Save Random Seed.
    [    6.646839] CAN device driver interface
    [    6.655406] 93xx46 spi1.0: 16-bit eeprom
    [  OK  ] Created slice system-systemd\x2dbacklight.slice.
             Starting Load/Save Screen …ess of backlight:ssd1307fb0...
    [  OK  ] Started Load/Save Screen B…tness of backlight:ssd1307fb0.
    [    6.945126] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@a4000000
    [    6.983097] platform 78000000.r5f: configured R5F for remoteproc mode
    [    7.006300] k3-m4-rproc 5000000.m4fss: configured M4 for remoteproc mode
    [    7.026151] k3-m4-rproc 5000000.m4fss: local reset is deasserted for device
    [    7.026207] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000
    [    7.052699] remoteproc remoteproc0: 5000000.m4fss is available
    [    7.059680] remoteproc remoteproc1: 78000000.r5f is available
    [    7.068840] remoteproc remoteproc0: Direct firmware load for am64-mcu-m4f0_0-fw failed with error -2
    [    7.082985] remoteproc remoteproc0: powering up 5000000.m4fss
    [    7.091422] remoteproc remoteproc0: Direct firmware load for am64-mcu-m4f0_0-fw failed with error -2
    [    7.102476] remoteproc remoteproc0: request_firmware failed: -2
    [    7.111043] remoteproc remoteproc1: Direct firmware load for am64-main-r5f0_0-fw failed with error -2
    [    7.125190] remoteproc remoteproc1: powering up 78000000.r5f
    [    7.131354] remoteproc remoteproc1: Direct firmware load for am64-main-r5f0_0-fw failed with error -2
    [    7.140927] remoteproc remoteproc1: request_firmware failed: -2
    [    7.153367] platform 78200000.r5f: configured R5F for remoteproc mode
    [    7.180264] platform 78200000.r5f: assigned reserved memory node r5f-dma-memory@a1000000
    [    7.196243] m_can_platform 20701000.can: m_can device registered (irq=36, version=32)
    [    7.197178] remoteproc remoteproc2: 78200000.r5f is available
    [    7.210874] remoteproc remoteproc2: Direct firmware load for am64-main-r5f0_1-fw failed with error -2
    [    7.214524] m_can_platform 20711000.can: m_can device registered (irq=38, version=32)
    [    7.220729] remoteproc remoteproc2: powering up 78200000.r5f
    [    7.241656] remoteproc remoteproc2: Direct firmware load for am64-main-r5f0_1-fw failed with error -2
    [    7.253587] remoteproc remoteproc2: request_firmware failed: -2
    [    7.317109] platform 78400000.r5f: configured R5F for remoteproc mode
    [    7.404891] platform 78400000.r5f: assigned reserved memory node r5f-dma-memory@a2000000
    [    7.471110] remoteproc remoteproc3: 78400000.r5f is available
    [    7.479206] remoteproc remoteproc3: Direct firmware load for am64-main-r5f1_0-fw failed with error -2
    [    7.489851] remoteproc remoteproc3: powering up 78400000.r5f
    [    7.501911] remoteproc remoteproc3: Direct firmware load for am64-main-r5f1_0-fw failed with error -2
    [    7.512569] remoteproc remoteproc3: request_firmware failed: -2
    [    7.518729] platform 78600000.r5f: configured R5F for remoteproc mode
    [    7.525729] platform 78600000.r5f: assigned reserved memory node r5f-dma-memory@a3000000
    [    7.567042] remoteproc remoteproc4: 78600000.r5f is available
    [    7.573205] remoteproc remoteproc4: Direct firmware load for am64-main-r5f1_1-fw failed with error -2
    [    7.582659] remoteproc remoteproc4: powering up 78600000.r5f
    [    7.591951] remoteproc remoteproc4: Direct firmware load for am64-main-r5f1_1-fw failed with error -2
    [    7.601461] remoteproc remoteproc4: request_firmware failed: -2
    [    9.172888] usbcore: registered new interface driver usbfs
    [    9.188915] usbcore: registered new interface driver hub
    [    9.199376] usbcore: registered new device driver usb
    [  OK  ] Found device /dev/disk/by-uuid/2FC2-ED40.
    [  OK  ] Started udev Wait for Complete Device Initialization.
             Mounting /boot...
    [  OK  ] Started Hardware RNG Entropy Gatherer Daemon.
    [  OK  ] Mounted /boot.
    [  OK  ] Reached target Local File Systems.
             Starting Rebuild Dynamic Linker Cache...
             Starting Create Volatile Files and Directories...
    [  OK  ] Started Create Volatile Files and Directories.
             Starting Rebuild Journal Catalog...
    [FAILED] Failed to start Network Time Synchronization.
    See 'systemctl status systemd-timesyncd.service' for details.
    [  OK  ] Reached target System Time Set.
    [  OK  ] Reached target System Time Synchronized.
             Starting Update UTMP about System Boot/Shutdown...
    [  OK  ] Stopped Network Time Synchronization.
    [FAILED] Failed to start Network Time Synchronization.
    See 'systemctl status systemd-timesyncd.service' for details.
    [  OK  ] Started Rebuild Journal Catalog.
    [  OK  ] Stopped Network Time Synchronization.
    [FAILED] Failed to start Network Time Synchronization.
    See 'systemctl status systemd-timesyncd.service' for details.
    [  OK  ] Stopped Network Time Synchronization.
    [FAILED] Failed to start Network Time Synchronization.
    See 'systemctl status systemd-timesyncd.service' for details.
    [  OK  ] Started Update UTMP about System Boot/Shutdown.
    [  OK  ] Stopped Network Time Synchronization.
    [FAILED] Failed to start Network Time Synchronization.
    See 'systemctl status systemd-timesyncd.service' for details.
    [  OK  ] Stopped Network Time Synchronization.
    [FAILED] Failed to start Network Time Synchronization.
    See 'systemctl status systemd-timesyncd.service' for details.
    [  OK  ] Started Rebuild Dynamic Linker Cache.
             Starting Run pending postinsts...
             Starting Update is Completed...
    [  OK  ] Started Update is Completed.
    [  OK  ] Started Run pending postinsts.
    [  OK  ] Reached target System Initialization.
    [  OK  ] Started Daily Cleanup of Temporary Directories.
    [  OK  ] Reached target Timers.
    [  OK  ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket.
    [  OK  ] Listening on D-Bus System Message Bus Socket.
    [  OK  ] Listening on dropbear.socket.
    [  OK  ] Reached target Sockets.
    [  OK  ] Reached target Basic System.
    [  OK  ] Started D-Bus System Message Bus.
             Starting Ethernet Bridge Filtering Tables...
             Starting Print notice about GPLv3 packages...
             Starting IPv6 Packet Filtering Framework...
             Starting IPv4 Packet Filtering Framework...
             Starting System Logger Daemon "default" instance...
    [FAILED] Failed to start Login Service.
    See 'systemctl status systemd-logind.service' for details.
    [  OK  ] Started TEE Supplicant.
             Starting telnetd.service...
    [  OK  ] Started Ethernet Bridge Filtering Tables.
    [  OK  ] Started IPv6 Packet Filtering Framework.
    [  OK  ] Started IPv4 Packet Filtering Framework.
    [  OK  ] Started telnetd.service.
    [  OK  ] Reached target Network (Pre).
             Starting syslog.service...
    [  OK  ] Stopped Login Service.
    [FAILED] Failed to start Login Service.
    See 'systemctl status systemd-logind.service' for details.
             Starting Network Service...
    [  OK  ] Stopped Login Service.
    [FAILED] Failed to start Login Service.
    See 'systemctl status systemd-logind.service' for details.
    [  OK  ] Stopped Login Service.
    [FAILED] Failed to start Login Service.
    See 'systemctl status systemd-logind.service' for details.
    [  OK  ] Stopped Login Service.
    [FAILED] Failed to start Login Service.
    See 'systemctl status systemd-logind.service' for details.
    [  OK  ] Stopped Login Service.
    [FAILED] Failed to start Login Service.
    See 'systemctl status systemd-logind.service' for details.
    [  OK  ] Started System Logger Daemon "default" instance.
    [  OK  ] Started syslog.service.
    [  OK  ] Started Network Service.
             Starting Wait for Network to be Configured...
    [FAILED] Failed to start Network Name Resolution.
    See 'systemctl status systemd-resolved.service' for details.
    [  OK  ] Reached target Network.
    [  OK  ] Reached target Host and Network Name Lookups.
    [   13.503525] am65-cpsw-nuss 8000000.ethernet eth1: PHY [0.1:03] driver [TI DP83869] (irq=POLL)
             Starting Avahi mDNS/DNS-SD Stack...
    [   13.553650] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode
    [  OK  ] Started NFS status monitor for NFSv2/3 locking..
             Starting Permit User Sessions...
    [  OK  ] Started Vsftpd ftp daemon.
    [   13.743157] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL)
    [  OK  ] Started Permit User Sessions.
    [  OK  ] Started Avahi mDNS/DNS-SD Stack.
    [   13.804350] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode
    [  OK  ] Started Getty on tty1.
    [  OK  ] Started Serial Getty on ttyS1.
    [  OK  ] Started Serial Getty on ttyS2.
    [  OK  ] Reached target Login Prompts.
             Starting Synchronize System and HW clocks...
    [  OK  ] Stopped Network Name Resolution.
    [FAILED] Failed to start Network Name Resolution.
    See 'systemctl status systemd-resolved.service' for details.
    [FAILED] Failed to start Synchronize System and HW clocks.
    See 'systemctl status sync-clocks.service' for details.
    [  OK  ] Stopped Network Name Resolution.
    [FAILED] Failed to start Network Name Resolution.
    See 'systemctl status systemd-resolved.service' for details.
    [  OK  ] Stopped Network Name Resolution.
    [FAILED] Failed to start Network Name Resolution.
    See 'systemctl status systemd-resolved.service' for details.
    [  OK  ] Stopped Network Name Resolution.
    [FAILED] Failed to start Network Name Resolution.
    See 'systemctl status systemd-resolved.service' for details.
    [  OK  ] Stopped Network Name Resolution.
    [FAILED] Failed to start Network Name Resolution.
    See 'systemctl status systemd-resolved.service' for details.
    ***************************************************************
    ***************************************************************
    NOTICE: This file system contains the following GPLv3 packages:
            bash-dev
            bash
            cifs-utils
            dosfstools
            elfutils
            gawk
            gdb
            less
            libasm1
            libdw1
            libelf1
            libgdbm-compat4
            libgdbm-dev
            libgdbm6
            libreadline-dev
            libreadline8
            m4-dev
            m4
            parted
    
    If you do not wish to distribute GPLv3 components please remove
    the above packages prior to distribution.  This can be done using
    the opkg remove command.  i.e.:
        opkg remove <package>
    Where <package> is the name printed in the list above
    
    NOTE: If the package is a dependency of another package you
          will be notified of the dependent packages.  You should
          use the --force-removal-of-dependent-packages option to
          also remove the dependent packages as well
    ***************************************************************
    ***************************************************************
    [  OK  ] Started Print notice about GPLv3 packages.
    [   17.726494] am65-cpsw-nuss 8000000.ethernet eth1: Link is Up - 1Gbps/Full - flow control rx/tx
    [   17.735216] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
    
     _____                    _____           _         _
    |  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
    |     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
    |__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|
                  |___|                    |___|
    
    Arago Project am64xx-evm ttyS2
    
    Arago 2021.09 am64xx-evm ttyS2
    
    am64xx-evm login: root
    root@am64xx-evm:~#
    root@am64xx-evm:~#
    root@am64xx-evm:~# ls -l /lib/firmware/
    drwxr-xr-x    2 78122629 78120051      4096 Jun 14  2023 ti-pruss
    root@am64xx-evm:~#
    

    下面是我在 R5F0内核上加载 EtherCAT 示例时的日志-

    [4:23 PM] Ankita Gupta
    
    atet@am64xx-evm:/lib/firmware# echo start > /sys/class/remoteproc/remoteproc1/st
    
    [  650.398161] remoteproc remoteproc1: powering up 78000000.r5f
    
    [  650.405484] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 962740
    
    [  650.418142]  remoteproc1#vdev0buffer: assigned reserved memory node r5f-dma-memory@a0000000
    
    [  650.427111] virtio_rpmsg_bus virtio0: rpmsg host is online
    
    [  650.435583]  remoteproc1#vdev0buffer: registered virtio0 (type 7)
    
    [  650.442534] remoteproc remoteproc1: remote processor 78000000.r5f is now up
    
    root@am64xx-evm:/lib/firmware#
    
    root@am64xx-evm:/lib/firmware#
    
    root@am64xx-evm:/lib/firmware#
    
    root@am64xx-evm:/lib/firmware#
    
    e0ot@am64xx-evm:/lib/firmware# cat /sys/kernel/debug/remoteproc/remoteproc1/trac
    
    [unknown]     0.000000s : Inside main(), calling System_init()!
    
    root@am64xx-evm:/lib/firmware# cat /sys/kernel/debug/remoteproc/remoteproc1/state
    
    root@am64xx-evm:/lib/firmware#
    
    root@am64xx-evm:/lib/firmware#
    
    root@am64xx-evm:/lib/firmware#
    
    e0ot@am64xx-evm:/lib/firmware# cat /sys/kernel/debug/remoteproc/remoteproc1/trace
    
    [unknown]     0.000000s : Inside main(), calling System_init()!
    
    root@am64xx-evm:/lib/firmware#
    
    root@am64xx-evm:/lib/firmware#
    
    root@am64xx-evm:/lib/firmware#
    
    root@am64xx-evm:/lib/firmware#
    

    现在、K3资源分区工具方法 生成了"sciclient_defaultBoardcfg_rm_mcusdk.c"文件、但未使用。 据我所知、在之前的示例中、编译的"sbl_eMMC_linux_am64x-evm_r5fss0-0_nortos_ti-arm-clang" 正在 R5F0内核上加载。 此外、为了使 EtherCAT 正常工作、是否需要使用 IPC 示例加载 A53内核? 我们如何通过此方法在 A53内核上加载固件?

    谢谢。

    安基塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    在浏览 Linux devicetree 后、从 Linux 角度来看、它看起来很好。

    从 Linux SD 卡引导的角度来看、 是否插入以太网电缆无关紧要。

    从 Linux 引导日志中、错误代码2可能表明 Remoteproc 驱动程序正在文件系统文件夹/lib/firmware 中名为"am64-main-r5f0_0-fw"等的固件(或固件的软链接)。 因此、如果您希望固件在 Linux 启动期间加载、您可以使用此处介绍的"ln"命令添加一个指向要加载固件的软链接: https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__ANKEb6LZY6VAX.9xvGwQ-g__linux_academy_am64x__7qm9DIS__LATEST

    好的、电路板配置文件将用作 Uboot K3映像生成的一部分。 一般文档位于此处:
    https://software-dl.ti.com/processor-sdk-linux/esd/AM64X/08_06_00_42/exports/docs/linux/Foundational_Components/U-Boot/UG-General-Info.html 

    如果您需要更多有关如何使用更新后的 boardconfig 信息的指导、请告知我们、我会将您的主题传递给具有 Uboot 更丰富经验的团队成员。

    最后、不需要、Linux A53内核无需运行 IPC 示例即可初始化远程内核。 只要存在包含特定信息的资源表、Linux Remoteproc 驱动程序就可以初始化远程内核固件、详见以下链接: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1193620/faq-am62x-am64x-how-to-allow-linux-to-load-m4f-r5f-firmware-by-adding-a-resource-table

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Nick。

    祝您早上好!

    我正在尝试调试为什么对于 EtherCAT , System_Init ()不能完成。 能否在生成的文件中添加调试日志。 在这种情况下,System_Init()可从 ti_drivers_config.c 获取

    我尝试了浏览 SysConfig 工具文件、但没弄清楚。

    谢谢。

    安基塔

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Ankita、

    我在这个之前的响应中知道的调试提示:
    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1221223/processor-sdk-am64x-am64x-gp-evm-boot-issue-after-changing-k3-am642-evm-dts-while-fixing-initial-issue-of-error-22-while-trying-to-load-from-r5f/4621685#4621685 

    其中包含一些提示、例如如何将 CCS 连接到 R5F、以便准确地看到 R5F 代码当前所处的位置。

    在后台、我将 与其中一位比我更熟悉 EtherCAT 的团队成员沟通、看看他们是否已经在 AM64x 上试用过 EtherCAT、如果是、他们是否有建议。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    好像我跟的团队成员刚刚测试过只能使用 CCS 而不是 Linux 加载 EtherCAT 代码。

    此致、

    尼克

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Nick。 本周我们能够运行 EtherCAT 示例。

    再次感谢您的支持、您的意见和指导对我们有所帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很高兴听到事情进展顺利! 如果大家将来有任何问题、可以随意创建新主题。

    此致、

    尼克