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 <anchao.arc...@bytedance.com>
   
   
   ## 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: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to