Where can I get hold of software to utilize the VPU (JPU specifically) on a MCMIMX8QM-CPU?
I found "imx-vpu-5.4.35" on NXP website that expands to some (libvpu) source code which doesn't have imx8 as target.
Also we're not running linux, but porting the mutexes seemed straight forward...
Hello, thanks for the response!
I've now learnt that my opening question was quite naive. When you wrote "i.MX8 does not have physically a VPU" I was a bit confused, since the block diagram for the iMX8 clearly shows a VPU module.
Resorting to browsing the "i.MX_VPU_Application_Programming_Interface_Linux_Reference_Manual.pdf" I now understand what you mean, this was the first time I saw this piece of information.
I wouldn't normally read ref manuals for Linux, but I didn't really find any other tangible information on nxp.com website.
We have the qnx bsp though and what I first asked for now seems void.
Q: Where can we find the Amphion decoder firmware and header files to match (e.g. mediasys_types.h) (and perhaps some code snippet, the linux ref man above seem to cover most, but I'm not sure it is complete)
Q: Is the VPU (Amphion Cortex-M solution) utilizing one of the two Cortex-M4 of the iMX8 or does the VPU have it's own Coretx-M such that the two others are free for random use?
The linux ref man states that: "There are dedicated Cortex-M cores reserved for Amphion VPU for decoding and encoding", so I would assume the later.
Best regards.
Hello,
Until we do not have any official release of the SoC, we cannot guarantee if the libraries for the VPU will work. The only that we could have is the one that is included in our BSP. But other than that, we do not have any official information. Even we cannot guarantee if the control of the VPU in our BSP will work.
Regarding the Cortex M that the VPU has. The VPU of the i.MX8 does have 4 Cortex M0 cores.
Hope this information could help you.
Best regards,
Diego.
Hello,
The "imx-vpu-5.4.35" is installed by default. However, take note that i.MX8 does not have physically a VPU. To have some VPU libraries to use on the i.MX8M and i.MX8MM, I added the "gstreamer1.0-plugins-bad" recipe. However, this worked for those chips. I cannot guarantee if this will also work for the i.MX8 until it is completely released.
Best regards,
Diego.
Hello,
I'm also in the process to see whether or not to 'port' an old design based on i.MX6 with libvpu to new one based on i.MX8M Plus.
- get confused with some of the online search results, and also here:
"However, take note that i.MX8 does not have physically a VPU"
Is it still so for now?
based on the doc below seems still refer it to " i.MX 6 series VPU" at the very beginning of the 'overview' (the the answer is yes?):
https://www.nxp.com/docs/en/reference-manual/i.MX_VPU_Application_Programming_Interface_Linux_Refere...
based on the datasheet: IMX8MPIEC.pdf
all the i.MX8M Plus devices except QuadLite has VPU.
so that answered the question.
but the new VPU manual gets me confused again:
https://www.nxp.com/docs/en/reference-manual/IMX_VPU_APPLICATION_PROGRAMMING_INTERFACE_LINUX_REFEREN...
Just begin/overview and 1.2.:
• i.MX 8M Hantro VPU with a VPU library and no firmware. This VPU has user space libraries that prepare
IOCTL calls to the kernel VPU Hantro Driver. Besides the VPU wrapper API (deprecated), the V4L2-based
framework on top of the user library is designed to make the integration more standardized.
1.2 Hantro
The Hantro VPU on the i.MX 8M series includes both decoder (G1/G2) and encoder (H1/VC8000E). The early
VPU wrapper interface (deprecated) is built based on Hantro user library, which communicates with the Hantro
kernel driver directly. To support the V4L2 interface, one V4L2-based kernel driver is implemented and one
daemon application is designed accordingly to link the V4L2 driver and Hantro user library.
Does it have a libvpu, or only V4L2 support, or both?
How can I check out whether it is part of the V4L2? (CID as?)