<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Another attempt at blogging</title>
    <link>http://longhouse.vikings.scot/uefi/foundation_model-line_in_sand.html</link>
    <description>ARM, open source and stuff...</description>
    <language>en</language>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>blosxom/2.1.2</generator>

  <item>
    <title>Foundation Model - a line in the sand?</title>
    <pubDate>Sat, 09 Aug 2014 23:16:00 +0100</pubDate>
    <link>http://longhouse.vikings.scot/2014/08/09#foundation_model-line_in_sand</link>
    <category>/uefi</category>
    <guid isPermaLink="false">http://longhouse.vikings.scot/uefi/foundation_model-line_in_sand</guid>
    <description>
When &lt;a href=&quot;http://www.arm.com/&quot;&gt;ARM&lt;/a&gt; announced its 64-bit architecture, this was eventually followed by a free (as in beer) software model of that architecture. This model is called the Foundation Model, and although somewhat of an unwanted stepchild next to the commercially available (read &lt;i&gt;expensive&lt;/i&gt;) FVP Base model, it is periodically updated.

&lt;p/&gt;Unfortunately, these updates are not just feature additions and bugfixes - there have also been substantial changes to the platform in the shape of memory map modifications and the introduction of GICv3 support.

&lt;p/&gt;And finally, on the platform software side, both support for UEFI and &lt;a href=&quot;https://github.com/ARM-software/arm-trusted-firmware&quot;&gt;ARM Trusted Firmware&lt;/a&gt; were added substantially later than the Foundation Model was released. And they have changed over time to accomodate the changes in the model.

&lt;p/&gt;What this means is that it has not been possible to keep a stable development platform while also being able to update model versions and firmware. I think what is needed is to draw a line in the sand not too far back and make sure &lt;i&gt;everyone&lt;/i&gt; developing on the Foundation Model use a minimum version of everything, and a standardised configuration. That is what I am trying to provide with this post.

&lt;p/&gt;But aside from complaining, there has also been various software features added that in themselves motivate an upgrade in order to simplify doing the right thing.

&lt;h3&gt;So, where is that line?&lt;/h3&gt;
My suggestion is that the line is drawn as follows:
&lt;table&gt;
  &lt;tr&gt;
    &lt;th&gt;Component&lt;/th&gt;
    &lt;th&gt;Version&lt;/th&gt;
    &lt;th&gt;Reason&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Foundation Model&lt;/td&gt;
    &lt;td&gt;0.8.5206&lt;/td&gt;
    &lt;td&gt;bugfixes, latest memory map&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;ARM Trusted Firmware&lt;/td&gt;
    &lt;td&gt;v0.4&lt;/td&gt;
    &lt;td&gt;New-ish?&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;UEFI&lt;/td&gt;
    &lt;td&gt;Linaro-edk2 2014.06, or corresponding upstream&lt;/td&gt;
    &lt;td&gt;Fixes for making efibootmgr functional from within Linux. Linaro build includes a built-in DTB.&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td&gt;Linux Kernel&lt;/td&gt;
    &lt;td&gt;v3.16&lt;/td&gt;
    &lt;td&gt;UEFI support available for arm64 in upstream kernel&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;

&lt;p/&gt;Furthermore, in order for this all to work, Foundation Model must be called with &lt;code&gt;--gicv3&lt;/code&gt;, or UEFI will fail to boot properly. Also, the DTB provided with mainline Linux does not function at all with modern versions of the model. If you don&apos;t use a UEFI image that provides you with one, the only place you can find one is in the ARM Trusted Firmware tree, under &apos;fdts/&apos;. &lt;code&gt;fvp-foundation-gicv2-psci.dtb&lt;/code&gt; is a safe bet (since the GICv3 implementation is backwards compatible).

&lt;p/&gt;If you want to use GRUB, 2.02~beta2 contains full support for arm64 UEFI platforms.</description>
  </item>
  </channel>
</rss>
