Hi,
Here my tests on QEMU rv-virt target basically passed, so vote +1 for it.
Most configs works smoothly except the `rv-virt:smp` one needs minor tweaks.
Below are detailed logs.
### toolchain
Toolchain name: `gcc-riscv64-unknown-elf 10.2.0-0ubuntu1` on Ubuntu 22.04
```shell
$ riscv64-unknown-elf-gcc -v
Using built-in specs.
Target: riscv64-unknown-elf
Thread model: single
Supported LTO compression algorithms: zlib
gcc version 10.2.0 ()
```
### nsbi
```sh
$ qemu-system-riscv32 -M virt,aclint=on -semihosting -nographic -bios nuttx
ABC
NuttShell (NSH) NuttX-12.10.0
nsh> cat /proc/version
NuttX version 12.10.0 6fc5b3e9dc Jul 3 2025 07:09:43 rv-virt:nsbi
nsh> free; ostest > /dev/null; rm -r /var; sleep 1; free
total used free maxused maxfree nused nfree name
4158460 8428 4150032 20488 4148184 25 4 Kmem
4194304 602112 3592192 3592192 Page
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
setvbuf_test: Using NO buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Using FULL buffering, pre-allocated buffer
total used free maxused maxfree nused nfree name
4158460 8428 4150032 42816 4148184 25 4 Kmem
4194304 602112 3592192 3592192 Page
nsh> quit
```
### knsh64
```sh
$ qemu-system-riscv64 -M virt,aclint=on -semihosting -nographic -kernel nuttx
OpenSBI v1.5.1
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : riscv-virtio,qemu
Platform Features : medeleg
Platform HART Count : 1
Platform IPI Device : aclint-mswi
Platform Timer Device : aclint-mtimer @ 10000000Hz
Platform Console Device : semihosting
Platform HSM Device : ---
Platform PMU Device : ---
Platform Reboot Device : syscon-reboot
Platform Shutdown Device : syscon-poweroff
Platform Suspend Device : ---
Platform CPPC Device : ---
Firmware Base : 0x80000000
Firmware Size : 327 KB
Firmware RW Offset : 0x40000
Firmware RW Size : 71 KB
Firmware Heap Offset : 0x49000
Firmware Heap Size : 35 KB (total), 2 KB (reserved), 11 KB (used), 21 KB
(free)
Firmware Scratch Size : 4096 B (total), 416 B (used), 3680 B (free)
Runtime SBI Version : 2.0
Domain0 Name : root
Domain0 Boot HART : 0
Domain0 HARTs : 0*
Domain0 Region00 : 0x0000000000100000-0x0000000000100fff M: (I,R,W)
S/U: (R,W)
Domain0 Region01 : 0x0000000002000000-0x000000000200ffff M: (I,R,W)
S/U: ()
Domain0 Region02 : 0x0000000080040000-0x000000008005ffff M: (R,W) S/U:
()
Domain0 Region03 : 0x0000000080000000-0x000000008003ffff M: (R,X) S/U:
()
Domain0 Region04 : 0x000000000c400000-0x000000000c5fffff M: (I,R,W)
S/U: (R,W)
Domain0 Region05 : 0x000000000c000000-0x000000000c3fffff M: (I,R,W)
S/U: (R,W)
Domain0 Region06 : 0x0000000000000000-0xffffffffffffffff M: () S/U:
(R,W,X)
Domain0 Next Address : 0x0000000080200000
Domain0 Next Arg1 : 0x0000000087e00000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Domain0 SysSuspend : yes
Boot HART ID : 0
Boot HART Domain : root
Boot HART Priv Version : v1.12
Boot HART Base ISA : rv64imafdch
Boot HART ISA Extensions : sstc,zicntr,zihpm,zicboz,zicbom,sdtrig,svadu
Boot HART PMP Count : 16
Boot HART PMP Granularity : 2 bits
Boot HART PMP Address Bits: 54
Boot HART MHPM Info : 16 (0x0007fff8)
Boot HART Debug Triggers : 2 triggers
Boot HART MIDELEG : 0x0000000000001666
Boot HART MEDELEG : 0x0000000000f0b509
ABC
NuttShell (NSH) NuttX-12.10.0
nsh> cat /proc/version
NuttX version 12.10.0 6fc5b3e9dc Jul 3 2025 07:18:03 rv-virt:knsh64
nsh> free; ostest > /dev/null; rm -r /var; sleep 1; free
total used free maxused maxfree nused nfree name
2064480 10040 2054440 21824 2050992 25 4 Kmem
4194304 606208 3588096 3588096 Page
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
setvbuf_test: Using NO buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Using FULL buffering, pre-allocated buffer
total used free maxused maxfree nused nfree name
2064480 10040 2054440 47344 2050992 25 4 Kmem
4194304 606208 3588096 3588096 Page
nsh>
```
### flats64
```sh
$ qemu-system-riscv64 -M virt,aclint=on -semihosting -nographic -kernel nuttx
OpenSBI v1.5.1
____ _____ ____ _____
/ __ \ / ____| _ \_ _|
| | | |_ __ ___ _ __ | (___ | |_) || |
| | | | '_ \ / _ \ '_ \ \___ \| _ < | |
| |__| | |_) | __/ | | |____) | |_) || |_
\____/| .__/ \___|_| |_|_____/|____/_____|
| |
|_|
Platform Name : riscv-virtio,qemu
Platform Features : medeleg
Platform HART Count : 1
Platform IPI Device : aclint-mswi
Platform Timer Device : aclint-mtimer @ 10000000Hz
Platform Console Device : semihosting
Platform HSM Device : ---
Platform PMU Device : ---
Platform Reboot Device : syscon-reboot
Platform Shutdown Device : syscon-poweroff
Platform Suspend Device : ---
Platform CPPC Device : ---
Firmware Base : 0x80000000
Firmware Size : 327 KB
Firmware RW Offset : 0x40000
Firmware RW Size : 71 KB
Firmware Heap Offset : 0x49000
Firmware Heap Size : 35 KB (total), 2 KB (reserved), 11 KB (used), 21 KB
(free)
Firmware Scratch Size : 4096 B (total), 416 B (used), 3680 B (free)
Runtime SBI Version : 2.0
Domain0 Name : root
Domain0 Boot HART : 0
Domain0 HARTs : 0*
Domain0 Region00 : 0x0000000000100000-0x0000000000100fff M: (I,R,W)
S/U: (R,W)
Domain0 Region01 : 0x0000000002000000-0x000000000200ffff M: (I,R,W)
S/U: ()
Domain0 Region02 : 0x0000000080040000-0x000000008005ffff M: (R,W) S/U:
()
Domain0 Region03 : 0x0000000080000000-0x000000008003ffff M: (R,X) S/U:
()
Domain0 Region04 : 0x000000000c400000-0x000000000c5fffff M: (I,R,W)
S/U: (R,W)
Domain0 Region05 : 0x000000000c000000-0x000000000c3fffff M: (I,R,W)
S/U: (R,W)
Domain0 Region06 : 0x0000000000000000-0xffffffffffffffff M: () S/U:
(R,W,X)
Domain0 Next Address : 0x0000000080200000
Domain0 Next Arg1 : 0x0000000087e00000
Domain0 Next Mode : S-mode
Domain0 SysReset : yes
Domain0 SysSuspend : yes
Boot HART ID : 0
Boot HART Domain : root
Boot HART Priv Version : v1.12
Boot HART Base ISA : rv64imafdch
Boot HART ISA Extensions : sstc,zicntr,zihpm,zicboz,zicbom,sdtrig,svadu
Boot HART PMP Count : 16
Boot HART PMP Granularity : 2 bits
Boot HART PMP Address Bits: 54
Boot HART MHPM Info : 16 (0x0007fff8)
Boot HART Debug Triggers : 2 triggers
Boot HART MIDELEG : 0x0000000000001666
Boot HART MEDELEG : 0x0000000000f0b509
ABC
NuttShell (NSH) NuttX-12.10.0
nsh> cat /proc/version
NuttX version 12.10.0 6fc5b3e9dc Jul 3 2025 07:22:55 rv-virt:flats64
nsh> free; ostest > /dev/null; rm -r /var; sleep 1; free
total used free maxused maxfree nused nfree name
33340608 8224 33332384 8896 33332384 22 1 Umem
stdio_test: write fd=2
stdio_test: Standard I/O Check: fprintf to stderr
setvbuf_test: Using NO buffering
setvbuf_test: Using default FULL buffering
setvbuf_test: Using FULL buffering, buffer size 64
setvbuf_test: Using FULL buffering, pre-allocated buffer
setvbuf_test: Using LINE buffering, buffer size 64
setvbuf_test: Using FULL buffering, pre-allocated buffer
total used free maxused maxfree nused nfree name
33340608 8224 33332384 50744 33332384 22 1 Umem
nsh>
```
### smp
The `rv-virt:smp` doesn't build, adjusting defconfig can build it:
```sh
$ ddiff rv-virt:smp rv-virt:yfsmp
63c63
< CONFIG_LIBM_TOOLCHAIN=y
---
> CONFIG_LIBM=y
```
Also the NSH lacks stdout redirection and ';' separated commands list is not
supported, so commands were run line by line.
```sh
$ qemu-system-riscv32 -M virt,aclint=on -semihosting -nographic -bios nuttx -smp
8
NuttShell (NSH) NuttX-12.10.0
nsh> cat /proc/version
NuttX version 12.10.0 6fc5b3e9dc Jul 3 2025 07:29:21 rv-virt:yfsmp
nsh> free;
total used free maxused maxfree nused nfree name
33361600 5128 33356472 5512 33356472 19 1 Umem
nsh> ostest
stdio_test: write fd=1
...
Final memory usage:
VARIABLE BEFORE AFTER
======== ======== ========
arena 1fd0ec0 1fd0ec0
ordblks 1 12
mxordblk 1fccd28 1fbc490
uordblks 4198 8ca0
fordblks 1fccd28 1fc8220
user_main: Exiting
ostest_main: Exiting with status 0
nsh> rm -r /var
nsh> sleep 1
nsh> free
total used free maxused maxfree nused nfree name
33361600 26360 33335240 107032 33277072 27 9 Umem
nsh>
```
Regards,
yf
On Mon, 2025-06-30 at 07:05 +0200, Alin Jerpelea wrote:
> Hello all,
>
> Apache NuttX 12.10.0 RC0 has been staged under [1] and it's
> time to vote on accepting it for release. Voting will be open for 72hr.
>
> A minimum of 3 binding +1 votes and more binding +1 than binding -1 are
> required to pass.
>
> The Apache requirements for approving a release can be found here [3]
> "Before voting +1 PMC members are required to download the signed
> source code package, compile it as provided, and test the resulting
> executable on their own platform, along with also verifying that the
> package meets the requirements of the ASF policy on releases."
>
> A document to walk through some of this process has been published on
> our project wiki and can be found here [4].
>
> [ ] +1 accept (indicate what you validated - e.g. performed the non-RM
> items in [4])
> [ ] -1 reject (explanation required)
>
> Thank you all,
> Alin Jerpelea
>
> SCM Information:
> Release tag: nuttx-12.10.0-RC0
> Hash for the release nuttx tag: 6fc5b3e9dc51dcda46d99519f72b7f2ec6db2e64
> Hash for the release nuttx-apps tag:
> 8ff533beb37eeef1f288c467acd7c50b542464eb
>
> [1] https://dist.apache.org/repos/dist/dev/nuttx/12.10.0-RC0/
> [2]
> https://raw.githubusercontent.com/apache/nuttx/nuttx-12.10.0-RC0/ReleaseNotes
> [3] https://www.apache.org/dev/release.html#approving-a-release
> [4]
> https://cwiki.apache.org/confluence/display/NUTTX/Validating+a+staged+Release