anchao opened a new pull request, #15810:
URL: https://github.com/apache/nuttx/pull/15810
## Summary
qemu/ivshmem: switch proxy/server roles
In this PR we switch proxy/server roles to set proxy as remoteproc master,
This will help us communicate with the linux kernel without making any
changes
in the rpproxy_ivshmem configuration.
Build NuttX RTOS:
```
$ cmake -B proxy -DBOARD_CONFIG=qemu-armv8a:rpproxy_ivshmem -GNinja
$ cmake --build proxy
$ qemu-system-aarch64 -cpu cortex-a53 -nographic -machine
virt,virtualization=on,gic-version=3 -kernel proxy/nuttx \
-device ivshmem-plain,id=shmem0,memdev=shmmem-shmem0,addr=0xb \
-object
memory-backend-file,id=shmmem-shmem0,mem-path=/dev/shm/ivshmem0,size=4194304,share=yes
```
Bringup Linux Kernel:
```
$ qemu-system-aarch64 -M virt -cpu cortex-a57 -smp 1 -m 4G -kernel
linux/arch/arm64/boot/Image -initrd busybox-1.35.0/initramfs.cpio.gz \
-nographic -append "init=/init console=ttyAMA0" \
-device ivshmem-plain,id=shmem0,memdev=shmmem-shmem0,addr=0xb -object \
memory-backend-file,id=shmmem-shmem0,mem-path=/dev/shm/ivshmem0,size=4194304,share=yes
[ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x411fd070]
[ 0.000000] Linux version 6.14.0-rc1-00035-g998ca87a4914 (archer@archer)
(aarch64-linux-gnu-gcc (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0, GNU ld (GNU
Binutils for Ubuntu) 2.42) #7 SMP PREEMPT Tue Feb 11 12:19:40 CST 2025
[ 0.000000] KASLR enabled
[ 0.000000] random: crng init done
[ 0.000000] Machine model: linux,dummy-virt
...
[ 1.001209] remoteproc remoteproc0: ivshmem_rproc is available
[ 1.001548] remoteproc remoteproc0: attaching to ivshmem_rproc
[ 1.001721] ivshmem_rproc 0000:00:0b.0: dma declare pa=0x80000000d0
dma=0xd0 size=65536
[ 1.002164] ivshmem_rproc 0000:00:0b.0: mem entry pa=0x80000100d0
dma=0x100d0, size=4128560
[ 1.003605] ivshmem_rproc 0000:00:0b.0: attach entry
[ 1.005573] virtio_rpmsg_bus virtio1: rpmsg host is online
[ 1.005741] rproc-virtio rproc-virtio.1.auto: registered virtio1 (type 7)
[ 1.005873] remoteproc remoteproc0: remote processor ivshmem_rproc is now
attached
[ 1.012959] virtio_rpmsg_bus virtio1: creating channel rpmsg-syslog addr
0x400
[ 1.014240] virtio_rpmsg_bus virtio1: creating channel rpmsg-sensor addr
0x401
[ 1.014454] virtio_rpmsg_bus virtio1: creating channel rpmsg-ping addr
0x402
[ 1.014644] rpmsg_ping virtio1.rpmsg-ping.-1.1026: rpmsg_ping_probe
```
below is rpmsg-syslog from NuttX kernel
```
...
[ 1.116680] [ 0.000000] [ 0] [ INFO] [proxy]
pci_register_rptun_ivshmem_driver: Register ivshmem driver, id=0,
cpuname=server, master=0
[ 1.116867] [ 0.025900] [ 3] [ INFO] [proxy] pci_scan_bus:
pci_scan_bus for bus 0
[ 1.116987] [ 0.026900] [ 3] [ INFO] [proxy] pci_scan_bus: class =
00000600, hdr_type = 00000000
[ 1.117121] [ 0.027100] [ 3] [ INFO] [proxy] pci_scan_bus: 00:00
[1b36:0008]
[ 1.117232] [ 0.027500] [ 3] [ INFO] [proxy] pci_setup_device: pbar0
set bad mask
[ 1.117349] [ 0.027700] [ 3] [ INFO] [proxy] pci_setup_device: pbar1
set bad mask
[ 1.117460] [ 0.027900] [ 3] [ INFO] [proxy] pci_setup_device: pbar2
set bad mask
[ 1.117573] [ 0.028100] [ 3] [ INFO] [proxy] pci_setup_device: pbar3
set bad mask
[ 1.117692] [ 0.028200] [ 3] [ INFO] [proxy] pci_setup_device: pbar4
set bad mask
```
Signed-off-by: chao an <[email protected]>
## Impact
N/A
## Testing
```
$ cmake -B proxy -DBOARD_CONFIG=qemu-armv8a:rpproxy_ivshmem -GNinja
$ cmake --build proxy
$ qemu-system-aarch64 -cpu cortex-a53 -nographic -machine
virt,virtualization=on,gic-version=3 -kernel proxy/nuttx \
-device ivshmem-plain,id=shmem0,memdev=shmmem-shmem0,addr=0xb \
-object
memory-backend-file,id=shmmem-shmem0,mem-path=/dev/shm/ivshmem0,size=4194304,share=yes
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]