Surveying the Challenges of Linux On Cortex A9-Based Laptops
Charbax writes "In this video, Jerone Young, lead partner engineer at Canonical, explains some of the challenges facing Canonical and other companies who are part of the new Linaro project, in preparation for the now imminent release of a whole bunch of ARM Cortex A9 Powered laptops and desktops likely to be manufactured by giants of the industry such as HP, Dell, Lenovo, and Toshiba, as well as lesser names such as Quanta, Invetec, Pegatron, and Compal, all of whom have been showing tens of early prototype designs of these ARM-powered laptops at trade shows around the world during the past year and a half. They're working to standardize the boot process, write drivers to use graphics and video hardware acceleration, optimize the web browser (Chrome and Mozilla), and implement faster DDR3 RAM and faster I/O bus speeds, as well as to optimize the software to use the new faster dual core ARM Cortex A9 processors."
as well as lesser names such as Quanta, Invetec, Pegatron, and Compal
They may not be household names but I would hardly call them lesser names. In fact I would be shocked if hp's Slate offering wasn't built by Quanta.
Quanta Computer Incorporated (TWSE: 2382) is a Taiwan-based manufacturer of notebook computers and other electronic hardware. It is the largest manufacturer of notebook computers in the world.[1] Its customers include ACER, Alienware, Apple Inc., Cisco, Compaq, Dell, Fujitsu, Gateway, Gericom, Hewlett-Packard, Lenovo, Maxdata, MPC, Sharp Corporation, Siemens AG, Sony, Sun Microsystems, and Toshiba. It was founded by Barry Lam in 1988. Lam continues to head the company.
Compal is the second largest notebook manufacturer in the world
3 January 2008: Asus formally splits into three companies: ASUSTeK, Pegatron and Unihan
"A person is smart. People are dumb, panicky dangerous animals and you know it." - K
A few reasons: With Geode, you have your choice between the two main branches of the family: the original Geodes, descendants of the embedded x86 line that AMD bought from National Semiconductor; and the AMD-designed Geode, which is basically their 32 bit athlon design with some modifications to make it embedding friendly.
The first are genuinely low power and heavily integrated; but those suckers are slow. The second are pretty zippy by embedded standards; but only low-power by the standards of the desktop/laptop athlons they were derived from(ie. not very). Neither is an especially compelling choice. The former is slow enough that x86 compatibility doesn't really help you in the consumer market(virtually nothing remotely modern will run fast enough, and if you are going to roll a custom ultra-zippy OS and application suite, x86 isn't a huge feature) and the latter is power hungry enough that you can't really get it into anything smaller than a netbook(where, if it weren't for the fact that it tends to get paired with a fucking SiS chipset, it would actually be OK).
Second, "ARM" gets to piggiback on development work done for contemporary high-end smartphones. The board going into a "smartbook" will be virtually identical to that going into a high end smartphone, just with a bigger screen, battery, and keyboard, and quite possibly some bumped clock speeds made possible by the larger battery and greater heat-dissipation capacity of the form factor.
These are ARM based platforms, but unlike the PC, there's not one single platform.
On a PC, you know where everything is - and if not, the BIOS helps you. A lot of basic peripherals are at well-known locations (serial ports, keyboards, mice, etc). And for PCI, it exists in a well-known location as well. The BIOS does offer a memory map, but it's just to map physical RAM (which also exists at a well known location - it starts from 0).
If you wanted to write a basic OS, you can accomplish a lot since you know RAM starts at 0, BIOS puts tables at well-known locations (ACPI, memory, etc), and where to expect a video adapter (already set up for you by BIOS), serial port, basic I/O. Add in a little code to do a little PCI probing to discover other adapters (mass storage, USB, etc), but that can wait since the basics are there. Heck, you can often guess a network controller might be placed at IO 0x300.
On ARM, there's no such thing. You can't buy an "ARM Processor" - they don't really exist except as SoCs with onboard memory controllers, display controllers and other peripherals. And each chip can have different addresses for them. And while the ARM cores start at well-known location (0 - reset vector), there's often ROM there that does security boot, or just boot from NAND/SD/etc. And each peripheral exists in a different location - serial ports may be at 0x80000000 physical on one SoC, 0x80108000 on another, etc. RAM isn't based in any standard location - 0x40000000, 0x80000000, 0xC0000000 or other locations are possible. Ditto a PCI(e) bridge - it's somewhere in the memory map, but where you need to read the SoC manual to find out. End result is the OS has to be customized per-SoC and per-hardware because people can put things anywhere (for Linux, this just means the kernel since the POSIX abstraction layer hides the rest - provide a nice userspace and devices don't care).
We don't think of it much, but the PC hasn't differed that much since IBM released their version of a desktop nearly 30 years ago. Heck, Intel's Pine Trail isn't PC-compatible, but it's an x86-based platform. Which is why Linux runs, but not Windows (desktop - you can probably get Windows CE running on it).
That itself is a huge challenge. It's akin to consoles - all three consoles currently out (PS3, Xbox360, Wii) all have PowerPC processors inside them, but you can say none are compatible with each other, even though the lowlying ISA is the same.
A previous poster already answered, on a nice manner. But to make things clear, x86 is a bad architecture, and to make it run any fast, you need to create a very power hungry chip. ARM is a much better architecture, leading to smaller and less power hungry cores.
There is also a problem of scale here. It is cheaper to make an ARM that everybody uses than to make a x86 that will fit only a ninche. But that doesn't completely apply to the current situation, since the A9 is also ninche. (For the A8 things are different.)
Rethinking email
Since I'm currently running Ångström linux on a brilliant cortex A8 machine (the pandora) - and yes, it runs chrome and ff3.6 no problem and has 3d drivers that make Quake 3 perform really well - I can't believe that these 'challenges' are going to be insurmountable.