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]

Reply via email to