[Buildroot] [PATCH v3 4/4] configs/stm32mp157c-dk2: add support for wifi

Shlomi Vaknin shlomi.39sd at gmail.com
Thu Oct 8 20:45:21 UTC 2020


Hi Bartek,

I pulled the latest commits, downloaded my patches from patchwork and
applied them. Then, I started a new out of tree build and everything is
working. You can find my sdcard image here:
https://drive.google.com/drive/folders/1_FwVtw70iPS_hz7yFiiOlhXiUKlsi9bH?usp=sharing

This problem is very strange. Maybe you can check if your board's wifi is
working with an image that is known to work? Maybe the formal image from st?

Regards,
Shlomi

‫בתאריך יום ה׳, 8 באוק׳ 2020 ב-20:31 מאת ‪Bartosz Bilas‬‏ <‪
b.bilas at grinn-global.com‬‏>:‬

> Hi Shlomi,
> On 07.10.2020 22:16, Shlomi Vaknin wrote:
>
> Hi Bartek,
>
> That is very strange, since it works for me:
>
>
> #############################################################################################################################
> Starting mdev... OK
> [    4.168709] cfg80211: Loading compiled-in X.509 certificates for
> regulatory database
> [    4.224122] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
> [    4.288641] brcmfmac: brcmf_fw_alloc_request: using
> brcm/brcmfmac43430-sdio for chip BCM43430/1
> [    4.486998] brcmfmac: brcmf_fw_alloc_request: using
> brcm/brcmfmac43430-sdio for chip BCM43430/1
> [    4.501649] brcmfmac: brcmf_c_process_clm_blob: no clm_blob available
> (err=-2), device may have limited channels available
> [    4.536998] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0:
> Oct 23 2017 03:55:53 version 7.45.98.38 (r674442 CY) FWID 01-e58d219f
>
> # ifconfig -a
> eth0      Link encap:Ethernet  HWaddr 00:80:E1:42:58:DB
>           BROADCAST MULTICAST  MTU:1500  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>           Interrupt:49 Base address:0xe000
>
> lo        Link encap:Local Loopback
>           inet addr:127.0.0.1  Mask:255.0.0.0
>           inet6 addr: ::1/128 Scope:Host
>           UP LOOPBACK RUNNING  MTU:65536  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>
> sit0      Link encap:IPv6-in-IPv4
>           NOARP  MTU:1480  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>
> wlan0     Link encap:Ethernet  HWaddr 00:9D:6B:A6:BC:BA
>           BROADCAST MULTICAST  MTU:1500  Metric:1
>           RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>           collisions:0 txqueuelen:1000
>           RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>
> #############################################################################################################################
>
> The nvram configuration file was directly copied from the bsp layer of st
> in yocto (dunfell):
> https://github.com/STMicroelectronics/meta-st-stm32mp/blob/dunfell/recipes-kernel/linux-firmware/linux-firmware/brcmfmac43430-sdio.txt
>
> Regards,
> Shlomi
>
> So in that case we have to clarify our environments. Have you tested using
> the latest master branch or is it some tagged version? Could you do a clean
> build once again to be sure that you don't use any cached things? If you
> were able to attach your sdcard image I would test it using my device and
> check if it really works because I don't see what could be wrong with that
> series. I don't think that ST has changed something between HW revision but
> I'm not able to locate on PCB what revision exactly is my board (I guess ST
> hasn't written it on the soldermask).
>
>
> Best
> Bartek
>
>
> ‫בתאריך יום ד׳, 7 באוק׳ 2020 ב-22:27 מאת ‪Bartosz Bilas‬‏ <‪
> b.bilas at grinn-global.com‬‏>:‬
>
>> Hi Shlomi,
>>
>> On 07.10.2020 21:13, Bartosz Bilas wrote:
>> >
>> > Hi Shlomi,
>> >
>> > On 07.10.2020 16:49, Shlomi Vaknin wrote:
>> >> Adding support for wifi for stm32mp157c-dk2 is achieved by using
>> >> another dts which includes the bindings for the wifi module.
>> >> In addition, a txt file for the wifi firmware was added.
>> >> This was copied from the yocto bsp layer of st.
>> >>
>> >> Signed-off-by: Shlomi Vaknin<shlomi.39sd at gmail.com>
>> >> ---
>> >>   .../stm32mp157c-dk2/linux.config              |  4 +-
>> >>   .../overlay/boot/extlinux/extlinux.conf       |  2 +-
>> >>   .../brcmfmac43430-sdio.st,stm32mp157c-dk2.txt | 59
>> +++++++++++++++++++
>> >>   .../stm32mp157c-dk2/stm32mp157c-dk2-wifi.dts  | 32 ++++++++++
>> >>   configs/stm32mp157c_dk2_defconfig             |  7 ++-
>> >>   5 files changed, 100 insertions(+), 4 deletions(-)
>> >>   create mode 100644
>> board/stmicroelectronics/stm32mp157c-dk2/overlay/lib/firmware/brcm/
>> brcmfmac43430-sdio.st,stm32mp157c-dk2.txt
>> >>   create mode 100644
>> board/stmicroelectronics/stm32mp157c-dk2/stm32mp157c-dk2-wifi.dts
>> >>
>> >> diff --git a/board/stmicroelectronics/stm32mp157c-dk2/linux.config
>> b/board/stmicroelectronics/stm32mp157c-dk2/linux.config
>> >> index c03eb748b4..4beee3a708 100644
>> >> --- a/board/stmicroelectronics/stm32mp157c-dk2/linux.config
>> >> +++ b/board/stmicroelectronics/stm32mp157c-dk2/linux.config
>> >> @@ -24,8 +24,6 @@ CONFIG_HIGHMEM=y
>> >>   CONFIG_FORCE_MAX_ZONEORDER=12
>> >>   CONFIG_SECCOMP=y
>> >>   # CONFIG_ATAGS is not set
>> >> -CONFIG_ZBOOT_ROM_TEXT=0x0
>> >> -CONFIG_ZBOOT_ROM_BSS=0x0
>> >>   CONFIG_ARM_APPENDED_DTB=y
>> >>   CONFIG_ARM_ATAG_DTB_COMPAT=y
>> >>   CONFIG_VFP=y
>> >> @@ -45,6 +43,7 @@ CONFIG_UNIX=y
>> >>   CONFIG_INET=y
>> >>   CONFIG_CAN=y
>> >>   CONFIG_CAN_M_CAN=y
>> >> +CONFIG_CFG80211=m
>> >>   CONFIG_DEVTMPFS=y
>> >>   CONFIG_DEVTMPFS_MOUNT=y
>> >>   CONFIG_SIMPLE_PM_BUS=y
>> >> @@ -66,6 +65,7 @@ CONFIG_SMSC911X=y
>> >>   CONFIG_STMMAC_ETH=y
>> >>   CONFIG_DWMAC_DWC_QOS_ETH=y
>> >>   CONFIG_MDIO_BITBANG=y
>> >> +CONFIG_BRCMFMAC=m
>> >>   CONFIG_INPUT_JOYDEV=y
>> >>   CONFIG_INPUT_EVDEV=y
>> >>   CONFIG_INPUT_TOUCHSCREEN=y
>> >> diff --git
>> a/board/stmicroelectronics/stm32mp157c-dk2/overlay/boot/extlinux/extlinux.conf
>> b/board/stmicroelectronics/stm32mp157c-dk2/overlay/boot/extlinux/extlinux.conf
>> >> index 5b7f56ee77..a6595971a8 100644
>> >> ---
>> a/board/stmicroelectronics/stm32mp157c-dk2/overlay/boot/extlinux/extlinux.conf
>> >> +++
>> b/board/stmicroelectronics/stm32mp157c-dk2/overlay/boot/extlinux/extlinux.conf
>> >> @@ -1,4 +1,4 @@
>> >>   label stm32mp157c-dk2-buildroot
>> >>     kernel /boot/zImage
>> >> -  devicetree /boot/stm32mp157c-dk2.dtb
>> >> +  devicetree /boot/stm32mp157c-dk2-wifi.dtb
>> >>     append root=/dev/mmcblk0p4 rootwait
>> >> diff --git
>> a/board/stmicroelectronics/stm32mp157c-dk2/overlay/lib/firmware/brcm/
>> brcmfmac43430-sdio.st,stm32mp157c-dk2.txt
>> b/board/stmicroelectronics/stm32mp157c-dk2/overlay/lib/firmware/brcm/
>> brcmfmac43430-sdio.st,stm32mp157c-dk2.txt
>> >> new file mode 100644
>> >> index 0000000000..b36de8837f
>> >> --- /dev/null
>> >> +++
>> b/board/stmicroelectronics/stm32mp157c-dk2/overlay/lib/firmware/brcm/
>> brcmfmac43430-sdio.st,stm32mp157c-dk2.txt
>> >> @@ -0,0 +1,59 @@
>> >> +# NVRAM file for BCM943430WLSELG
>> >> +# 2.4 GHz, 20 MHz BW mode
>> >> +
>> >> +# The following parameter values are just placeholders, need to be
>> updated.
>> >> +manfid=0x2d0
>> >> +prodid=0x0726
>> >> +vendid=0x14e4
>> >> +devid=0x43e2
>> >> +boardtype=0x0726
>> >> +boardrev=0x1202
>> >> +boardnum=22
>> >> +macaddr=00:90:4c:c5:12:38
>> >> +sromrev=11
>> >> +boardflags=0x00404201
>> >> +boardflags3=0x08000000
>> >> +xtalfreq=37400
>> >> +#xtalfreq=19200
>> >> +nocrc=1
>> >> +ag0=255
>> >> +aa2g=1
>> >> +ccode=ALL
>> >> +
>> >> +pa0itssit=0x20
>> >> +extpagain2g=0
>> >> +
>> >> +#PA parameters for 2.4GHz, measured at CHIP OUTPUT
>> >> +pa2ga0=-168,7161,-820
>> >> +AvVmid_c0=0x0,0xc8
>> >> +cckpwroffset0=5
>> >> +
>> >> +# PPR params
>> >> +maxp2ga0=84
>> >> +txpwrbckof=6
>> >> +cckbw202gpo=0
>> >> +legofdmbw202gpo=0x66111111
>> >> +mcsbw202gpo=0x77711111
>> >> +propbw202gpo=0xdd
>> >> +
>> >> +# OFDM IIR :
>> >> +ofdmdigfilttype=18
>> >> +ofdmdigfilttypebe=18
>> >> +# PAPD mode:
>> >> +papdmode=1
>> >> +papdvalidtest=1
>> >> +pacalidx2g=32
>> >> +papdepsoffset=-36
>> >> +papdendidx=61
>> >> +
>> >> +il0macaddr=00:90:4c:c5:12:38
>> >> +wl0id=0x431b
>> >> +
>> >> +deadman_to=0xffffffff
>> >> +# muxenab: 0x1 for UART enable, 0x2 for GPIOs, 0x8 for JTAG
>> >> +muxenab=0x1
>> >> +# CLDO PWM voltage settings - 0x4 - 1.1 volt
>> >> +#cldo_pwm=0x4
>> >> +
>> >> +#VCO freq 326.4MHz
>> >> +spurconfig=0x3
>> >> diff --git
>> a/board/stmicroelectronics/stm32mp157c-dk2/stm32mp157c-dk2-wifi.dts
>> b/board/stmicroelectronics/stm32mp157c-dk2/stm32mp157c-dk2-wifi.dts
>> >> new file mode 100644
>> >> index 0000000000..89747d2b5f
>> >> --- /dev/null
>> >> +++ b/board/stmicroelectronics/stm32mp157c-dk2/stm32mp157c-dk2-wifi.dts
>> >> @@ -0,0 +1,32 @@
>> >> +/dts-v1/;
>> >> +
>> >> +#include "stm32mp157c-dk2.dts"
>> >> +
>> >> +/ {
>> >> +    wifi_pwrseq: wifi-pwrseq {
>> >> +            compatible = "mmc-pwrseq-simple";
>> >> +            reset-gpios = <&gpioh 4 GPIO_ACTIVE_LOW>;
>> >> +    };
>> >> +};
>> >> +
>> >> +/* Wifi */
>> >> +&sdmmc2 {
>> >> +    arm,primecell-periphid = <0x10153180>;
>> >> +    pinctrl-names = "default", "opendrain", "sleep";
>> >> +    pinctrl-0 = <&sdmmc2_b4_pins_a>;
>> >> +    pinctrl-1 = <&sdmmc2_b4_od_pins_a>;
>> >> +    pinctrl-2 = <&sdmmc2_b4_sleep_pins_a>;
>> >> +    non-removable;
>> >> +    st,neg-edge;
>> >> +    bus-width = <4>;
>> >> +    vmmc-supply = <&v3v3>;
>> >> +    mmc-pwrseq = <&wifi_pwrseq>;
>> >> +    #address-cells = <1>;
>> >> +    #size-cells = <0>;
>> >> +    status = "okay";
>> >> +
>> >> +    brcmf: bcrmf at 1 {
>> >> +            reg = <1>;
>> >> +            compatible = "brcm,bcm4329-fmac";
>> >> +    };
>> >> +};
>> >> diff --git a/configs/stm32mp157c_dk2_defconfig
>> b/configs/stm32mp157c_dk2_defconfig
>> >> index bf7b9868b1..9c2e436244 100644
>> >> --- a/configs/stm32mp157c_dk2_defconfig
>> >> +++ b/configs/stm32mp157c_dk2_defconfig
>> >> @@ -9,8 +9,13 @@ BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="5.8.13"
>> >>   BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
>> >>
>>  BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/stmicroelectronics/stm32mp157c-dk2/linux.config"
>> >>   BR2_LINUX_KERNEL_DTS_SUPPORT=y
>> >> -BR2_LINUX_KERNEL_INTREE_DTS_NAME="stm32mp157c-dk2"
>> >>
>> +BR2_LINUX_KERNEL_CUSTOM_DTS_PATH="board/stmicroelectronics/stm32mp157c-dk2/stm32mp157c-dk2-wifi.dts"
>> >>   BR2_LINUX_KERNEL_INSTALL_TARGET=y
>> >> +BR2_PACKAGE_LINUX_FIRMWARE=y
>> >> +BR2_PACKAGE_LINUX_FIRMWARE_BRCM_BCM43XXX=y
>> >> +BR2_PACKAGE_WIRELESS_REGDB=y
>> >> +BR2_PACKAGE_WPA_SUPPLICANT=y
>> >> +BR2_PACKAGE_WPA_SUPPLICANT_CLI=y
>> >>   BR2_TARGET_ROOTFS_EXT2=y
>> >>   BR2_TARGET_ROOTFS_EXT2_4=y
>> >>   BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
>>
>> I suggest to add BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV to load
>> firmware and driver automatically on boot.
>>
>> Unfortunately it doesn't work for me, see:
>>
>> [    4.186415] cfg80211: Loading compiled-in X.509 certificates for
>> regulatory database
>> [    4.237180] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
>> [    4.300765] brcmfmac: brcmf_fw_alloc_request: using
>> brcm/brcmfmac43430-sdio for chip BCM43430/1
>> [    5.389412] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000):
>> clkctl 0x50
>> [    6.407710] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000):
>> clkctl 0x50
>>
>> Google says that it could be due to wrong nvram file configuration but I
>> assume that you have run it successfully?
>>
>> # ifconfig -a
>> eth0      Link encap:Ethernet  HWaddr 00:80:E1:42:56:44
>>            BROADCAST MULTICAST  MTU:1500  Metric:1
>>            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>            collisions:0 txqueuelen:1000
>>            RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>>            Interrupt:49 Base address:0xe000
>>
>> lo        Link encap:Local Loopback
>>            inet addr:127.0.0.1  Mask:255.0.0.0
>>            inet6 addr: ::1/128 Scope:Host
>>            UP LOOPBACK RUNNING  MTU:65536  Metric:1
>>            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>            collisions:0 txqueuelen:1000
>>            RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>>
>> sit0      Link encap:IPv6-in-IPv4
>>            NOARP  MTU:1480  Metric:1
>>            RX packets:0 errors:0 dropped:0 overruns:0 frame:0
>>            TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
>>            collisions:0 txqueuelen:1000
>>            RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
>>
>> #
>>
>> As you can see there is no wlan0 interface.
>>
>> Best
>> Bartek
>>
>
> _______________________________________________
> buildroot mailing listbuildroot at busybox.nethttp://lists.busybox.net/mailman/listinfo/buildroot
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20201008/844b2c83/attachment-0001.html>


More information about the buildroot mailing list