This is an automated email from the ASF dual-hosted git repository. jerpelea pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit d855b5662d40401d242ab6e5c72770c15bc4971d Author: raiden00pl <[email protected]> AuthorDate: Thu Aug 20 14:41:16 2026 +0200 boards/qemu-armv8a: add S2OPC server configuration add S2OPC server configuration for qemu-armv8a Assisted-by: Claude Code Signed-off-by: raiden00pl <[email protected]> --- .../arm64/qemu/boards/qemu-armv8a/index.rst | 40 ++++++++- .../arm64/qemu/qemu-armv8a/configs/s2opc/defconfig | 100 +++++++++++++++++++++ 2 files changed, 139 insertions(+), 1 deletion(-) diff --git a/Documentation/platforms/arm64/qemu/boards/qemu-armv8a/index.rst b/Documentation/platforms/arm64/qemu/boards/qemu-armv8a/index.rst index c0dbb8a7fdd..658bf48da81 100644 --- a/Documentation/platforms/arm64/qemu/boards/qemu-armv8a/index.rst +++ b/Documentation/platforms/arm64/qemu/boards/qemu-armv8a/index.rst @@ -78,6 +78,45 @@ Running with QEMU: -net none -chardev stdio,id=con,mux=on -serial chardev:con \ -mon chardev=con,mode=readline -kernel ./nuttx +S2OPC +----- + +The ``qemu-armv8a:s2opc`` configuration provides the S2OPC OPC UA server +example. Build it from the NuttX source directory:: + + $ ./tools/configure.sh -l qemu-armv8a:s2opc + $ make -j + +Run QEMU with user networking and forward host TCP port 4841 to NuttX:: + + $ qemu-system-aarch64 -cpu cortex-a53 -nographic \ + -machine virt,virtualization=on,gic-version=3 \ + -global virtio-mmio.force-legacy=false \ + -chardev stdio,id=con,mux=on -serial chardev:con \ + -mon chardev=con,mode=readline \ + -netdev user,id=u1,hostfwd=tcp:127.0.0.1:4841-:4841 \ + -device virtio-net-device,netdev=u1,bus=virtio-mmio-bus.0 \ + -kernel ./nuttx + +The configured NuttX address and endpoint are ``10.0.2.15`` and +``opc.tcp://10.0.2.15:4841``. At the NSH prompt, start the server:: + + nsh> ping 10.0.2.2 + nsh> s2opc & + s2opc [4:100] + +From another host terminal, read the standard server time node through the +forwarded port:: + + $ uaread -u opc.tcp://127.0.0.1:4841 -n i=2258 + +Stop the server with the task ID printed by NSH:: + + nsh> kill -2 4 + +See :doc:`/applications/examples/s2opc/index` for command-line overrides and +:doc:`/applications/netutils/s2opc/index` for toolkit configuration. + ------------------------------------------------------------------ Single Core with virtio network, block, rng, serial driver (GICv3) ------------------------------------------------------------------ @@ -946,4 +985,3 @@ References 6. Arm Generic Interrupt Controller v3 and v4 Overview 7. ArmĀ® Generic Interrupt Controller Architecture Specification GIC architecture version 3 and version 4 8. (DEN0022D.b) Arm Power State Coordination Interface Platform Design Document - diff --git a/boards/arm64/qemu/qemu-armv8a/configs/s2opc/defconfig b/boards/arm64/qemu/qemu-armv8a/configs/s2opc/defconfig new file mode 100644 index 00000000000..ec67e3576b1 --- /dev/null +++ b/boards/arm64/qemu/qemu-armv8a/configs/s2opc/defconfig @@ -0,0 +1,100 @@ +# +# This file is autogenerated: PLEASE DO NOT EDIT IT. +# +# You can use "make menuconfig" to make any modifications to the installed .config file. +# You can then do "make savedefconfig" to generate a new defconfig file that includes your +# modifications. +# +CONFIG_ARCH="arm64" +CONFIG_ARCH_ARM64=y +CONFIG_ARCH_BOARD="qemu-armv8a" +CONFIG_ARCH_BOARD_QEMU_ARMV8A=y +CONFIG_ARCH_CHIP="qemu" +CONFIG_ARCH_CHIP_QEMU=y +CONFIG_ARCH_CHIP_QEMU_A53=y +CONFIG_ARCH_EARLY_PRINT=y +CONFIG_ARCH_INTERRUPTSTACK=4096 +CONFIG_ARM64_SEMIHOSTING_HOSTFS=y +CONFIG_ARM64_SEMIHOSTING_HOSTFS_CACHE_COHERENCE=y +CONFIG_ARM64_STRING_FUNCTION=y +CONFIG_BUILTIN=y +CONFIG_CRYPTO_MBEDTLS=y +CONFIG_DEBUG_ASSERTIONS=y +CONFIG_DEBUG_FEATURES=y +CONFIG_DEBUG_FULLOPT=y +CONFIG_DEBUG_SCHED=y +CONFIG_DEBUG_SCHED_ERROR=y +CONFIG_DEBUG_SCHED_WARN=y +CONFIG_DEBUG_SYMBOLS=y +CONFIG_DEFAULT_TASK_STACKSIZE=8192 +CONFIG_DEVICE_TREE=y +CONFIG_DEV_SIMPLE_ADDRENV=y +CONFIG_DEV_URANDOM=y +CONFIG_DRIVERS_VIRTIO_MMIO=y +CONFIG_DRIVERS_VIRTIO_NET=y +CONFIG_EXAMPLES_HELLO=y +CONFIG_EXAMPLES_S2OPC=y +CONFIG_EXAMPLES_S2OPC_ENDPOINT_URL="opc.tcp://10.0.2.15:4841" +CONFIG_EXPERIMENTAL=y +CONFIG_FRAME_POINTER=y +CONFIG_FS_HOSTFS=y +CONFIG_FS_PROCFS=y +CONFIG_FS_PROCFS_REGISTER=y +CONFIG_FS_ROMFS=y +CONFIG_FS_TMPFS=y +CONFIG_HAVE_CXX=y +CONFIG_HAVE_CXXINITIALIZE=y +CONFIG_IDLETHREAD_STACKSIZE=8192 +CONFIG_INIT_ENTRYPOINT="nsh_main" +CONFIG_INTELHEX_BINARY=y +CONFIG_IOB_ALIGNMENT=16 +CONFIG_IOB_BUFSIZE=1534 +CONFIG_LIBC_EXECFUNCS=y +CONFIG_LIBC_MEMFD_ERROR=y +CONFIG_LIBC_NETDB=y +CONFIG_NET=y +CONFIG_NETINIT_DRIPADDR=0x0a000202 +CONFIG_NETINIT_IPADDR=0x0a00020f +CONFIG_NETINIT_NOMAC=y +CONFIG_NETUTILS_S2OPC=y +CONFIG_NET_BINDTODEVICE=y +CONFIG_NET_ETH_PKTSIZE=1514 +CONFIG_NET_ICMP_SOCKET=y +CONFIG_NET_LL_GUARDSIZE=32 +CONFIG_NET_LOOPBACK=y +CONFIG_NET_SOCKOPTS=y +CONFIG_NET_TCP=y +CONFIG_NET_TCP_KEEPALIVE=y +CONFIG_NET_UDP=y +CONFIG_NSH_BUILTIN_APPS=y +CONFIG_NSH_FILEIOSIZE=512 +CONFIG_NSH_READLINE=y +CONFIG_PREALLOC_TIMERS=4 +CONFIG_PROFILE_ALL=y +CONFIG_PROFILE_MINI=y +CONFIG_PTHREAD_MUTEX_TYPES=y +CONFIG_PTHREAD_STACK_MIN=8192 +CONFIG_RAMLOG=y +CONFIG_RAM_SIZE=134217728 +CONFIG_RAM_START=0x40000000 +CONFIG_RAW_BINARY=y +CONFIG_READLINE_CMD_HISTORY=y +CONFIG_RR_INTERVAL=200 +CONFIG_SCHED_HPWORK=y +CONFIG_SCHED_HPWORKPRIORITY=192 +CONFIG_SPINLOCK=y +CONFIG_STACK_COLORATION=y +CONFIG_START_YEAR=2026 +CONFIG_SYMTAB_ORDEREDBYNAME=y +CONFIG_SYSTEM_GPROF=y +CONFIG_SYSTEM_NSH=y +CONFIG_SYSTEM_PING=y +CONFIG_SYSTEM_SYSTEM=y +CONFIG_TESTING_GETPRIME=y +CONFIG_TESTING_OSTEST=y +CONFIG_UART1_BASE=0x9000000 +CONFIG_UART1_IRQ=33 +CONFIG_UART1_PL011=y +CONFIG_UART1_SERIAL_CONSOLE=y +CONFIG_UART_PL011=y +CONFIG_USEC_PER_TICK=1000
