posted at: 00:57 | path: /drafts | permanent link to this entry
03 Feb 2015Foundation model with ARM trusted firmware and UEFI
So, as I wrote in Foundation Model - a line in the sand?, a lot of things have changed in the underlying platform for the ARM Foundation Model for ARMv8. So I thought I would describe how to set one up ... on the right side of the line.Installing the model
First of all, you need to download the ARMv8 Foundation Platform - which requires registering for an account on the ARM download portal. Extract the archive to a suitable location.Building UEFI
The recent versions of Foundation Model are actually software compatible with the FVP Base model. The "Foundation_v8" image does not work on these, and since Linaro 2014.09, we have renamed that platform "foundation_legacy". Secondly, the "fvp" UEFI build (like the Juno one) now expects to be loaded by ARM Trusted Firmware. So I've updated our build scripts to deal with this in a mostly automated fashion:uefi-build.sh
has a new parameter -a
to specify the location of an ARM Trusted Firmware checkout. It will then, based on configuration options in platforms.config
, build UEFI, build ARM Trusted Firmware into a bl1.bin
image, and then package the UEFI image with additional Trusted Firmware components into a fip.bin
image.
Of course, you can also download our pre-built monthly release images, and skip the build instructions.
$ git clone git://git.linaro.org/uefi/uefi-tools.git $ git clone https://github.com/ARM-software/arm-trusted-firmware.git $ git clone git://git.linaro.org/uefi/linaro-edk2.git $ cd linaro-edk2 $ ../uefi-tools/uefi-build.sh -a ../arm-trusted-firmware -b DEBUG fvp
Booting the system
Now grab thebl1.bin
and fip.bin
from Build/ArmVExpress-FVP-AArch64/DEBUG_GCC48/FV/
(or download them), and launch the foundation model.
$ Foundation_Platformpkg/models/Linux64_GCC-4.1/Foundation_Platform \ --cores=2 \ --gicv3 \ --data=bl1.bin@0x0 \ --data=fip.bin@0x08000000 \ --block-device=disk.img
disk.img
is an optional parameter for adding a virtio block device image file, to use as a local filesystem. For very basic UEFI, GRUB or Linux kernel testing, it can be omitted.
We specify that bl1.bin
(the Trusted Firmware system startup code) and fip.bin
are loaded into RAM at predefined locations. We also specify that we use the GICv3 variant of the modelled system, which affects the memory map. Currently the EDK2 code still puts this GIC into legacy mode, but without --gicv3
it will look for the interrupt controller registers in the wrong location. --cores=2
is not necessary, but makes the model emulate just 2 cores rather than the default 8 - which makes the model run faster while still letting you have fun with software concurrency.
posted at: 23:46 | path: /drafts | permanent link to this entry
29 Oct 2014Using Ovmf to test kernel SMBIOS support
qemu-system-x86_64 -m 1024 -smbios type=1,manufacturer=Leif,product=Smurf -hda sda.img -pflash pflash.imgposted at: 17:58 | path: /drafts | permanent link to this entry
14 Aug 2014A month off
One nice thing about working for ARM is that once every four years, you get four extra weeks of holiday in a year - called a sabbatical. Especially with the British scepticism with regards to longer normal holidays, this makes for a very welcome break. Last time I spent those weeks working in the garden, helping rig the Cambridge Beer Festival, attending the Cambridge Beer Festival and helping tear down the Cambridge Beer festival. Being in my 9th year of employment with ARM, I now have my second one coming up, and I'll be spending it with Maria in the US, traveling aound a bit. We will start out in San Francisco, before flying over to Denver, drive up to Estes Park (and stay there for just over a week), and then back down to Boulder. Then we commence the road trip: to Colorado National Monument, Zion National Park, Monument Valley, Durango (taking the narrow-gauge railway to Silverton), Las Cruces (New Mexico Chile Pepper Institute), Big Bend National Park, Fredericksburg and arriving in Austin where we hang around and meet up with various friends. Then flight back to SFO and straigt onto Linaro Connect.posted at: 22:33 | path: /drafts | permanent link to this entry