[Letux-kernel] jz4780 read out LCDC setup for HDMI
paul at boddie.org.uk
Thu Jun 4 19:29:30 CEST 2020
On Thursday 4. June 2020 17.18.09 H. Nikolaus Schaller wrote:
> I have booted the latest letux-5.7 and now, the lcdc got initialized!
> So maybe something has improved in the DRM subsystem without our activity.
> root at letux:~# cat /sys/kernel/debug/regmap/13050000.lcdc0/registers
> 00: 00f00840
This is the configuration register, set up fairly normally.
> 04: 00000003
> 08: 0000000d
These are the sync pulse definitions.
> 0c: 0520026e
These are the "virtual" display dimensions: 1312x622.
> 10: 011b051b
> 14: 0014026c
And these are the horizontal and vertical picture settings: 283-1307 and
20-620, suggesting a resolution of 1044x600, I guess.
> 18: 00000000
> 1c: 00000000
> 20: 00000000
> 24: 00000000
> 28: 00000000
> 2c: 00000000
These should probably all be zero.
> 30: 24002008
This indicates that the LCD controller is enabled. It's the fairly standard
configuration for the controller with end-of-frame interrupts enabled, and so
> 34: 00000004
Here, we see the "FIFO 0" underrun condition, although that occurs in the
3.0.8 kernel, too, from your earlier output. Maybe I shouldn't be so worried
> 38: 00000000
This should be the frame identifier (see below).
> 3c: 00000000
This should probably be zero.
> 40: 0e2ee000
This is the DMA descriptor #0 physical address.
> 44: 01000000
> 48: deafbead
> 4c: 00096000
And these are the framebuffer physical address, frame identifier and command
(framebuffer size of 614400 words).
> 50: 0007626f
This is the DMA descriptor #1 physical address.
> 54: 01050010
> 58: 2d544d47
> 5c: 00000032
These are the registers affected by descriptor #1, quite possibly not set up
to sensible values.
> root at letux:~#
> Still there is no image.
> > I did now boot with the Imagination system in Flash memory.
> > It is an 3.0.8-Kernel. And my HDMI monitor works out of the box.
> I did boot with both kernel and did run my scripts (using devmem2)
> on both devices. The register values of each kernel are attached.
Thanks for doing this: it may be useful to see what differences there are.
Looking at the 3.0.8 LCD controller registers, there are many familiar things
from the source code (and from the 3.18 sources).
> Main difference for the PHY seems to be in the audio area, but there
> are also some HDMI_IH, HDMI_VP and HDMI_FC registers where I don't
> have any idea what they are about.
IH is interrupt handling, VP is video packetization and FC is frame composer.
Although the latter two are not entirely self-explanatory, I now have some
idea of what they do.
> As mentioned above the LCDC has been initialized (without me
> recognising this first). But register values are completely different.
One thing to note about the 3.0.8 kernel is that it might not be very clever
about picking a display resolution. At the moment, though, the upstream LCD
driver is not likely to be doing anything specific for the JZ4780, and I think
that some of the extra features may be needed to produce a picture via HDMI,
such as the RGB control register. It is also possible that the on-screen
display (OSD) functionality is somehow involved.
More information about the Letux-kernel