[RFC] AST2500 video engine driver design

Eddie James eajames at linux.vnet.ibm.com
Sat May 19 01:42:12 AEST 2018


Hi,

I'm working on a driver for the AST2500 video engine; just wanted to 
post up the plan in case anyone has any ideas. The purpose behind this 
development is to be able to use IKVM with video from the host and i/o 
from a remote user.

The video engine is a piece of hardware in the AST24/2500 that captures 
and/or compresses video data. Typically the input is the host graphics, 
writing it's RGB output to the VGA memory on the BMC. The video engine 
will capture and compress the data and store it in memory. The driver 
should provide an interface for an application to read that compressed 
video in order to get it on the network.

The driver interface will use the Video4Linux2 API. This involves 
standard file operations like open, read, and close, as well as a video 
ioctl interface for configuring the device. Configuration options will 
probably be limited, as I think there will only be one mode that will 
provide enough performance for IKVM. I do want to be able to configure 
the video source; either direct from host at the BMC VGA memory or from 
the BMC DRM driver.

The most substantial part of the driver will just be the hardware setup 
and manipulation. Intel has done some work here already (thanks Ed) 
which has been useful for configuring the hardware and doing the 
capture/compress loop. I'll be following what I think is fairly common 
for video drivers and only initializing the engine once a file 
descriptor is opened, and then allow more file descriptors to be opened 
as necessary without further touching the engine, though changing 
configs will obviously do the necessary engine operations. Once the last 
file descriptor is released, the engine and clocks will be shut down. 
The read operation will trigger a single frame capture/compress for now.

I still have details to hash out regarding streaming, user-space 
buffers, etc, which will probably be necessary to get the performance we 
need.

Any comments/questions/concerns?

Thanks,

Eddie



More information about the openbmc mailing list