This is a kernel module that drives the HDMI Peripheral for the Zynq 7000
defined by hdmi-cmd-gen and hdmi-cmd-enc. It exposes the peripheral as
a framebuffer device, with additional ioctl
s for vertical syncing.
See also the hdmi-dev-video-player, which served as a precursor to this kernel module.
This repository is a Yocto layer. It was tested with Petalinux 2023.2, which is based on Yocto Langdale, and uses Linux-Xilinx 6.1.30.
This layer exposes the ammrat13-hdmi-dev-mod
package, which builds the kernel
module and configures it to be loaded at boot via /etc/modules-load.d/
.
This kernel module takes no command-line parameters, and only supports
640x480@60Hz
since that's the only configuration supported by the hardware.
Other than that, it exposes the HDMI Peripheral as a framebuffer device:
/dev/fb*
.
Additionally, this driver supports the ioctl
s for FBIOGET_VBLANK
and
FBIO_WAITFORVSYNC
.
This ioctl
returns the current position of the scan dot, along with whether
the screen is currently in: vertical blanking, horizontal blanking, and vertical
sync. This never fails unless the address supplied as the first argument is
invalid.
This ioctl
waits until the scan dot is in vertical blanking. This does not
necesarily wait for the next frame's vertical blanking interval. It returns 0
on success, or EINTR
. It should never return ETIMEDOUT
- something's gone
wrong if it does.