Other Parts Discussed in Thread: SYSCONFIG
If run A53 with Linux, can run R5 on SRAM?
Seems not, but why?
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.
Hello Tony,
That image in the memory map layout shows the default memory allocation, but that is not the REQUIRED memory allocation.
The AM64x academy Multicore module will be live sometime in the next week or so. Until it becomes available, you can refer customers to the AM62x Academy Multicore module, page "How to allocate memory"
https://dev.ti.com/tirex/explore/node?node=A__AZgEw2fWxmvPzpRgXlGAMQ__AM62-ACADEMY__uiYMDcq__LATEST
You should be able to pass defined SRAM memory regions into the Linux devicetree file node, just like defined DDR memory regions.
Regards,
Nick
NIck,
Thanks for reply.
Can IPC memory also be allocated on SRAM with A53 running Linux? I suppose YES.
Hello Tony,
That is a simple question with a complicated answer.
Can you provide additional details about the usecase here? i.e.,
1) Are you talking about the RPMsg IPC VRINGS that are used for Linux <--> remote core communication?
2) Are you talking about IPC between remote cores? (i.e., NOT with Linux)?
3) or are we talking about some other kind of IPC?
4) Are there specific timing considerations?
etc
If you are talking about the RPMsg IPC VRINGS:
Please keep this in mind:
1) AM64x SRAM is only 2MB, and the RPMsg IPC VRINGS between Linux and 1 remote core take up 1MB by default (because of 512 buffers total, 256 buffers in each direction). There might be a way to reduce the size by reducing the number of buffers, but the last time I tried reducing the number of virtio buffers it didn't work. This would require additional development effort.
2) We have only tested RPMsg IPC VRINGs going into DDR. There might be an issue preventing us from placing those buffers in SRAM, but I cannot tell you for sure without digging into it.
Regards,
Nick
here might be a way to reduce the size by reducing the number of buffers, but the last time I tried reducing the number of virtio buffers it didn't work. This would require additional development effort.
Looking forward it will work, my customer's case need only 512byte buffer.
Additional question, in default, the IPC share memory is not cacheable. if enable Cache on MCU side code to IPC share memory, need extra configuration on A53 Linux side?
Hello Tony,
Just to clarify: if you are asking about putting the RPMsg IPC VRINGs between Linux and a remote core in SRAM, that is not supported and it might not even be possible, regardless of whether we were able to reduce the number of VIRTIO buffers.
In general, you do NOT want shared memory to be set as cacheable. Whenever the R5F is checking to see if someone else has written to the memory, you want the R5F to actually go out and read the memory region, instead of just reading its cache and assuming that the data has not been updated.
Regards,
Nick
Whenever the R5F is checking to see if someone else has written to the memory, you want the R5F to actually go out and read the memory region, instead of just reading its cache and assuming that the data has not been updated.
On R5F side, add cache invalidate before reading to ensure read physical memory, how about that?
Hello Tony,
I think that should work, though I would need to pass your thread over to another teammate to verify.
Before I pass your thread over, can you help me understand the usecase for setting the IPC memory region as cachable? Is this some kind of memory access optimization where you are trying to save memory by storing the incoming IPC data in cache in the short term instead of copying it into local memory?
Regards,
Nick
Nick,
The back ground is this post:
If can leverage Cacheable IPC memory, then doesn't matter where to put the IPC share memory as the throughput is enough quick even put it on DDR.
Hello Tony,
Ahh, ok. Anil is the guy I would ask about how cache operations work, so I'll let him comment on that other thread.
Since you are using the ipc_rpmsg_echo example, I assume you are talking about IPC between two MCU+ cores.
A couple questions come to mind when looking at those tests:
1) How is the core notified that the shared memory data is ready? I assume IPC_Notify to minimize notification latency?
2) What is the latency careabout here?
For example, are you trying to minimize the latency between when the sending core sends an IPC Notify saying that the data is ready, and the time when the receiving core actually reads the data?
Do you not care about the latency, and you're just trying to minimize the clock cycles that the R5F is spending reading the data?
If the latency doesn't matter and you just want to minimize the clock cycles for the R5F to conduct a read or wrote, then that cache invalidate / read the cache operation might be a good idea (depending on how CacheP_inv / CacheP_wbInv actually works). However, if the latency is a careabout, you may or may not actually see benefits from playing around with the cache.
Regards,
Nick
Nick,
Thanks for details, both latency and throughput are important to real time use case. customer will evaluate and compare it.
Now we can use Cache API of RTOS on R5F core, how to do Cache enabling and Cache coherency on A53 Linux to IPC memory?
Hello Tony,
Sounds good.
I am not very familiar with exactly how Linux interacts with cache. The high-level userspace application code does not need to worry about cache management when sending and receiving regular RPMsg messages.
However, it does look like we do some cache coherency management with the zerocopy example:
https://git.ti.com/cgit/rpmsg/rpmsg_char_zerocopy/
from https://git.ti.com/cgit/rpmsg/rpmsg_char_zerocopy/tree/linux/README.md
We're doing a very basic cache coherency management with the help of
*DMA_BUF_IOCTL_SYNC* ioctl before and after accessing the mmapped area.
where the line it is referencing is here:
https://git.ti.com/cgit/rpmsg/rpmsg_char_zerocopy/tree/linux/src/rpmsg_char_zerocopy.c#n226
Now does this mean that the DDR memory region is actually moved into local cache, and any reads to the DDR memory region will actually read from the local cache instead of DDR? Are these syncs just to be super safe? That part I'm not sure about.
Regards,
Nick
Nick,
#1. Customer followed the AM62x Academy Multicore module, page "How to allocate memory", change code and data section in below read frame to MSRAM, keep resource table in DDR0,
put the generated file to Linux filesystem, Can't boot up R5 core:
U-Boot 2021.01-g2ee8efd654 (Feb 27 2023 - 13:48:24 +0000) SoC: AM64X SR1.0 GP Model: Texas Instruments AM642 EVM Board: AM64-GPEVM rev E2 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 Net: Warning: ethernet@8000000port@1 MAC addresses don't match: Address in ROM is f4:84:4c:f9:5a:d4 Address in environment is 34:08:e1:80:a3:1b 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' 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 2 ms (0 Bytes/s) Already setup. 19147264 bytes read in 761 ms (24 MiB/s) 42813 bytes read in 4 ms (10.2 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: 1398832K/2097152K available (11200K kernel code, 1162K rwdata, 4308K rodata, 1920K init, 431K bss, 174032K 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.008557] Console: colour dummy device 80x25 [ 0.013149] Calibrating delay loop (skipped), value calculated using timer frequency.. 400.00 BogoMIPS (lpj=800000) [ 0.023825] pid_max: default: 32768 minimum: 301 [ 0.028651] LSM: Security Framework initializing [ 0.033438] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.041015] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.050983] rcu: Hierarchical SRCU implementation. [ 0.056236] Platform MSI: msi-controller@1820000 domain created [ 0.062603] PCI/MSI: /bus@f4000/interrupt-controller@1800000/msi-controller@1820000 domain created [ 0.071876] EFI services will not be available. [ 0.076774] smp: Bringing up secondary CPUs ... I/TC: Secondary CPU 1 initializing I/TC: Secondary CPU 1 switching to normal world boot [ 0.090383] Detected VIPT I-cache on CPU1 [ 0.090422] GICv3: CPU1: found redistributor 1 region 0:0x0000000001860000 [ 0.090437] GICv3: CPU1: using allocated LPI pending table @0x0000000080050000 [ 0.090503] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] [ 0.090633] smp: Brought up 1 node, 2 CPUs [ 0.120019] SMP: Total of 2 processors activated. [ 0.124831] CPU features: detected: 32-bit EL0 Support [ 0.130105] CPU features: detected: CRC32 instructions [ 0.143652] CPU: All CPU(s) started at EL2 [ 0.147860] alternatives: patching kernel code [ 0.153640] devtmpfs: initialized [ 0.164407] KASLR disabled due to lack of seed [ 0.169213] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns [ 0.179190] futex hash table entries: 512 (order: 3, 32768 bytes, linear) [ 0.203625] pinctrl core: initialized pinctrl subsystem [ 0.209698] DMI not present or invalid. [ 0.214416] NET: Registered protocol family 16 [ 0.220858] DMA: preallocated 256 KiB GFP_KERNEL pool for atomic allocations [ 0.228249] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations [ 0.236346] DMA: preallocated 256 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations [ 0.245130] thermal_sys: Registered thermal governor 'step_wise' [ 0.245138] thermal_sys: Registered thermal governor 'power_allocator' [ 0.251748] cpuidle: using governor menu [ 0.262722] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.269740] ASID allocator initialised with 65536 entries [ 0.304370] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages [ 0.311251] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages [ 0.318102] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages [ 0.324950] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages [ 0.333182] cryptd: max_cpu_qlen set to 1000 [ 0.341128] k3-chipinfo 43000014.chipid: Family:AM64X rev:SR1.0 JTAGID[0x0bb3802f] Detected [ 0.350407] vsys_5v0: supplied by evm_12v0 [ 0.355249] vsys_3v3: supplied by evm_12v0 [ 0.360150] vddb_3v3_display: supplied by vsys_3v3 [ 0.366518] iommu: Default domain type: Translated [ 0.371959] SCSI subsystem initialized [ 0.376508] mc: Linux media interface: v0.10 [ 0.380912] videodev: Linux video capture interface: v2.00 [ 0.386606] pps_core: LinuxPPS API ver. 1 registered [ 0.391688] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> [ 0.401038] PTP clock support registered [ 0.405079] EDAC MC: Ver: 3.0.0 [ 0.409210] omap-mailbox 29020000.mailbox: omap mailbox rev 0x66fc9100 [ 0.416109] omap-mailbox 29040000.mailbox: omap mailbox rev 0x66fc9100 [ 0.422935] omap-mailbox 29060000.mailbox: omap mailbox rev 0x66fc9100 [ 0.430502] FPGA manager framework [ 0.434092] Advanced Linux Sound Architecture Driver Initialized. [ 0.441501] clocksource: Switched to clocksource arch_sys_counter [ 0.448023] VFS: Disk quotas dquot_6.6.0 [ 0.452106] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.465577] NET: Registered protocol family 2 [ 0.470330] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear) [ 0.479318] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear) [ 0.488122] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.496349] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear) [ 0.504101] TCP: Hash tables configured (established 16384 bind 16384) [ 0.511039] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear) [ 0.517947] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear) [ 0.525451] NET: Registered protocol family 1 [ 0.530542] RPC: Registered named UNIX socket transport module. [ 0.536623] RPC: Registered udp transport module. [ 0.541432] RPC: Registered tcp transport module. [ 0.546246] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.552838] NET: Registered protocol family 44 [ 0.557396] PCI: CLS 0 bytes, default 64 [ 0.562251] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available [ 0.575236] Initialise system trusted keyrings [ 0.580097] workingset: timestamp_bits=46 max_order=19 bucket_order=0 [ 0.591143] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.597853] NFS: Registering the id_resolver key type [ 0.603149] Key type id_resolver registered [ 0.607426] Key type id_legacy registered [ 0.611609] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 0.618462] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 0.626257] 9p: Installing v9fs 9p2000 file system support [ 0.675485] Key type asymmetric registered [ 0.679696] Asymmetric key parser 'x509' registered [ 0.684762] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 243) [ 0.692328] io scheduler mq-deadline registered [ 0.696957] io scheduler kyber registered [ 0.703619] pinctrl-single 4084000.pinctrl: 33 pins, size 132 [ 0.710072] pinctrl-single f4000.pinctrl: 180 pins, size 720 [ 0.717023] pinctrl-single a40000.timesync-router: 512 pins, size 2048 [ 0.734076] Serial: 8250/16550 driver, 10 ports, IRQ sharing enabled [ 0.757428] brd: module loaded [ 0.768941] loop: module loaded [ 0.773255] megasas: 07.714.04.00-rc1 [ 0.781941] tun: Universal TUN/TAP device driver, 1.6 [ 0.787919] igbvf: Intel(R) Gigabit Virtual Function Network Driver [ 0.794347] igbvf: Copyright (c) 2009 - 2012 Intel Corporation. [ 0.800458] sky2: driver version 1.30 [ 0.805637] VFIO - User Level meta-driver version: 0.3 [ 0.812205] i2c /dev entries driver [ 0.817451] sdhci: Secure Digital Host Controller Interface driver [ 0.823796] sdhci: Copyright(c) Pierre Ossman [ 0.828694] sdhci-pltfm: SDHCI platform and OF driver helper [ 0.835803] ledtrig-cpu: registered to indicate activity on CPUs [ 0.842489] SMCCC: SOC_ID: ARCH_SOC_ID not implemented, skipping .... [ 0.850971] 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.855590] optee: revision 3.20 (8e74d476) [ 0.872239] optee: dynamic shared memory is enabled [ 0.881981] optee: initialized driver [ 0.888542] NET: Registered protocol family 17 [ 0.893309] 9pnet: Installing 9P2000 support [ 0.897781] Key type dns_resolver registered [ 0.902643] Loading compiled-in X.509 certificates [ 0.925418] ti-sci 44043000.dmsc: lpm region is required for suspend but not provided. [ 0.933648] ti-sci 44043000.dmsc: ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar') [ 0.991342] omap-gpmc 3b000000.memory-controller: GPMC revision 6.0 [ 0.997836] gpmc_mem_init: disabling cs 0 mapped at 0x0-0x1000000 [ 1.006524] omap_i2c 20000000.i2c: bus 0 rev0.12 at 100 kHz [ 1.014448] pca953x 1-0022: supply vcc not found, using dummy regulator [ 1.021383] pca953x 1-0022: using AI [ 1.075085] Console: switching to mono frame buffer device 12x2 [ 1.109978] ssd1307fb 1-003c: fb0: Solomon SSD1307 framebuffer device registered, using 192 bytes of video memory [ 1.120698] omap_i2c 20010000.i2c: bus 1 rev0.12 at 400 kHz [ 1.127774] omap_i2c 20020000.i2c: bus 2 rev0.12 at 100 kHz [ 1.134800] omap_i2c 20030000.i2c: bus 3 rev0.12 at 100 kHz [ 1.141074] ti-sci-intr bus@f4000:bus@4000000:interrupt-controller1: Interrupt Router 5 domain created [ 1.150974] ti-sci-intr bus@f4000:interrupt-controller0: Interrupt Router 3 domain created [ 1.159922] ti-sci-inta 48000000.interrupt-controller: Interrupt Aggregator domain 28 created [ 1.181317] j721e-pcie f102000.pcie: host bridge /bus@f4000/pcie@f102000 ranges: [ 1.189008] j721e-pcie f102000.pcie: IO 0x0068001000..0x0068010fff -> 0x0068001000 [ 1.197300] j721e-pcie f102000.pcie: MEM 0x0068011000..0x006fffffff -> 0x0068011000 [ 1.205592] j721e-pcie f102000.pcie: IB MEM 0x0000000000..0x0fffffffff -> 0x0000000000 [ 2.218268] j721e-pcie f102000.pcie: PCI host bridge to bus 0000:00 [ 2.224712] pci_bus 0000:00: root bus resource [bus 00-ff] [ 2.230326] pci_bus 0000:00: root bus resource [io 0x0000-0xffff] (bus address [0x68001000-0x68010fff]) [ 2.240021] pci_bus 0000:00: root bus resource [mem 0x68011000-0x6fffffff] [ 2.247091] pci 0000:00:00.0: [104c:b010] type 01 class 0x060400 [ 2.253247] pci 0000:00:00.0: reg 0x10: [mem 0x00000000-0xfffffffff 64bit pref] [ 2.260798] pci 0000:00:00.0: supports D1 [ 2.264898] pci 0000:00:00.0: PME# supported from D0 D1 D3hot [ 2.273287] pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring [ 2.283780] pci_bus 0000:01: busn_res: [bus 01-ff] end is updated to 01 [ 2.290594] pci 0000:00:00.0: BAR 0: no space for [mem size 0x1000000000 64bit pref] [ 2.298512] pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x1000000000 64bit pref] [ 2.306788] pci 0000:00:00.0: PCI bridge to [bus 01] [ 2.312442] pcieport 0000:00:00.0: PME: Signaling with IRQ 43 [ 2.319194] ti-udma 485c0100.dma-controller: Number of rings: 68 [ 2.326812] ti-udma 485c0100.dma-controller: Channels: 24 (bchan: 12, tchan: 6, rchan: 6) [ 2.337052] ti-udma 485c0000.dma-controller: Number of rings: 288 [ 2.351821] ti-udma 485c0000.dma-controller: Channels: 44 (tchan: 29, rchan: 15) [ 2.362911] printk: console [ttyS2] disabled [ 2.367379] 2800000.serial: ttyS2 at MMIO 0x2800000 (irq = 16, base_baud = 3000000) is a 8250 [ 2.376151] printk: console [ttyS2] enabled [ 2.376151] printk: console [ttyS2] enabled [ 2.384596] printk: bootconsole [ns16550a0] disabled [ 2.384596] printk: bootconsole [ns16550a0] disabled [ 2.398783] spi-nor spi0.0: s28hs512t (65536 Kbytes) [ 2.403807] 7 cmdlinepart partitions found on MTD device fc40000.spi.0 [ 2.410332] Creating 7 MTD partitions on "fc40000.spi.0": [ 2.415730] 0x000000000000-0x000000100000 : "ospi.tiboot3" [ 2.422573] 0x000000100000-0x000000300000 : "ospi.tispl" [ 2.429119] 0x000000300000-0x000000700000 : "ospi.u-boot" [ 2.435775] 0x000000700000-0x000000740000 : "ospi.env" [ 2.442218] 0x000000740000-0x000000780000 : "ospi.env.backup" [ 2.449183] 0x000000800000-0x000003fc0000 : "ospi.rootfs" [ 2.455835] 0x000003fc0000-0x000004000000 : "ospi.phypattern" [ 2.476237] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode [ 2.521504] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000 [ 2.530693] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867 [ 2.538944] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006 [ 2.551819] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4 [ 2.558949] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512 [ 2.565700] pps pps0: new PPS source ptp0 [ 2.570170] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1 [ 2.580784] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16 [ 2.591670] am65-cpts 39000000.cpts: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:0 [ 2.600840] k3-j72xx-soc-thermal b00000.temperature-sensor: invalid resource [ 2.607959] k3-j72xx-soc-thermal: probe of b00000.temperature-sensor failed with error -22 [ 2.619158] gpio-mux mux-controller: 2-way mux-controller registered [ 2.634425] vdd_mmc1: supplied by vsys_3v3 [ 2.646273] debugfs: Directory 'pd:114' with parent 'pm_genpd' already present! [ 2.654036] mmc0: CQHCI version 5.10 [ 2.667929] ALSA device list: [ 2.670930] No soundcards found. [ 2.694085] mmc0: SDHCI controller on fa00000.mmc [fa00000.mmc] using ADMA 64-bit [ 2.694697] Waiting for root device PARTUUID=47b6d3e0-02... [ 2.761128] mmc0: new ultra high speed SDR104 SDHC card at address aaaa [ 2.768654] mmcblk0: mmc0:aaaa SC16G 14.8 GiB [ 2.777953] mmcblk0: p1 p2 [ 2.810439] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 2.818647] VFS: Mounted root (ext4 filesystem) on device 179:2. [ 2.828538] devtmpfs: mounted [ 2.832934] Freeing unused kernel memory: 1920K [ 2.837602] Run /sbin/init as init process [ 2.980381] systemd[1]: System time before build time, advancing clock. [ 3.337106] NET: Registered protocol family 10 [ 3.342969] Segment Routing with IPv6 [ 3.379586] 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.401895] systemd[1]: Detected architecture arm64. Welcome to Arago 2021.09! [ 3.444475] systemd[1]: Set hostname to <am64xx-evm>. [ 3.772646] systemd[1]: /lib/systemd/system/startwlansta.service:7: Unknown key name 'After' in section 'Service', ignoring. [ 3.787419] systemd[1]: /lib/systemd/system/startwlanap.service:7: Unknown key name 'After' in section 'Service', ignoring. [ 3.828145] systemd[1]: /lib/systemd/system/irqbalanced.service:6: Unknown key name 'ConditionCPUs' in section 'Unit', ignoring. [ 3.869897] 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. [ 4.024528] random: systemd: uninitialized urandom read (16 bytes read) [ 4.036012] systemd[1]: Created slice system-getty.slice. [ OK ] Created slice system-getty.slice. [ 4.057787] random: systemd: uninitialized urandom read (16 bytes read) [ 4.066784] systemd[1]: Created slice system-serial\x2dgetty.slice. [ OK ] Created slice system-serial\x2dgetty.slice. [ 4.089753] random: systemd: uninitialized urandom read (16 bytes read) [ 4.098699] systemd[1]: Created slice system-syslog\x2dng.slice. [ OK ] Created slice system-syslog\x2dng.slice. [ 4.124033] systemd[1]: Created slice User and Session Slice. [ OK ] Created slice User and Session Slice. [ 4.146189] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ OK ] Started Dispatch Password …ts to Console Directory Watch. [ 4.170096] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ OK ] Started Forward Password R…uests to Wall Directory Watch. [ 4.194047] systemd[1]: Reached target Paths. [ OK ] Reached target Paths. [ 4.209852] systemd[1]: Reached target Remote File Systems. [ OK ] Reached target Remote File Systems. [ 4.229818] systemd[1]: Reached target Slices. [ OK ] Reached target Slices. [ 4.245845] systemd[1]: Reached target Swap. [ OK ] Reached target Swap. [ 4.281194] systemd[1]: Listening on RPCbind Server Activation Socket. [ OK ] Listening on RPCbind Server Activation Socket. [ 4.305951] systemd[1]: Reached target RPC Port Mapper. [ OK ] Reached target RPC Port Mapper. [ 4.333706] systemd[1]: Listening on Process Core Dump Socket. [ OK ] Listening on Process Core Dump Socket. [ 4.358213] systemd[1]: Listening on initctl Compatibility Named Pipe. [ OK ] Listening on initctl Compatibility Named Pipe. [ 4.385783] systemd[1]: Condition check resulted in Journal Audit Socket being skipped. [ 4.394863] systemd[1]: Listening on Journal Socket (/dev/log). [ OK ] Listening on Journal Socket (/dev/log). [ 4.418580] systemd[1]: Listening on Journal Socket. [ OK ] Listening on Journal Socket. [ 4.434886] systemd[1]: Listening on Network Service Netlink Socket. [ OK ] Listening on Network Service Netlink Socket. [ 4.458612] systemd[1]: Listening on udev Control Socket. [ OK ] Listening on udev Control Socket. [ 4.482399] systemd[1]: Listening on udev Kernel Socket. [ OK ] Listening on udev Kernel Socket. [ 4.511920] systemd[1]: Mounting Huge Pages File System... Mounting Huge Pages File System... [ 4.535795] systemd[1]: Mounting POSIX Message Queue File System... Mounting POSIX Message Queue File System... [ 4.563761] systemd[1]: Mounting Kernel Debug File System... Mounting Kernel Debug File System... [ 4.590123] systemd[1]: Mounting Temporary Directory (/tmp)... Mounting Temporary Directory (/tmp)... [ 4.612829] systemd[1]: Starting Create list of static device nodes for the current kernel... Starting Create list of st…odes for the current kernel... [ 4.643648] systemd[1]: Starting RPC Bind... Starting RPC Bind... [ 4.658176] systemd[1]: Condition check resulted in File System Check on Root Device being skipped. [ 4.677169] systemd[1]: Starting Journal Service... Starting Journal Service... [ 4.701853] systemd[1]: Starting Load Kernel Modules... Starting Load Kernel Modules... [ 4.730551] systemd[1]: Starting Remount Root and Kernel File Systems... Starting Remount Root and Kernel File Systems... [ 4.768220] systemd[1]: Starting udev Coldplug all Devices... Starting udev Coldplug all Devices... [ 4.796596] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) [ 4.801788] systemd[1]: Started RPC Bind. [ OK ] Started RPC Bind. [ 4.825193] systemd[1]: Mounted Huge Pages File System. [ OK ] Mounted Huge Pages File System. [ 4.853401] systemd[1]: Started Journal Service. [ OK ] Started Journal Service. [ 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... Starting Flush Journal to Persistent Storage... [ 5.034049] random: systemd: uninitialized urandom read (16 bytes read) [ 5.036353] systemd-journald[167]: Received client request to flush runtime journal. Starting Apply Kernel Variables... [ 5.058117] random: systemd-journal: uninitialized urandom read (16 bytes read) [ 5.066349] random: systemd: uninitialized urandom read (16 bytes read) 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 Create Volatile Files and Directories. [ OK ] Started udev Kernel Device Manager. 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.163632] random: systemd: uninitialized urandom read (16 bytes read) [ 6.327213] random: systemd: uninitialized urandom read (16 bytes read) [ 6.338703] random: systemd: uninitialized urandom read (16 bytes read) [ 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.442266] 93xx46 spi1.0: 16-bit eeprom [ 6.504672] random: crng init done [ 6.508251] random: 66 urandom warning(s) missed due to ratelimiting [ OK ] Started Load/Save Random Seed. [ 6.577961] CAN device driver interface [ 6.701948] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@a4000000 [ 6.738573] k3-m4-rproc 5000000.m4fss: configured M4 for remoteproc mode [ 6.773027] k3-m4-rproc 5000000.m4fss: local reset is deasserted for device [ 6.815048] remoteproc remoteproc0: 5000000.m4fss is available [ 6.854241] davinci_mdio 300b2400.mdio: Configuring MDIO in manual mode [ 6.878024] remoteproc remoteproc0: powering up 5000000.m4fss [ 6.884672] remoteproc remoteproc0: Booting fw image am64-mcu-m4f0_0-fw, size 343452 [ 6.898748] remoteproc0#vdev0buffer: assigned reserved memory node m4f-dma-memory@a4000000 [ 6.910585] remoteproc0#vdev0buffer: registered virtio0 (type 7) [ 6.921670] remoteproc remoteproc0: remote processor 5000000.m4fss is now up [ 6.921757] virtio_rpmsg_bus virtio0: rpmsg host is online [ 6.982562] platform 78000000.r5f: configured R5F for remoteproc mode [ 6.983880] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000 [ 6.984325] remoteproc remoteproc1: 78000000.r5f is available [ 6.995662] remoteproc remoteproc1: powering up 78000000.r5f [ 6.995685] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 457816 [ 7.004921] remoteproc remoteproc1: bad phdr da 0x70080000 mem 0x18d00 [ 7.004935] remoteproc remoteproc1: Failed to load program segments: -22 [ 7.025660] davinci_mdio 300b2400.mdio: davinci mdio revision 1.7, bus freq 1000000 [ 7.039374] platform 78200000.r5f: configured R5F for remoteproc mode [ 7.039998] m_can_platform 20701000.can: m_can device registered (irq=35, version=32) [ 7.043765] platform 78200000.r5f: assigned reserved memory node r5f-dma-memory@a1000000 [ 7.088306] davinci_mdio 300b2400.mdio: phy[15]: device 300b2400.mdio:0f, driver TI DP83869 [ 7.093377] remoteproc remoteproc2: 78200000.r5f is available [ 7.103639] m_can_platform 20711000.can: m_can device registered (irq=37, version=32) [ 7.125079] remoteproc remoteproc2: powering up 78200000.r5f [ 7.133626] remoteproc remoteproc2: Booting fw image am64-main-r5f0_1-fw, size 457808 [ 7.147665] remoteproc remoteproc2: bad phdr da 0x700c0000 mem 0x18d00 [ 7.154280] remoteproc remoteproc2: Failed to load program segments: -22 [ 7.195330] platform 78400000.r5f: configured R5F for remoteproc mode [ 7.240246] remoteproc remoteproc4: 30034000.pru is available [ 7.274190] platform 78400000.r5f: assigned reserved memory node r5f-dma-memory@a2000000 [ 7.282940] remoteproc remoteproc5: 30004000.rtu is available [ 7.330456] remoteproc remoteproc6: 3000a000.txpru is available [ 7.337222] remoteproc remoteproc3: 78400000.r5f is available [ 7.392758] remoteproc remoteproc7: 30038000.pru is available [ 7.398277] platform 78600000.r5f: configured R5F for remoteproc mode [ 7.407826] remoteproc remoteproc3: powering up 78400000.r5f [ 7.413626] remoteproc remoteproc3: Booting fw image am64-main-r5f1_0-fw, size 453976 [ 7.427126] platform 78600000.r5f: assigned reserved memory node r5f-dma-memory@a3000000 [ 7.427430] remoteproc remoteproc3: bad phdr da 0x70100000 mem 0x18d00 [ 7.435700] remoteproc remoteproc9: 30006000.rtu is available [ 7.442107] remoteproc remoteproc3: Failed to load program segments: -22 [ 7.470766] remoteproc remoteproc8: 78600000.r5f is available [ 7.487353] remoteproc remoteproc10: 3000c000.txpru is available [ 7.494521] remoteproc remoteproc8: powering up 78600000.r5f [ 7.500283] remoteproc remoteproc8: Booting fw image am64-main-r5f1_1-fw, size 457808 [ 7.510304] remoteproc remoteproc11: 300b4000.pru is available [ 7.517118] remoteproc remoteproc8: bad phdr da 0x70140000 mem 0x18d00 [ 7.523795] remoteproc remoteproc8: Failed to load program segments: -22 [ 7.530144] remoteproc remoteproc12: 30084000.rtu is available [ 7.556519] remoteproc remoteproc13: 3008a000.txpru is available [ 7.563328] remoteproc remoteproc14: 300b8000.pru is available [ 7.574620] remoteproc remoteproc15: 30086000.rtu is available [ 7.586951] remoteproc remoteproc16: 3008c000.txpru is available [ 9.303356] TI DP83869 300b2400.mdio:0f: attached PHY driver [TI DP83869] (mii_bus:phy_addr=300b2400.mdio:0f, irq=POLL) [ 9.333636] icssg-prueth icssg1-eth: TI PRU ethernet driver initialized: single EMAC mode [ 9.616717] usbcore: registered new interface driver usbfs [ 9.632563] usbcore: registered new interface driver hub [ OK ] Created slice system-systemd\x2dfsck.slice. [ 9.650942] usbcore: registered new device driver usb [ OK ] Found device /dev/mmcblk0p1. [ 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/mmcblk0p1... [ OK ] Listening on Docker Socket for the API. [ OK ] Started Reboot and dump vmcore via kexec. [ 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 IPv4 Packet Filtering Framework... [ OK ] Started irqbalance daemon. Starting Matrix GUI... Starting startwlanap... Starting startwlansta... Starting System Logger Daemon "default" instance... Starting Login Service... [ OK ] Started TEE Supplicant. Starting telnetd.service... [ OK ] Started Matrix GUI. [ OK ] Started startwlanap. [ OK ] Started startwlansta. [ 10.363963] startwlansta.sh[593]: mount: /media/mmcblk1p1: special device /dev/mmcblk1p1 does not exist. [ OK ] Started File System Check on /dev/mmcblk0p1. [ OK ] Started Ethernet Bridge Filtering Tables. [ OK ] Started IPv4 Packet Filtering Framework. [ OK ] Started telnetd.service. [ OK ] Reached target Network (Pre). Mounting /run/media/mmcblk0p1... Starting LSB: Expand Rootfs of boot device... Starting syslog.service... Starting Network Service... [ OK ] Listening on Load/Save RF …itch Status /dev/rfkill Watch. [ OK ] Mounted /run/media/mmcblk0p1. [ 11.047775] cfg80211: Loading compiled-in X.509 certificates for regulatory database [ 11.114930] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7' [ OK ] Started System Logger Daemon "default" instance. [ OK ] Started syslog.service. [ OK ] Started Network Service. Starting Wait for Network to be Configured... Starting Network Name Resolution... [ 11.645837] remoteproc remoteproc11: powering up 300b4000.pru [ OK ] Started LSB: Expand Rootfs of boot device. [ 11.723027] remoteproc remoteproc11: Booting fw image ti-pruss/am65x-sr2-pru0-prueth-fw.elf, size 38224 [ 11.780829] remoteproc remoteproc11: unsupported resource 5 [ 11.793919] remoteproc remoteproc11: remote processor 300b4000.pru is now up [ 11.802942] remoteproc remoteproc12: powering up 30084000.rtu [ 11.817532] remoteproc remoteproc12: Booting fw image ti-pruss/am65x-sr2-rtu0-prueth-fw.elf, size 30872 [ 11.817595] remoteproc remoteproc12: remote processor 30084000.rtu is now up [ 11.817651] remoteproc remoteproc13: powering up 3008a000.txpru [ 11.826248] remoteproc remoteproc13: Booting fw image ti-pruss/am65x-sr2-txpru0-prueth-fw.elf, size 37328 [ 11.826299] remoteproc remoteproc13: remote processor 3008a000.txpru is now up [ 11.827926] pps pps1: new PPS source ptp2 [ 11.839016] net eth2: started [ 11.991345] am65-cpsw-nuss 8000000.ethernet eth1: PHY [0.1:03] driver [TI DP83869] (irq=POLL) [ 11.991372] am65-cpsw-nuss 8000000.ethernet eth1: configuring for phy/rgmii-rxid link mode [ 12.041346] am65-cpsw-nuss 8000000.ethernet eth0: PHY [8000f00.mdio:00] driver [TI DP83867] (irq=POLL) [ 12.041373] am65-cpsw-nuss 8000000.ethernet eth0: configuring for phy/rgmii-rxid link mode [ OK ] Started Login Service. [ 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... [ OK ] Started NFS status monitor for NFSv2/3 locking.. Starting Permit User Sessions... [ OK ] Started Vsftpd ftp daemon. [ OK ] Started Permit User Sessions. [ 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... [FAILED] Failed to start Synchronize System and HW clocks. See 'systemctl status sync-clocks.service' for details. [ OK ] Started Enable and configure wl18xx bluetooth stack. [ OK ] Started Avahi mDNS/DNS-SD Stack. [ 13.432745] startwlansta.sh[585]: Wi-Fi user configuration file missing, exit [ 14.098489] am65-cpsw-nuss 8000000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx [ 14.107386] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready *************************************************************** *************************************************************** NOTICE: This file system contains the following GPLv3 packages: autoconf bash bc binutils cifs-utils coreutils-stdbuf coreutils cpio cpp-symlinks cpp dosfstools elfutils g++-symlinks g++ gawk gcc-symlinks gcc gdb gdbserver gettext gstreamer1.0-libav gzip hidapi less libasm1 libbfd libdw1 libelf1 libgdbm-compat4 libgdbm6 libgettextlib libgettextsrc libgmp10 libidn2-0 libmpc3 libmpfr6 libreadline8 libunistring2 m4 make nettle parted tar which 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. _____ _____ _ _ | _ |___ ___ ___ ___ | _ |___ ___ |_|___ ___| |_ | | _| .'| . | . | | __| _| . | | | -_| _| _| |__|__|_| |__,|_ |___| |__| |_| |___|_| |___|___|_| |___| |___| Arago Project am64xx-evm ttyS2 Arago 2021.09 am64xx-evm ttyS2 am64xx-evm login: root ^[[59;203Rroot@am64xx-evm:~# 9;203R -sh: 9: command not found -sh: 203R: command not found root@am64xx-evm:~# root@am64xx-evm:~# root@am64xx-evm:~# root@am64xx-evm:~# root@am64xx-evm:~# root@am64xx-evm:~# root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc1/state offline root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc2/state offline root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc3/state offline root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc4/state offline root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc0/state running root@am64xx-evm:~# head /sys/class/remoteproc/remoteproc*/name ==> /sys/class/remoteproc/remoteproc0/name <== 5000000.m4fss ==> /sys/class/remoteproc/remoteproc1/name <== 78000000.r5f ==> /sys/class/remoteproc/remoteproc10/name <== 3000c000.txpru ==> /sys/class/remoteproc/remoteproc11/name <== 300b4000.pru ==> /sys/class/remoteproc/remoteproc12/name <== 30084000.rtu ==> /sys/class/remoteproc/remoteproc13/name <== 3008a000.txpru ==> /sys/class/remoteproc/remoteproc14/name <== 300b8000.pru ==> /sys/class/remoteproc/remoteproc15/name <== 30086000.rtu ==> /sys/class/remoteproc/remoteproc16/name <== 3008c000.txpru ==> /sys/class/remoteproc/remoteproc2/name <== 78200000.r5f ==> /sys/class/remoteproc/remoteproc3/name <== 78400000.r5f ==> /sys/class/remoteproc/remoteproc4/name <== 30034000.pru ==> /sys/class/remoteproc/remoteproc5/name <== 30004000.rtu ==> /sys/class/remoteproc/remoteproc6/name <== 3000a000.txpru ==> /sys/class/remoteproc/remoteproc7/name <== 30038000.pru ==> /sys/class/remoteproc/remoteproc8/name <== 78600000.r5f ==> /sys/class/remoteproc/remoteproc9/name <== 30006000.rtu root@am64xx-evm:~#
#2. Based on upper change. change dts file as below, can't boot up
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@70080000 { compatible = "shared-dma-pool"; reg = <0x00 0x70080000 0x00 0x40000>; 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@700C0000 { compatible = "shared-dma-pool"; reg = <0x00 0x700C0000 0x00 0x40000>; 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@70100000 { compatible = "shared-dma-pool"; reg = <0x00 0x70100000 0x00 0x40000>; 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@70140000 { compatible = "shared-dma-pool"; reg = <0x00 0x70140000 0x00 0x40000>; 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; }; };
boot log as below:
U-Boot 2021.01-g2ee8efd654 (Feb 27 2023 - 13:48:24 +0000) SoC: AM64X SR1.0 GP Model: Texas Instruments AM642 EVM Board: AM64-GPEVM rev E2 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 Net: Warning: ethernet@8000000port@1 MAC addresses don't match: Address in ROM is f4:84:4c:f9:5a:d4 Address in environment is 34:08:e1:80:a3:1b 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' 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 761 ms (24 MiB/s) 42813 bytes read in 4 ms (10.2 MiB/s) ## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 ERROR: Failed to allocate 0x10e000 bytes below 0x90000000. device tree - allocation error FDT creation failed! hanging...### ERROR ### Please RESET the board ### U-Boot SPL 2021.01-g2ee8efd654 (Feb 27 2023 - 13:45:51 +0000) Resetting on cold boot to workaround ErrataID:i2331 resetting ... U-Boot SPL 2021.01-g2ee8efd654 (Feb 27 2023 - 13:45:51 +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: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Starting ATF on ARM64 core... NOTICE: BL31: v2.8(release):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 https://optee.readthedocs.io/en/latest/architecture/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: Fixing SA2UL firewall owner for GP 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-g2ee8efd654 (Feb 27 2023 - 13:48:24 +0000) SYSFW ABI: 3.1 (firmware rev 0x0008 '8.6.4--v08.06.04 (Chill Capybar') Trying to boot from MMC2 Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted Warning: Detected image signing certificate on GP device. Skipping certificate to prevent boot failure. This will fail if the image was also encrypted U-Boot 2021.01-g2ee8efd654 (Feb 27 2023 - 13:48:24 +0000) SoC: AM64X SR1.0 GP Model: Texas Instruments AM642 EVM Board: AM64-GPEVM rev E2 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 Net: Warning: ethernet@8000000port@1 MAC addresses don't match: Address in ROM is f4:84:4c:f9:5a:d4 Address in environment is 34:08:e1:80:a3:1b 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' 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 2 ms (0 Bytes/s) Already setup. 19147264 bytes read in 761 ms (24 MiB/s) 42813 bytes read in 4 ms (10.2 MiB/s) ## Flattened Device Tree blob at 88000000 Booting using the fdt blob at 0x88000000 ERROR: Failed to allocate 0x10e000 bytes below 0x90000000. device tree - allocation error FDT creation failed! hanging...### ERROR ### Please RESET the board ###
#3. Based on MCU+SDK 9.1 example gpio_led_blink, default dts. doesn't change linker.cmd, change log console from UART0 to UART1 in syscfg as UART0 used by Linux. did not observe LED lighting, and the R5-0 is offline.
》root@am64xx-evm:~# cat /sys/class/remoteproc/remoteproc1/state
》offline
Linux remoteproc log as below:
[ 6.667646] k3-m4-rproc 5000000.m4fss: assigned reserved memory node m4f-dma-memory@a4000000 [ 6.697794] k3-m4-rproc 5000000.m4fss: configured M4 for remoteproc mode [ 6.698219] davinci_mdio 300b2400.mdio: Configuring MDIO in manual mode [ 6.728216] k3-m4-rproc 5000000.m4fss: local reset is deasserted for device [ 6.759579] remoteproc remoteproc0: 5000000.m4fss is available [ 6.765807] davinci_mdio 300b2400.mdio: davinci mdio revision 1.7, bus freq 1000000 [ 6.784050] davinci_mdio 300b2400.mdio: phy[15]: device 300b2400.mdio:0f, driver TI DP83869 [ 6.791598] remoteproc remoteproc0: powering up 5000000.m4fss [ 6.800218] remoteproc remoteproc0: Booting fw image am64-mcu-m4f0_0-fw, size 343452 [ 6.816441] remoteproc0#vdev0buffer: assigned reserved memory node m4f-dma-memory@a4000000 [ 6.826114] virtio_rpmsg_bus virtio0: rpmsg host is online [ 6.833369] remoteproc0#vdev0buffer: registered virtio0 (type 7) [ 6.843522] platform 78000000.r5f: configured R5F for remoteproc mode [ 6.850342] remoteproc remoteproc0: remote processor 5000000.m4fss is now up [ 6.864707] platform 78000000.r5f: assigned reserved memory node r5f-dma-memory@a0000000 [ 6.908739] remoteproc remoteproc1: 78000000.r5f is available [ 6.924518] platform 78200000.r5f: configured R5F for remoteproc mode [ 6.936639] remoteproc remoteproc1: powering up 78000000.r5f [ 6.942603] platform 78200000.r5f: assigned reserved memory node r5f-dma-memory@a1000000 [ 6.945276] remoteproc remoteproc1: Booting fw image am64-main-r5f0_0-fw, size 788112 [ 6.968689] remoteproc remoteproc2: 78200000.r5f is available [ 6.992323] m_can_platform 20701000.can: m_can device registered (irq=35, version=32) [ 7.001313] remoteproc remoteproc2: powering up 78200000.r5f [ 7.009812] remoteproc remoteproc2: Booting fw image am64-main-r5f0_1-fw, size 457808 [ 7.022066] remoteproc remoteproc2: bad phdr da 0x700c0000 mem 0x18d00 [ 7.030389] remoteproc remoteproc2: Failed to load program segments: -22 [ 7.038079] m_can_platform 20711000.can: m_can device registered (irq=37, version=32) [ 7.089788] platform 78400000.r5f: configured R5F for remoteproc mode [ 7.213881] platform 78400000.r5f: assigned reserved memory node r5f-dma-memory@a2000000 [ 7.298238] remoteproc remoteproc3: 78400000.r5f is available [ 7.332226] remoteproc remoteproc4: 30034000.pru is available [ 7.342714] remoteproc remoteproc5: 30004000.rtu is available [ 7.358520] remoteproc remoteproc6: 3000a000.txpru is available [ 7.374439] remoteproc remoteproc7: 30038000.pru is available [ 7.384774] platform 78600000.r5f: configured R5F for remoteproc mode [ 7.392724] remoteproc remoteproc3: powering up 78400000.r5f [ 7.392749] remoteproc remoteproc3: Booting fw image am64-main-r5f1_0-fw, size 453976 [ 7.393921] platform 78600000.r5f: assigned reserved memory node r5f-dma-memory@a3000000 [ 7.394416] remoteproc remoteproc3: bad phdr da 0x70100000 mem 0x18d00 [ 7.394425] remoteproc remoteproc3: Failed to load program segments: -22 [ 7.414379] remoteproc remoteproc8: 78600000.r5f is available [ 7.426533] remoteproc remoteproc8: powering up 78600000.r5f [ 7.426559] remoteproc remoteproc8: Booting fw image am64-main-r5f1_1-fw, size 457808 [ 7.427323] remoteproc remoteproc8: bad phdr da 0x70140000 mem 0x18d00 [ 7.427334] remoteproc remoteproc8: Failed to load program segments: -22 [ 7.446298] remoteproc remoteproc9: 30006000.rtu is available [ 7.460542] remoteproc remoteproc10: 3000c000.txpru is available [ 7.607920] remoteproc remoteproc11: 300b4000.pru is available [ 7.619080] remoteproc remoteproc12: 30084000.rtu is available [ 7.627987] remoteproc remoteproc13: 3008a000.txpru is available [ 7.639412] remoteproc remoteproc14: 300b8000.pru is available [ 7.699094] remoteproc remoteproc15: 30086000.rtu is available [ 7.838229] remoteproc remoteproc16: 3008c000.txpru is available
Do you have a working demo to running Linux with R5F running on MSRAM?
Hello Tony,
I'm on vacation until tomorrow, so I am providing a quick response now, and I'll have more time to look at this on Friday. Please ping the thread if I have not replied again by Monday.
AM64x academy
First, please note that the AM64x academy multicore module is now online! It might be a bit easier for the customer to use:
https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AbwqjEswy38Z6lZWYQC-5g__AM64-ACADEMY__WI1KRXP__LATEST
Responding to questions
There are several potential issues here. I do not have a published SRAM example I can point you to right now, so we'll have to work through it together.
First, if I recall correctly that reserved-memory section that was modified in the customer's device tree is for the DDR specifically. You can find the SRAM allocations in the am64-main.dtsi file. So if the customer is adding an SRAM allocation, they need to add it to the SRAM node instead of the DDR node.
Second, please note that we have only tested the 1MB VIRTIO section as working in the DDR, NOT in the SRAM. I am not sure whether the resource table also needs to be in DDR, or if it can go into the SRAM. But that is another thing to test.
Third, gpio_led_blink will NOT be able to be loaded by Linux remoteproc unless it is modified to add a resource table. Please refer to AM64x academy, multicore module, page "Application development on remote cores"
https://dev.ti.com/tirex/explore/node?a=7qm9DIS__LATEST&node=A__AeMVTHckwFDmFoNkRHpRPw__AM64-ACADEMY__WI1KRXP__LATEST
Regards,
Nick
One more note, for the gpio_led_blink example the GPIO module that is being used by the remote core should be disabled in the Linux devicetree. See the note at https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/09_01_00_41/exports/docs/api_guide_am64x/EXAMPLES_DRIVERS_GPIO_INPUT_INTERRUPT.html
Regards,
Nick
Hello Tony,
I took some time to re-read the thread today. I covered most of the important stuff in my previous response, but I do have one final note:
The SysConfig Memory Configurator & SRAM allocations
At this point in time, I have not played around with the Memory Configurator tool in the SysConfig GUI.
The customer should reference their linker.cmd file to double-check where in SRAM the SysConfig tool is placing the data. I am not sure whether SysConfig takes Linux memory allocations into account (I suspect not), so the customer may need to directly modify the linker.cmd file to change the SRAM allocations to align with what they define in the Linux devicetree.
Regards,
Nick
Discussion with the customer is continuing here:
https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1312501/am6442-how-to-implement-a-linux-system-boot-r5f-cpu-project-running-on-msram
Regards,
Nick