I will be using Memory Port to IPU to HDMI. My data is oversized and will need a custom clip each time I write it to the IPU. I was expecting to use a custom 2-dimensional DMA (delta x = 1 pixel, delta y = next row in memory). For example, if my source buffer is 5000 rows and 6000 columns, delta x would be the column increment, but I would need to use some subset (1280 pixels) of the 5000 rows and I might be starting 400 pixels into the row, running for 1280, and then needing the next row to start 400 pixels into the next row.
Chapter 37 of the applications processor reference manual says:
Addressing modes include:
• Sequential access (to a contiguous memory buffer) - for generic data.
• Raster-scan within a two-dimensional window of a video/display buffer - for
both pixel and generic data.
• Raster-scan of two-dimensional blocks within a two-dimensional window (for
rotation of pixel data)
The delta y will skip large chunks of the memory so sequential access is out unless I can DMA to another location first.
Do either of the others (which I do not understand yet) support the concept of row subsets?
Hello,
You may look at Chapter 6 [Image Processing Unit (IPU) Drivers]
of "i.MX_Linux_Reference_Manual.pdf".
Summary page :
i.MX 6 Series Software and Development Tool|NXP
Also, the following may be useful :
ipu-examples release notes - v0.1
Have a great day,
Yuri
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
I've been slowly plowing my way through this. After many issues with the build (I'm in c++ and the .h files are not compliant), I have the ability to run some of the code. However, when I try to open /dev/mxc_ipu, the device is not found. Indeed, there is no such device on my system. I'm sure there is either some equivalent or I'm missing a configuration value. Note I use bitbake. Along with many other things, I have the following in defconfig:
CONFIG_MXC_CAMERA_OV5640=m
CONFIG_MXC_CAMERA_OV5642=m
CONFIG_MXC_CAMERA_OV5640_MIPI=m
CONFIG_MXC_TVIN_ADV7180=m
CONFIG_MXC_IPU_DEVICE_QUEUE_SDC=m
CONFIG_FB_MXC_SYNC_PANEL=y
CONFIG_FB_MXC_LDB=y
CONFIG_FB_MXC_MIPI_DSI=y
CONFIG_FB_MXC_TRULY_WVGA_SYNC_PANEL=y
CONFIG_FB_MXC_HDMI=y
CONFIG_FB_MXC_EINK_PANEL=y
CONFIG_FB_MXS_SII902X=y
Any clue what might cause /dev/mxc_ipu to be added? Or is it something in devicetree?