AnsweredAssumed Answered

How can I make the mask channel the IPU of i.MX 6 work?

Question asked by arnobpau@buffalo.edu on Mar 2, 2020
Latest reply on Mar 2, 2020 by Joan Xie
  • My goal is:
    • I want to test the mask channel of the IPU of i.MX 6. I have successfully enabled and used the overlay channel, so I know how to use it. But the mask channel does not work. How can I do this? The following mentions my procedure in detail.
  • I have used the chipset:
    • i.MX 6Dual/6Quad Applications Processor
  • I have used the board:
    • BD-SL-i.MX6 (SABRE Lite)
  • I have tried the following register operations for IPU masking:
    • I have checked several registers to enable masking with IPU:
      • IPUx_CONF
        • DP_EN: I have set 1.
        • DC_EN: I have set 1.
        • DI0_EN: I have set 1.
        • DI1_EN: I have set 1.
        • DMFC_EN: I have set 1.
      • IPUx_IDMAC_CH_EN_2
        • IDMAC_CH_EN_44: I have set 1.
        • IDMAC_CH_EN_40: I have set 1.
      • IPUx_DI0_GENERAL
        • Di0_mask_sel: I have set 1.
      • IPUx_DI1_GENERAL
        • Di1_mask_sel: I have set 1.
      • IPUx_DC_GEN
        • IPUx_DC_GEN_MASK_EN: I have set 1.
        • IPUx_DC_GEN_MASK4CHAN_5: I have set 1.
      • IPUx_DC_DI0_CONF_1
        • [31-0]: I have set 0xFFFF.
      • IPUx_DC_DI1_CONF_1
        • [31-0]: I have set 0xFFFF.
      • IPUx_DMFC_GENERAL_1
        • DMFC_burst_size_9: I have set 0b01.
  • I have tried the following memory operations for IPU masking:
    • To enable masking, I have written into Channel Parameter Memory (CPMEM) at channel 44 for the following purposes:
      • Frame Width: I have set 500.
      • Frame Height: I have set 500.
      • Stride Line: I have left it unchanged. So the value is set by the Linux kernel.
      • Ext Mem Buffer 0 Address: I have set ((CFG_FBMEM_START + 0x600000) / 8).
      • Ext Mem Buffer 1 Address: I have set ((CFG_FBMEM_START + 0x600000) / 8).
      • Pixel Format Select: I have set 4'h6.

Outcomes