Hi Daniel,
As per your suggestion, I updated following OS versions:
RTD_4.4_4.0.2_D2306
NXP Linux BSP37.0[ As on github page not able to find 38.0 version.]
But still we are not able to get expected output messages on A core as mentioned in "Description.txt"
Below are messages just for references.
[ timestamp ] ipc-shm-sample: ipc-shm-sample: starting demo...
[ timestamp ] ipc-shm-sample: ipc-shm-sample: ch 0 >> 20 bytes: SENDING MESSAGES: 10
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #0 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #0 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #1 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #1 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #2 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #2 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #3 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #3 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #4 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #4 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #5 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #5 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #6 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #6 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #7 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #7 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #8 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #8 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #9 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 0 << 20 bytes: REPLIED MESSAGES: 10
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #9 HELLO WORLD! from CORE 4
I am pasting the output logs and steps we followed.
NOTICE: Reset status: Power-On Reset
NOTICE: BL2: v2.5(release):bsp38.0_rc9-2.5
NOTICE: BL2: Built : 17:13:42, Sep 15 2023
NOTICE: BL2: Booting BL31
U-Boot 2020.04+g57741dd80e (Sep 15 2023 - 15:06:56 +0000)
SoC: NXP S32G274A rev. 2.0
CPU: ARM Cortex-A53 r0p4 @ max 1000 MHz
Model: NXP S32G274A-RDB2
DRAM: 3.5 GiB
MMC: FSL_SDHC: 0
Loading Environment from MMC... OK
Configuring PCIe0 as RootComplex
PCIe0: Failed to get link up
PCI: Failed autoconfig bar 20
PCI: Failed autoconfig bar 24
In: serial@401c8000
Out: serial@401c8000
Err: serial@401c8000
Board revision: RDB2/GLDBOX Revision D
Net: EQOS phy: rgmii @ 1
Warning: eth_eqos (eth0) using random MAC address - ee:f7:32:6e:55:ff
eth0: eth_eqos PFE: emac0: sgmii emac1: none emac2: rgmii
Warning: eth_pfeng using MAC address from ROM
, eth1: eth_pfeng
Hit any key to stop autoboot: 0
=>
=>
=> dcache off
=> mw.q 0x34100000 0x0 0x40000
=> fatload mmc 0:1 0x80000000 IPCF_Example_S32G274A_M7_0.bin
=> startm7 0x34500400
Starting CM7_0 core at SRAM address 0x34500400 ... done.
=> boot
PFE: emac0: sgmii emac1: none emac2: rgmii
PFE: emac0: sgmii emac1: none emac2: rgmii
switch to partitions #0, OK
mmc0 is current device
14344200 bytes read in 650 ms (21 MiB/s)
Booting from mmc ...
52128 bytes read in 26 ms (1.9 MiB/s)
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 0000000083000000, end 000000008300fb9f
fixup: pfe0 set to 00:01:be:be:ef:11
fixup: pfe1 set to 00:01:be:be:ef:22
fixup: pfe2 set to 00:01:be:be:ef:33
Starting kernel ...
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[ 0.000000] Linux version 5.15.119-rt65+ge18f05316cd9 (oe-user@oe-host) (aarch64-fsl-linux-gcc (GCC) 11.3.0, GNU ld (GNU Binutils) 2.38.20220708) #1 SMP PREEMPT Fri Sep 15 16:46:03 UTC 2023
[ 0.000000] Machine model: NXP S32G274A-RDB2
[ 0.000000] earlycon: linflex0 at MMIO 0x00000000401c8000 (options '115200n8')
[ 0.000000] printk: bootconsole [linflex0] enabled
[ 0.000000] Reserved memory: created DMA memory pool at 0x0000000083200000, size 3 MiB
[ 0.000000] OF: reserved mem: initialized node pfebufs@83200000, compatible id shared-dma-pool
<snip...>
[ OK ] Started Xinetd A Powerful Replacement For Inetd.
[ OK ] Finished Permit User Sessions.
[ OK ] Started Getty on tty1.
[ OK ] Started Serial Getty on ttyLF0.
[ OK ] Reached target Login Prompts.
[ OK ] Reached target Multi-User System.
Starting Record Runlevel Change in UTMP...
[ OK ] Finished Record Runlevel Change in UTMP.
Auto Linux BSP 38.0 s32g274ardb2 ttyLF0
s32g274ardb2 login:
root@s32g274ardb2:~# insmod /lib/modules/`uname -r`/extra/ipc-shm-dev.ko
root@s32g274ardb2:~# insmod /lib/modules/`uname -r`/extra/ipc-shm-sample.ko
root@s32g274ardb2:~# echo 10 > /sys/kernel/ipc-shm-sample/ping
We are not receiving the desired output after running the above command up to login. Would you kindly advise us on how to get the desired results?
we are expecting below output:
[ timestamp ] ipc-shm-sample: ipc-shm-sample: starting demo...
[ timestamp ] ipc-shm-sample: ipc-shm-sample: ch 0 >> 20 bytes: SENDING MESSAGES: 10
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #0 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #0 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #1 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #1 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #2 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #2 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #3 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #3 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #4 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #4 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #5 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #5 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #6 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #6 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #7 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #7 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 1 >> 32 bytes: #8 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 1 << 32 bytes: #8 HELLO WORLD! from CORE 4
[ timestamp ] ipc-shm-sample: ch 2 >> 32 bytes: #9 HELLO WORLD! from KERNEL
[ timestamp ] ipc-shm-sample: ch 0 << 20 bytes: REPLIED MESSAGES: 10
[ timestamp ] ipc-shm-sample: ch 2 << 32 bytes: #9 HELLO WORLD! from CORE 4
Another issue we're having is figuring out how to confirm whether or not the interrupt is being called from shared memory on the M core side.
or If the interrupt will only reach M core once communication with A core's interrupt has been established.
We have been battling this problem for a long time and are need your assistance as soon as feasible.