Rockbox mail archiveSubject: Re: Roadmap for the imx233 target
Re: Roadmap for the imx233 target
From: Marcin Bukat <marcin.bukat_at_gmail.com>
Date: Wed, 12 Jun 2013 15:00:07 +0200
Great work! In my opinion you should simply commit (and improve our recent
commit statistics) :-)
2013/6/12 Amaury Pouly <amaury.pouly_at_gmail.com>
> Hello everybody,
> I felt I should disclose some information about the imx233 target and the
> roadmap that I have been pursuing in the last months. I'll try to start
> from scratch and give you an overview of what I'm doing and why.
> For those for don't know about it, the imx233 is a port to the Sigmatel
> STMP3780 (aka Freescale i.MX233) SoC. It is used in at least three recent
> devices: Creative Zen X-Fi2, Zen X-Fi3 and Sansa Fuze+. The port to the
> Fuze+ is close to stable, same for the Zen X-Fi3 and the Zen X-Fi2 is
> unstable but already has a solid basis.
> The world seemed beautiful and all but then someone came and told us he
> had a device based on the STMP3700 SoC for which we didn't have the
> datasheet but some Linux code. It was obvious from the start that this chip
> was extremely close to the imx233 and that a Rockbox port was possible. At
> this point, we realised that some other devices were using another
> undocumented chip named STMP3770 and we even realised that the older and
> documented STMP3600 family was also very close. Here is a list of devices
> with those SoCs to give you an idea of the situation (you can find more
> information on http://www.rockbox.org/wiki/SigmaTelSTMP3xxx)
> * I.MX233: Zen X-Fi Style, Zen X-Fi2, Zen X-Fi3, Sansa Fuze+
> * STMP3770: Zen Style M100/300
> * STMP3700: Zen, Zen Mozaic, Zen X-Fi, YP-Q2
> * STMP3600: Sansa Express, Zen V (Plus), YP-Z5
> * Unsure: Zen MX, Zen Style 100/300 (probably STMP3700 and STMP 3780)
> To summarise, there are lots of target out there using those chips and I
> thought that it would be great to port Rockbox to them. I concluded that it
> was possible to handle them all in the imx233 port with a reasonable amount
> of modification and with careful handling. A major pain in handling those
> SoC at once is that the registers are very similar but not exactly similar
> and there are many of them (~500). Another major issue was that we had the
> datasheet of the STMP3600 and i.MX233 but not the STMP3700/3770.
> I am glad to say today that I solved both issues. I managed to get my hand
> on the two missing datasheets, that wasn't exactly easy but I managed to
> got them without any NDA or anything! (please contact me if you are
> In order to solve the issue of keeping consistent a set of three big
> register set, I decided that the best way was to automatically generate the
> headers for them, out of the messy and buggy sigmatel/freescale headers
> extracted from Linux ports. This works in two steps: first I produced an
> XML description of the register map from those headers and then I produced
> the rockbox headers from the XML description. The register set is chosen at
> compile time with a switch in the target specific configuration header.
> This way we ensure a correct use of registers at all time.
> A byproduct of this register map being available is the (wonderful) hwstub
> tool: it is a small blob that one can upload to any STMP device and allows
> to control the device over USB. Using the shell tool I wrote, one can
> identify the chip, load the register description and poke at registers
> easily. The tool is scriptable in Lua which makes it easy and painless to
> hack and debug early code for a device. The tool itself is not really STMP
> specific and could be used on other SoC provided the blob is ported to
> those obviously (the TCC and RK27xx are good candidates for it).
> This is still work in progress but the majority of the switch to the new
> headers has now been done in my personal branch and proven successful. With
> the help of Lorenzo we are currently porting Rockbox to the STMP3600 and
> specifically to the Creative ZEN V and YP-Z5. I also have some solid
> codebase for the STMP3700 with the Zen Mozaic and Zen X-Fi, port to the Zen
> is in progress too.
> I will start to integrate those changes in the trunk soon. The amount of
> modifications outside of the imx233/ subdir should be minimal (mostly
> SOURCES, tools and configure) so I don't expect any breakable*.
> If you have any comment/objection, please do so quickly before I begin
> merging some code. If you would like all/some of those changes to go on
> gerrit before being committed so that everyone is given a chance to review,
> i'll be happy to do so.
> Long life to Rockbox!
> Amaury Pouly
> PS(*): the only expected potential breakage is the mkzenboot tool which I
> improved/fixed for the more recent STMP based devices. It is used by the
> Creative ZVM port I think. I have no way to check this though.
Received on 2013-06-12