Skip to main content
Visitor II
July 26, 2022
Question

Adding WiFi and Bluetooth Support for STM32MP1 based boards.

  • July 26, 2022
  • 6 replies
  • 4765 views

I have a custom Board based on STM32MP157CAC3 MPU. I am connecting MURATA 1DX WiFi+BT Module to SDMMC1 (4bits mode). The connection is exactly similar to stm32mp157c-dk2 board. The device tree is also similar. But the device is not being recognised.

  1. Do I have to enable some special flags during kernel compilation?
  2. Does Latest Kernel version has support for this 1DX Module.
  3. If someone wants to add a similar module AP6236, what will be the process of adding such module in baord.
    This topic has been closed for replies.

    6 replies

    Technical Moderator
    July 26, 2022

    Hello @DKUMA.1​ ,

    Yes, if you built your own linux kernel, you must be sure to have in your conf/machine/<board_name>.conf the wifi enable.

    You must have

    MACHINE_FEATURES += "wifi"

    and

    # Bluetooth
    BLUETOOTH_LIST += "linux-firmware-bluetooth-bcm4343"
    # Wifi
    WIFI_LIST += "linux-firmware-bcm43430"

    This is explained here: https://wiki.st.com/stm32mpu/wiki/How_to_create_your_own_machine#Edit_the_new_machine_file-_stm32mp1--3CProjectName-3E-conf

    You can also have a look at the default machine conf files provided by ST, for example "meta-st/meta-st-stm32mp/conf/machine/stm32mp15-disco.conf".

    Hope it helps,

    Regards,

    Kevin

    In order to give better visibility on the answered topics, please click on 'Select as Best' on the reply which solved your issue or answered your question. See also 'Best Answers'

    DKUMA.11Author
    Visitor II
    July 26, 2022

    Hi,

    Thanks for the reply.

    Will it automatically put necessary files to /lib/firmware/brcm/ ?

    One more thing for AP6236 will the process be same?

    DKUMA.11Author
    Visitor II
    July 26, 2022

    I did the changes you told,

    But in the bootlog there is no entry related to "brcm" wifi module

    Technical Moderator
    July 26, 2022

    Hello @DKUMA.1​ ,

    Yes if everything is ok, it will add files in /lib/firmware/.

    For AP6236, I don't know this device.

    Our linux is built through Yocto Kirkstone, so this is a community environment. The WIFI drivers are part of the linux community, so if you have issue to integrate the AP6236, the manufacturer of the AP6236 devices should help you.

    In my opinion, AP6236 is also a broadcom module, so it should be almost similar, but I'm not sure.

    But in the bootlog there is no entry related to "brcm" wifi module

    To help you, please can I have:

    Regards,

    Kevin

    DKUMA.11Author
    Visitor II
    July 27, 2022

    Hi Kevin,

    Thnaks for the reply.

    I have checked, files are present in /lib/firmware/brcm/ folder, Still there is no log for brcmfmac in Kernel log.

    I am attaching dts, dtb and kernel log file in the ZIP Files.

    Technical Moderator
    August 19, 2022

    Hello @DKUMA.1​ ,

    Sorry for the delay.

    This is weird that you do not have the BRCM traces during your boot.

    I didn't found the error, but I saw something weird in the sdmmc configuration that controls the brcmfmac.

    If I convert your file "stm32mp157a-visionsom-dsi-emmc-mx.dtb" as a device tree source text by using the command:

    dtc stm32mp157a-visionsom-dsi-emmc-mx.dtb > stm32mp157a-visionsom-dsi-emmc-mx-extract.dtb

    And I look at it, I can see that your sdmmc node has a property compatible that doesn't use the driver of ST:

    		sdmmc@58005000 {
    			compatible = "arm,pl18x\0arm,primecell";

    If we look at the default DTB file from stm32mp157c-dk2:

    		mmc@58007000 {
    			compatible = "st,stm32-sdmmc2\0arm,pl18x\0arm,primecell";

    You can see that the st driver is wrote as the first one to use. This is defined in the file "stm32mp151.dtsi":

    		sdmmc2: mmc@58007000 {
    			compatible = "st,stm32-sdmmc2", "arm,pl18x", "arm,primecell";

    please can you make a try with a similar compatible property.

    ----------------------

    Not related but you have a lot of errors on other devices, I don't know if this is "normal":

     stm32-dmamux 48002000.dma-router: Run out of free DMA requests
     st,stm32-sai 4400b000.sai: missing bus clock pclk: -2
     st,stm32-sai: probe of 4400b000.sai failed with error -2
     stm32-dmamux 48002000.dma-router: Run out of free DMA requests
     spi_stm32 44009000.spi: failed to request tx dma channel
     stm32-dmamux 48002000.dma-router: Run out of free DMA requests
    [ OK ] Started udev Coldplug all Devices.
     stm32-dmamux 48002000.dma-router: Run out of free DMA requests
     spi_stm32 44009000.spi: failed to request rx dma channel
     stm32-dmamux 48002000.dma-router: Run out of free DMA requests
     mc: Linux media interface: v0.10
     spi_stm32 44009000.spi: driver initialized
     videodev: Linux video capture interface: v2.00
     OF: graph: no port node found in /soc/dcmi@4c006000
     stm32-hash 54002000.hash: will run requests pump with realtime priority
     stm32-cryp 54001000.cryp: will run requests pump with realtime priority
     stm32-dcmi 4c006000.dcmi: Could not find the endpoint

    You also have errors with your dsi screen and pwm:

     stm32mp157-pinctrl soc:pin-controller@50002000: could not request pin 88 (PF8) from group PF8 on device soc:pin-controller@50002000
     stm32-pwm 40007000.timer:pwm: Error applying setting, reverse things back
     stm32-pwm: probe of 40007000.timer:pwm failed with error -22
    [ OK ] Created slice system-weston.slice.
    [ OK ] Listening on Load/Save RF …itch Status /dev/rfkill Watch.
     Starting Load/Save Screen …of backlight:5a000000.dsi.0...
    [FAILED] Failed to start Load/Save …s of backlight:5a000000.dsi.0.
    See 'systemctl status systemd-backlight…ht:5a000000.dsi.0.service' for details.

    Several things looks wrong in your configuration.

    ----------------

    Please once your board finished its boot, can you do a:

    ifconfig wlan0

    and

    ps -A | grep brcm
     

    and send me the traces results.

    Best Regards,

    Kevin