i.MX6 Microcode Processing Unit

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

i.MX6 Microcode Processing Unit

844 Views
steveschefter
Contributor III

Hi.

Beyond what is in the i.MX6 Reference Manual, is there any information on the Display Controller's Microcode Processing Unit?

For example, how does the MPU use the template words?  It seems that they are not processed in order since the driver only sets up template words 5,6,7,10,11,12 for my configuration.

The specific problem that I am attempting to fix is data placement by the Bus Mapping Unit.  I am using YUYV data in the framebuffer.  The driver sets up maps 5 and 6 such that YU should be placed on the parallel bus (disp0 bits 0 through 15) during the first phase and YV on the parallel bus during the second phase.  Unfortunately, this is not happening.  The data I place in the framebuffer does not get replicated properly on the parallel bus.  I suspect the template words given to the MPU.

Also, I am looking for an explanation of how the mapping is done relative to the raw data.  37.4.7.5.1 Bus Mapping Unit describes the mapping actions being performed on 24 bits of each 32 bit word coming from memory.  This would be appropriate for RGB if the frame buffer contained the bytes R G B 0 R G B 0  in increasing byte offset.  24 bits would ignore the already 0 byte.  But for YUYV data, the bytes would be Y U Y V Y U Y V etc.  How is is possible to map all data onto the output bus if only 24 bits are used?

Is the above related to W_SIZE and, if so, how is W_SIZE used?  if I set W_SIZE such that 32 bit values are to be interpreted as 2 x 16 bit values, I do not see it using the lower 16 bits on one output phase and the upper 16 bits on the second output phase.

Thanks,

    Steve

Labels (3)
0 Kudos
2 Replies

493 Views
steveschefter
Contributor III

Through guesses at what the microcode will do, we have mapping working as we require.  Documentation about how the microcode uses the register settings would still be useful though.

0 Kudos

493 Views
jotes
Contributor IV

Hello Steve,

Could you share with us, what exactly have you changed to properly map UYVY (or any other of YUV422 format) data? We checked so many configurations but colors are still wrong.

We noticed, that the LUMA component is received properly only when W_SIZE=2 (24 MSB bits are used), but we start to doubt that it is relevant. In addition, we are not sure, if UYVY data can be mapped in two cycles (as it is set in _ipu_init_dc_mappings function): in figure 37-33 from RM the same 24 bits of RGB data are mapped in two cycles, but in our case there are two words (UY and VY in some - we don't know what - configuration) that should be mapped in other ways. Of course it is only our assumptions.

Regards!

0 Kudos