Hi all,
I am a sophomore of Computer Science and Engineering at the University of California, Merced, and I would like to propose an original project for GSoC 2016: supporting IOMMU virtualization (VT-d) on the Chromebook Pixel 2 (samus) in coreboot. Specifically, I will be targeting the LS model as that is the model that I have on hand to work with.
The i7-5500U Broadwell processor and the HM97 Wildcat Point chipset of the LS model both support VT-d which means the hardware is in place. The samus is already a target of coreboot so all that’s left to do is patch coreboot to pass along the ACPI direct memory access remapping (DMAR) table which was left out presumably due to its lack of relevance to ChromeOS.
This contribution would extend the functionality of both coreboot and Google’s Chromebook Pixel 2, and benefit users who run traditional Linux with virtualization on the samus such as myself and Qubes OS users.
I have the sundry required for unbricking on hand and have already performed a successful recovery. For posterity, it should be noted that the Winbond BIOS chip not only lacks the traditional protruding gull wing leads, it also has too many circuit features littered around it for an SOIC-8 test clip to make contact. My workaround was to clip off all the plastic legs around the lead contacts, disassemble the test clip into two halves, and firmly hold the two halves of the clip against the chip manually. Granted, it's quite grueling and also seems to deform the tiny chip leads, but it works. Disabling verification can help shorten the flashing process.
This is a project that I would like to undertake even outside of GSoC for the sake being able to use VT-d on my laptop and I would be very appreciative of any assistance or feedback regarding my proposal. I hope to delve deeper into the project towards this weekend when my spring break starts. My formal project proposal will be shared on Google Docs once it is ready.
Best,
Min