Broadcom Wi-Fi Datasheets
cypress.com
cypress.com
Just to see an scant datasheet for their old BLE chip one needed to the following.
1. Contact a Broadcom Sales rep. Ask if they are willing to sell to you. 2. Sales Rep then comes to your office with a PPT and makes a presentation clearly aimed at Management. Sales rep tries to understand your business and volume. If you pass a magic test, then you are now qualified to buy their product. 3. Sales Rep then asks who in your team will work on BLE. Takes their email addresses, phone numbers. 4. Sales Rep enables doc access. The team member gets an email and then can access datasheet for exactly that one single part. Plus that datasheet is watermarked that it's to be read by only that specific team member.
And no, this isn't 1995. Plus, if you want to change parts or explore a different part, you can't. Before Cypress bought BRCM's IoT business, if you had a problem with anything, the standard answer was - use WICED. BRCM's docs sucked so bad that they even hid information about UART and I2C. Think about it for a moment. Imagine buying a chip and you don't get programming information about UART and I2C. Instead you have to believe that WICED magically solves every problem.
Cypress buying and opening up BRCM's documentation is the best thing that's happened to documenting those parts and supporting customers who are small, medium volume.
Presumably the experience at management level (i.e. the price - you get what you pay for) made up for it, or they wouldn't sell anything. (Admittedly, if the drivers just work then documentation is less important, too. Compare to other fields like the state of Linux GPU drivers. I wouldn't say Broadcom drivers are without problems, though :-)
However, I think a lot of issues was due to documentation not being written at all (or being in very bad shape).
Price, performance, availability, driver quality, etc may look competitive to the competition and affect a few million users.
If you sell a few million of these, saving 5 cents on the Wifi chip pays at least for 2 engineers full-time to deal with whatever issues Broadcom gives you.
It may still make sense if the maintenance burden is high and upstreaming has benefits, but that's not always the case.
The BCM283x series has a good mix of features, but it is far from being the only solution for set-top boxes.
For example, if you want a full-featured chip for building an AP, there's maybe three companies capable of giving you one - Atheros, BCM, and Marvell. And that last only sells to Cisco. So you're stuck between two companies with drivers that are awful in slightly different ways, and only a year into working with one or the other do you discover the firmware bugs.
If you want previous-generation-equivalent chips there are more suppliers available, and some of them probably have decent drivers, but they're uncommon in developed-country markets.
Mind you, Broadcom doesn't care about this at all — I was never a significant customer volume-wise for them, and as you wrote this is their strategy. They simply will not work with small companies.
.... and that's what I spent cumulatively about a year of my life on. Ugh.
[0] http://articles.latimes.com/2008/jun/06/business/fi-nicholas...
https://github.com/raspberrypi/documentation/tree/master/har...
and that of the Allwinner A64 in the far less common "Banana Pi":
https://github.com/OLIMEX/OLINUXINO/tree/master/HARDWARE/A64...
As you can see, the Broadcom documentation is non-existent, with the exception of a tiny document created by a third party.
Electronic chip manufacturers are scum, amoral leeches on a thriving ecosystem that is powered by largely opensource software.
Also, Broadcom is paying someone to write an open driver for the RPi GPU. They are literally the first company to do open GPU drivers for ARM-related GPUs.
No, the Raspberry Pi has a Broadcom GPU (VideoCore IV). ARM-related GPUs would be the Mali line, of which there is already an open-source effort (lima).
So Broadcom is paying someone to write an open driver for their own GPU. This doesn't benefit anyone else in the ARM ecosystem in the slightest. It's a Broadcom move for Broadcom's benefit alone.
I would not be so cynical. It'd be quite unlikely that properly upstreamed Mesa and/or kernel code wouldn't lead to any idea sharing or refactoring/optimization of the common code used by all drivers.
Both chips contain a CPU from ARM, so far so good. For the rest of the chip allwinner uses modern, well documented and battle proven components mainly from ARM. To save a few cents, broadcom uses undocumented home-gown crap that nobody understands. Just look at their crazy interrupt controller that can not do true multicore - which probably is one of the reasons pi3 is overheating.
That doesn't really speak to Allwinners open-source embracing nature.
But not everything here comes from ARM, look for example at their power management documentation which is (as always) proprietary. Can you point me to the same information in the broadcom datasheet?
Because well ... Broadcom drivers suck.
But apparently missing is information on how to program the internal registers, how to Tx and Rx data and wireless management information, which is probably what the Broadcom drivers require to manage the chips.
Basically, the internals of the chips still look like a 'black-box' to the drivers.
Of course, I may just be wrong.
Some of this is because the manufacturer considers the information to be proprietary and also because they not setup to support large numbers design teams. Some IC's especially early revisions are buggy and poorly documented so a lot of hand holding is needed[1].
[1] Think of a buggy piece of silicon where you need to implement a number of work around's in firmware. And where each customer invariably runs into an errata you didn't know about.
>Some of this is because the manufacturer considers the information to be proprietary and also because they not setup to support large numbers design teams
No, it is what is called a pain sales tactic. You make a person to go through big pain, spend lots of resources just to get a devkit, so they would not be inclined to throw it out midproject because it sucks
So you can usually just get the WiFi chip (for example, Broadcom or Marvell) on a SDCard form-factor extender, plug it into your standard SD Card slot and work on it with the SDIO controller on your development board.
Note: the SD interface controller must support SDIO and not just the memory SD-Card portion of the spec.
But, of course, you still need the development documentation and internal chip information. That, unfortunately, must still be paid for.
The typical counter-argument here is that standardizing would stifle innovation (and possibly hit performance), but is that still as impacting as it sounds? For once, innovation seems to have moved to "rear ends" of the devices, and secondly, given the amount of firmware that goes into all sorts of devices these days, any reasonably complex translation doesn't look so penalizing anymore?
Just look at printers: They all speak PostScript/PCL or GDI, and haven't seen a single innovation in at least 15 years. Yet somehow, printer drivers are still the single worst piece of software you're likely going to see.
One reason that GSM took over the world was because the initial standard defined not just the over the air interface, but the interfaces between all the individual components in the ground network. The point being so you could mix Ericsson base stations with a Nokia controller, and in that way it increased competition between the equipment manufacturers since they had no lock-in.
I am not in favor of using law here either, that was more a cry of the heart -- I've been spending what seems like entire life on driver development, which is no rocket science in itself but made complex by hardware vendors concealing unimportant information (often for not good reasons, like corporate culture), for so long time that product makers have learned to not even look for it anymore.
I really wish we had that process fixed.
BCM4313 -- never again.
Well, this may or may not be true, but the best drivers in the world won't do a thing if the vendor forgets to release compatible firmware. That's not to say that the firmware doesn't exist: if you are willing to strip an image out of an access point firmware image then you can bring the card into a somewhat functional state, but, as expected, it's far from perfect. Namely, WPA rekeying appears to be broken, rendering the device useless for my application.
I've been in contact with the vendor; the most precise release date for the firmware I've been able to get is (paraphrasing) "maybe someday".
Life is too short for this vendor's games.
The driver's open source, the hardware's closed.
I suppose it's part of the same blob that manage both bootloader startup, display control, etc. RPi SoC built the way when GPU initialized before everything else and manage the boot process.
Then they released source for the actual OES implementationm but since it's run on core with limited capabilities it's hard to improve it much. Shortly after Broadcom hired Eric Anholt to work open source kernel driver and Mesa-based GL implementation that will actually run on Linux.
So here we are, with a partially functioning linux on an overheating pi3 that no one knows how to fix.
We'll see, though.
http://www.cypress.com/news/cypress-acquire-broadcom-s-wirel...
"Under the terms of the deal, Broadcom will continue to focus on its wireless connectivity solutions for the access and mobility segments that are not IoT related, including serving set-top box, wireless access, smartphone, laptop and notebook customers. Cypress will capitalize on the rapidly growing Wi-Fi and Bluetooth connectivity (17% per year) markets in consumer, industrial and automotive IoT segments."
I'd love to know whether that works...
From personal experience, the expectation of good documentation today for many developers -- an instant reply to a question limited to 140 characters.
Opening up stuff in hardware is just miles behind software. That's all. Also a lot in open source software is driven by people that realize the benefits from both an engineering and a marketing perspective. The gap between these skills is even wider in hardware.
Not sure why these guys go all the way where as companies like broadcom do not, I would put it more to shaving the last cent off the chip. I know which ones I would choose as an engineer but you dont often get to make the choice.
That being said, your point is well taken.