Since the Compute Module 4 came along last year, there have been a few projects that use it that make me do a double-take: They did what with a Pi?
Alftel's Seaberry is a carrier board for the CM4 in the Mini ITX form factor that adds on eleven PCI Express slots:
- 1 x16 slot (with x1 lane) in the standard ITX location
- 1 x1 slot on board edge
- 4 mini PCIe slots
- 4 M.2 E-key slots (with dual PCIe lines so you can run specialty cards like dual-TPU accelerators)
- 1 M.2 M-key slot for NVMe SSD
The rear of the board also has a decent mix of built-in IO, including a Cisco-style serial console cable you can use with an easy-to-find USB adapter so you can attach to a Raspberry Pi's Serial Console (UART) for debugging.
I've been using the board for a couple weeks, even installing it inside my smallest ITX PC case, a Goodisory MX01. This is the first Pi board I've used that fits in a standard PC form factor, marking the first time I've been able to build a 'custom PC' with a Pi, using standardized components and not requiring extra time strapping together a makeshift or 3D-printed case:
And the Seaberry needs all that room, to jam in all the ports! I tested an Intel i350 dual-gigabit LAN card, a Dual-TPU Coral M.2 Accelerator, a KIOXIA XG6 M.2 NVMe SSD, a Compex WLE200NX 802.11n WiFi card, an Intel AX210 WiFi 6E card, a dual SATA controller, and more—and everything worked (more or less...).
Many cards have built-in drivers in Pi OS—the NVMe drive and the SATA SSD I plugged in worked right away, and required no custom drivers or kernel rebuilds. (For power, the board also includes a four-pin berg header to power SATA drives and other peripherals).
Cards like Intel's AX210 required the installation of custom firmware and Intel's driver, but worked great afterwards (giving me over 1 Gbps wireless on my home's WiFi 6 network!).
Google's Coral TPU cards still don't work, unfortunately—the PCI Express implementation on the BCM2711 seems to not handle some of the memory access patterns it needs—but that brings me to another feature of the Seaberry (and many other CM4 boards): it is also supposedly compatible with Radxa's CM3 and Pine64's SOQuartz, two 'pin compatible' replacements for the CM4.
I have a CM3 and am awaiting shipment of the SOQuartz, so I'll test them out later this year.
The other type of card I'm keen to get working with ARM64 SBCs is any kind of graphics card—mostly for the fun of it. I've struggled mightily to get AMD's radeon
and amdgpu
drivers working, and Nvidia's black box driver also has the same problem with the CM4—random hard lockups and kernel panics.
Anyways, the Seaberry is the perfect platform for my testing—and I even installed Alftel's 12-card M.2 carrier board in the thing, so I could have 20 PCI Express devices wired into the Pi at once.
Doing so also uncovered one limitation with the CM4 (besides the anemic x1 Gen 2.0 lane): if I plugged in more than three NVMe drives at once, it seemed the nvme
driver would have some strange kernel panics either at boot or shutdown. Sometimes it would boot fine with four NVMe drives, but never with five or more.
Video
I have an entire video up on my YouTube channel that goes through the Seaberry in much more detail:
Missing things
Besides price—which I'll get to in a bit—there are a couple things I was missing on my prototype board. The board I had is very close to the final production board, minus a few small tweaks they are making based on my testing and feedback.
- A proper front panel header. I actually figured out how to get front panel ATX connections working, but having labeled pins for the purpose would be nicer.
- Built-in USB 3.0. It would add to the BOM, but by my count, there's one extra PCIe lane available, so it would be very nice to have 2x USB 3.0 ports on the rear, and maybe expose the USB 2.0 ports through a front-panel header.
- PWM fan control fixes; on the board I had, we actually identified a few bugs in the original IO Board design it was based off of. It seems the fixes to enable full PWM fan control will make it to the final production board.
- A built-in RTC battery holder—my board, at least, has an RTC, but to use a battery I would have to solder in my own battery holder.
Price and Availability
The Seaberry is expensive, at $435. A lot of that price comes from some of the components required for such an exotic board. The Broadcom PCIe switch used—a PEX8619—costs over $125 from DigiKey... and it isn't even in stock, so I don't know what kind of magic incantations Alftel had to go through to get a supply of chips!
But it's definitely a specialty board. People who need a low-power ARM-based development or experimentation platform could use this board like I do, to test more exotic configurations on the Pi. And it's looking like it will be the first commercially-available (though not cheapest) ways to install a Pi into a standard desktop or rackmount PC case, since it's mini ITX.
As long as you don't need to pump through more than 5 Gbps of data, this board has more PCIe connectivity than most PC mainboards. But unless you're Red Shirt Jeff-level crazy, you might not be able to use it all!
Comments
The Pi Foundation should take notice. We defiantly WANT this! The fist group to release an ARM with real PCI I/O and enough lanes to support some workstation level cards at full 16 x speed, will win the internets and teach Apple a. lesson on "how it's done"!!!
Of course Apple will probably be the leader with a single x16 slot on a$1200 Pi mini.
I would love to see Apple produce a Mac Pro with M1 Max or something even better, with multiple PCIe slots and upgradeable RAM. Bonus points for upgradeable storage, but it seems that ship has sailed and it's just addons you can put in.
I seriously doubt Apple will ever make anything upgradable anymore.
I agree!
The 'last good' upgradable/expandable Apple computer I used was the old Mac IIcx.
Used it to drive a Nicolet 460 storage scope and an HP 33120A Abitrary Waveform Generator to reproduce captured transient waveforms for systems testing.
We use a PC now.
Well done Apple.
Where you able to get multiple Intel WiFi cards working on the Seaberry? I have a Seaberry and am working on getting three AX200's working but so far no luck. One will always work but the other two fail with iwlwifi: pci_enable_msi failed -28. After that the firmware fails to load. Looks like the CM4 can only use 16 MSI interrupts but I didn't think there was a limit. Am I missing something?
I was actually having a little trouble with that but I figured it was a firmware issue—one thing I didn't try was using both an AX210 and AX200 at the same time, I wonder if that could work (they have different firmware)? I haven't seen anything about an MSI interrupt limit and I have validated using three non-Intel WiFi cards at once (though I've only tested they can all load and I can see them—I didn't connect all three to WiFi APs. Now you have me wondering whether there could be some limitations there.
Were you able to get this thing to boot ubuntu off the M.2 NVMe drive? Reading that there are issues with that - cant seem to find a way the process to load and boot off the m.2
Unfortunately since this board uses a PCIe switch for all the ports (including the M.2 slot), you can't boot a CM4 through NVMe over a PCIe switch.
Jeff, can you comment/elaborate point a silly goose like myself in the direction to better understand how to get 4 WiFi radios like the AX210 to work in this board?
"Cards like Intel's AX210 required the installation of custom firmware and Intel's driver, but worked great afterwards (giving me over 1 Gbps wireless on my home's WiFi 6 network!)."
I am trying to get them to load - I get 3 in basic Ubuntu server install or RasPi OS install - but the 4th one never shows..
Please see the discussion in this issue on the Pi PCIe site—there are a couple other people who are trying to get multiple AX210s running at the same time, I believe someone found a solution.