rst
Posts: 497
Joined: Sat Apr 20, 2013 6:42 pm
Location: Germany

Re: Bare metal BCM43438 Driver

Sat Mar 21, 2020 1:24 pm

zeoneo wrote:
Sat Mar 21, 2020 12:46 pm
Yes, he is very experienced in this.

@9Pi thanks again :)

Yes, we have to thank him very much!

jayben
Posts: 195
Joined: Mon Aug 19, 2019 9:56 pm

Re: Bare metal BCM43438 Driver

Tue Apr 14, 2020 3:47 pm

A quick update on the bare-metal WiFi driver: to join a secure network, you only need a few simple IOCTL calls; the Cypress chip firmware can handle all the negotiation for WPA or WPA2.

See https://iosoft.blog/zerowi-part6/ for details. This is still a work-in-progress, but I hope to have a complete easy-to-use WiFi network stack soon.

rst
Posts: 497
Joined: Sat Apr 20, 2013 6:42 pm
Location: Germany

Re: Bare metal BCM43438 Driver

Fri Apr 17, 2020 8:28 am

jayben wrote:
Tue Apr 14, 2020 3:47 pm
A quick update on the bare-metal WiFi driver: to join a secure network, you only need a few simple IOCTL calls; the Cypress chip firmware can handle all the negotiation for WPA or WPA2.

Thanks for info about this! I will probably continue to use WPA Supplicant, because it has additional features and it seems to work well.

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

Re: Bare metal BCM43438 Driver

Sat Jun 13, 2020 2:17 pm

Hi rst,

I checked the circle version of wifi driver addon/WLAN directory. It is working for me.

On my own front, I was able to connect to wifi networks without security. For wpa2/psk networks, I learned that wpa_supplicant is needed for key negotiation. I checked your version of wpa_supplicant port and I have questions
  • What're the minimal files I need to compile from wpa_suppicant source to only JOIN the network. I want to write a link-layer myself.
  • l2_packet_circle.o is it needed to join the network? (Maybe this is related to first one)

Edit

I went through this PDF: http://w1.fi/wpa_supplicant/wpa_supplicant-devel.pdf

It is clearly mentioned that l2_packet is needed, I still don't understand even before joining the network how can there be l2 packet transfer.


Thanks
Let there be some light .../\...

rst
Posts: 497
Joined: Sat Apr 20, 2013 6:42 pm
Location: Germany

Re: Bare metal BCM43438 Driver

Sun Jun 14, 2020 9:46 am

zeoneo wrote:
Sat Jun 13, 2020 2:17 pm
For wpa2/psk networks, I learned that wpa_supplicant is needed for key negotiation.

@jayben wrote in this topic that it works without using WPA Supplicant. But I didn't walk that way and cannot talk about it.
  • What're the minimal files I need to compile from wpa_suppicant source to only JOIN the network. I want to write a link-layer myself.

Have a look into the Makefile, which is used with Circle. The OBJS and OBJS2 variables contain the needed object files, which are all generated from .c sources. Sources with the name *_circle.c must be adapted to your own system.

Please note that I used an earlier version of the hostap project (0.7.0), because the latest version has that much config options, that it was quicker to use this earlier version, but to try to understand all supported options. These interesting porting notes have also been written, when hostap 0.7.0 was the current version and should match the source code.
  • l2_packet_circle.o is it needed to join the network? (Maybe this is related to first one)

My own access point sends EAPOL packets (with Ethertype 0x888E), which must be handled, and performs a 4-way handshake for WPA2. So yes, the L2 packet layer is needed to join the network.

Return to “Bare metal, Assembly language”