[Buildroot] [PATCH] configs/bananapi_m2_zero: bump versions and add WiFi support

Peter Seiderer ps.report at gmx.net
Wed May 19 19:19:37 UTC 2021


Hello Yann,

On Wed, 19 May 2021 13:38:11 +0200, "Yann E. MORIN" <yann.morin.1998 at free.fr> wrote:

> Vincent, All,
> 
> On 2021-05-08 22:16 +0200, Vincent Stehlé via buildroot spake thusly:
> > - Bump kernel to version 5.12.2.
> > - Bump U-Boot to version 2021.04.
> > 
> > Also, adapt the SD card name in the boot script to follow Linux naming.
> > While at it, add comments to make the defconfig more readable.
> > 
> > The Banana Pi M2 Zero comprises an AMPAK AP6212 module with a Broadcom
> > bcm43438/a1 WiFi chip. Add the necessary firmware and tools to support it
> > and update documentation. We switch to mdev for /dev management, so that
> > the WiFi driver get auto-loaded.
> > 
> > Signed-off-by: Vincent Stehlé <vincent.stehle at laposte.net>
> > ---  
> [--SNIP--]
> > diff --git a/board/bananapi/bananapi-m2-zero/firmware-links.sh b/board/bananapi/bananapi-m2-zero/firmware-links.sh
> > new file mode 100755
> > index 0000000000..7f320fb1a5
> > --- /dev/null
> > +++ b/board/bananapi/bananapi-m2-zero/firmware-links.sh
> > @@ -0,0 +1,9 @@
> > +#!/bin/sh
> > +# Create the necessary WiFi firmware symbolic links for the brcmfmac driver
> > +set -eu
> > +
> > +cd "$1/lib/firmware"
> > +[ -d brcm ] || mkdir -v brcm
> > +cd brcm
> > +ln -svf ../ap6212/nvram.txt brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt
> > +ln -svf ../ap6212/fw_bcm43438a1_apsta.bin brcmfmac43430-sdio.bin  
> 
> In linux-firmware, there is the WHENCE file which describes the links to
> install, and we parse that in linux-firmware.mk.
> 
> Why can't we do similarly with armbian-firmware.mk?
> 
> Yeah, it misses WHENCE or something similar, but we should do it
> nonethelessC, like so:
> 
>     diff --git a/package/armbian-firmware/armbian-firmware.mk b/package/armbian-firmware/armbian-firmware.mk
>     index 0ed069025d..51bc5b903d 100644
>     --- a/package/armbian-firmware/armbian-firmware.mk
>     +++ b/package/armbian-firmware/armbian-firmware.mk
>     @@ -11,6 +11,13 @@ ARMBIAN_FIRMWARE_SITE_METHOD = git
>      # AP6212 WiFi/BT combo firmware
>      ifeq ($(BR2_PACKAGE_ARMBIAN_FIRMWARE_AP6212),y)
>      ARMBIAN_FIRMWARE_DIRS += ap6212
>     +define ARMBIAN_FIRMWARE_AP6212_LINKS
>     +	ln -svf ../ap6212/nvram.txt \
>     +		$(TARGET_DIR)/lib/firmware/brcm/brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt
>     +	ln -svf ../ap6212/fw_bcm43438a1_apsta.bin \
>     +		$(TARGET_DIR)/lib/firmware/brcm/brcmfmac43430-sdio.bin
>     +endef
>     +ARMBIAN_FIRMWARE_POST_INSTALL_TARGET_HOOKS += ARMBIAN_FIRMWARE_AP6212_LINKS
>      endif
>      
>      # AP6256 WiFi/BT combo firmware
> 
> Also, if one look at armbian-firmware, there is already a brcm/
> sub-directory, and that already has brcm/brcmfmac43430-sdio.bin. Of
> course, the two are different...
> 
> Additionally, linux-firmware has brcm/brcmfmac43430a0-sdio.bin and
> brcm/brcmfmac43430-sdio.AP6212.txt, again with different content. The
> latter states "NVRAM config file for the Ampak AP6212 43430 WiFi/BT
> module".
> 
> So, this is quite a mess. Why do we have to use the armbian-fw ones,
> instead of those from linux-firmware? We are using an upstream kernel,
> and supposedly, drivers in there are supposed (as I understand it) to
> only require blobs from linux-firmware...
> 
> By the way, where does the weird 'brcmfmac43430-sdio.sinovoip,bpi-m2-zero.txt'
> name comes from? Is that a 'compatible' string from the DT?

It is the naming schema for (wifi) firmware configuration files:

brcmfmac43430-sdio.<vendor>,<board>.txt

See e.g. [1] for raspberry pi examples..., I think the board name comes from
the dtb entries...

Regards,
peter

[1] http://lists.busybox.net/pipermail/buildroot/2021-March/306920.html

> 
> Regards,
> Yann E. MORIN.
> 




More information about the buildroot mailing list