Greybus
Project Ara imposes some interesting requirements on its internal bus. Beyond being dynamic, the bus must be routable and secure; in other words, any two components on the bus must be able to communicate directly with each other, without any other component being able to listen in. As a result, standard buses like USB and PCIe are not suitable. After some searching, Greg and company came across the UniPro bus, which seems to fit the bill.
UniPro has its origins in Nokia, which wanted a way to be able to easily integrate cameras from any vendor. Google then picked it up and made it routable. At this point, Greg said, it is fast and mature. It promises low latency, has low-power modes and quality-of-service features, and promises in-order message delivery. The standards have been out there for a while; they are driven by the MIPI Alliance.
Everything on UniPro happens by way of bidirectional connections that pass directly from one component to another; data does not pass through the processor. A connection is represented by a "CPort," which looks a lot like a network socket. There is a switch on the bus that sets up the actual routes. Messages can pass at a rate of around 10Gb/s; the bus also has message prioritization, error handling, and notification of delivery problems. What UniPro does not do is streams or multicast delivery; Greg suggested the latter was a good non-feature, since it prevents modules from sniffing unrelated traffic.
UniPro adheres to the OSI network model, except that it has no application layer defined. So the Project Ara developers made their own, which they called Greybus. (The name evidently comes from the gray color of the original prototype device; nobody has since come up with a better one). Greybus adds device discovery; all modules on the bus are self-describing. There are, it seems, advantages when the people who have to make the software side work get a say in how the hardware is designed.
Greybus also adds a network routing layer internally and a set of class protocols for specific device types. This is something that USB and PCI got right, Greg said. When they adhere to the class protocols, devices like keyboards or WiFi adapters just work with no additional software development needed. This is important for Project Ara; it would like to see a lively market in third-party modules, and that is much more likely to happen if new modules simply work in existing systems.
Each device on the bus offers a description to the rest of the system; it includes vendor and product IDs, a serial number, the protocols used, etc. Each module (a physical thing plugged into the phone) offers one or more "interfaces," each of which is a physical connection. CPort 0 on each interface controls the interface as a whole; other CPorts offer the actual functionality and will be what the kernel normally talks to. Those CPorts support "operations," which are a way of getting a module to do something using an interface that resembles a remote procedure call API.
Currently a number of protocol classes have been implemented; these include the battery, vibrator, and near-field communications classes. Others, including audio, input, sensors, and cameras, are in progress. There are a few that have been left for later, including WiFi, Bluetooth, cellular modems, GPS receivers, lights, and the display — which, Greg suggested, will be a fair amount of work.
Also built into Greybus is the ability to bridge other protocols. So, for example, devices speaking protocols like USB, I2C, I2S, or SPI can be driven directly over the bus. There is also support for tunneling protocols like CSI (for cameras) or DSI (for displays).
Greg concluded by noting that the code is all available in the Greybus GitHub repository. It represents a piece of the Project Ara puzzle, but not the whole solution. In particular, making this device successful will require turning Android into a much more dynamic system; it is the same challenge that Linux distributors dealt with ten or fifteen years ago. It's a big job, but developers at Google are working on it. Once they are done (and the hardware is available), we will have stepped into a world where phone handsets are far more dynamic and configurable than they have been in the past.
Greg let people look at his prototype handset after the talk. It consisted of a chassis into which a number of postage-stamp-sized modules could be plugged. It was a nice-looking device, though the chassis seems like it will always force the device to be a bit fatter and heavier than less configurable devices. Suffice to say your editor wants one.
[Your editor would like to thank the Linux Foundation for supporting his
travel to LinuxCon Japan.]
Index entries for this article | |
---|---|
Kernel | Greybus |
Conference | LinuxCon Japan/2015 |
Posted Jun 18, 2015 3:32 UTC (Thu)
by bokr (subscriber, #58369)
[Link] (11 responses)
http://mipi.org/specifications/unipro-specifications
where it says
"Specifications are available to MIPI members only. For more information on joining MIPI, please go to Join MIPI."
Joining is not just a logwall -- looks like a paywall which if you have to ask how high, you can't afford it.
Such policy does not seem very compatible with FLOSS ;-/
(Personally, I think there ought to be a law saying nothing can
So what's happening?
Posted Jun 18, 2015 4:29 UTC (Thu)
by ay (subscriber, #79347)
[Link] (6 responses)
You may think what you think and that's nice but that's not at all how the industry works and standards don't have to be FLOSS to work (or even work effectively).
What continues to amaze me is how much engineering effort seems to be going into this project, it seems like a lot of time and money spent on a problem in search of a solution or something that no one asked for. I suspect that most people want phones that are tightly integrated and deliver the features they need, not some bulky thing with swapable components (that they'd never swap) but maybe that's just me.
Posted Jun 18, 2015 5:54 UTC (Thu)
by smurf (subscriber, #17840)
[Link] (1 responses)
Also, "tightly integrated" basically means "whenever a single part breaks, you get to throw away the whole thing and get a new phone" instead of swapping out just the broken piece.
Same thing for s/breaks/is inadequate/ because, you know, requirements change. Get a new job? may need a dual-SIM module. Start playing geocaching or Ingress? need a better GPS. Start vblogging? need a µSD slot and maybe a video-optimized camera instead of the megapixel monster.
Posted Jun 20, 2015 7:39 UTC (Sat)
by fredrik (subscriber, #232)
[Link]
As an example, you can imagine plugging in an infrared barcode scanner for logistics work. You avoid the clutter of a separate scanner that use unreliable nearfield communication to communicate with your logistics app and requires that the user handles two hand held devices instead of one. And you don't have to standardise on today's rare and rather expensive cellular devices with pre-integrated IR-scanners.
Ara allows small ISV:s to compete on such markets where producing special purpose hardware with integrated cellular communication today is prohibitively expensive. Now, worst case you have to develop your own Ara module. And if you're lucky, you can find a suitable extensible Ara module that fits your purpose off the shelve.
Posted Jun 18, 2015 9:16 UTC (Thu)
by gb (subscriber, #58328)
[Link]
This makes sense, but there is a limit - beyond which there is no point to reduce size of the device. It can't be smaller than a screen, thinner that a battery + screen. So, I think mobile devices already reached some point there would be no more progress in format and that makes opportunities to improvement.
Posted Jun 19, 2015 19:58 UTC (Fri)
by cry_regarder (subscriber, #50545)
[Link]
Posted Jun 19, 2015 22:56 UTC (Fri)
by flussence (guest, #85566)
[Link]
The closed bus standard doesn't bother me, but the fact it comes from Nokia (now a patent troll) may.
Posted Dec 16, 2016 1:14 UTC (Fri)
by marcH (subscriber, #57642)
[Link]
Yeah and I suspect many consumers would rather see their pocket space being used for more battery than for additional connectors.
Now there's something that wasn't clear for me from just the article: could UniPro help tightly integrated phones too? Even for integrated systems without any removable piece this could help re-use, faster development and competition, no?
Also: are there other embedded and slightly less space-constrained markets where UniPro could help?
If the answer is no every time then I wouldn't bet on its future.
Posted Jun 18, 2015 15:50 UTC (Thu)
by gregkh (subscriber, #8)
[Link] (2 responses)
Same as almost all other specifications, take for example PCI, the rules for access to that spec is the same as this one.
Sure, some working groups are getting much better at this (like UEFI and ACPI), and others are getting worse (USB kicked the Linux developers out of the working groups), but overall, all that matters in the end is if the code gets implemented with the correct license for your operating system for your hardware.
Posted Jun 19, 2015 21:15 UTC (Fri)
by mtaht (subscriber, #11087)
[Link] (1 responses)
On other fronts, am I the only one that wants to have a high speed, low latency multi-channel audio interface that plugs right into the internet?
Posted Jun 19, 2015 21:26 UTC (Fri)
by dlang (guest, #313)
[Link]
it's not a wireless communications like 802.11*
Posted Jun 19, 2015 22:24 UTC (Fri)
by k8to (guest, #15413)
[Link]
These values are clearly not "reasonable" for individual contributors. And moreover in the modern era it is very questionable what that high fee is for, since the costs for information dissemination are so low.
As a result, there has been some beginning of adjustment for what is a reasonable pricing to fit into the RAND style labelling. It's happening slowly, but it does seem to be occurring.
Posted Jun 19, 2015 13:09 UTC (Fri)
by jezuch (subscriber, #52988)
[Link]
Well, "Gregbus", obviously :) (Keeping with the spirit of Linus^WLinux!)
Greybus FLOSS relationship?
call itself a "standard" without having free complete documentation
in a FLOSS format available on the internet).
Greybus FLOSS relationship?
"Tightly integrated"?
"Tightly integrated"?
Greybus FLOSS relationship?
Greybus FLOSS relationship?
Greybus FLOSS relationship?
Greybus FLOSS relationship?
Greybus FLOSS relationship?
Greybus FLOSS relationship?
Greybus FLOSS relationship?
Greybus FLOSS relationship?
Greybus