Using the ARM Foundation Model for ARMv8
Let us suppose that using an NFS root file system for ARMv8 work is not really an option for some reason. Let us also suppose that you can't get access to the ARM FAST model -- which is almost bound to be the case for most people. What we describe here is probably the most straightforward way to work with ARMv8 without a lot of sysadmin overhead once the initial setup has been completed.
The recipe has these ingredients:
- A copy of the ARM Foundation Model (FM)
- A copy of the items needed for booting -- a file called "linux-system.axf", used by the FM -- but containing the kernel, u-boot and other key bits.
- A copy of a Fedora 17 root file system (rootfs) as a disk image
Instructions will also be provided for creating the rootfs disk image from scratch, should you need to.
Create a handy place to keep everything. Some of the files are quite large, so assume you will need at least 20GB of free disk space. I'd recommend more, just to be safe. For simplicity's sake, stash everything in a single directory. For example:
$ mkdir ~/armv8 $ cd ~/armv8
Getting the ARM Foundation Model
The FM is licensed code and it is NOT redistributable. Each user must retrieve their own copy. And, to do that, each user must register with ARM. On the other hand, the process is straightforward. Go to http://www.arm.com/fvp and follow the instructions. In my case, I was then able to download a file called FM000-KT-00035-r0p8-44rel23.tgz and unpack it:
$ cd ~/armv8 $ tar xvzf FM000-KT-00035-r0p8-44rel23.tgz
This created a directory called Foundation_v8pkg with the FM in it. To make things easy to run, I also created a quick alias that we'll use later:
$ alias fv8="~/armv8/Foundation_v8pkg/Foundation_v8"
Getting the Boot Path
For now, one can retrieve a copy of the bits being provided by Linaro (http://www.linaro.org) that provide for a basic kernel and boot path in the format required by the FM (a .axf file). At some point in the future, a Fedora kernel will be made available. So, retrieve the file:
$ cd ~/armv8 $ wget http://releases.linaro.org/12.10/openembedded/aarch64/rc3/img-foundation.axf
That's all that's needed.
Getting the Rootfs Disk Image
If you just want to use what has been pre-built, you can retrieve a copy of the rootfs as a disk image and then decompress it:
$ cd ~/armv8 $ wget http://fedorapeople.org/groups/armv8/f17-stage2-rootfs.img.bz2 $ bunzip2 f17-stage2-rootfs.img.bz2
This is a large file (~10GB) and it will grow larger. It does however contain a copy of all of the stage2 bootstrap binaries and sources to date. Further, at any time, one can cd to /, and then do 'git pull --all' to get the most recent bits and update the rootfs.
Running the Foundation Model
Now that all the parts are in hand, running the FM is pretty straightforward. In most cases, though, the following will be sufficient:
$ cd ~/armv8 $ fv8 --image img-foundation.axf --block-device f17-stage2-rootfs.img --network=nat
After a few moments, an xterm for the console will pop up and you'll have a running ARMv8 system.
There are several ways to configure the networking for the Foundation Model: see FoundationModel Networking.
Creating Your Own RootFS
It is possible to build a custom RootFS for the Foundation Model -- see Building a RootFS.