Hi all. I am building openwrt router based on Banana Pi BPI-R4 which has 2 mini PCie (Wifi ax, Wifi Halow?), 1 M2 port (Wifi, LTE/5G), 1 M2 storage. This lovely board is plexible for multi purpose systems.
Please give your advice on integrating Halow module by porting sourcecode for OpenWRT.
Approach 1: From Morsemicro code to build for BPI-R4: port R4 BSP, R4 driver…
Approach 2: From Approach openwrt code, add Halow kernel fix, Halow driver, Halow openwrt routines (core & luci)…
I’ve taken a quick look at the BPI-R4 schematics. Unfortunately the mPCIe connectors might not be suitable. Because the MM6108 doesn’t support a PCIe interface, the mPCIe cards available (SeeedStudio WIO-WM6108/Heltec HT-HC01P) actually use SPI/SDIO lines on PCM lines of the mPCIe connector (45, 47, 49, 51). The MT7988 on the BPI-R4 can’t use these attached pins for SPI/SDIO.
Instead, you’ll likely want to connect a HaLow module with SDIO on the SD card slot.
For the software approach, I think it really depends. My inclination is to recommend backporting the BPI-R4 support to our SDK. However, the changes which introduced the BPI-R4 - c55c56b3fd through to 1192554d56, included a change in kernel version from 5.15 to 6.1. This makes me a bit nervous that there may be drivers the BPI-R4 requires in 6.1 that aren’t available in 5.15. Definitely worth inspecting those commits, and the commits between them. For a minimal port to 5.15 you might not need to take all of them. I still think it makes sense to try this first.
I don’t want to recommend approach 2 yet as there are several Morse Micro owned scripts to add HaLow support to UCI. In OpenWrt 24 the implementation of these scripts are now in ucode rather than shell scripts and would need to be rewritten. We are currently in the process of migrating our SDK to OpenWrt 24, but that version won’t be available until later this year.
See how hard it is to bring up the BPI-R4 on OpenWrt 23.05.5 first.
Thank you so much and very appreciate your advice!
I got 4 Seeed Studio mini PCIe Halow cards to play with R4, but now I know they are not using a PCIe lance
I think that we need a true mini PCie Halow driver as single mode or multiple mode like multiple wifi cards, this can improve bandwidth and do flexiblely networking.
With Halow technology we can go SDR way, but it is expensive. I want to kickoff some Halow projects but this seems to be a big challenge.
We need a many-miniPCie boards to do more flexibly and rich feature applications.
So, without Banana PI R4, which SBC can support more mini pcie ports? The Halow Link1 board is not power enough for other applications.
Please kindly share your advice to new boards and the Halow upgrade roadmap.
Thanks you so much!
In this thread we identified that one of the minipcie port on the Wisgate Connect could be suitable for use - and being a Raspberry Pi board it is a well proven platform from a software point of view!
I’ll have a look at a few other options tomorrow as well. There are some other boards I was interested in looking at.
MM6108 doesn’t actually support PCIe, and those cards don’t actually use PCIe at all..and herein lies the rub. those Seeed studio cards are SPI broken out over a Mini-PCIe form factor. the mini-PCIe slots on ANY board you buy are 90% not going to have SPI lines routed on them, or have mux’able GPIOs routed to the right pins. so getting more mini-PCIe slots is kinda like getting more air conditioning units for your bicycle.
those seeed studio cards, because they have such a strange interface, have to be used with an adapter that maps the SPI on a raspberry pi 40-pin header to the correct pins. you can guess who sells the adapter. realistically, the only way to use those cards is with this adapter, connected to a 40-pin raspberry pi header. so, it’s a Mini-PCIe card, but it will only ever work in the Mini-PCIe slot of the Seeed Studio adapter board.
btw i went and looked at the BPI-R4 schematic for you just out of curiosity. sure enough the B-key only maps USB (for LTE cards) and SATA; while the M-key has one PCIe lane and the rest not routed.