[Letux-kernel] [PATCH 00/20] A bunch of JZ4730 fixups for letux-kernel

H. Nikolaus Schaller hns at goldelico.com
Thu Jan 14 09:55:54 CET 2021

> Am 14.01.2021 um 08:22 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>> Incidentally, related to something I noted before, the JZ4740 employs a two-
>> descriptor arrangement to support display modes that use a palette, albeit 
>> using one DMA channel. However, dual-panel support involves two DMA channels, 
>> but with the all constant churn, the code that supported this is probably long 
>> since forgotten in Linux, hence the "unknown reason" for that second channel.
> Ok, it may indeed be the palette. If I remember the 2.6.24 code there was
> some setup for a palette descriptor.

Looks as if it is quite clearly described:

	Registers LCDSA0 and LCDSA1, corresponding to DMA channels 0 and 1, contain the physical
	address of frame buffer or palette buffer in external memory.

This means we need one descriptor for the frame buffer DMA and the other one
for the Palette. There we must obviously set the CMD.PAL bit.

The first descriptor is not initialized, so it is neither a valid frame buffer
nor a palette buffer... Having the first initialized and the second not seems
to be ok. So it *might* also help to set the CMD.PAL bit for the first buffer...

Now, assuming that we simply can ignore the first channel and use the second one
only is obviously wrong...

BTW: we are on the right track. I have removed xinit from my init scripts and
tty* from the cmdline and now I can get a login: with no vblank timeouts.

And if I run my script that patches some values from the 2.6.24 kernel I now
get a blinking cursor :)

So there is only a minor diff in the setup now.

I need a little time to manually do all devmem2 commands of my patch script
to see which one makes the panel work.

So we are almost there :)


More information about the Letux-kernel mailing list