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.

AM6421: AM6421 R5F remoteproc

Part Number: AM6421
Other Parts Discussed in Thread: AM6442, AM6422, AM6412, AM6411

HI

  We are using AM6421  with Procesoor sdk 09.00.0003.

   We have changed the dts file as per our requirement.

  We want to use R5F0_0 and  R5F1_0 core in linux to run applicatopns. from linux.

Below is the boot log and remoteproc output.

       We are not able to see any R5F cores in remoteproc .PLease help us in solving ttheissue.

BootLog output:

U-Boot SPL 2023.04-g24098ea90d (Jul 06 2023 - 12:59:40 +0000)
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed -121
Resetting on cold boot to workaround ErrataID:i2331
Please resend tiboot3.bin in case of UART/DFU boot
resetting ...

U-Boot SPL 2023.04-g24098ea90d (Jul 06 2023 - 12:59:40 +0000)
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed -121
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
SPL initial stack usage: 13376 bytes
Trying to boot from MMC2
Authentication passed
Authentication passed
Authentication passed
Authentication passed
Loading Environment from MMC... *** Warning - No MMC card found, using default environment

Starting ATF on ARM64 core...

NOTICE:  BL31: v2.8(release):v2.8-226-g2fcd408bb3-dirty
NOTICE:  BL31: Built : 00:42:57, Jan 13 2023
I/TC:
I/TC: OP-TEE version: 3.20.0 (gcc version 11.3.0 (GCC)) #1 Fri Jan 20 15:42:54 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 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
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 2023.04-g24098ea90d (Jul 06 2023 - 12:59:40 +0000)
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed -121
SYSFW ABI: 3.1 (firmware rev 0x0009 '9.0.5--v09.00.05 (Kool Koala)')
Trying to boot from MMC2
Authentication passed
Authentication passed


U-Boot 2023.04-g24098ea90d (Jul 06 2023 - 12:59:40 +0000)

SoC:   AM64X SR2.0 HS-FS
Model: Texas Instruments AM642 EVM
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed -121
DRAM:  2 GiB
Core:  59 devices, 29 uclasses, devicetree: separate
MMC:   mmc@fa10000: 0, mmc@fa00000: 1
Loading Environment from MMC... *** Warning - bad CRC, using default environment

In:    serial@2800000
Out:   serial@2800000
Err:   serial@2800000
EEPROM not available at 0x50, trying to read at 0x51
Reading on-board EEPROM at 0x51 failed -121
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 31 ms (17.6 KiB/s)
Loaded env from uEnv.txt
Importing environment from mmc1 ...
22622720 bytes read in 968 ms (22.3 MiB/s)
56995 bytes read in 35 ms (1.6 MiB/s)
Working FDT set to 88000000
## Flattened Device Tree blob at 88000000
   Booting using the fdt blob at 0x88000000
Working FDT set to 88000000
   Loading Device Tree to 000000008feef000, end 000000008fffffff ... OK
Working FDT set to 8feef000

Starting kernel ...

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.1.33-rt11celstream-v1.0-00001-g3ab301d00947-dirty (admin1@admin1-Latitude-3420) (aarch64-none-linux-gnu-gcc (Arm GNU Toolchain 11.3.Rel1) 11.3.1 20220712, GNU ld (Arm GNU Toolchain 11.3.Rel1) 2.38.20220708) #2 SMP PREEMPT Mon Dec 11 15:32:50 IST 2023
[    0.000000] Machine model: Texas Instruments AM642 EVM-Celstream
[    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] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] NUMA: NODE_DATA [mem 0xffbf1a00-0xffbf3fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080000000-0x000000009e7fffff]
[    0.000000]   node   0: [mem 0x000000009e800000-0x00000000a57fffff]
[    0.000000]   node   0: [mem 0x00000000a5800000-0x00000000ffffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080000000-0x00000000ffffffff]
[    0.000000] cma: Reserved 32 MiB at 0x00000000fba00000
[    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 20 pages/cpu s43560 r8192 d30168 u81920
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Fallback order for Node 0: 0
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 516096
[    0.000000] Policy zone: DMA
[    0.000000] Kernel command line: console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000 root=PARTUUID=0120bc4b-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: 1886768K/2097152K available (13568K kernel code, 1356K rwdata, 4448K rodata, 2560K init, 543K bss, 177616K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=2.
[    0.000000]     Trampoline variant of Tasks RCU enabled.
[    0.000000]     Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 256 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000001840000
[    0.000000] ITS [mem 0x01820000-0x0182ffff]
[    0.000000] GIC: enabling workaround for ITS: Socionext Synquacer pre-ITS
[    0.000000] ITS@0x0000000001820000: Devices Table too large, reduce ids 20->19
[    0.000000] ITS@0x0000000001820000: allocated 524288 Devices @80800000 (flat, esz 8, psz 64K, shr 0)
[    0.000000] ITS: using cache flushing for cmd queue
[    0.000000] GICv3: using LPI property table @0x0000000080030000
[    0.000000] GIC: using cache flushing for LPI property table
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000080040000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 200.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0x3ffffffffffffff max_cycles: 0x2e2049d3e8, max_idle_ns: 440795210634 ns
[    0.000001] sched_clock: 58 bits at 200MHz, resolution 5ns, wraps every 4398046511102ns
[    0.008621] Console: colour dummy device 80x25
[    0.013258] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000)
[    0.023940] pid_max: default: 32768 minimum: 301
[    0.028729] LSM: Security Framework initializing
[    0.033581] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.041166] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.051222] cblist_init_generic: Setting adjustable number of callback queues.
[    0.058700] cblist_init_generic: Setting shift to 1 and lim to 1.
[    0.065019] cblist_init_generic: Setting shift to 1 and lim to 1.
[    0.071549] rcu: Hierarchical SRCU implementation.
[    0.071552] rcu:     Max phase no-delay instances is 1000.
[    0.071620] printk: bootconsole [ns16550a0] printing thread started
[    0.088508] Platform MSI: msi-controller@1820000 domain created
[    0.088801] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created
[    0.089687] EFI services will not be available.
[    0.090017] smp: Bringing up secondary CPUs ...
[    5.123636] CPU1: failed to come online
[    5.123650] CPU1: failed in unknown state : 0x0
[    5.123748] smp: Brought up 1 node, 1 CPU
[    5.123755] SMP: Total of 1 processors activated.
[    5.123765] CPU features: detected: 32-bit EL0 Support
[    5.123768] CPU features: detected: 32-bit EL1 Support
[    5.123777] CPU features: detected: CRC32 instructions
[    5.123883] CPU: All CPU(s) started at EL2
[    5.123909] alternatives: applying system-wide alternatives
[    5.126126] devtmpfs: initialized
[    5.148183] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    5.148210] futex hash table entries: 512 (order: 3, 32768 bytes, linear)
[    5.149685] pinctrl core: initialized pinctrl subsystem
[    5.150347] DMI not present or invalid.
[    5.151082] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    5.156633] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations
[    5.156813] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    5.157002] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    5.157108] audit: initializing netlink subsys (disabled)
[    5.158028] thermal_sys: Registered thermal governor 'step_wise'
[    5.158039] thermal_sys: Registered thermal governor 'power_allocator'
[    5.158101] cpuidle: using governor menu
[    5.158340] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    5.158384] ASID allocator initialised with 65536 entries
[    5.159317] Serial: AMBA PL011 UART driver
[    5.164024] audit: type=2000 audit(5.120:1): state=initialized audit_enabled=0 res=1
[    5.188790] KASLR disabled due to lack of seed
[    5.212379] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    5.212393] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GI/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
iB page
[    5.212399] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    5.212402] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[    5.212407] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    5.212411] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[    5.212416] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    5.212419] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    5.224700] ACPI: Interpreter disabled.
[    5.225171] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR2.0 JTAGID[0x1bb3802f] Detected
[    5.232488] iommu: Default domain type: Translated
[    5.232500] iommu: DMA domain TLB invalidation policy: strict mode
[    5.232864] SCSI subsystem initialized
[    5.233390] usbcore: registered new interface driver usbfs
[    5.233433] usbcore: registered new interface driver hub
[    5.233463] usbcore: registered new device driver usb
[    5.234135] pps_core: LinuxPPS API ver. 1 registered
[    5.234141] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    5.234159] PTP clock support registered
[    5.234295] EDAC MC: Ver: 3.0.0
[    5.235502] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100
[    5.235763] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100
[    5.235926] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100
[    5.236708] FPGA manager framework
[    5.237674] vgaarb: loaded
[    5.240916] clocksource: Switched to clocksource arch_sys_counter
[    5.241220] VFS: Disk quotas dquot_6.6.0
[    5.241269] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    5.672597] printk: console [ttyS2] enabled
[    5.672602] printk: bootconsole [ns16550a0] disabled
[    5.672624] printk: bootconsole [ns16550a0] printing thread stopped
[    5.674768] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
[    5.674931] am65-cpsw-nuss 8000000.ethernet: /bus@f4000/ethernet@8000000/ethernet-ports/port@1 read phy-mode err -22
[    5.674990] printk: console [ttyS2] printing thread started
[    5.679299] am65-cpsw-nuss: probe of 8000000.ethernet failed with error -22
[    5.728360] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0
[    5.740871] mmc0: CQHCI version 5.10
[    5.745461] mmc1: CQHCI version 5.10
[    5.761150] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present!
[    5.787667] mmc0: SDHCI controller on fa10000.mmc [fa10000.mmc] using ADMA 64-bit
[    5.788671] mmc1: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit
[    5.790045] Waiting for root device PARTUUID=0120bc4b-02...
[    5.843096] mmc1: new high speed SDHC card at address aaaa
[    5.844062] mmcblk1: mmc1:aaaa SC16G 14.8 GiB
[    5.855958]  mmcblk1: p1 p2
[    5.890273] mmc0: Command Queue Engine enabled
[    5.890307] mmc0: new HS200 MMC card at address 0001
[    5.891184] mmcblk0: mmc0:0001 S0J56X 14.8 GiB
[    5.897496]  mmcblk0: p1 p2
[    5.898317] mmcblk0boot0: mmc0:0001 S0J56X 31.5 MiB
[    5.899635] mmcblk0boot1: mmc0:0001 S0J56X 31.5 MiB
[    5.906870] mmcblk0rpmb: mmc0:0001 S0J56X 4.00 MiB, chardev (239:0)
[    5.938347] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Quota mode: none.
[    5.938454] VFS: Mounted root (ext4 filesystem) on device 179:2.
[    5.955739] devtmpfs: mounted
[    5.957581] Freeing unused kernel memory: 2560K
[    5.957745] Run /sbin/init as init process
[    6.430560] systemd[1]: System time before build time, advancing clock.
[    6.696479] NET: Registered PF_INET6 protocol family
[    6.702895] Segment Routing with IPv6
[    6.702940] In-situ OAM (IOAM) with IPv6
[    6.772373] systemd[1]: systemd 250.5+ running in system mode (+PAM -AUDIT -SELINUX -APPARMOR +IMA -SMACK +SECCOMP -GCRYPT -GNUTLS -OPENSSL +ACL +BLKID -CURL -ELFUTILS -FIDO2 -IDN2 -IDN -IPTC +KMOD -LIBCRYPTSETUP +LIBFDISK -PCRE2 -PWQUALITY -P11KIT -QRENCODE -BZIP2 -LZ4 -XZ -ZLIB +ZSTD -BPF_FRAMEWORK +XKBCOMMON +UTMP +SYSVINIT default-hierarchy=hybrid)
[    6.804269] systemd[1]: Detected architecture arm64.

Welcome to Arago 2023.04!

[    6.860366] systemd[1]: Hostname set to <am64xx-evm>.
[    7.115162] systemd-sysv-generator[132]: SysV service '/etc/init.d/thermal-zone-init' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.144306] systemd-sysv-generator[132]: SysV service '/etc/init.d/sysrepo' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.144497] systemd-sysv-generator[132]: SysV service '/etc/init.d/inetd.busybox' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.151800] systemd-sysv-generator[132]: SysV service '/etc/init.d/netopeer2-server' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.157314] systemd-sysv-generator[132]: SysV service '/etc/init.d/resize_rootfs.sh' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.159447] systemd-sysv-generator[132]: SysV service '/etc/init.d/docker.init' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.160552] systemd-sysv-generator[132]: SysV service '/etc/init.d/dropbear' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.161582] systemd-sysv-generator[132]: SysV service '/etc/init.d/netperf' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.164643] systemd-sysv-generator[132]: SysV service '/etc/init.d/telnetd' lacks a native systemd unit file. Automatically generating a unit file for compatibility. Please update package to include a native systemd unit file, in order to make it more safe and robust.
[    7.664484] systemd[1]: /lib/systemd/system/startwlansta.service:7: Unknown key name 'After' in section 'Service', ignoring.
[    7.679844] systemd[1]: /lib/systemd/system/startwlanap.service:7: Unknown key name 'After' in section 'Service', ignoring.
[    7.747328] systemd[1]: /lib/systemd/system/bt-enable.service:9: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
[    7.845942] systemd[1]: /etc/systemd/system/sync-clocks.service:11: Standard output type syslog is obsolete, automatically updating to journal. Please update your unit file, and consider removing the setting altogether.
[    7.953172] systemd[1]: Queued start job for default target Graphical Interface.
[    8.028562] systemd[1]: Created slice Slice /system/getty.
[  OK  ] Created slice Slice /system/getty.
[    8.052866] systemd[1]: Created slice Slice /system/modprobe.
[  OK  ] Created slice Slice /system/modprobe.
[    8.076839] systemd[1]: Created slice Slice /system/serial-getty.
[  OK  ] Created slice Slice /system/serial-getty.
[  OK  ] Created slice User and Session Slic[    8.104074] systemd[1]: Created slice User and Session Slice.
e.
[  OK  ] Started Dispatch Password …ts to [    8.125594] systemd[1]: Started Dispatch Password Requests to Console Directory Watch.
Console Directory Watch.
[  OK  ] Started Forward Password R…uests [    8.149531] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
to Wall Directory Watch.
[  OK  ] Reached target Path Units.[    8.173650] systemd[1]: Reached target Path Units.

[  OK  ] Reached target Remote File Systems systemd[1]: Reached target Remote File Systems.
[0m.
[  OK  ] Reached target Slice Units.[    8.213211] systemd[1]: Reached target Slice Units.

[  OK  ] Reached target Swaps.[    8.233224] systemd[1]: Reached target Swaps.

[  OK  ] Listening on RPCbind Server Activat[    8.311696] systemd[1]: Listening on RPCbind Server Activation Socket.
ion Socket.
[  OK  ] Reached target RPC Port Mapper.[    8.333297] systemd[1]: Reached target RPC Port Mapper.

[  OK  ] Listening on Process Core Dump Sock[    8.363692] systemd[1]: Listening on Process Core Dump Socket.
et.
[  OK  ] Listening on initctl Compatibility [    8.385734] systemd[1]: Listening on initctl Compatibility Named Pipe.
Named Pipe.
[  OK  ] Listening on Journal Audit Socket    8.410299] systemd[1]: Listening on Journal Audit Socket.
0m.
[  OK  ] Listening on Journal Socket (/dev/l[    8.434017] systemd[1]: Listening on Journal Socket (/dev/log).
og).
[  OK  ] Listening on Journal Socket.[    8.458085] systemd[1]: Listening on Journal Socket.

[  OK  ] Listening on Network Service Netlin[    8.478432] systemd[1]: Listening on Network Service Netlink Socket.
k Socket.
[  OK  ] Listening on udev Control Socket    8.502203] systemd[1]: Listening on udev Control Socket.
m.
[  OK  ] Listening on udev Kernel Socket[    8.525912] systemd[1]: Listening on udev Kernel Socket.
.
[  OK  ] Listening on User Database Manager [    8.549997] systemd[1]: Listening on User Database Manager Socket.
Socket.
         Mounting Huge Pages File System...[    8.585763] systemd[1]: Mounting Huge Pages File System...

         Mounting POSIX Message Queue File System..[    8.617642] systemd[1]: Mounting POSIX Message Queue File System...
.
         Mounting Kernel Debug File System...[    8.649681] systemd[1]: Mounting Kernel Debug File System...

[    8.665955] systemd[1]: Kernel Trace File System was skipped because of a failed condition check (ConditionPathExists=/sys/kernel/tracing).
         Mounting Temporary Directory /tmp...[    8.697739] systemd[1]: Mounting Temporary Directory /tmp...

         Starting Create List of Static Device Nodes    8.733867] systemd[1]: Starting Create List of Static Device Nodes...
m...
         Starting Load Kernel Module configfs...[    8.773860] systemd[1]: Starting Load Kernel Module configfs...

         Starting Load Kernel Module drm...[    8.817899] systemd[1]: Starting Load Kernel Module drm...

         Starting Load Kernel Module fuse...[    8.854113] systemd[1]: Starting Load Kernel Module fuse...

[    8.924796] systemd[1]: Starting RPC Bind...
         Starting RPC Bind...
[    8.945700] systemd[1]: File System Check on Root Device was skipped because of a failed condition check (ConditionPathIsReadWrite=!/).
         Starting Journal Service...
[    8.978028] systemd[1]: Starting Journal Service...
         Starting Load Kernel Modules...[    9.058337] systemd[1]: Starting Load Kernel Modules...

         Starting Generate network …ts from Kernel co[    9.094424] systemd[1]: Starting Generate network units from Kernel command line...
mmand line...
[    9.123875] fuse: init (API version 7.37)
         Starting Remount Root and Kernel File Systems systemd[1]: Starting Remount Root and Kernel File Systems...
[0m...
[    9.166594] systemd[1]: Starting Coldplug All udev Devices...
         Starting Coldplug All udev Devices...
[  OK  ] Mounted Huge Pages File System.[    9.222589] systemd[1]: Mounted Huge Pages File System.

[  OK  ] Mounted POSIX Message Queue File Sy[    9.234983] systemd[1]: Mounted POSIX Message Queue File System.
stem.
[  OK  ] Mounted Kernel Debug File System    9.266504] systemd[1]: Mounted Kernel Debug File System.
m.
[  OK  ] Mounted Temporary Directory /tmp    9.284758] systemd[1]: Mounted Temporary Directory /tmp.
m.
[  OK  ] Finished Create List of Static Devi[    9.319843] systemd[1]: Finished Create List of Static Device Nodes.
ce Nodes.
[  OK  ] Finished Load Kernel Module configf[    9.351585] systemd[1]: modprobe@configfs.service: Deactivated successfully.
s.
[  OK  ] Finished Load Kernel Module drm[    9.356051] systemd[1]: Finished Load Kernel Module configfs.
.
[  OK  ] Finished Load Kernel Module fuse    9.383923] systemd[1]: modprobe@drm.service: Deactivated successfully.
m.
[    9.390219] systemd[1]: Finished Load Kernel Module drm.
[  OK  ] Finished Load Kernel Modules.[    9.419908] systemd[1]: modprobe@fuse.service: Deactivated successfully.

[  OK  ] Finished Generate network units fro[    9.422795] systemd[1]: Finished Load Kernel Module fuse.
m Kernel command line.
[    9.460087] systemd[1]: Finished Load Kernel Modules.
[  OK  ] Started RPC Bind.[    9.483107] systemd[1]: Finished Generate network units from Kernel command line.

[    9.530590] systemd[1]: Started RPC Bind.
[    9.565143] EXT4-fs (mmcblk1p2): re-mounted. Quota mode: none.
         Mounting FUSE Control File System...[    9.587962] systemd[1]: Mounting FUSE Control File System...

         Mounting Kernel Configuration File System.[    9.645783] systemd[1]: Mounting Kernel Configuration File System...
..
         Starting Apply Kernel Variables...[    9.686198] systemd[1]: Starting Apply Kernel Variables...

[  OK  ] Finished Remount Root and Kernel Fi[    9.719624] systemd[1]: Finished Remount Root and Kernel File Systems.
le Systems.
[  OK  ] Mounted FUSE Control File System    9.742213] systemd[1]: Mounted FUSE Control File System.
m.
[  OK  ] Mounted Kernel Configuration File S[    9.766166] systemd[1]: Mounted Kernel Configuration File System.
ystem.
[    9.798707] systemd[1]: Rebuild Hardware Database was skipped because of a failed condition check (ConditionNeedsUpdate=/etc).
[    9.799045] systemd[1]: Platform Persistent Storage Archival was skipped because of a failed condition check (ConditionDirectoryNotEmpty=/sys/fs/pstore).
         Starting Create Static Device Nodes in /dev    9.799294] systemd[1]: Create System Users was skipped because of a failed condition check (ConditionNeedsUpdate=/etc).
m...
[    9.846563] systemd[1]: Starting Create Static Device Nodes in /dev...
[  OK  ] Finished Apply Kernel Variables[    9.920028] systemd[1]: Finished Apply Kernel Variables.
.
[  OK  ] Started Journal Service.[    9.973192] systemd[1]: Started Journal Service.

         Starting Flush Journal to Persistent Storage...
[   10.091457] systemd-journald[146]: Received client request to flush runtime journal.
[  OK  ] Finished Create Static Device Nodes in /dev.
[  OK  ] Finished Flush Journal to Persistent Storage.
[  OK  ] Reached target Preparation for Local File Systems.
         Mounting /media/ram...
         Mounting /var/volatile...
[   10.243887] audit: type=1334 audit(1651167748.812:2): prog-id=5 op=LOAD
[   10.244308] audit: type=1334 audit(1651167748.812:3): prog-id=6 op=LOAD
         Starting Rule-based Manage…for Device Events and Files...
[  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  ] Finished Create Volatile Files and Directories.
         Starting Network Time Synchronization...
         Starting Record System Boot/Shutdown in UTMP...
[  OK  ] Started Rule-based Manager for Device Events and Files.
[  OK  ] Finished Record System Boot/Shutdown in UTMP.
[   11.416955] random: crng init done
[  OK  ] Finished Load/Save Random Seed.
[  OK  ] Finished Coldplug All udev Devices.
[  OK  ] Started Network Time Synchronization.
[  OK  ] Reached target System Initialization.
[  OK  ] Started Timer service to update the IP on OLED each 10s.
[  OK  ] Started Daily Cleanup of Temporary Directories.
[  OK  ] Reached target System Time Set.
[  OK  ] Started Daily rotation of log files.
[  OK  ] Reached target Timer Units.
[  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 Weston socket...
         Starting D-Bus System Message Bus...
         Starting Reboot and dump vmcore via kexec...
[  OK  ] Listening on Docker Socket for the API.
[  OK  ] Listening on Weston socket.
[  OK  ] Reached target Socket Units.
[  OK  ] Finished Reboot and dump vmcore via kexec.
[  OK  ] Started D-Bus System Message Bus.
[  OK  ] Reached target Basic System.
[  OK  ] Started Job spooling tools.
[  OK  ] Started Periodic Command Scheduler.
         Starting Print notice about GPLv3 packages...
         Starting IPv6 Packet Filtering Framework...
         Starting IPv4 Packet Filtering Framework...
         Starting startwlanap...
         Starting startwlansta...
[   12.968345] audit: type=1334 audit(1651491912.100:4): prog-id=7 op=LOAD
[   12.980244] audit: type=1334 audit(1651491912.112:5): prog-id=8 op=LOAD
         Starting User Login Management...
[  OK  ] Started TEE Supplicant.
         Starting telnetd.service...
[  OK  ] Started startwlansta.
[  OK  ] Started startwlanap.
[  OK  ] Finished IPv6 Packet Filtering Framework.
[  OK  ] Finished IPv4 Packet Filtering Framework.
[  OK  ] Reached target Preparation for Network.
         Starting Network Configuration...
[  OK  ] Started telnetd.service.
[   13.395744] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
         Starting LSB: Expand Rootfs of boot device...
[   13.625067] startwlansta.sh[221]: modprobe: FATAL: Module wl18xx not found in directory /lib/modules/6.1.33-rt11celstream-v1.0-00001-g3ab301d00947-dirty
[   13.683765] startwlansta.sh[222]: modprobe: FATAL: Module wlcore_sdio not found in directory /lib/modules/6.1.33-rt11celstream-v1.0-00001-g3ab301d00947-dirty
[  OK  ] Started LSB: Expand Rootfs of boot device.
[  OK  ] Started Network Configuration.
         Starting Wait for Network to be Configured...
         Starting Network Name Resolution...
[  OK  ] Started User Login Management.
[   15.378821] CAN device driver interface
[  OK  ] Found device /dev/ttyS2.
[  OK  ] Started Network Name Resolution.
[  OK  ] Reached target Network.
[  OK  ] Reached target Host and Network Name Lookups.
         Starting Avahi mDNS/DNS-SD Stack...
         Starting Enable and configure wl18xx bluetooth stack...
         Starting containerd container runtime...
[  OK  ] Started Netperf Benchmark Server.
[  OK  ] Started NFS status monitor for NFSv2/3 locking..
         Starting Simple Network Ma…ent Protocol (SNMP) Daemon....
         Starting Permit User Sessions...
[  OK  ] Finished Permit User Sessions.
[  OK  ] Started Getty on tty1.
[  OK  ] Started Serial Getty on ttyS2.
[  OK  ] Reached target Login Prompts.
         Starting Synchronize System and HW clocks...
         Starting Weston, a Wayland…ositor, as a system service...
[FAILED] Failed to start Synchronize System and HW clocks.
See 'systemctl status sync-clocks.service' for details.
[  OK  ] Finished Enable and configure wl18xx bluetooth stack.
[  OK  ] Started Avahi mDNS/DNS-SD Stack.
[   17.683581] davinci_mdio 300b2400.mdio: Configuring MDIO in manual mode
[   17.721113] davinci_mdio 300b2400.mdio: davinci mdio revision 1.7, bus freq 1000000
[   17.721423] mdio_bus 300b2400.mdio: MDIO device at address 15 is missing.
[   17.870404] audit: type=1334 audit(1651491917.004:6): prog-id=9 op=LOAD
[   17.880521] audit: type=1334 audit(1651491917.016:7): prog-id=10 op=LOAD
         Starting User Database Manager...
[   17.950395] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@a4000000
[   17.990945] k3-m4-rproc 5000000.m4fss: configured M4 for remoteproc mode
[   18.004024] k3-m4-rproc 5000000.m4fss: local reset is deasserted for device
[   18.027231] remoteproc remoteproc0: 5000000.m4fss is available
[   18.049237] remoteproc remoteproc0: Direct firmware load for am64-mcu-m4f0_0-fw failed with error -2
[   18.049273] remoteproc remoteproc0: powering up 5000000.m4fss
[   18.049319] remoteproc remoteproc0: Direct firmware load for am64-mcu-m4f0_0-fw failed with error -2
[   18.049329] remoteproc remoteproc0: request_firmware failed: -2
[   18.972598] k3_r5_rproc bus@f4000:r5fss@78000000: MCU cluster requires both R5F cores to be enabled but num_cores is set to = 1
[   19.006085] k3_r5_rproc bus@f4000:r5fss@78400000: MCU cluster requires both R5F cores to be enabled but num_cores is set to = 1
[  OK  ] Started User Database Manager.
[   19.478916] m_can_platform 20701000.can: m_can device registered (irq=502, version=32)
[   19.583425] m_can_platform 20711000.can: m_can device registered (irq=503, version=32)
[  OK  ] Created slice User Slice of UID 1000.
         Starting User Runtime Directory /run/user/1000...
[  OK  ] Finished User Runtime Directory /run/user/1000.
         Starting User Manager for UID 1000...
[   20.011434] audit: type=1006 audit(1651491919.144:8): pid=276 uid=0 old-auid=4294967295 auid=1000 tty=(none) old-ses=4294967295 ses=1 res=1
[   20.025727] audit: type=1300 audit(1651491919.144:8): arch=c00000b7 syscall=64 success=yes exit=4 a0=8 a1=ffffcc872cc8 a2=4 a3=ffff9983e020 items=0 ppid=1 pid=276 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=1 comm="(systemd)" exe="/lib/systemd/systemd" key=(null)
[   20.025800] audit: type=1327 audit(1651491919.144:8): proctitle="(systemd)"
[  OK  ] Started Simple Network Man…ement Protocol (SNMP) Daemon..
[  OK  ] Started User Manager for UID 1000.
[  OK  ] Started Session c1 of User weston.
[   20.736325] audit: type=1006 audit(1651491919.868:9): pid=262 uid=0 old-auid=4294967295 auid=1000 tty=tty7 old-ses=4294967295 ses=2 res=1
[   20.736415] audit: type=1300 audit(1651491919.868:9): arch=c00000b7 syscall=64 success=yes exit=4 a0=8 a1=ffffcc872cc8 a2=4 a3=ffff9983e020 items=0 ppid=1 pid=262 auid=1000 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=tty7 ses=2 comm="(weston)" exe="/lib/systemd/systemd" key=(null)
[   20.749502] audit: type=1327 audit(1651491919.868:9): proctitle="(weston)"
[FAILED] Failed to start Weston, a …mpositor, as a system service.
See 'systemctl status weston.service' for details.
[DEPEND] Dependency failed for Matrix GUI.

 _____                    _____           _         _   
|  _  |___ ___ ___ ___   |  _  |___ ___  |_|___ ___| |_
|     |  _| .'| . | . |  |   __|  _| . | | | -_|  _|  _|
|__|__|_| |__,|_  |___|  |__|  |_| |___|_| |___|___|_|  
              |___|                    |___|            

Arago Project am64xx-evm -

Arago 2023.04 am64xx-evm -

am64xx-evm login: [   25.285643] remoteproc remoteproc2: 30034000.pru is available
[   25.295154] remoteproc remoteproc3: 30004000.rtu is available
[   25.330190] remoteproc remoteproc1: 3000a000.txpru is available
[   25.357387] remoteproc remoteproc4: 30038000.pru is available
[   25.379314] remoteproc remoteproc5: 30006000.rtu is available
[   25.401485] remoteproc remoteproc6: 3000c000.txpru is available
[   25.421365] remoteproc remoteproc7: 300b4000.pru is available
[   25.441134] remoteproc remoteproc8: 30084000.rtu is available
[   25.473107] remoteproc remoteproc9: 3008a000.txpru is available
[   25.488010] remoteproc remoteproc10: 300b8000.pru is available
[   25.505797] remoteproc remoteproc11: 30086000.rtu is available
[   25.521944] remoteproc remoteproc12: 3008c000.txpru is available
[   27.618294] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Quota mode: none.
[   35.599243] platform mdio-mux-1: deferred probe pending


am64xx-evm login: root
[  117.828209] audit: type=1006 audit(1651492016.960:10): pid=580 uid=0 old-auid=4294967295 auid=0 tty=(none) old-ses=4294967295 ses=3 res=1
[  117.828426] audit: type=1300 audit(1651492016.960:10): arch=c00000b7 syscall=64 success=yes exit=1 a0=8 a1=ffffcc872cc8 a2=1 a3=ffff9983e020 items=0 ppid=1 pid=580 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=3 comm="(systemd)" exe="/lib/systemd/systemd" key=(null)
[  117.842155] audit: type=1327 audit(1651492016.960:10): proctitle="(systemd)"
[  117.914637] audit: type=1334 audit(1651492017.048:11): prog-id=11 op=LOAD
[  117.915420] audit: type=1300 audit(1651492017.048:11): arch=c00000b7 syscall=280 success=yes exit=8 a0=5 a1=ffffe1c4dd10 a2=78 a3=0 items=0 ppid=1 pid=580 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=3 comm="systemd" exe="/lib/systemd/systemd" key=(null)
[  117.916058] audit: type=1327 audit(1651492017.048:11): proctitle="(systemd)"
[  117.916450] audit: type=1334 audit(1651492017.048:12): prog-id=11 op=UNLOAD
[  117.917929] audit: type=1334 audit(1651492017.048:13): prog-id=12 op=LOAD
[  117.918392] audit: type=1300 audit(1651492017.048:13): arch=c00000b7 syscall=280 success=yes exit=8 a0=5 a1=ffffe1c4ddb0 a2=78 a3=0 items=0 ppid=1 pid=580 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=3 comm="systemd" exe="/lib/systemd/systemd" key=(null)
[  117.918433] audit: type=1327 audit(1651492017.048:13): proctitle="(systemd)"
root@am64xx-evm:~#

 



root@am64xx-evm:~# head /sys/class/remoteproc/remoteproc*/name
==> /sys/class/remoteproc/remoteproc0/name <==
5000000.m4fss

==> /sys/class/remoteproc/remoteproc1/name <==
3000a000.txpru

==> /sys/class/remoteproc/remoteproc10/name <==
300b8000.pru

==> /sys/class/remoteproc/remoteproc11/name <==
30086000.rtu

==> /sys/class/remoteproc/remoteproc12/name <==
3008c000.txpru

==> /sys/class/remoteproc/remoteproc2/name <==
30034000.pru

==> /sys/class/remoteproc/remoteproc3/name <==
30004000.rtu

==> /sys/class/remoteproc/remoteproc4/name <==
30038000.pru

==> /sys/class/remoteproc/remoteproc5/name <==
30006000.rtu

==> /sys/class/remoteproc/remoteproc6/name <==
3000c000.txpru

==> /sys/class/remoteproc/remoteproc7/name <==
300b4000.pru

==> /sys/class/remoteproc/remoteproc8/name <==
30084000.rtu

==> /sys/class/remoteproc/remoteproc9/name <==
3008a000.txpru

Thank You

  • Hello,

    First, let's talk about M4F 

    The Linux error code there means that you did not put an M4F binary in the location where the remoteproc driver was expecting to find a binary.

    We are about to push a new version of the AM64x Linux Academy. So I'll link you to the old version of the AM64x Linux academy page, and I'll also link you to the AM62x version of that page in case the AM64x link breaks when we push the new version.

    Please reference the page "Booting remote cores"
    existing AM64x version
    AM62x version

    Please attach the changes you made to the R5F Linux devicetree nodes

    I do not have enough information from your terminal output to comment on what is going on. The error output makes it sound like something needs to be modified in your devicetree definitions:

    "
    [   18.972598] k3_r5_rproc bus@f4000:r5fss@78000000: MCU cluster requires both R5F cores to be enabled but num_cores is set to = 1
    [   19.006085] k3_r5_rproc bus@f4000:r5fss@78400000: MCU cluster requires both R5F cores to be enabled but num_cores is set to = 1
    "

    To confirm, are you using a custom board with the AM6421 version of silicon on it? (i.e., NOT the regular EVM with AM6442?)

    Regards,

    Nick

  • Edited 2023-12-20: The patch file here is out-of-date. Please use the patch file in this later reply: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1302076/am6421-am6421-r5f-remoteproc/4959340#4959340 

    I'll attach the source code for the AM64x version of "booting and disabling processor cores".
    AM62x version is here:
    https://dev.ti.com/tirex/explore/node?a=XaWts8R__8.6.0.42%20v1&node=A__ATV8lNuOMfaMT1..qF.S4g__AM62-ACADEMY__uiYMDcq__LATEST&placeholder=true

    AM64x version of the docs

    Disabling unused cores in Linux
    -------------------------------
    ...
    
    .. only:: AM64X
    
     * The processor silicon variation does not have those remote cores. For example,
       AM6422 & AM6421 have two single-core R5F subsystems instead of two dual-core
       R5F subsystems,
       and AM6412 & AM6411 have one single-core R5F subsystem.
    
    * The application does not use the remote cores that are on the processor. Disabling
      a core allows us to free up system resources (like memory) for usage by other cores.
      
    ...
    
    Device tree changes to disable remote cores
    -------------------------------------------
    ...
    
    .. only:: AM64X
    
       For example, let's say we are using AM6411, and we are not using the M4F
       core. In that case, we must disable one of the R5F subsystems, and set
       the other R5F subsystem to single-CPU mode.
    
       :download:`AM64x-disable-all-cores-but-r5fss0_0.patch <../files/0001-AM64x-SDK-9.0-disable-all-cores-but-r5fss0_0.patch>`
    
    The "memory-region"s will
    still get allocated if they are left in the Linux devicetree, but they will be
    unused after Linux allocates them. Remember to free up unused memory by removing
    the associated DDR "memory-regions" from the reserved-memory node.
    

    Where this is the patch file:

    From 3af2225a8c3f8863c40c5423396c373d20538d5a Mon Sep 17 00:00:00 2001
    From: Nick Saulnier <nsaulnier@ti.com>
    Date: Mon, 2 Oct 2023 16:02:45 -0500
    Subject: [PATCH] AM64x SDK 9.0: disable all cores but r5fss0_0
    
    These cores are set to "disabled":
    r5fss0_1, r5fss1_0, r5fss1_1, m4f
    
    The mailbox node settings can be deleted, since the mailbox is no longer
    being used for RPMsg communication between the disabled cores and Linux.
    
    The disabled cores' memory allocations in DDR are released for use by other
    parts of the processor system.
    
    Since there is now only one MCU+ core running (r5fss0_0), the
    rtos_ipc_memory_region is no longer used for IPC communication between MCU+
    cores. This memory region can also be removed.
    
    Signed-off-by: Nick Saulnier <nsaulnier@ti.com>
    ---
     arch/arm64/boot/dts/ti/k3-am642-sk.dts | 99 +++-----------------------
     1 file changed, 9 insertions(+), 90 deletions(-)
    
    diff --git a/arch/arm64/boot/dts/ti/k3-am642-sk.dts b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
    index de0ff5af5e63..9cd48f35e2e7 100644
    --- a/arch/arm64/boot/dts/ti/k3-am642-sk.dts
    +++ b/arch/arm64/boot/dts/ti/k3-am642-sk.dts
    @@ -50,60 +50,6 @@ main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
     			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;
    -		};
     	};
     
     	vusb_main: fixed-regulator-vusb-main5v0 {
    @@ -556,44 +502,25 @@ 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";
     };
     
    +/* set R5F subsystem to single-CPU mode */
    +&main_r5fss0 {
    +	ti,cluster-mode = <2>;
    +};
    +
     &main_r5fss0_core0 {
     	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>;
     	memory-region = <&main_r5fss0_core0_dma_memory_region>,
    @@ -601,27 +528,19 @@ &main_r5fss0_core0 {
     };
     
     &main_r5fss0_core1 {
    -	mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
    -	memory-region = <&main_r5fss0_core1_dma_memory_region>,
    -			<&main_r5fss0_core1_memory_region>;
    +	status = "disabled";
     };
     
     &main_r5fss1_core0 {
    -	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>;
    -	memory-region = <&main_r5fss1_core0_dma_memory_region>,
    -			<&main_r5fss1_core0_memory_region>;
    +	status = "disabled";
     };
     
     &main_r5fss1_core1 {
    -	mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
    -	memory-region = <&main_r5fss1_core1_dma_memory_region>,
    -			<&main_r5fss1_core1_memory_region>;
    +	status = "disabled";
     };
     
     &mcu_m4fss {
    -	mboxes = <&mailbox0_cluster6 &mbox_m4_0>;
    -	memory-region = <&mcu_m4fss_dma_memory_region>,
    -			<&mcu_m4fss_memory_region>;
    +	status = "disabled";
     };
     
     &ecap0 {
    -- 
    2.34.1
    

    Regards,

    Nick

  • Hi Nick,

         Thank You for the Response.

          We have changed the Device tree as suggested by you.

          Below are the changes made in Device tree. and IN Linux Kernel Menuconfig.

    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;
            };
    };



    &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";
    };


    /* set R5F subsystem to single-CPU mode */
    +&main_r5fss0 {
    +    ti,cluster-mode = <2>;
    +};


    /* set R5F subsystem to single-CPU mode */
    +&main_r5fss1 {
    +    ti,cluster-mode = <2>;
    +};

    &main_r5fss0_core1 {
        
    -    mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>;
    -    memory-region = <&main_r5fss0_core1_dma_memory_region>,
    -            <&main_r5fss0_core1_memory_region>;
         

        status = "disabled";           
    };

    &main_r5fss1_core1 {
        
    -    mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>;
    -    memory-region = <&main_r5fss1_core1_dma_memory_region>,
    -            <&main_r5fss1_core1_memory_region>;
        
        status = "disabled";       
    };

    And in Kernel MenuConfig we have enabled below  for R5F REmoteproc


    //in LInux-kernel menuconfig********
         Remoteproc drivers  --->
                 [*] Support for Remote Processor subsystem                                                                                 
                 [*]   Remoteproc character device interface                                                                                  
                 <M>   TI PRU remoteproc support                                                                                               
                 <M>   TI K3 DSP remoteproc support                                                                                          
                 <M>   TI K3 M4 remoteproc support                                                                                       
                 <M>   TI K3 R5 remoteproc support                                                                                            
                                                       

    Below is the output we are getting where R5f Remoteproc not shown.

                                                                                         
    root@am64xx-evm:~# dmesg | grep remoteproc
    [   25.330162] remoteproc remoteproc0: 30034000.pru is available
    [   25.348219] remoteproc remoteproc1: 30004000.rtu is available
    [   25.371349] remoteproc remoteproc2: 3000a000.txpru is available
    [   25.386975] remoteproc remoteproc3: 30038000.pru is available
    [   25.407108] remoteproc remoteproc4: 30006000.rtu is available
    [   25.434596] remoteproc remoteproc5: 3000c000.txpru is available
    [   25.451759] remoteproc remoteproc6: 300b4000.pru is available
    [   25.467331] remoteproc remoteproc7: 30084000.rtu is available
    [   25.485214] remoteproc remoteproc8: 3008a000.txpru is available
    [   25.512380] remoteproc remoteproc9: 300b8000.pru is available
    [   25.526987] remoteproc remoteproc10: 30086000.rtu is available
    [   25.554137] remoteproc remoteproc11: 3008c000.txpru is available

    Please help us in solving the issue.

    Thank You

    Rgds,

    T Narasimha Rao

  • Hello,

    Your Linux devicetree changes look the way I would expect. Are you seeing any other terminal output with something like this?
    dmesg | grep r5

    I'm looking for any output like this part of your first post:
    [   18.972598] k3_r5_rproc bus@f4000:r5fss@78000000: MCU cluster requires both R5F cores to be enabled but num_cores is set to = 1
    [   19.006085] k3_r5_rproc bus@f4000:r5fss@78400000: MCU cluster requires both R5F cores to be enabled but num_cores is set to = 1

    Also, are you running this test with an AM64x EVM, or a custom board?

    Regards,

    Nick

  • Hi Nick,

      Thank You for the response.

      yes, we are getting below messages in boot log.

    [   18.972598] k3_r5_rproc bus@f4000:r5fss@78000000: MCU cluster requires both R5F cores to be enabled but num_cores is set to = 1
    [   19.006085] k3_r5_rproc bus@f4000:r5fss@78400000: MCU cluster requires both R5F cores to be enabled but num_cores is set to = 1

    We are not testing on AM64x EVM, we are testing on custom board with AM6421 processor.

    Thank You.

    Rgds,

    T Narasimha Rao

  • Hello,

    I am going to try to replicate your results on Friday. Please ping the thread if I have not responded by Monday.

    Regards,

    Nick

  • Hi Nick,

      As indicated, I have not received any reply from you regarding Remote booting of R5F from Linux on AM6421 custom Board.  

      Please send the solution.

    Rgds,

    T Narasimha Rao

  • Hello,

    Thank you for the ping. I am able to replicate your results.

    k3_r5_rproc bus@f4000:r5fss@78400000 is fixable by disabling the entire r5fss1, like this:

    /* disable R5F subsystem 1 */
    &main_r5fss1 {
            status = "disabled";
    };
    

    The other output looks like a bug in the driver code to me. The error is coming from this part of the probe function:

            if  ((cluster->mode == CLUSTER_MODE_SINGLECPU && !data->single_cpu_mode) ||
                 (cluster->mode == CLUSTER_MODE_SINGLECORE && !data->is_single_core)) {
                    dev_err(dev, "Cluster mode = %d is not supported on this SoC\n", cluster->mode);
                    return -EINVAL;
            }
    
            num_cores = of_get_available_child_count(np);
            if (num_cores != 2 && !data->is_single_core) {
                    dev_err(dev, "MCU cluster requires both R5F cores to be enabled but num_cores is set to = %d\n",
                            num_cores);
                    return -ENODEV;
            }
    

    where I would expect that the second IF statement should actually look like this:

            num_cores = of_get_available_child_count(np);
            if ((num_cores != 2 && !data->is_single_core) &&
                (!data->single_cpu_mode)) {
                    dev_err(dev, "MCU cluster requires both R5F cores to be enabled but num_cores is set to = %d\n",
                            num_cores);
                    return -ENODEV;
            }

    I am going to double-check with the Linux developer and get back to you. Thanks for reporting this behavior.

    Regards,

    Nick

  • Hi Nick,

     Thank You for the reply.

    We are using AM6421 SOC in our custom Board.

      Since AM6421 has 2 R5F cores (R5F0_0 and R5F1_0), We cannot disable complete r5fss1 cluster.

    &main_r5fss1 {
    status = "disabled";
    }; 

    Also please suggest us the way to boot remote cores R5F0_0 and R5F1_0 from Linux.

    Waiting for your quick reply.

    Regards,

    T Narasimha Rao.

  • Hi Nick,

        Can you update how to boot remote cores R5F0_0 AND R5F1_0 from Linux user space.

    Regads,

    T Narasimha Rao

  • Hi Nick,

        Can you update how to boot remote cores R5F0_0 AND R5F1_0 from Linux user space.

    Regads,

    T Narasimha Rao

  • Hello,

    Apologies for the delayed response, there were technical issues that prevented me from replying yesterday.

    It turns out the driver works fine, but you are not supposed to disable core1 of the R5F subsystem that is being set to single-core mode.

    Future readers, I have already pushed the latest (working) patch to the AM64x Academy - it should show up within the next day or so. Starting in AM64x Academy 9.00.00.00 v2, reference Multicore module, page "Booting and disabling processor cores"
    https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__ATo1YYblar8bnpnjYwvd1g__AM64-ACADEMY__WI1KRXP__LATEST 

    I'll also attach the updated patch here:

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/791/0001_2D00_AM64x_2D00_SDK_2D00_9.0_2D00_disable_2D00_all_2D00_cores_2D00_but_2D00_r5fss0_5F00_0.patch

    Regards,

    Nick

  • Hi Nick,

    Thank You for the reply.

      It is confusing us with this suggestion by you " not supposed to disable core1 of the R5F subsystem that is being set to single-core mode."

    Please suggest us what we have do in device tree for using R5F cores in AM6421.

     do we have to enable R5F0_0 or R5F0_1 for cluster 0 AND 

    do we have to enable R5F1_0 or R5F1_1 for cluster 1.

    And how to enable remoteproc in Linux for Selected R5F cores.

     Please its urgent we have to give demo to customer.

    Regards,

    T Narasimha Rao

  • Please review the updated patch I attached in my previous response.

    Default devicetree file: 

    main domain dtsi file:
    R5F subsystem defined
    R5F core 0 defined
    R5F core 1 defined

    board dts file:
    R5F core 0 define memory and mailboxes
    R5F core 1 define memory and mailboxes

    patched devicetree file 

    main domain dtsi file is unchanged

    board dts file:
    Set R5F subsystem to single core mode
    R5F core 0 define memory and mailboxes
    delete all references to R5F core 1

    What does this actually do? 

    If you are curious about what is going on in software:

    Remember, if a Linux devicetree node is defined, it is "enabled" by default. So technically, core 0 and core 1 are both still "enabled" in the patched devicetree. However, core 1 is not actually used, so we can delete all the memory and mailboxes that were getting assigned to it in the default devicetree file.

    The Linux driver checks that both cores are "enabled". Once it sees that is true, then it continues setting up the R5F subsystem in single-core mode.

    Regards,

    Nick

  • Hi Nick,

    Can you update on our previous query about which R5F core to be enabled for AM6421.

    Rgds

    T Narasimha Rao

  • Hello,

    As discussed at 
    https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__ATo1YYblar8bnpnjYwvd1g__AM64-ACADEMY__WI1KRXP__LATEST : 

    "

    Cores should be disabled if:

    • The processor silicon variation does not have those remote cores. For example, AM6422 & AM6421 have two single-core R5F subsystems instead of two dual-core R5F subsystems, and AM6412 & AM6411 have one single-core R5F subsystem.

    "

    So it would look like this (among other changes that you will find in the patch I attached above)

    +/* set R5F subsystem 0 to single-CPU mode */
    +&main_r5fss0 {
    +	ti,cluster-mode = <2>;
    +};
    +
    
    +/* set R5F subsystem 1 to single-CPU mode */
    +&main_r5fss1 {
    +	ti,cluster-mode = <2>;
    +};
    +
    
    +/* remove the &main_r5fss0_core1 definitions of mboxes & memory-region */
    +/* remove the &main_r5fss1_core1 definitions of mboxes & memory-region */
    
    /* DO NOT set main_r5fss0_core1 or main_r5fss1_core1 to status = disabled */
    

    Regards,

    Nick

  • For other "getting started" information, I would check out these academy pages (in increasing order of complexity):

    Booting remote cores: https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AdAyuKWUWVV5j4wBc7C6XA__AM64-ACADEMY__WI1KRXP__LATEST

    Run the out-of-the-box IPC demo: https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__Ab31zORiXVgIbeWGmbktOA__AM64-ACADEMY__WI1KRXP__LATEST

    How to create a remote core binary that works with Linux (probably more info than you need to run a demo): https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AeMVTHckwFDmFoNkRHpRPw__AM64-ACADEMY__WI1KRXP__LATEST

    Regards,

    Nick