If you've worked on system-on-chip (SoC) development with ARM cores, chances are you've heard of Linaro, the open-source effort that stepped forward this year to ease Linux development on ARM-based SoCs. Linaro has potential implications for the entire SoC development chain, including hardware design, embedded software design, and systems and application development.
So why should SoC designers care about Linaro? Rather than start with a description of what Linaro is, let's start with this graphic on SoC development costs from the EDA360 vision paper (data from IBS):
As you can see, SoC development costs are heading for $100 million at the 32 nm node, with software taking up about half the expense. The software portion of the development effort is the fastest-rising cost and is at the knee of what looks like an exponential curve at 32nm. If this cost cannot be brought under control, advanced node SoCs will be out of reach for all but a handful of extremely high-volume applications. This means fewer designs overall, less innovation, and fewer SoC design jobs.
One good way to reduce software development costs is to minimize redundant efforts. Today, hundreds of companies are individually optimizing Linux kernels for ARM cores. Linaro promises to make this unnecessary. If Linaro can substantially reduce fragmentation, the end result could be many more SoC designs - good news for everybody reading this blog post.
Linaro 101, in Less Than 101 Words
Linaro, a non-profit, open source engineering company, was announced in June 2010 by ARM, IBM, Texas Instruments, Samsung, ST-Ericsson, and Freescale. Its stated goal is to provide an optimized base for Linux distributions and developers by creating new releases of tools, kernel, and middleware software validated for a wide range of SoCs. The first release, Linaro 10.11, was made at the recent ARM Technology Conference and was demonstrated with ARM Cortex-A9 processors.
Today you can download Linaro GCC and GDB tools, the Linaro kernel, and Linaro boot code. Linaro is aiming for a stable release every six months.
Why Linaro Matters
To get more perspective on Linaro, I talked to Jason Andrews, Cadence architect and frequent blogger, and Josh Levine, Cadence member of technical staff, who had recently returned from a Linaro workshop at the Ubuntu Developer Summit. As of today, Jason noted, every SoC company has its own team of software people modifying kernels and writing device drivers for each ARM-based SoC. "They have to do a fair amount of work on the embedded kernel to make it work on their chip. Some work is likely duplicated by other companies, and it's difficult to get the changes back into the official Linux kernel when working in isolation," Jason said.
So what's the potential impact of Linaro? For one thing, it should simplify matters for systems companies buying SoCs. Today, Jason noted, evaluating an SoC with all its specialized hardware and software is a complicated process. "If you level the software stack, and everybody has Linaro, then they [systems companies] can make some better decisions," Jason said.
For SoC companies, Jason said that Linaro "definitely has potential to shrink the [software] development time. That should shrink the cost and hopefully improve the quality." Josh added that Linaro aims to improve existing tools and come up with what amounts to an "optimized flow" for development and debugging.
What about hardware? "Right now, system companies have to go down really low into the hardware, and figure out how to program it," Jason said. "People tell me that in the first rev of a product they couldn't figure out how to program special hardware, so they just skip it. Linaro could abstract a lot of these special hardware functions."
At a fireside chat at the ARM Technology Conference, John Bruggeman, Cadence chief marketing officer, discussed the challenges of differentiating hardware in an applications-centric world. He pointed to Linaro as one of the most important trends in the semiconductor industry. "If we can all work together to support the intentions of Linaro, it gives us the opportunity to make semiconductor performance great, make power low, make differentiation clear, and allow an Android or Linux application to work really smoothly," he said.
Seen this way, Linaro is a kind of bridge between creative software applications and the specialized, optimized hardware they would most like to run on. If it meets its goals, Linaro can help foster innovation in software and hardware alike.
For another perspective on Linaro and the competitive advantage it may provide to ARM, see Dan Nenni's recent blog post.