CV-Bowen opened a new pull request, #20866:
URL: https://github.com/apache/nuttx/pull/20866
## Summary
A set of virtio-gpu fixes and one feature:
- allocate the frame buffer with kumm_calloc() in protected builds, since
it is mapped into user space
- use an uninterruptible wait for command completion: a signal used to
end the wait early, and the completion callback then posted a freed
semaphore
- add RGB565, which is not in the virtio spec but accepted by
virtio-gpu-gl (virglrenderer)
- express the vsync period in milliseconds and convert with MSEC2TICK(),
so it no longer depends on CONFIG_USEC_PER_TICK
The first commit only fixes existing nxstyle errors in virtio-gpu.c.
## Impact
virtio-gpu only. Adds a Kconfig choice for the frame buffer format;
the default (XRGB8888) is unchanged.
## Testing
Host: Ubuntu 22.04.5 LTS x86_64, QEMU version 10.2.1, sim: cc (Ubuntu
13.1.0-8ubuntu1~22.04) 13.1.0, qemu-armv8a: aarch64-none-elf-gcc (Arm GNU
Toolchain 12.2.Rel1 (Build arm-12.24)) 12.2.1 20221205
`qemu-armv8a:fb`, `fb` example on the default format:
```
qemu-system-aarch64 -cpu cortex-a53 -nographic \
-machine virt,virtualization=on,gic-version=3 \
-global virtio-mmio.force-legacy=false \
-device virtio-gpu-device,xres=640,yres=480,bus=virtio-mmio-bus.0 \
-kernel ./nuttx
```
<details><summary>fb</summary>
```
nsh> fb
VideoInfo:
fmt: 13
xres: 640
yres: 480
nplanes: 1
PlaneInfo (plane 0):
fbmem: 0x40410040
fblen: 2457600
stride: 2560
display: 0
bpp: 32
Mapped FB: 0x40410040
PlaneInfo (plane 0):
fbmem: 0x40410040
fblen: 2457600
stride: 2560
display: 0
bpp: 32
Use consecutive fbmem2 = 0x4053c040, yoffset = 480
0: ( 0, 0) (640,480)
1: ( 58, 43) (524,394)
2: (116, 86) (408,308)
3: (174,129) (292,222)
4: (232,172) (176,136)
5: (290,215) ( 60, 50)
Test finished
```
</details>
The RGB565 path needs `virtio-gpu-gl-device` with a GL display and was
not run here.
No regression in rpmsg: sim:rpserver/rpproxy and
qemu-armv8a:rpserver/rpproxy boot and pass the fixed rpmsg cases (dump, ping,
rpmsgfs; 15/15). qemu-armv8a was built with LIBC_ENVPATH and BINFMT_CHECKEXEC
disabled, which current master needs for nxinit to start nsh there; unrelated
to this change.
--
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]