Apr 27, 2023
Ampere eMAG 8180 Review
As a passionate anti-x86-monopoly geek, having the opportunity to purchase an ARM workstation board for ￥1000 is really a great deal. And while Yukari wanted to port her Linux distro to more platforms, this becomes a no-brainer.
Board Overview: Shy on I/O
The 2019 "Raptor" board integrates an Ampere eMAG 8180 CPU with 32 cores, with a base clock of 2.8 GHz and can boost up to 3.3 GHz. The microarchitecture, Skylark, originated from defunct AppliedMicro, is a rather legacy design compared to Ampere's next-gen processor Altra, or even the contemporary AWS Graviton2, but I expect it to be totally usable for an amateur compiling server.
Am I used to RISC-V boards' awful performance?
The board offers 16 slots of octa-channel DDR4 ECC memory supporting up to 2666 MT/s, the same as its Intel and AMD counterparts. It has an integrated BMC module from ASPEED occupying one corner of the board. For storage, it includes one M.2 22110 slot and four SATA 3.0 ports. Other than those, the board seems sparse: the back panel only contains two USB 2.0 port (no USB 3.0!), an 10 GbE RJ45 port, and a BMC controller RJ45 port; on the board were one OCP 2.0 for network cards, and two oddly-placed PCIe 3.0 slot that need two riser cards to work (one on the right, but we only got the 2x PCIe x8 bifurcator on the left). It's such a shame that these PCIe are not standard placement and cannot be used in generic short-body 2U rackmount cases. We probably don't need that much I/O, but it's such a shame that it lacks too much.
Booting: Painful without Documents
I was told the eMAG 8180 behaves similarly to those x86 UEFI PCs with a normal BIOS, and can boot mainline Linux kernel. TL;DR: it is, but with plenty of caveats.
First thing that struck me was posting the system. With hardly any document available at all, I thought the memory slots closest to the CPU were DIMM 0. I inserted two 32 G DDR4-2666 Samsung RDIMM into each side of the CPU, but the system fails to enter BIOS and stuck in "DRAM Initialization 100%" with this configuration. Only after one ex-owner told me did I know the DIMM index starts at the furthest two slots. I was able to enter Ubuntu Server 22.04's live environment right after the slot switch.
Well, I hate Ubuntu, so I flashed Debian's ISO on my USB stick. Then the strange thing happened: In both BIOS and GRUB, the USB keyboard works just fine; once entered Debian installer, the system was not responding to keyboard at all. From Serial over LAN the system is responsive, but failed to find installation media. At that time I didn't notice the kernel message at boot:
[ 4944.663517] arm-smmu arm-smmu.1.auto: Blocked unknown Stream ID 0x800; boot with "arm-smmu.disable_bypass=0" to allow, but this may have security implications
[ 4944.677676] arm-smmu arm-smmu.1.auto: GFSR 0x00000002, GFSYNR0 0x00000000, GFSYNR1 0x00000800, GFSYNR2 0x00000000
Thanks to @Icenowy, a quick workaround is available: Pass
arm-smmu.disable_bypass=0 into kernel parameters. This is caused by a behaviour change after Linux 5.2. When applied inside Debian ISO and finished installation, the parameter is inherited into
/etc/default/grub, so you don't need to modify GRUB settings again. Finally, I was able to boot into the clean, unbloated Debian.
to be continued...