Andrei Warkentin Profile picture

Oct 6, 2020, 26 tweets

@esxi_arm Yup! Getting firmware working and polished is a massive massive undertaking. One that I and a very special set of folks from around the world have been driving over the course of a few years now. All as a side act.

@esxi_arm It all started in 2016, when Microsoft put out Windows 10 IoT for Pi 2/3 and released the sources to their TianoCore modifications github.com/ms-iot/RPi-UEFI

@esxi_arm In 2017, Ard Biesheuvel separately developed an early port of 64-bit UEFI support. And this one had PSCI (via TF-A, then called ATF).

workofard.com/2017/02/uefi-o…

@esxi_arm Later that year, I started github.com/andreiw/Raspbe…. It was supposed to be an easy ride of integrating Microsoft's drivers into Ard's code.

@esxi_arm Of course it was anything but 🤣. I was lucky to find a WIP DWC2 UEFI USB host driver (originating with Linaro), needing much work, but kinda working.

@esxi_arm By December 2017, I had the first RaspberryPiPkg release with HDMI and Arasan SDHCI support. Booting SUSE Linux, no less.

@esxi_arm By April 2018, I was arguing with folks bombarding my Github with support requests. I was adamant that it would _not_ be possible to boot Windows 10.

@esxi_arm Of course in April 2018 Bas Timmer got Windows running! techblogup.com/windows-10-ras…

I later found out it was based on RaspberryPiPkg :). In the mean time, @NTAuthority provided an important hint that allowed me to patch the HAL and boot Windows myself. Wow.

@esxi_arm @NTAuthority VMworld 2018 I was show-casing ESXi-Arm in the @vmwocto expo zone. I wanted everyone to be excited by the work accomplished, but everyone just kept asking when the Pi would be supported.

@esxi_arm @NTAuthority @vmwocto I had a great explanation for why it would not be possible. At all. Too weird of a chip. Too little RAM.

@esxi_arm @NTAuthority @vmwocto But when I came back home, I knew what I had to do - prove myself wrong and put ESXi on the Pi.

@esxi_arm @NTAuthority @vmwocto And by October - as crazy as it seemed. It worked. Not the full ESXi-Arm but quite a bit.

@esxi_arm @NTAuthority @vmwocto @nixblogx and I have this crazy story on how we caught up with @PGelsinger and put the Pi on stage at Barcelona 2018. It was highly unlikely as this was right on the cusp of the event, but it happened.

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger But something else amazing was happening in parallel. Pete Batard from Akeo Consulting (akeo.ie) decided to upstream RaspberryPiPkg all by himself into TianoCore upstream (edk2-platforms). It was a lot work, but he finished in Feb 2019.

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger In Aug I had a quick and dirty PoC of Pi 4. So quick in dirty I wasn't even using the edk2-platforms tree, but the "dead" RaspberryPiPkg 🤣. But things looked up - Pi 4 had a GICv2, had reasonable I/O (GbE, xHCI), although had a crazy PCIe RC implementation...

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger While at APM, I pitched to @bhumikp, @kevinryan681 and @drewhenry a collaborative effort to get Tiano supported on the Pi 4. Do it together, in the open for everyone's benefit. Aim at ServerReady. Who knows, maybe we could come pretty close?

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry And this is was the beginning of a long a fruitful journey with @samerhaj. Things moved very fast. Jeremy Linton (Arm, ex-RHAT) had his own UEFI port with functional PCIe, and he rebased on top of the public effort. Wow,- xHCI working! With much elbow grease from Ard and Pete.

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry @samerhaj October and November 2019 VMware showed ESXi-Arm on Pi 4 at the Arm TechCon and VMworld EMEA events.

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry @samerhaj December 2019, due to all the hard work by @jmcwhatever, NetBSD became the first operating system to fully support a UEFI boot on the Pi with working 4GB RAM, xHCI and GbE.

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry @samerhaj @jmcwhatever December 2019 we also had our first "vanilla" SBBR Debian boot, though with more restrictions due to necessary work to support DMA restrictions with ACPI.

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry @samerhaj @jmcwhatever Jan 2020, #rpi-uefi-dev channel launched on Arm Developer-Ecosystem Discord server. @Marcinoo97 demonstrated full Windows 10 build 17134 running on Pi 4 with 1GB RAM and MCCI drivers for USB2 (not xHCI).

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry @samerhaj @jmcwhatever @Marcinoo97 And February 2020, @jmcwhatever developed support for the onboard GbE - GENET. It would take a few months to chase down remaining bugs, but suddenly PXE, HTTP and iSCSI became a reality without any USB dongles :).

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry @samerhaj @jmcwhatever @Marcinoo97 ...and the journey continues. But it would not be possible without the hard work of volunteers from VMware, Arm, Akeo, NetBSD and elsewhere. And in the end? It's yours. Everyone can hack on it. Everyone can make it better.

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry @samerhaj @jmcwhatever @Marcinoo97 With a Pi 3A+ you have the cheapest UEFI developer environment with SD, USB and HDMI. Prove me wrong 🤣.

@esxi_arm @NTAuthority @vmwocto @nixblogx @PGelsinger @bhumikp @kevinryan681 @drewhenry @samerhaj @jmcwhatever @Marcinoo97 On the other end of the spectrum, the 8GiB Pi 4 is nothing to sneeze at. My AMD A1100 "Overdrive 1000" has 8GiB - and it's 24x larger.

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling