summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorRobin Randhawa <robin.randhawa@arm.com>2011-12-20 15:54:33 +0000
committerRobin Randhawa <robin.randhawa@arm.com>2011-12-20 15:54:33 +0000
commit06193b40307e17cf6b675000abb5859838b0c841 (patch)
treebc792d2f9e8be28dd8ffc2913df4bc0cd6a2b5eb /docs
parent0656dea51f48c51a57e77187de4d5f66a6ba1337 (diff)
Updated to release v2.1.
Intended to be the basis for the VSM development.
Diffstat (limited to 'docs')
-rw-r--r--docs/01-Usage.txt30
-rw-r--r--docs/02-Code-layout.txt41
-rw-r--r--docs/03-Linux-kernel-build.txt19
-rw-r--r--docs/04-Cache-hit-rate-howto.txt6
-rw-r--r--docs/06-Optional-rootfs-build.txt6
5 files changed, 52 insertions, 50 deletions
diff --git a/docs/01-Usage.txt b/docs/01-Usage.txt
index 3ed01f8..3eeb764 100644
--- a/docs/01-Usage.txt
+++ b/docs/01-Usage.txt
@@ -24,10 +24,21 @@ Usage
2. Build instructions
+ Note that this release relies on the 'env' utility, which is
+ a part of the coreutils suite. The 'env' utility is expected
+ to be located at '/bin/env'. If it is at a different
+ location then this must be reflected in the first line of
+ the following file:
+
+ arm-virtualizer-v2_1-171111/bootwrapper/makemap
+
+ Failure to make this modification will result in a build
+ failure.
+
To build the software:
- $ tar -jxf arm-virtualizer-v2.0-ti-040911.tar.bz2
- $ cd arm-virtualizer-v2.0-ti-040911/bootwrapper
+ $ tar -jxf arm-virtualizer-v2_1-171111.tar.bz2
+ $ cd arm-virtualizer-v2_1-171111/bootwrapper
$ make clean && make
The resulting file is 'img.axf'.
@@ -37,12 +48,12 @@ Usage
Note that the pre-built stub kernel image is located at:
- arm-virtualizer-v2.0-ti-040911/bootwrapper/payload/kernel
+ arm-virtualizer-v2_1-171111/bootwrapper/payload/kernel
.. and the placeholder dummy root filesystem image is located
at:
- arm-virtualizer-v2.0-ti-040911/bootwrapper/payload/fsimg
+ arm-virtualizer-v2_1-171111/bootwrapper/payload/fsimg
These may be replaced with custom built images such as a
suitably configured linux kernel image and a root filesystem
@@ -54,17 +65,6 @@ Usage
Look at docs/06-Optional-rootfs-build.txt for optionally
building a complete root filesystem.
- Note that this release relies on the 'env' utility, which is
- a part of the coreutils suite. The 'env' utility is expected
- to be located at '/bin/env'. If it is at a different
- location then this must be reflected in the first line of
- the following file:
-
- arm-virtualizer-v2.0-ti-040911/bootwrapper/makemap
-
- Failure to make this modification will result in a build
- failure.
-
3. Usage
If the Kingfisher Real-Time System Model (RTSM VE Cortex-A15 KF
diff --git a/docs/02-Code-layout.txt b/docs/02-Code-layout.txt
index 79af0a3..d033b39 100644
--- a/docs/02-Code-layout.txt
+++ b/docs/02-Code-layout.txt
@@ -6,7 +6,7 @@ A Introduction
The software contained in the 'bootwrapper' directory allows
the execution of a software payload e.g. a Linux stack to
alternate between two multi-core clusters of ARM Cortex-A15
- & Kingfisher processors connected by a coherent
+ & Cortex-A7 processors connected by a coherent
interconnect. To achieve this aim it provides the ability
to:
@@ -15,12 +15,12 @@ A Introduction
cluster (henceforth called the inbound cluster).
2. Hide any software visible microarchitectural differences
- between the Cortex-A15 & Kingfisher processors.
+ between the Cortex-A15 & Cortex-A7 processors.
3. Use the ARM Virtualization Extensions to perform 1. & 2.
in an payload software agnostic manner.
- This software is intended to be executed on the Kingfisher
+ This software is intended to be executed on the Cortex-A7
Real-Time System Model (RTSM VE Cortex-A15 KF CCI version
6.2 Beta).
@@ -31,7 +31,7 @@ A Introduction
This is called the MP configuration. In it's current state,
it mainly involves making the payload software believe that
- the A15 cluster includes the cpus present on Kingfisher cluster
+ the A15 cluster includes the cpus present on Cortex-A7 cluster
i.e.there is one cluster with more cpus that there
physically are. [Note that MP support is highly experimental
and unstable. It is NOT the focus of this release and is
@@ -180,10 +180,7 @@ B Code layout overview
2. hyp_setup.c
1. Extends the initialization of the Virtualizer
- software into C code. Most importantly it
- distinguishes between cold (power-on) & warm
- (inbound cluster) resets. Software is
- initialised differently in each case.
+ software into C code after a cold reset.
2. If switching is being done asynchronously then
the HYP timer interrupt is setup to periodically
@@ -295,7 +292,7 @@ B Code layout overview
is no longer a 1 to 1 mapping between cpu
ids and cpu interface ids e.g. on an
MPx1+MPx1 cluster configuration,
- cpu0 of the Kingfisher cluster would
+ cpu0 of the Cortex-A7 cluster would
correspond to cpuinterface1 on the shared
vGIC. This in turn affects routing of
peripheral and software generated
@@ -313,10 +310,14 @@ B Code layout overview
2. sync_switchover.c
- 1. Contains code to handle an HVC instruction
- executed by the payload software as a
- trigger to initiate a
- synchronous switchover.
+ 1. Contains code to handle an HVC instructions
+ executed by the payload software:
+
+ a. to initiate a synchronous switchover.
+ ("HVC #1")
+
+ b. to find the id of the cluster on which its
+ currently executing. ("HVC #2")
3. handle_switchover.s
@@ -332,13 +333,13 @@ B Code layout overview
Virtualization extensions:
1. Hides any microarchitectural differences between the
- Cortex-A15 & Kingfisher processors visible to the
+ Cortex-A15 & Cortex-A7 processors visible to the
payload software.
2. Provides a different view of the underlying hardware
than what really exists e.g. in the switching mode
it traps accesses made by the host cluster
- (Kingfisher cluster currently) to the shared vGIC
+ (Cortex-A7 cluster currently) to the shared vGIC
physical distributor interface, so that routing of
interrupts can take place correctly. In the MP mode,
the L2 control and MPIDR registers are virtualized
@@ -367,7 +368,7 @@ B Code layout overview
recognized by the HSR. Also, to deal with
microarchitectural differences the concept of a HOST
cluster is introduced. It is possible for each
- cpu to find out the system topology using the Kingfisher
+ cpu to find out the system topology using the Kingfisher
System Control Block. Once it knows the host cluster id
& whether the software is expected to switch execution
or run in the MP mode (provided at compile time), the
@@ -378,7 +379,7 @@ B Code layout overview
been built to run on [assumed to be Cortex-A15 for this
release] is termed as the TARGET while the cluster on
which the differences are expected to crop up is called
- the HOST (assumed to be Kingfisher for this release).
+ the HOST (assumed to be Cortex-A7 for this release).
The HOST environment variable is used to specify
the host cluster. The target cluster is assumed to be
the logical complement of the host i.e. cluster ids can
@@ -402,7 +403,7 @@ B Code layout overview
and target clusters if the trap handler needs
to obtain some information about the target
cluster to be able to work correctly e.g the
- Kingfisher processor cluster needs to find out
+ Cortex-A7 processor cluster needs to find out
the cache geometry of the Cortex-A15
processor cluster to be able to handle cache
maintenance operations by set/way correctly.This
@@ -448,13 +449,13 @@ B Code layout overview
8. cpus/
- Placeholders for any traps that the Kingfisher or A15 processor
+ Placeholders for any traps that the Cortex-A7 or A15 processor
cluster might want to setup. No traps need to be setup
at the moment.
9. big-little/secure_world
- Since both Kingfisher & Cortex-A15 processors support ARM
+ Since both Cortex-A7 & Cortex-A15 processors support ARM
TrustZone Security Extensions, there is certain context
that needs to be setup, saved & restored in the Secure
world.
diff --git a/docs/03-Linux-kernel-build.txt b/docs/03-Linux-kernel-build.txt
index 972725a..b5d79b2 100644
--- a/docs/03-Linux-kernel-build.txt
+++ b/docs/03-Linux-kernel-build.txt
@@ -2,14 +2,15 @@ Building and installing a Linux kernel
======================================
A suitable Linux kernel image for use with the virtualizer
-can be built as follows:
+can be built as follows (GCC toolchain used for these steps is:
+CodeSourcery Sourcery G++ Lite 2010.09 v4.5.1)
-$ tar -jxf arm-virtualizer-v2.0-ti-040911.tar.bz2
-$ cd arm-virtualizer-v2.0-ti-040911/bootwrapper
+$ tar -jxf arm-virtualizer-v2_1-171111.tar.bz2
+$ cd arm-virtualizer-v2_1-171111/bootwrapper
$ make clean
$ pushd /tmp
-$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/maz/ael-kernel.git ael-kernel.git
-$ cd ael-kernel.git
+$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/maz/arm-platforms.git arm-platforms.git
+$ cd arm-platforms.git
$ git checkout -b ael-11.06 origin/ael-11.06
$ yes | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress-new_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
@@ -23,10 +24,10 @@ $ make clean && make
.. in the top bootwrapper directory.
This will result in a file called img.axf located at
-arm-virtualizer-v2.0-ti-040911/bootwrapper/img.axf.
+arm-virtualizer-v2_1-171111/bootwrapper/img.axf.
To launch the ARM FastModel with the virtualizer, first modify
-arm-virtualizer-v2.0-ti-040911/bootwrapper/big-little-MP<x>.mxscript
+arm-virtualizer-v2_1-171111/bootwrapper/big-little-MP<x>.mxscript
as usual to fill in paths to the model binary and the img.axf files. The
mxscript file is adequately commented to assist with this.
@@ -43,11 +44,11 @@ string model = "/home/working_dir/models/RTSM_VE_Cortex-A15x4-A7x4";
The path to the img.axf file is specified using the app directive as
follows:
-string app = "arm-virtualizer-v2.0-ti-040911/bootwrapper/img.axf";
+string app = "arm-virtualizer-v2_1-171111/bootwrapper/img.axf";
The model can then be launched using:
-modeldebugger -s arm-virtualizer-v2.0-ti-040911/bootwrapper/big-little-MP<x>.mxscript
+modeldebugger -s arm-virtualizer-v2_1-171111/bootwrapper/big-little-MP<x>.mxscript
Where 'x' is the 1 or 4 respectively in the case of an MP1 model run or an
MP4 model run.
diff --git a/docs/04-Cache-hit-rate-howto.txt b/docs/04-Cache-hit-rate-howto.txt
index fec4899..60d37a5 100644
--- a/docs/04-Cache-hit-rate-howto.txt
+++ b/docs/04-Cache-hit-rate-howto.txt
@@ -49,7 +49,7 @@ C Plugin Trace sources
The GenericTrace plugin provides events which allow each cluster
to trace snoop requests originating from a different cluster that
- hit in its caches. For snoops originating from the Kingfisher cluster
+ hit in its caches. For snoops originating from the Cortex-A7 cluster
that hit in the A15 cluster, the event is 'read_for_4_came_from_snoop'
& for the opposite case the event is 'read_for_3_came_from_snoop'.
The numbers '3' & '4' in the name of the trace sources are the ids
@@ -148,7 +148,7 @@ D Putting it all together
// Lines beginning with "read_for_<x>_came_from_snoop" are a result of
// enabling the event sources for monitoring the cache hits resulting
// from snoops originating from master interface <x> on the CCI.
- // The following line indicates that a snoop from the Kingfisher cluster
+ // The following line indicates that a snoop from the Cortex-A7 cluster
// hit in the caches of the A15 cluster. It also prints the cache line
// address and whether the access was Secure or Non-secure.
read_for_4_came_from_snoop: Bus address=0x000000008ff02440 Is non secure=N
@@ -195,7 +195,7 @@ D Putting it all together
E Status of "TUBE" support
The current version of ARM FastModels (RTSM VE Cortex-A15 KF
- CCI version 6.2 Beta) implements only one 'tube'
+ CCI version MODEL_VERSION) implements only one 'tube'
interface i.e. TUBE0.
Subsequent releases will support upto four 'tube' interfaces i.e TUBE0-3.
diff --git a/docs/06-Optional-rootfs-build.txt b/docs/06-Optional-rootfs-build.txt
index eb11c60..6e372ea 100644
--- a/docs/06-Optional-rootfs-build.txt
+++ b/docs/06-Optional-rootfs-build.txt
@@ -11,7 +11,7 @@ A Introduction
The default virtualizer release contains an empty filesystem
stub located at:
- arm-virtualizer-v2.0-ti-040911./bootwrapper/payload/fsimg
+ arm-virtualizer-v2_1-171111/bootwrapper/payload/fsimg
A build using this stub doesn't contain a functional
filesytem that the Linux kernel image can use. fsimg can be
@@ -49,8 +49,8 @@ B Building and installing a Linux kernel
A suitable Linux kernel image for use with the virtualizer
can be built as follows:
- $ tar -jxf arm-virtualizer-v2.0-ti-040911.tar.bz2
- $ cd arm-virtualizer-v2.0-ti-040911/bootwrapper
+ $ tar -jxf arm-virtualizer-v2_1-171111.tar.bz2
+ $ cd arm-virtualizer-v2_1-171111/bootwrapper
$ make clean
$ pushd /tmp
$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/maz/ael-kernel.git ael-kernel.git