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.
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 ^^
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/VideoCor...
[2] https://en.wikipedia.org/wiki/PlayStation_3_technical_specif...
[3] https://en.wikipedia.org/wiki/RSX_'Reality_Synthesizer'#cite...
I believe I was unintentionally citing that a single Cell SPE is 25.6 GFLOPS: https://en.wikipedia.org/wiki/Cell_(microprocessor)#Synergis...
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.
Looking at it like that, its dead obvious why they went with broadcom.
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.
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.
It was chosen mainly for the low price. The performance was a little subpar but it had the advantage of a decent video graphics block.
"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"
Broadcom was one of the worst companies to get documentation from, even for their own customers. Unless you were a big customer, you're lucky to get the time of day from them. Hopefully, their new owners Avago will have a different attitude towards the open source community.
https://www.olimex.com/Products/OLinuXino/open-source-hardwa...
"Abomination" is ridiculous.
Your point that the pi board provides educational value despite the frustratingly obtuse abomination at the core is valid though.
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.
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.
Broadcom has yet to do anything like that.
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.
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.
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.
You meant masochists?
I meant masochists. Thanks for questioning.
The Broadcom part in the RPi was heavily subsidized. Don't be fooled by price here.
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.
> 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?
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.
You can't convince them that there's a bigger world of options out there that can be better for your particular application.
Is the Raspberry Pi an open-source software and hardware platform? If not, what is? What should I have bought if not the Pi3?
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.
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.
Open source is not a crazy idea by a bunch of fanatics, it had real world implications.
The RPi is uniquely unsuited to an educational environment anyway. The SD cards are unreliable, especially in combination with the RPi's poor power filtering and the cheapo phone adapters it's usually paired with. Anyone who has used a RPi has had to deal with filesystem corruption and SD card failures, intermittent USB bus brownouts, etc, and I can only imagine the nightmare of having to maintain a lab with 50 of the things. You can't PXE boot them (let alone remote-manage them) because they have no BIOS, just a blob on a physical card that needs to be swapped out.
The Pi should have had eMMC day one, and shipped with a proper power adapter and better power filtering. But much like their choice of Broadcom SoCs - they made a political decision that they were going to market primarily around the $35 price point, and so they cheaped out on $5-10 worth of hardware and ended up with a device that was entirely unsuitable for their stated purpose.
And the terrible thing is - the PC is not the sole component in the system anyway. The Pi still needs a case, a a monitor, keyboard, switches, etc, and if you are trying to stand up a lab for the first time it's not like you have 50 monitors or keyboards laying around for free, you need to buy those. So you are looking at more like $150 per system anyway, and the $10 you save on cheaping out on the hardware becomes a meaningless fraction of the total cost. Just buy the right hardware the first time. An ECS Liva is only like $75 anyway, it comes with a case, onboard eMMC, AC adapter, and wifi, you've made up the difference in cost in accessories included in the box.
There were many other terrible design decisions as well - such as the choice of USB as a system bus, which is again entirely unsuitable, especially when you are running on a low-power processor where running the USB bus full-tilt eats a significant fraction of your CPU cycles. It's like that shitty Mac Performa x200 road-apple design with the split half-width left-hand/right-hand busses which couldn't talk to each other, it eats up all your cycles by just using your disk or network. Even if the processor on other boards is no faster in synthetic benchmarks - they have a proper system architecture with SATA and often USB 3.0 and gigabit ethernet that makes an enormous difference in real-world performance.
http://lowendmac.com/2014/power-mac-and-performa-x200-road-a...
Furthermore - the Pi was plagued by driver problems with its USB stack for years. It would randomly drop USB frames when operated at USB 2.0 speeds, and it took upwards of 2 years after launch for the Pi foundation to get around to pushing a fix (again, because they chose a processor for which they could not release documentation, and they did not employ enough staff to actually fix their issues). How on earth are you supposed to do education on it when they can't even get their system bus to be stable?
https://www.raspberrypi.org/forums/viewtopic.php?t=5249
https://github.com/raspberrypi/firmware/issues/19
https://github.com/raspberrypi/firmware/issues/9
You know what I would do if I was running an actual lab? ECS Liva Xs, or other cheapo x86 PCs running a standard stack. Or go down to your university surplus store and pick up as many generic Dell boxes as you need for $50 apiece, out the door, ready to work. The Pi is good for embedded hobbyist work (the i2c interface is very powerful), but it totally fails as a machine for teaching programming compared to Ye Olde White Box.
I tried to run a pair of RPis as my fileservers for about a year and a half, and I finally just gave up and sold them. They aren't good for the "mini Linux PC" application at all, compared to properly-designed hardware that you can buy for only a little bit more money (or sometimes even less money, especially when you work out the total system cost).
(note: Pi3s can finally PXE boot without a SD card, which is like the bare minimum requirement for running an educational PC lab without going insane)
Something based on the Allwinner A20 makes a good choice as the SoC has an integrated ethernet (10/100) and SATA controllers, which means no USB-to-ethernet or USB-to-SATA half-arsery.
I am running an old A10-based Mele A2000 with wired ethernet and a 1 TB SATA HDD as a home server. Stock Debian with a mainline kernel and mainline u-boot 'just works' if you want to run a headless server.
If you want some GPIOs and other pins broken out, look at boards from Olimex [1] or Itead [2] or Cubie [3].
[1] https://www.olimex.com/Products/OLinuXino/A20/open-source-ha... [2] https://www.itead.cc/development-platform/arm.html [3] http://cubieboard.org/model/
I think what is wanted is chainloading u-boot from the blobless firmware.
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?