SPI bringup on Raspberry Pi

Hello, i have been trying to get the Wi-Fi HaLow Transceiver for Seeed Studio XIAO connected to the raspberry pi 5 via SPI as described in this post.

I have installed the .deb packages from the thread bellow and updated the device tree with the file here.

Added to config.txt

dtoverlay=morse-spi
dtparam=spi-on

When i load the kernel modules this is the only output i get in dmesg:

[ 92.070628] dot11ah: loading out-of-tree module taints kernel.
[ 92.071439] Morse Micro Dot11ah driver registration. Version 0-rel_1_12_4_2024_Jun_11-6-g63cd0768
[ 101.935033] morse micro driver registration. Version 0-rel_1_12_4_2024_Jun_11-6-g63cd0768

I can’t get the interface to show in “ip a”
Do i need to patch and rebuild the kernel for the interface to load?

Can you provide some tests i can do to point me to the cause of the problem?

Hi @ricardo_mv

I’ve split this thread out so we can run through some debug. Are you able to share more of the dmesg please?
You mentioned you are using morse-spi from Build Thread: HaLow for Raspberry Pi OS, please note that this is not the correct device tree layout for the WM6108 with a WM1302. Please compile the wm6108-spi.dts shared in that post instead and use that instead of morse-spi.

If you’re using the .deb files from HaLow Integration on Raspberry Pi 5 - #6 by live-love-laugh-wifi, on the same kernel version described in that thread then no, you shouldn’t need to patch the kernel.

Patching the kernel (particularly for SPI), was required as of our 1.15.3 release. If you are using anything different (kernel, bookworm version, driver) from that HaLow integration thread, then I would instead recommend following Build Thread: HaLow for Raspberry Pi OS step by step instead, including patching and recompiling the kernel.

I have changed my wiring according to the wm6108 configurantion and this is the dmesg output i have obtained. dmesg.txt (37.5 KB)

This is the module i am using

Pinout: WI-FI_HALOW_FGH100M_ANNOTATED.pdf (209.8 KB)

Additional notes

Can you confirm some issues i saw on your original post?
In the table header of the WM6108 you have:

MM6108 / WM1680 / WM1320 / RPi

Should be:

MM6108 / WM6108 / WM1302 / RPi

For the Raspberry Pi 5 in the device tree source file, do i need to add “brcm,bcm2712” in the compatible array?

I have been trying to compile the driver on the raspberry pi because maybe the deb files provided in the other thread do not have SPI enbled “CONFIG_MORSE_SPI=y”.

But during make i get some errors:

IEEE80211_CHAN_IGNORE undeclared

spi.c:1421:2: error: #warning “SPI_CONTROLLER_ENABLE_CS_GPIOD macro not defined”

After “correcting“ the issues i get:

ERROR: modpost: “morse_vendor_send_mgmt_vendor_ie_found_event” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_reset_sta_transient_info” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_fill_sta_vendor_info” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_rx_caps_ops_ie” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_find_vendor_ie” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_update_ack_timeout_on_assoc” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_insert_caps_ops_ie” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_send_ocs_done_event” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_send_peer_addr_event” [/home/pi/morse_driver/morse.ko] undefined!ERROR: modpost: “morse_vendor_send_bss_stats_event” [/home/pi/morse_driver/morse.ko] undefined!

Is this related to not having the linux kernel patched with morse micro changes?

Thanks for the correction, I will update the post.

I would, but it should work without it.

This is showing the morse driver register, but it never probes for the device. For SPI, the driver will only start probing if the morse,mm610x compatible is found. Make sure to update the config.txt in the Raspberry Pi bootloader to enable the device tree overlays after installing them into the boot partition.

Please apply the kernel patches described in the build thread

For this, please ensure you are building the morse driver with the following command:

make KERNEL_SRC=~/linux/ CONFIG_WLAN_VENDOR_MORSE=m CONFIG_MORSE_SPI=y CONFIG_MORSE_USER_ACCESS=y CONFIG_MORSE_VENDOR_COMMAND=y