Driver / Firmware for brcmfmac43456

Hello

I was looking for a bit more powerful SBC, this is why I bought a Rock Pi 4b plus. But the fun ended quickly, because there seems to be no available firmware for the brcmfmac43456

So I wanted to ask here, can you guys from Radxa do something here? And make some pressure that there will be a Broadcom driver which can be included in OpenWrt / Linux?

Best regards

I use it on the Radxa Zero. It’s also been tested on Pi’s. Its worth a shot.

Do you use this firmware in combination with OpenWRT?

I use it in Linux. Debian, Devuan and Ubuntu. Considering: OpenWrt is an open-source project for embedded operating systems based on Linux, I don’t see where there would be a problem. I’m not sure how they handle firmware though.

Have you been able to install Debian or Ubuntu with an image from Debian / Ubuntu? Or did you use the ones provided from rock?

I generally spin my own images. Compile u-boot & kernel; run debootstrap and create a rootfs tarball; then put the img together.

seems all quite more complicated than with a Raspberry. Tried to install debian, but it seems, that one has to create itself a bootable image…

I found:

rock-pi-4-rk3399.img.gz
firmware.rock-pi-4-rk3399.img.gz
mini.iso

How do I compile this into a bootable SD card? Thanks for your help

Also tried to boot debian-11.2.0-arm64-netinst.iso

But does not want to boot…

I have no clue what to do with those. My guess is they need to be flashed to an SD or MMC in particular order and location. Just a guess though. I would assume they have instructions somewhere?

I found these files under:

https://d-i.debian.org/daily-images/arm64/daily/

u-boot/rock-pi-4-rk3399.img.gz
netboot/netboot.tar.gz

but there are no instructions on how to combine those files …

ah ok, seems like one has to download two parts, firmware of the board and the partition…

zcat firmware.<board_name>.img.gz partition.img.gz > /dev/SDCARD_DEVICE

that now seems to boot :sunglasses:

so first of all, thank you for you help!

I actually could create with the steps above a bootable installer. I was able to partition and install Debian. But the system is not booting after installation.

I have two partitions now, /boot and /.

Do you know, if I have to install the bootloader manually afterwards? As an installation media, I chose the SD card.

Its looks like ur using a RK3399. So you need to either find pre-compiled boot binaries or compile them ur self. https://wiki.radxa.com/Rockpi4/dev/u-boot

Also the first partition needs to be offset by 17MB or 32767.

I don’t personally have that board, although I do have a RK3399 and a few RK3328’s. Compiling the boot bins are pretty straight forward. Be easier if you could just get ur hands on pre-compiled ones. Most distros leave a copy of the boot bins on the img. Check under /usr/lib or /usr/share, maybe you’ll get lucky.

NOTE: According to that link you posted above https://d-i.debian.org/daily-images/arm64/daily/u-boot/ its already pre-flashed with u-boot.

Oh I see, thanks for the hint. Now I got it!

First of all, I created an installer SD card, like described above.

Then during installation, switch the card, put another one, where I installed the bootloader from debian (u-boot/rock-pi-4-rk3399.img.gz). This leaves a first partition, that I used as /boot during the installation.

Not so straight forward, but I am happy that I now have a clean Debian that seems to work so far. Now I am going to try the firmware stuff for the wifi.

Yeah they seem to not explain it very well.

so… firmware. You shared a github repository with the 43456 firmware. There are many other repositories where one can find those files. I downloaded some of them and compared md5sum / sha1sum.

They are all different. How do you know which one to take, or what is the difference from one to another? Or just, which one is the latest version?

Most recent ones I’ve seen are version 7.84.17.1, which are the ones in the repo. May be more up to date ones somewhere? I haven’t found them though.

Also just because they are newer, it doesn’t mean they work better. I would use the ones that you think work best for your device.

As for the difference, you would need to ask brcm, cypress or someone in the know.