VPU on imx6 solo

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

VPU on imx6 solo

Jump to solution
2,641 Views
skappen
Contributor II

The iram size on reserved for vpu on imx6 solo seems to be zero, the vpu node in  device tree file passes zero as iram size where as imx6qd it is 0x2100.

arch/arm/boot/dts/imx6dl.dtsi

vpu@02040000 {

                iramsize = <0>;

                status = "okay";

            };

Our custom video driver uses VPU APIs for h264 encoding and during initialization it gives a warning message as

" VPU iram is less than needed, some parts don't use iram"

The internal ram in imx solo is 128 KB. Why iram memory is not been used for vpu on imx6 solo ?

Labels (3)
Tags (2)
0 Kudos
1 Solution
1,577 Views
Yuri
NXP Employee
NXP Employee

Hello,

  Basically, FSL Linux BSP uses the IRAM. Say for i.MX6Q, where

IRAM size is 256K, up to 132K may be reserved for the VPU.

Since IRAM size of the i.MX6S is not so big, there is no IRAM reservation

for VPU. As for VPU API, please refer to section 3.2.2.33 (iram_t) of

“i.MX_6_VPU_Application_Programming_Interface_Linux_Reference_Manual.pdf”.

Looks like You should not use IRAM with VPU of i.MX6S.

     https://www.freescale.com/webapp/Download?colCode=L3.14.28_1.0.0_iMX6QDLS_BUNDLE&appType=license&loc...


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

5 Replies
1,578 Views
Yuri
NXP Employee
NXP Employee

Hello,

  Basically, FSL Linux BSP uses the IRAM. Say for i.MX6Q, where

IRAM size is 256K, up to 132K may be reserved for the VPU.

Since IRAM size of the i.MX6S is not so big, there is no IRAM reservation

for VPU. As for VPU API, please refer to section 3.2.2.33 (iram_t) of

“i.MX_6_VPU_Application_Programming_Interface_Linux_Reference_Manual.pdf”.

Looks like You should not use IRAM with VPU of i.MX6S.

     https://www.freescale.com/webapp/Download?colCode=L3.14.28_1.0.0_iMX6QDLS_BUNDLE&appType=license&loc...


Have a great day,
Yuri

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,577 Views
charlesung
Contributor III

Hi Yuri,

If I am using the gstreamer imxvpuenc_h264 plugin, which piece of code I will have to change so I can correct for this problem? I have looked a few places but it is not clear to me where I need to change so the VPU will not use the IRAM.

Thanks,

Charles

0 Kudos
1,577 Views
Yuri
NXP Employee
NXP Employee

Hello,

  it is enough to  set  iramsize = <0> in the device tree file.

Regards,

Yuri.

0 Kudos
1,577 Views
charlesung
Contributor III

That is what I thought too when I looked at the driver. And I already have that in the dts file.

   vpu@02040000 {
    compatible = "fsl,imx6-vpu";
    reg = <0x2040000 0x3c000>;
    reg-names = "vpu_regs";
    interrupts = <0x0 0x3 0x1 0x0 0xc 0x4>;
    interrupt-names = "vpu_jpu_irq", "vpu_ipi_irq";
    clocks = <0x2 0xa8 0x2 0x8c 0x2 0x8e>;
    clock-names = "vpu_clk", "mmdc_ch0_axi", "ocram";
    iramsize = <0x0>;
    iram = <0xa>;
    resets = <0xb 0x1>;
    power-domains = <0xc 0x1>;
   };

But for some reason, it is still complaining about this when I ran the gstreamer pipeline that involves h264 encoding using the vpu. Can you think anything else that I may be missing?

Thanks,

Charles

0 Kudos
1,577 Views
skappen
Contributor II

Thanks Yuri, this was really helpful.

0 Kudos