[Lenny400] JZ4730 and other documentation (was Re: Coin cell on motherboard)
H. Nikolaus Schaller
hns at goldelico.com
Sun Aug 13 21:54:07 CEST 2017
Hi Paul,
> Am 13.08.2017 um 19:05 schrieb Paul Boddie <paul at boddie.org.uk>:
>
> On Sunday 13. August 2017 18.42.58 H. Nikolaus Schaller wrote:
>>
>> I haven't seen it either. But AFAIR there were some references to a JZ4730
>> User/Programming Manual. The chip data sheet is still available, e.g.:
>>
>> http://docplayer.net/12271101-Jz4730-multimedia-application-processor-
> data-sheet.html
>>
>> While trying to locate it I have found this:
>>
>> http://d1.amobbs.com/bbs_upload782111/files_25/ourdev_532550.pdf
>>
>> which might also give some background on the hardware.
>
> I have seen a similar "board design guide" document before, although this may
> be a slightly later and slightly different version.
>
> The one kind of document that is stubbornly absent is the programming manual,
> though, which is why I believe that it must have been kept internal for some
> reason, or maybe it never existed as such. Sites similar to those above will
> probably yield the programming manuals for all of the other SoCs in that
> product family, but I doubt that you'll ever find one for the JZ4730.
>
> [...]
>
>> I remember that I had some application note (?) for I2C to write a new i2c
>> driver long time ago. But I didn't find it or a copy any more. Seems to
>> have gone in digital deletion.
I have checked again and it might have been that I mixed it up with chapter 18
of the JZ4740 user manual. But AFAIR my I2C driver (for the 3.x kernel) did work.
I have found this:
Jz4740 32 Bits Microprocessor User Manual Revision: 1.0 Date: Jul. 2006
For the JZ4730 I have:
Jz4730 Multimedia Application Processor Data Sheet Revision: 1.3 Date: Jul. 2007
and:
Jz4730 32 Bits Microprocessor Application Notes 001 Clock Revision: 0.9 Date: Nov. 2006
Jz4730 32 Bits Microprocessor Application Notes 002: the used of I2S I2S Controller Revision: 0.1 Date: Jan. 2007
>
> Well, I think this is mostly an issue of my own comprehension plus annoyingly
> underdocumented hardware. To be fair, having looked at Microchip documentation
> not that long ago, and despite that being a very established company with a
> long record of writing things down for others to work from, I think there's a
> growing disconnect between the engineering departments and the people given
> the job of describing the product.
>
> Anyway, as I noted, I have been looking at the JZ4730 and trying to make some
> sense of it, and some progress with the JZ4740 (and even JZ4780) means that I
> probably have a slightly better idea about some of the things that I was
> mostly guessing at before. That isn't to say that I can necessarily write
> coherent Linux driver code, though.
No problem. Most likely nobody can. Unless we start to do something. Everyone
can contribute a tiny piece of information and after some longer time we have
puzzle pieces that fit.
In any case we have some quite good sources if information:
a) the old 2.4 kernel sources (to learn about specific device drivers)
b) modern jz4740++ Device Tree based implementations
c) board design guide and schematics
What we can read from the board design guide/schematics is how to define a
Device Tree for the minibook.dts (memory, CPU, I2C, RTC, Display,
UART, Keyboard matrix, ...).
I have even started such a thing in the Letux-Kernel project but it is not
very elaborated:
http://git.goldelico.com/?p=gta04-kernel.git;a=blob;f=arch/mips/boot/dts/ingenic/minibook.dts;h=f1b105888c5f70f75bb6817739723bbd1a437806;hb=af482b6f58b6c55f7d5efdf76d51d11bf137aaa2
But maybe a good point to consolidate and collect findings (e.g. keyboard mapping).
Or just discuss.
More difficult is to develop a jz4730.dtsi but we could start with an (almost)
empty one like this:
http://git.goldelico.com/?p=gta04-kernel.git;a=blob;f=arch/mips/boot/dts/ingenic/jz4730.dtsi;h=045d6b291f1e5e735a2bc86702581e2deb7fb184;hb=af482b6f58b6c55f7d5efdf76d51d11bf137aaa2
The most difficult thing will be to get a modern kernel emit some console
messages. Even if it hangs then. This means we must have:
* U-Boot working
* startup
* initialization of MMU, CPU, Clocks
* UART working
With this mIlestone it becomes much easier to develop further components.
Big challenge anyways...
BR,
Nikolaus
More information about the Lenny400
mailing list