zeoneo
Posts: 46
Joined: Sun Sep 30, 2018 6:54 am

Bare metal BCM43438 Driver

Sat May 11, 2019 4:09 am

Hi,

I aim to port bare metal wifi driver for bcm43438. I did search in raspberrypi/linux repository but couldn't find any mention of bcm43438. Can any one point me to the correct source? I checked net/wireless/broadcom/ directory.
Let there be some light .../\...

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 22053
Joined: Sat Jul 30, 2011 7:41 pm

Re: Bare metal BCM43438 Driver

Sat May 11, 2019 8:10 am

Brcmfmac is the driver used for all the Cypress chips. The particular chip type is handled by the firmware that is loaded onto them at boot.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

User avatar
Gavinmc42
Posts: 2882
Joined: Wed Aug 28, 2013 3:31 am

Re: Bare metal BCM43438 Driver

Sat May 11, 2019 9:45 am

The Ultibo guys have managed to get Bluetooth working by loading the Cypress binary blobs.
Two versions, one for the older chip, one for the new P3A/B+ RF combo chip.
WiFi is harder to do, something about crypto?

The fun part was getting a Microbit talking to the PI vi BT.
https://ultibo.org/forum/viewtopic.php? ... ooth#p8638

The priority is high to get WiFi working and Garry and co may be able to do it but it is not simple
https://ultibo.org/wiki/Current_Status

I am unaware if anyone has got WiFi working in baremetal, apart from some USB dongles or UART versions.
I'm dancing on Rainbows.
Raspberries are not Apples or Oranges

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 22053
Joined: Sat Jul 30, 2011 7:41 pm

Re: Bare metal BCM43438 Driver

Sat May 11, 2019 10:34 am

Gavinmc42 wrote:
Sat May 11, 2019 9:45 am
The Ultibo guys have managed to get Bluetooth working by loading the Cypress binary blobs.
Two versions, one for the older chip, one for the new P3A/B+ RF combo chip.
WiFi is harder to do, something about crypto?
I suspect that porting brcmfmac was just too much, it's a lot of spagetti code. Not aware of any crypto in there that might be problematic.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
"My grief counseller just died, luckily, he was so good, I didn't care."

hippy
Posts: 5107
Joined: Fri Sep 09, 2011 10:34 pm
Location: UK

Re: Bare metal BCM43438 Driver

Sat May 11, 2019 11:19 am

Gavinmc42 wrote:
Sat May 11, 2019 9:45 am
WiFi is harder to do, something about crypto?
jamesh wrote:
Sat May 11, 2019 10:34 am
Not aware of any crypto in there that might be problematic.
I understand it to be the handling of WEP/WPA/WPA2 in establishing a connection which is the challenge as it's a lot of work with few resources to do that. So an issue within the protocol stack rather than with the firmware or chip.

Ultibo took the decision that WiFi will be 'all or nothing' and do not intend to provide an implementation which would work but only with unsecured access points.

Ultibo is wired ethernet only for now. If one wants WiFi that has to be through a mini-router or similar, or via an ESP add-on. Unfortunately that means the Zero W and the 3A+ can't be used how it would be desirable to use them; standalone using WiFi.

zeoneo
Posts: 46
Joined: Sun Sep 30, 2018 6:54 am

Re: Bare metal BCM43438 Driver

Sat May 11, 2019 2:36 pm

Thanks all for the replies. I will at least read the code and understand how it works.
Let there be some light .../\...

Return to “Bare metal, Assembly language”