[PATCH] [RFC] drm: mxsfb: Implement LCDIF scanout CRC32 support

Liu Ying victor.liu at oss.nxp.com
Tue Feb 8 02:41:59 UTC 2022


On Mon, 2022-02-07 at 11:43 +0100, Marek Vasut wrote:
> On 2/7/22 10:18, Liu Ying wrote:
> 
> Hi,
> 
> > > > On Sun, 2022-02-06 at 19:56 +0100, Marek Vasut wrote:
> > > > > The LCDIF controller as present in i.MX6SX/i.MX8M Mini/Nano
> > > > > has a
> > > > > CRC_STAT
> > > > > register, which contains CRC32 of the frame as it was clocked
> > > > > out
> > > > > of the
> > > > > DPI interface of the LCDIF. This is likely meant as a
> > > > > functional
> > > > > safety
> > > > > register.
> > > > > 
> > > > > Unfortunatelly, there is zero documentation on how the CRC32
> > > > > is
> > > > > calculated,
> > > > > there is no documentation of the polynomial, the init value,
> > > > > nor
> > > > > on which
> > > > > data is the checksum applied.
> > > > > 
> > > > > By applying brute-force on 8 pixel / 2 line frame, which is
> > > > > the
> > > > > minimum
> > > > > size LCDIF would work with, it turns out the polynomial is
> > > > > CRC32_POLY_LE
> > > > > 0xedb88320 , init value is 0xffffffff , the input data are
> > > > > bitrev32()
> > > > > of the entire frame and the resulting CRC has to be also
> > > > > bitrev32()ed.
> > > > 
> > > > No idea how the HW calculates the CRC value.
> > > > I didn't hear anyone internal tried this feature.
> > > 
> > > It would be nice if the datasheet could be improved.
> > 
> > Agreed.
> > 
> > > 
> > > There are many blank areas which are undocumented, this LCDIF
> > > CRC32
> > > feature, i.MX8M Mini Arteris NOC at 0x32700000 , the ARM GPV NIC-
> > > 301
> > > at
> > > 0x32{0,1,2,3,4,5,6,8}00000 and their master/slave port mapping.
> > > The
> > > NOC
> > > and NICs were documented at least up to i.MX6QP and then that
> > > information disappeared from NXP datasheets. I think
> > > reconfiguring
> > > the
> > > NOC/NIC QoS would help mitigate this shift issue described below
> > > (*).
> > 
> > I also think the QoS would help if it is configureable.
> 
> It is programmable, it's just the port mapping which is undocumented.
> 
> > > Do you know if there is some additional NOC/NIC documentation for
> > > i.MX8M
> > > Mini available ?
> > 
> > No.
> 
> Can you ask someone internally in NXP maybe ?

Maybe, you may try community.nxp.com, like the i.MXRT case.

Liu Ying



More information about the dri-devel mailing list