Awhile back I came to learn about an interesting AMD single board computer (SBC) from a company called DFI, which specializes in building embedded solutions and industrial motherboards. There are a number of vendors in this space, including OnLogic, Rugged Computers, ASRock Industrial to name a few and Bivrost which I had recently came to learn about. The Industrial vertical is actually a really interesting segment of the market that includes manufacturing, oil, gas and utilities and is often associated with the Internet of Things (IoT), also referred to as the Industrial IoT (IIoT) market.
The demands and requirements of the Industrial IoT market is wildly different from your typical Enterprise datacenter, especially when you think about some of the harsh environments that hardware must run whether that is a manufacturing facility to a remote oil rig. It is not uncommon that the hardware used must be able to withstand extreme temperature changes with greater levels of reliability but also longer duration of support and product availability for up to 10 years!
With all that said, I was pretty intrigued with their latest offering called the GHF51, which comes in at an ultra tiny 1.8" inches and is dubbed the worlds smallest board with an AMD Ryzen CPU. You can see how tiny the SBC is compared to a lego mini-figure pictured above.
In addition to the naked board, DFI also produces a ready to use kit called the EC90A-DH which nicely houses the AMD board. I was curious if this would run ESXi and I know a few of my followers on Twitter had also asked the same question? 🤔 Thanks to DFI, I was able to get my hands on one of these kits and kick the tires.
The chassis is well built and with it being fanless, it is also dead silent. On the front, you can see there are two micro HDMI ports, one USB-C and 1GbE network adapter.
On the back, you have a DIO+SMBUS and power connector.
The SBC includes an AMD Embedded Ryzen R1000 CPU and 8GB of soldered memory. Although the memory capacity is not as big, depending on the types of applications and use cases, it may be sufficient to have a few of these running together.
Only eMMC is available for its internal storage (similiar to the Raspberry Pi) which ESXi does not support and the use of external storage using either USB and/or network-based storage will be needed to run your workloads. Due to the limited number of interfaces on the chassis, you will also need to a USB hub if you wish to connect other devices like a keyboard or a USB boot device for ESXi unless you plan to boot over the network.
The onboard 1GbE network adapter is an Intel I211 (8086:1539) and luckily this is recognized by ESXi automatically out of the box.
Here is screenshot of running the latest ESXi 7.0 Update 3 release out of the box without any changes along with a Windows 10 VM which was pretty performant for basic functionality.
Note: One thing to be aware of is that by default, the UMA buffer setting will reserve some of the physical memory which makes it unavailable to ESXi. If you wish to disable this, you will need to navigate to the BIOS under Advanced->AMD CHIPSET Setting->GFX Configuration->Integrated Graphics and toggle the value to Force and then you can update the UMA Mode value to UMA_UNSPECIFIED and finally set the memory for the UMA frame buffer size. In my setup, I changed this to 64MB and ESXi was able to see the full 8GB of physical memory.
I was also curious about the integrated graphics (iGPU) that is included on the AMD chipset, which is an AMD Radeon Vega 3 and whether that could be passthrough successfully to VM. The first hurdle that I ran into was that the IOMMU setting was not enabled on the AMD CPU, which is a requirement for passthrough of a PCIe device with ESXi. The second issue is that the BIOS found on the GHF51 also did not offer a way to configure and enable the IOMMU setting.
Fortunately, the DFI folks was able to provide me with an updated version of the BIOS that exposed the IOMMU setting and I was able to toggle it on under Advanced->AMD CBS->NBIO Common Options->NB Configuration->IOMMU
After IOMMU was enabled, I could now passthrough the iGPU to my Windows 10 VM and Windows immediately detected the driver and everything was looking good. However, upon rebooting the VM, it hit the same generic Error Code 43 as some of the Intel NUCs, which might be an issue with the underlying graphics driver. This behavior was observed using both Windows 10 and Windows 10 IoT Edition.
I also had attempted the iGPU passthrough with the latest version of Ubuntu and it seems the issue is similiar where graphics driver for the OS is having issues with the iGPU.
Thanks for the comment!