13 ms·
Blobless Linux on Raspberry Pi
- rektide 10y agoSadists. The Pi's choice of picking one of the most egregiously unsupported and anti-open source CPU cores was absurd. The people doing the absurdly hard work of taking up the slack that the Raspberry Pi Foundation created from this pick AND the RPI Foundations complete unconcern about the situation and open source at large is to me beyond belief. For a thing that purported to be an educational platform, this situation ought never have happened. At the time at least the low price of the decrepit old core was a good useful competitive advantage, I can acknowledge that, but it remains revolting to me that the #1 cheap Linux system is the spawn of some ancient horror Broadcom dropped with ghastly documentation and unsupportable drivers. But congratulations. For some reason people have kept the march of progress going on this beast. The RPI3 is rated for 24GFLOPS which is 1 more than a PS3 cell processor. It's been an unbelievable amount of work to get anywhere near unlocking the unique video core to get anywhere near there, but people keep pushing, so good on them. I still think it's a mistake for volunteers to work so ridiculously hard to build drivers for a core whose maker has contributed so little, spent so long releasing even basic docs, and who implemented so many really weird abnormal subsystems, especially when it was originally atop such an ancient core. But I am sincerely impressed and it has been amazing work slowly wrangling this abomination into order.
- agumonkey 10y agoWhat SoC of that class (perf/price) was on shelves when the rpi started ?
- joezydeco 10y agoOMAP3, OMAP4, Sitara, iMX5, iMX6. The Broadcom part in the RPi was heavily subsidized. Don't be fooled by price here.
- agumonkey 10y agoYes but still, at that time these SoC alone were above the rpi board price point. If you wanted to sell something aronud 30 you had to do vendor tricks with odd parts.
- christina_b 10y ago>unlocking the unique video core to get anywhere near there We actually have documented most vector instructions of VC4 and Julian's toolchain supports pretty much all documented ones, so the toolchain we have is pretty close to what Broadcom would have with their MetaWare compiler for VC4. >The RPI3 is rated for 24GFLOPS You mean the VPU, we also have QPU and ARM on the side. >so many really weird abnormal subsystems True that, lack of TZPCs, ARM AxPROT[1] being forced to high causing all ARM accesses to be insecure on AXI even in secure monitor mode (sadness), lack of a GIC. I could go on and on about what's wrong with BCM283x family but hey at least it's interesting. >But I am sincerely impressed and it has been amazing work slowly wrangling this abomination into order. Thank you ^^
- BuuQu9hu 10y agoWhich toolchain are you using? binutils/GCC or LLVM? Is the code for that upstream?
- christina_b 10y agobinutils/GCC, have Julian to thank for his wonderful toolchain: https://github.com/puppeh/vc4-toolchain https://github.com/puppeh/vc4-toolchain
- niftich 10y agoWith this bootcode.bin running on the VPU, after the ARM starts up and Linux is loaded, does the VPU halt and remain unreachable, or does the "normal" VC4 RTOS execute such that stuff from the ARM can be mailboxed to it?
- christina_b 10y agoCurrently it sleeps and waits for a mailbox interrupt after which it acks it and goes back to sleep. We're planning on using the interface to load a second stage firmware that would emulate the closed source firmware's power/clock management interfaces (but not framebuffer/PV/HVS/HDMI related stuff since there are Linux drivers for that now).
- pero 10y agoAs a little cherry on top, the CPU they sourced is also crippled with no onchip crypto. Even the half-price Pine64 has a CPU with crypto instruction sets.
- rtpg 10y agoAre there SoCs at a comparable price/speed that are more open? I can understand being disappointed at this choice, but if no other options exist, then either you're sacrificing price or performance to get more open-ness. My impression has been that this has mostly been about giving a cheap, easy to use software platform, and they've succeeded at that because of the price/performance balance. That was then, though. Now that this platform is more established, I imagine they can apply some pressure to get things like the video core to be more open.
- agumonkey 10y agoNowadays possibly; when the rpi project started I don't think so.
- userbinator 10y agoAllWinner comes to mind; here's one of the more well-known RPi-ish boards using them: https://www.olimex.com/Products/OLinuXino/open-source-hardware https://www.olimex.com/Products/OLinuXino/open-source-hardwa...
- rincebrain 10y agoAllwinner's been known to play hard and fast with the GPL and LGPL, so I'm not sure I'd cite them for being better about open source. cf. http://linux-sunxi.org/GPL_Violations http://linux-sunxi.org/GPL_Violations
- makomk 10y agoI think they got their act together a while ago. More importantly, part of the reason they got in so much hot water is they didn't use the Pi's GPL compliance technique of moving everything interesting into a blob running on a totally undocumented core. Everything important runs on the ARM core. (I believe some of the newer SoCs have an embedded core for power management, but apparently it's OpenRISC-based.)
- trome 10y agoYet they have the best mainline driver support, with a fully open VPU driver. Not saying they did any of that mind you, but they at least put the docs out there and eventually posted their BSP on github under GPLv2, so their changes could be updated & mainlined.
- userbinator 10y agoAt first I was optimistic that with all the popularity of the RPi, someone would eventually be a hero, but the fact that apparently not a single leak of the full datasheet has occurred after all these years also tells a lot about how Broadcom operates. Even the usual neighbourly Chinese forums are noticeably devoid of Broadcom information --- not as in "taken down/DMCA'd", but as in "we just don't know anyone who has access and is willing to share". Then again, forgive me for generalising, but the RPi community has always appeared to me to be comprised of mostly "new school" "hackers and makers", with very few from the "old school" "hack-and-free" culture. They haven't had to deal with the anti-open-source attitude of Broadcom and the unavailability of drivers. They aren't the type who think things like electrical specifications for GPIOs are important (the last time I checked, they were officially unavailable... and anyone asking on the forums was responded to condescendingly or misleadingly by the officials.) They just don't know any better. It's not surprising then, that a large part of the community is actually praising BRCM for making the RPi possible.
- BuuQu9hu 10y agohttps://www.raspberrypi.org/blog/a-birthday-present-from-broadcom/ https://www.raspberrypi.org/blog/a-birthday-present-from-bro...
- trome 10y agoBroadcom released a tangentially related driver (Not targeted at the RasPi) and the person who could do the quickest, dirtiest port of that driver to kinda-sorta get Quake 3 running got $10k. I remember when this happened, it was a shitshow then, and looking back it makes the people behind the Raspberry Pi Foundation look incompetent if viewed kindly.
- oneplane 10y agoYou make it sound like there was an alternative, which at least at design-time, there wasn't. On top of that, other vendors have pretty much the same problems. Take Intel's stuff for example. It doesn't work without a BSP and you can't even boot a system and have it on for over 30 minutes without a running Management Engine. Qualcomm, AllWinner, Marvell, Ti, they all make ARM SoC's and they all need their own BSP's to work. Broadcom is not unique in this.
- waterhouse23 10y agoNo, Broadcom is quite unique in requiring blobs to boot. There are plenty of SoCs that are functional without firmware blobs. Generally there are issues getting the GPU working well without firmware blobs but other aspects work fine. Check out the Freescale part used in Bunnie's Novena laptop for example. This is also the case for TI parts and the other manufacturers you list. Broadcom is somewhat unique in requiring a blob to even boot the system.
- christina_b 10y ago>No, Broadcom is quite unique in requiring blobs to boot. Yes precisely, so we offer an alternative to those blobs that allows you to boot ARM without needing a closed-source firmware.
- koz1000 10y agoSpot on. BSP != "blob".
- oneplane 10y agoBut isn't the blob in the Pi just that, for the GPU? It's the GPU that boots and then the CPU, not the other way around. Or does the blob contain both GPU code and CPU code? And how is this different from UEFI or BIOS, or option ROMs in video cards? AFAIK you have plenty of Broadcom chips that don't need a blob to boot, those in most routers for example. Sure. there are routers with redboot, u-boot, CFE etc. but they are not much different from a BIOS firmware in a PC.
- trome 10y ago
- viraptor 10y ago> Sadists. You meant masochists?
- stevekemp 10y agoI think the implication was that the choice made users suffer, and feel pain - so sadism fits.
- viraptor 10y agoMakes sense. I read it as referring to people doing the reverse engineering work initially.
- rektide 10y agoUggghhh I meant masochists. That's a... very unfortunate mistake. As I said already in this thread (RE getting the GFLOPS way wrong), sorry!!! I meant masochists. Thanks for questioning.
- waterhouse23 10y agoThe reason they chose this Broadcom part is because they could get it cheap from Broadcom (founders have an association with Broadcom). So, basically it was a political choice to use this part. I think it also helped Broadcom sell a part which wasn't hugely popular.
- Nexxxeh 10y agoI think goven the origin story of the Pi, "political" implies something that wasn't there. The Pi was want expected to be the huge success it has been. They weren't sure they'd sell 1000 initially, and 10,000 was crazy dream. It wasn't conceived as the next wave of hacker and maker computers. Its goal was to be a cheap and accessible way to teach kids programming. Eben Upton was an SoC architect at Broadcom and was working there full time, and when the Pi was designed they thought they'd shift 1000 units of the end product. Why on Earth would they use anything other than the Broadcom? It was a practical and logistical choice.
- joezydeco 10y agoBroadcom has no interesting in selling parts to anyone unless you're moving millions of handsets a year. Other manufacturers use cheap dev boards as a way to seed sales with manufacturers (e.g. Pandaboard or Beaglebone), but RPi was not one of them.
- Itsdijital 10y agoThe founder and CEO of RPi was a technical director and ASIC architect at Broadcom. Looking at it like that, its dead obvious why they went with broadcom.
- mongol 10y agoIndeed.
- vvanders 10y agoYup and Eben Upton did it to teach basics of computer programming and development since he was so frustrated with the state of things in the UK. I really hate the attitude of the root post that holds open hardware above everything else. RPi has done a ton to help education getting a new generation excited about computers.
- userbinator 10y agoteach basics of computer programming and development There are already Arduinos and regular PCs (of which you will find far more documentation on... especially the latter) for that. Why make another closed proprietary system just for teaching? All it will do is make those educated (indoctrinated?) by it think this type of environment should be the norm and encouraged, when there are in fact plenty of better ones. Even a C64 or a ZX Spectrum would be a better choice than an RPi for teaching.
- GFK_of_xmaspast 10y ago> Even a C64 or a ZX Spectrum would be a better choice than an RPi for teaching This is the strangest opinion I've seen all day. My teen programming years were on a c64 in the late 80s, and in retrospect that was a really tough learning experience (and when I got to college and had access to 'anything else' I never looked back). Also how was the c64 not a 'closed proprietary system'?
- userbinator 10y ago
- faragon 10y agoThe "24 GFLOPS" in RP come from the GPU (Videocore IV, 32-bit precision) [1]. The PS3 does more than 230 GFLOPS, just with the Cell processor (1 dual threaded CPU and 7 vector units -CPUs with wide SIMD, working in 256KB local scratchpad RAM-) [2]. In addition to that, the PS3 GPU does 400 GFLOPS [3]. So the PS3 is "600 GFLOPS" (32-bit precision). [1] https://github.com/hermanhermitage/videocoreiv/wiki/VideoCore-IV---BCM2835-Overview https://github.com/hermanhermitage/videocoreiv/wiki/VideoCor... [2] https://en.wikipedia.org/wiki/PlayStation_3_technical_specifications https://en.wikipedia.org/wiki/PlayStation_3_technical_specif... [3] https://en.wikipedia.org/wiki/RSX_'Reality_Synthesizer'#cite_note-tegrak1-7 https://en.wikipedia.org/wiki/RSX_'Reality_Synthesizer'#cite...
- rektide 10y agoOh my goodness how right you are. I'm very sorry! I should have checked this far better. Again, super sorry. I believe I was unintentionally citing that a single Cell SPE is 25.6 GFLOPS: https://en.wikipedia.org/wiki/Cell_(microprocessor)#Synergistic_Processing_Elements_.28SPE.29 https://en.wikipedia.org/wiki/Cell_(microprocessor)#Synergis...
- sambe 10y agoEducational and 100% free are not the same. It's not remotely hard to imagine them having other trade-offs to make and being most concerned with getting devices in hands. "Abomination" is ridiculous.
- Thrillington 10y agoAfter spending a few days poking around trying to get the I2S block going, abomination is the right word for the processor. If only because of the severe lack of documentation and support. Your point that the pi board provides educational value despite the frustratingly obtuse abomination at the core is valid though.
- joezydeco 10y agoI know this is still heresy even though we're long past the "RPi is an educational tool for kids!" phase...but you have other choices.
- rektide 10y agoI still use a lot of the Marvell Kirkwood units I had from 2009 or so. My first was a OpenRD board which was I think like $160, but there was a ton of low-end NAS & other gear. My favorite unit was the Iomega iConnect, a simple unit having a plush 512MB flash, 256MB ram, 4 USB ports, gbit ethernet, and an Atheros chipset, and could be had on ebay for $65. Havent had any running for a while, but for a good while these were all over the place. iomega iconnect: https://wiki.openwrt.org/toh/iomega/iconnect https://wiki.openwrt.org/toh/iomega/iconnect The Kirkwood was fair. 1.6GHz ARMv5TE-ish cores, custom architecture, but sipping data through a 16 bit DDR2 channel. I had hope that Marvell would progress and keep it up, but they seemed to get harder to find and harder to use and less supported and only show up in some random Android STB as the years went on. But this is the basis I had during RPi's 2012 arrival. Still flush with hope, of decent upstreamed cores, & it seemed rather like an unfortunate step back. That said, I was buying for twice the price of RPi while only paying rather discounted ebay prices, albeit for consumer goods with wifi, flash, cases, & warranties. I'm still not sure what I'd point people to today if I wanted to suggest an alternative. The good work done in making blobless rpi happen, in building good upstream drivers has been incredibly impressive. I do wish Freescale had better recognized the need for low cost boards. Now a days, Atmel's SAMA5D3-Xplorer board has really good upstream, great peripherals, Arduino headers, and has fantastic power consumption, but it's three times the RPi price.
- pjc50 10y ago> Sadists > abomination You know, this kind of language doesn't make people want to spend money and effort on open sourcing things. Where's your cheap open hardware, then?
- koz1000 10y agoSometimes talking to RPi developers is like talking to coffee drinkers that only visit Starbucks. You can't convince them that there's a bigger world of options out there that can be better for your particular application.
- ZenoArrow 10y ago>"anti-open source CPU cores" I take it you're talking about the SoC rather than the CPU. In this case, open-source drivers for ARM SoC weren't exactly common when the RPi was launched. For example, I can't think of a single open-source GPU driver (used with ARM SoCs) that was available at the time.
- BuuQu9hu 10y agoIt would be nice to add RPi support to the u-boot bootloader.
- christina_b 10y agoWe have considered it, however, because there's still a need for a firmware, the first stage bootloader and the firmware itself are using a common driver framework, it just makes things easier. Besides, the firmware will later run an RTOS (for example LittleKernel) and Uboot doesn't provide RTOS-like services.
- floatboth 10y agoWould be nice to chainload U-Boot from your firmware/loader though, because FreeBSD boots via U-Boot.
- suihkulokki 10y agoU-boot already does support it: http://elinux.org/RPi_U-Boot http://elinux.org/RPi_U-Boot I think what is wanted is chainloading u-boot from the blobless firmware.
- mschuster91 10y agoOh, thanks for reminding me, I had totally forgotten to care about my u-boot fork for...what? years? It's still on the wiki page, though...
- milesf 10y agoI confess. I'm completely ignorant about the Raspberry Pi even though I have a 3rd generation I bought recently. So I don't really understand what the significance of "Blobless Linux" is. Is the Raspberry Pi an open-source software and hardware platform? If not, what is? What should I have bought if not the Pi3?
- khedoros1 10y ago> Is the Raspberry Pi an open-source software and hardware platform? No, the hardware isn't open, and not all of the software is, either. It requires a closed-source blob of code to boot the system. There's "real" firmware in the VC4 chip, which is the first part of the Pi to come up, some binary blob bootloader files, and drivers handling graphics and hardware decoding that are still closed. There is an open-source 3D driver, but it's missing some capabilities from the closed one (hardware accelerated video decoding), but includes some extras (some degree of support for non-mobile OpenGL). The chips from most other vendors are at least bootable without blobs, even if video output won't be properly accelerated.
- christina_b 10y ago>drivers handling graphics Actually that's open and mainlined now, there are DRM drivers for BCM285x family but they rely on mailbox interfaces for power and clock management.
- deleted 10y ago[deleted]
- superflyguy 10y agoThere is no sane reason which would explain why you should not have bought a Pi. Open or not it would not make any difference to more than a small room full of people. A bunch of people spent years designing hardware and negotiating with people to get the Pi built at a low cost and it's become the best selling UK computer ever with over 10,000,000 sales. It's succeeded at what it was supposed to do; provide an educational platform for kids.
- znpy 10y agoI wish the RPi could net-boot without an SD card inside...
- mentose 10y agoI think you can: https://www.raspberrypi.org/blog/pi-3-booting-part-ii-ethernet-all-the-awesome/ https://www.raspberrypi.org/blog/pi-3-booting-part-ii-ethern...
- BlytheSchuma 10y agoAny news on the Amber Chip? Hopefully it'll ready for prime time on the Raspberry Pi some time this century.
- owenversteeg 10y agoStupid question: does this now mean that you can boot a RPi to Linux with zero blobs involved? Additional question: does anyone have a list of devices that you can boot without any blobs involved? E.x. if someone wants to go "full Stallman" what are the options to do that?