Monday, September 15, 2014

Post-Intel Developer Forum 2014

I would like to thank Tim Lewis for mentioning this blog at http://uefi.blogspot.com/2014/09/new-bios-related-blogs.html. I have dual-posted this item to https://uefidk.com/blog/edkii-fsp-and-other-topics, too, as an experiment. The later community has some interesting code projects and write-up's I reference below.

I spent a few days last week in San Francisco at the Intel Developer Forum (IDF).  My hotel was right off Union Square, thus allowing me to witness of cross-section of San Francisco each morning.






All of the sessions were at the Moscone Convention Center.


My presentation at https://intel.activeevents.com/sf14/connect/sessionDetail.ww?SESSION_ID=1265 now has the material posted https://intel.activeevents.com/sf14/connect/fileDownload/session/08F28DCA2DB2EA88418F93B309D82DE4/SF14_STTS001_102f.pdf.



The audio variant of the material should be posted in a couple of weeks. My talk immediately preceded and also mentioned the session of UBMS https://intel.activeevents.com/sf14/connect/sessionDetail.ww?SESSION_ID=1266 led by Brian Richardson and Mark Doran.

As always, the most exciting part of the event entailed discussion with customers and collaborators both within and outside of Intel. My session was at 9:30am on Thursday and I took a short trip down memory lane, remarking on the two presentations I made in 2003, the first of which entailed how to build out platforms using the Intel (R) Framework specifications http://www.intel.com/content/www/us/en/architecture-and-technology/unified-extensible-firmware-interface/efi-specifications-general-technology.html along with Bob Hart from Insyde and Mike Kinney from Intel, which became the foundation for chapter 7 of the Beyond BIOS books http://www.amazon.com/Beyond-Bios-Implementing-Extensible-Interface/dp/0974364908 and http://www.amazon.com/Beyond-BIOS-Developing-Extensible-Interface/dp/1934053295.

My talk picked up off Brian and Mark's talk from last year https://intel.activeevents.com/sf13/connect/fileDownload/session/DB60155205A8DF5837DA22D0FF90E3A3/SF13_STTS001_100.pdf and built out the progress during the intervening twelve months. I was happy to have Giri Mudusuru and Jiewen Yao from the PC Client Group (PCCG) and my Software and Services Group (SSG) help with questions and answers at the end, too, in addition to serving as co-authors on some of the white papers mentioned later in this blog.

Beyond the FSP-on-EDK2, which is a hybrid of source plus binary, the session also treated on alternate enabling models, including pure open source. Since the session only ran for one hour, with 50 minutes of presentation and 10 minutes of Q&A, we wanted to provide both the attendees and the broader ecosystem an opportunity to 'go deeper' on the subjects treated. As such, beyond the above-listed presentation material, we also note some addition material on slide 27.


The two papers we posted ahead of the talk includes the FSP-on-EDK2 aspect in http://www.uefidk.com/sites/default/files/resources/A_Tour_Beyond_BIOS_Using_the_Intel_Firmware_Support_Package_with_the_EFI_Developer_Kit_II_0.pdf for the initial portion of the third agenda item, and http://www.uefidk.com/sites/default/files/resources/A_Tour_Beyond_BIOS_Implementing_the_TinyQuark_Design.pdf for the second portion of fourth agenda item, respectively. The idea behind the white papers is to 'add words between the Power Point pictures', or elaborate on some of the design intent behind these two engineering efforts.

Another reveal at the talk is the upcoming book from Apress Embedded Firmware Solutions. The alpha posted online http://www.apress.com/9781484200711 already treats the coreboot plus FSP topic, with the final book due early next year. Again, this type of material production aligns with the intent of providing more behind-the-scenes detail and intent of these efforts. Presentations are great to set the tone and direction, and open source repositories must exist in the 'reduction to practice' phase, but having the written word in between the evangelism and the bits helps close the loop for the development community, in my opinion.

Some of the material left of the cutting room floor, in the interest both of time and scope of the presentation, included the recent UEFI payload for coreboot built with EDKII http://www.uefidk.com/develop#accordions_develop-page-9. This was going to follow foil 16 of the presentation were the concept of a 'payload' is introduced, but the inclusion seemed to veer astray of the EDKII/coreboot + FSP tenor of this section.

Here are a couple of the redacted foils that show the flexibility of these open source firmware communities, EDKII, FSP, and coreboot.


and


In the first diagram above you can see that the payload is composed of modules out of EDKII built into a firmware volume. This is the spatial view. We didn't want to mix GPL-based coreboot and EDKII sources, so the only import from the coreboot community was the coreboot memory declarations, or CBMEM, which were also defined in coreboot's libpayload, a BSD-friendly licensed set of sources. The second diagram above shows the flow of the UEFI payload with the coreboot platform 

The ultimate theme of the presentation, though, was to offer customers choice. The imagery used to reinforce this point included the quotation "All Roads Lead to Rome" http://en.wiktionary.org/wiki/all_roads_lead_to_Rome with 'Rome' in this case representing the customer using Intel(R) products and the 'Roads' describing the various enabling options.

Beyond IDF and its technical sessions, though, there was a rare Sergey Brin sighting http://www.theverge.com/2014/9/10/6133589/this-photo-of-sergey-brin-doing-yoga-at-IDF-is-not-strange, although my picture is a bit blurrier

And IDF also featured live music Weds night, namely Weezer http://www.weezer.com/

which was pretty interesting.

While at IDF I also had a chance to work directly with Jiewen, and overseas colleague. We typically interact over email or phone given his home site in the Shanghai, PRC, area and mine in the Seattle, WA, US area. One of the common questions we receive about UEFI Secure Boot UEFI Secure Boot entails Authenticated Variables. This was a topic treated lightly in the implementation document, so Jiewen and I created http://www.uefidk.com/sites/default/files/resources/A_Tour_Beyond_BIOS_Implementing_UEFI_Authenticated_Variables_in_SMM_with_EDKII.pdf to specifically address the SMM-protected variant of this driver posted on http://www.tianocore.og.

On any of these presentations, white papers, and even this blog posting, I look forward to community feedback.

2/15/2015 update - the book cited at the end of the IDF presentation is now for sale http://www.apress.com/9781484200711