Re: device tree not the answer in the ARM world [was: Re: runningDebian on a Cubieboard]

From: Rob Landley
Date: Mon May 06 2013 - 16:09:48 EST


On 05/06/2013 07:08:44 AM, Luke Kenneth Casson Leighton wrote:
> I suppose that ARM multi-platform will never cover all ARM CPUs, but
> the more it covers, the easier and cheaper it will be to work with new
> hardware and ARM.

no. no, no no and wrong. absolutely dead wrong. you're completely
misunderstanding the economics of large and mass-volume product
development. the hardware cost is
EEEEEEVVVEEERRRRRRYYYTTHHHHIIINNNNGGGG.

And economies of scale are everything to hardware cost. Unit volume amortizes the development (and often licensing) costs down, in the long run who has the highest unit volume has the cheapest product. Being able to reuse off the shelf components is nice, but being able to repurpose existing high-volume smartphone packages semi-verbatim is nicer.

Also, your cheap little one-off product tends to have a lifespan measured in months. Especially since the most common southeast asian business model used to be something like "develop thing through shell company, fill inventory channel with product, launder profits through series of shell companies that patent infringement suits can't burrow through in a reasonable amount of time, dissolve company and shell companies before product ever winds up on store shelves leaving nobody to sue, re-hire the same set of engineers at new shell company, rinse, repeat.'

(Has this changed recently? I haven't really been paying attention since smartphones started replacing the PC the way the PC replaced minicomputers and mainframes, so the billion seats of Android are more interesting than the rest of the embedded space combined. I did a talk about that at ELC if you're bored:
http://www.youtube.com/watch?v=SGmtP5Lg_t0 )

the software development cost because it is a one-off (non-recurring
expense) is completely and utterly irrelevant. again, see reply to
oliver's message.

Which is why this hardware tends to ship with crappy, unusable, unsupported software. Because actually programming the sucker is an afterthought, and the company that created it won't be _around_ long enough to support it, because if it did it would be around long enough to be sued for "we patented breathing, pay up".

The reason we should care about this business model when the vendors don't is...?

> Say, if a manufacturer has 20 different models of mobile phone out
> there, all based on ARM.
> Currently, they need a different kernel for each one. If they could
> use the same kernel across all 20 models, that would reduce their
> development costs considerably.

let's do some maths. let's say that the cost of re-using a DT-based
kernel is $50k, but the custom development (not using DT) is $250,000.

If you use a DT-based kernel you can upgrade to new vanilla releases for 5 years, and if you don't you probably never upgrade to a new version ever.

Except the type of company you're describing won't be around long enough to provide an upgrade. They'll just tell you to buy a new one next year, from the same engineers working at new shell company du jour (which has already dissolved by the time product hits the shelves; this stuff can get outsourced and rebadged with other people's branding to disguise the churn but the short-term thinking is there for a _reason_).

let's say that you have to use a freescale $20 processor (iMX6 Dual)
with that, because linaro is being paid $1m per year to help freescale
to make devicetree work, and it gets them in on that
one-kernel-across-20-models thing.

so they work out the BOM, against the projected expenditure over say
2 years they expect to sell say 100 million phones.

You realize that nobody except Samsung and Apple is currently making money in the smartphone space, right?

http://www.slate.com/blogs/moneybox/2013/04/02/smartphone_profit_shares_apple_and_samsung_have_the_whole_pie.html

And that they're doing better because neither one is as stupid as the companies you're describing?

http://www.bbc.co.uk/news/business-22036876

Yes, you can install Linux on cheap plastic pieces of nonstandard crap that have already ceased production before you can buy one. It's about as interesting as hollowing out a Furby and making it run Linux.

do you see the point, james? the cost of the software development is
utterly, utterly, utterly irrelevant.

Which means that nothing we do matters to them anyway, they will never listen to us, we have no reason to listen to them, and they can basically piss off and stop bothering us? (Which was pretty much what Linus asked?)

Meanwhile, we pay attention to the companies that have a future, and not the modern gold rush iteration. (Before the smartphone we had the digital watch boom, the calculator boom, the incomptible 8-bit microcomputer boom, the dot-com pets.com/drkoop.com era... this is not a new thing, and unix has lived through all of it.)

Don't get me wrong: I'm happy to provide them with good tools. But making their needs a primary design consideration when it comes to sustainability and upgrade paths is wrong. A company that lives or dies based on half a cent in component selection is NOT worried about an upgrade path. It's making something disposable, and the company itself is disposable.

but the amount of time taken on software development is *not* the
same as the *cost* of the software development.

And neither is the same as the quality or sustainability of the resulting software. But if the product line will be be discontinued three months after its introduction, who cares about being able to maintain anything?

Rob--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/