Use MCUs and components with full chip level documentation when possible

Started by simonc, October 30, 2013, 10:03:21 PM

Previous topic - Next topic

simonc

The reason I have bought Olimex products over the years is because they have components with fully detailed and open documentation; this allows you to write to the bare metal itself or to write a BSP for a RTOS.

I've been caught out with the Olimex Allwinner boards because it turns out the so-called Allwinner documentation is very poor and minimal when compared to that available for the MCUs on other Olimex boards.

A example of acceptable documentation for the MCU on a Olimex product would be for the LPC3131 MCU. A example of good MCU documentation on a non-Olimex Cortex-A8 board would be the documentation for the TI based MCU on the Beaglebone Black. The Allwinner "documentation" by comparison is little more than a dump of register bitfields.

However, while writing this, I did wonder if the needs of the bare metal and RTOS users are still relevant to Olimex any more or if the Olimex market is now mainly about people who just want to run Linux on a cheap low power (compared to x86) board and don't need to care at chip level about what they are buying.

If so, that's fair enough, even if it marks the end of a era (given Olimex's background and the reason for it's growth), but if so, do you still see a market for some of the more capable of the earlier and decently documented boards ?

Lurch

I doubt that the use of a few Allwinner chips is the "end of an era".  Olimex, like anyone else, can only use what the market provides.  There is certainly a market for good, cheap linux boards for people who just want to crank out applications without doing engineering.  This market was stoked by the RPi.  The rate at which Allwinner is producing new chips means pretty much that these things are going to be "throw away", so it's questionable if it's necessary to have everything documented that well.
It would be nice, but I doubt Allwinner cares much about it.

olimex

To understand why the documentation of Allwinner is so poor you have to learn their business model

Allwinner is in the race for low cost tablets/phone solutions, this market is very though as the volumes are huge you have to release newer and faster products ASAP or your competitors eat you.
The Chinese vendors solved this very smart - they release new chipset in every 6-8 months and to may enable the production of the end devices asap they provide to the factories complete board layout and software which is proven to work.

This is why Chinese factories need 0 development to start producing the newer tablets or phones based on AW SOCs.

This works! In the western world the path - write 5000 pages documentation - throw it to your customer who to learn and start developing - consultations and technical support - release of product after 12-18 months of the chip release - start manufacturing SIMPLE DOESN'T WORK in China, if you release product after 1 year of the processor launch your product will be old, obsolete and slow!

Allwinner does ALL the development inside the company, the AW engineers can easily ask their collegue how this or that works hence NO NEED for COMPLETE documentation, sounds shockingly weird for western world but this works out well in China.

Now the OSHW which we did with Allwinner products start to change a bit situation, usually Allwinner peak sales of their SOCs is 12 months then fade, with the all new projects which OLinuXino sparkled now Allwinner sees that their SOCs sales are no longer so short and they listen to their customers.

Few days ago I got contacted by Allwinner and they asked me WHAT WE DO RECOMMEND THEM to improve their documentation. So they saw that by having better documentation may provoke more sales in long term for their chips. So they are learning, but you can't blame that they do what best suits their business model.

Well documented imx6 chip cost $40 / 1K while RK3188 which exceed imx6 features and performance but is less documented cost $12. There will be people who will choose to use imx6 and other who want to use RK3188, this is OK, you as designer should decide which better suits your goals.

One other thing I've learned is that it doesn't matter if the chip is well documented or not, but the size of the community behind it to produce good Linux support. You may have 5000 pages of user manual and still poor Linux drivers and incomplete support ;)

progmetalbg

I agree with Olimex, except for:
QuoteWell documented imx6 chip cost $40 / 1K while RK3188 which exceed imx6 features and performance but is less documented cost $12
RK3188 exceeds i.MX6Q features? Yes, it is built on 28nm technology and clock speed is higher but what else? i.MX6Q has SATA, Gbit Ethernet and PCI-Express, RK3188 has none of them. i.MX6Q price is $30 (MCIMX6Q5EYM10AC) for 1k quantity and everyone can check at Freescale website. I don't think UDOO, Wandboard, etc use the chip for $40, which works in extended temperature range and has Media Local Bus.
$12 for RK3188, but at what quantity? 10k units, 100k units? This price is just a rumour spread by hipboi.
What is the Linux support of RK3188? Leaked Android kernel (version 3.0) slightly modified by some open source enthusiast. Zero Linux mainline support. Closed source boot loader... Thanks but no thanks :)
This chip is made only for Android tablets and sticks and I doubt Linux support will become much better in the next months. Cortex A9 is already old technology, we have Cortex A15 and 64 bit Cortex A57 is behind the door.

olimex

aaahh Freescale altered the prices again :) when they first announced imx6q lowest cost was $30/1K then they rise the price to $40 and now they reverted to the old prices, this just shows how fragile is their supply

$12 is the price for 5K order which I also have confirmed by Rockchip, sure it's a bit tricky 'get in touch' with this company and to order if you live outside China but possible, we already went through this route

Linux support for Allwinner was same like the linux support for Rockchip ... one year ago, but look what Linux-Sunxi community did ;) as I wrote above everything with these projects depend on what community will form around

You probably know better than me that Android is Linux with patched kernel for the Android functinality, so it's not impossible to build vanilla kernel for SOC if you have the Android SDK, this is what Linux-Sunxi did for Allwinner, now people say the current Linux-Sunxi kernel is better than Allwinner's Android kernel

again everyone have to choose for himself what to use there is no single universal solution for eveyone

Allwinner chips now have one of the best Linux support when we compare with the other SOC vendors we have had touch with


simonc

Thanks for the detailed reply; it helps to understand where Allwinner are coming from.

Yes, the Allwinner model certainly works when you are pushing commodity consumer level products out of the door which will be replaced in 18 months and it also works (to some extent) in the embedded world when you just want to run the operating system you are given on the supplied board.

However, it's nice to see Allwinner are starting to realise that doesn't cover all their potential customers. The best advice I can give Allwinner about the documentation is to look at the Technical Reference Manuals for other Cortex-A8 based MCUs, such as the TI MCU on the Beaglebone Black.

A register bitfield listing is a required part of the documentation, but it isn't sufficient. There also needs to be detailed overviews of how each peripherial on the MCU works and how it interacts with other resources on the MCU as well as documentation on the inter-relationships between the various registers for each peripherial.

David Goadby

As a recent Olimex customer I have to say that using poorly documented Allwinner chips has been an issue from time to time but usually the problems are sorted out eventually by the community (thank you).

I think a reliable register/port map would help to solve most problems.

For most of us I think we would just like to download tested Linux kernels with the features we need already sorted out. Combing the forums shows that compiling the kernel is something that a lot of us would rather not attempt.

As recent example I need to use the watchdog feature on the A20. The datasheet says there is one but you need to make sure you have a kennel with it enabled. Eventually you find out how to make things work and then you move on to the next problem...

It is good that Allwinner are now looking to improve the documentation but is it genuine concern for us or the fact other manufacturers like TI entering the marketplace? TI are doing a better job of support Beagleboard Black for sure.

David Goadby