|author||Dietmar Eggemann <firstname.lastname@example.org>||2012-03-13 18:25:17 +0000|
|committer||Dietmar Eggemann <email@example.com>||2012-05-22 10:43:46 +0100|
Update release notes and docs subdirectory to v2.3 (3).
Incorporate changes after release notes and docs subdirectory review. Signed-off-by: Dietmar Eggemann <firstname.lastname@example.org>
5 files changed, 63 insertions, 52 deletions
diff --git a/Release_Notes.txt b/Release_Notes.txt
index cca1528..8a82c46 100644
@@ -24,7 +24,8 @@ Release notes
b. License details
- Copyright (c) 2009-12, ARM Limited. All rights reserved.
+ Copyright (c) 2009-2012, ARM Limited. All rights
Redistribution and use in source and binary forms, with
or without modification, are permitted provided that the
@@ -96,7 +97,7 @@ Release notes
This release contains the following file:
- 1. arm-virtualizer-v2_2-160212.tar.bz2
+ 1. arm-virtualizer-v2_3-130312.tar.bz2
- Contains source code for a basic boot wrapper.
@@ -169,7 +170,8 @@ Release notes
7. Bug fix to support migration of virtual interrupts is still being
tested. [Please see 'v2.2 to v2.3' in Section g.]
- 8. Support for cpu hotplug is still being subject to stress tests
+ 8. Support for cpu hotplug is still being subject to
+ stress tests.
g. Issues resolved since last release
@@ -188,11 +190,13 @@ Release notes
A DCCISW (Data Cache clean and invalidate by set/way) operation
- was being implemented as a DCCSW (Data Cache clean by set/way)
+ was being incorrectly implemented as a DCCSW
+ (Data Cache clean by set/way)
operation by the Virtualizer.
2. Calculate l2_desc correctly in CreateL3PageTable
- (big-little/common/pagetable_setup.c) for level equal 2.
+ (big-little/common/pagetable_setup.c) for level
+ equals 2.
Correct index into Level-2 page table of the 2nd Stage
translations is being calculated when CreateL3PageTable() is
@@ -209,10 +213,12 @@ Release notes
4. Fix race condition during enabling CCI coherency in warm_reset
- A race condition existed while enabling CCI coherency after a
- warm reset in the Secure world code. This could have lead to a
- case where cpus1-3 start restoring the saved context without
- taking part in CCI based coherency for a brief period of time.
+ A race condition existed while enabling CCI
+ coherency after a warm reset in the Secure world
+ code. This could have led to a case where
+ cpus1-3 start restoring the saved context
+ without taking part in CCI based coherency for a
+ brief period of time.
v2.2 to v2.3:
@@ -236,8 +242,9 @@ Release notes
2. This release has been tested using a select subset of an ARM
internal Linux based stress testing suite.
- 3. The Linux Test Project (LTP) cpu hotplug tests have been run while
- cluster switching was performed simultaneously. All tests passed.
+ 3. The Linux Test Project (LTP) cpu hotplug tests have
+ been run while cluster switching was performed
+ simultaneously. All tests passed.
i. Other information
@@ -264,6 +271,9 @@ Release notes
06-Optional-rootfs-build.txt: Instructions for building and
using rootfilesystems with the virtualizer.
+ 07-Linux-cpu-hotplug-howto.txt: Instructions & guidelines to
+ use Linux CPU hotplug.
@@ -286,4 +296,3 @@ Release notes
constructive feedback and at it's discretion, will endeavour to
incorporate any feedback in subsequent releases of this example
diff --git a/docs/01-Usage.txt b/docs/01-Usage.txt
index ff1b689..15e4f06 100644
@@ -30,15 +30,15 @@ Usage
location then this must be reflected in the first line of
the following file:
Failure to make this modification will result in a build
To build the software:
- $ tar -jxf arm-virtualizer-v2_2-160212.tar.bz2
- $ cd arm-virtualizer-v2_2-160212/bootwrapper
+ $ tar -jxf arm-virtualizer-v2_3-130312.tar.bz2
+ $ cd arm-virtualizer-v2_3-130312/bootwrapper
$ make clean && make
The resulting file is 'img.axf'.
@@ -48,12 +48,12 @@ Usage
Note that the pre-built stub kernel image is located at:
.. and the placeholder dummy root filesystem image is located
These may be replaced with custom built images such as a
suitably configured linux kernel image and a root filesystem
diff --git a/docs/02-Code-layout.txt b/docs/02-Code-layout.txt
index 9e49fa8..32a2a9a 100644
@@ -145,8 +145,8 @@ B Code layout overview
1. Simple perl script that takes an ELF image of
the Virtualizer, parses through the relevant
sections & adds those sections to the scatter
- file so that a consolidated image can be
+ file so that a consolidated image can be
@@ -322,11 +322,11 @@ B Code layout overview
1. Contains code to handle an HVC instructions
executed by the payload software:
- a. to initiate a synchronous switchover.
- ("HVC #1")
+ a. to initiate a synchronous switchover.
+ ("HVC #1").
- b. to find the id of the cluster on which its
- currently executing. ("HVC #2")
+ b. to find the id of the cluster on which
+ its currently executing. ("HVC #2").
@@ -498,8 +498,8 @@ B Code layout overview
initialise the Secure world stacks,
coherency, pagetables, to configure some
coprocessor and memory mapped peripheral
- (Coherent interconnect & shared vGIC)
- registers for use of these features by
+ (Coherent interconnect & shared vGIC)
+ registers for use of these features by
the Non-secure world.
diff --git a/docs/03-Linux-kernel-build.txt b/docs/03-Linux-kernel-build.txt
index a35b5c4..9252859 100644
@@ -5,8 +5,8 @@ A suitable Linux kernel image for use with the virtualizer
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_2-160212.tar.bz2
-$ cd arm-virtualizer-v2_2-160212/bootwrapper
+$ tar -jxf arm-virtualizer-v2_3-130312.tar.bz2
+$ cd arm-virtualizer-v2_3-130312/bootwrapper
$ make clean
$ pushd /tmp
$ git clone git://linux-arm.org/linux-2.6-lp.git linux-2.6-lp.git
@@ -24,10 +24,10 @@ $ make clean && make
.. in the top bootwrapper directory.
This will result in a file called img.axf located at
To launch the ARM FastModel with the virtualizer, first modify
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.
@@ -44,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
-string app = "arm-virtualizer-v2_2-160212/bootwrapper/img.axf";
+string app = "arm-virtualizer-v2_3-130312/bootwrapper/img.axf";
The model can then be launched using:
-modeldebugger -s arm-virtualizer-v2_2-160212/bootwrapper/big-little-MP<x>.mxscript
+modeldebugger -s arm-virtualizer-v2_3-130312/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/07-Linux-cpu-hotplug-howto.txt b/docs/07-Linux-cpu-hotplug-howto.txt
index 873a88c..90343eb 100755..100644
@@ -1,43 +1,46 @@
-Instructions & Guidelines to use Linux cpu hotplug
+Instructions & guidelines to use Linux CPU hotplug
This note describes how the Virtualizer software should
- be configured for use with the Linux cpu hotplug
+ be configured for use with the Linux CPU hotplug
subsystem. It also mentions conditions that both Linux
and the Virtualizer software should fulfil for cpu
hotplug to work.
- A cpu hotplug operation involves migration of all tasks
- and interrupts from the cpu in question before flushing
- the relevant cache level(s) and shutting down the cpu.
- A cpu is shutdown by programming the relevant RST_HOLDx
+ A CPU hotplug operation involves migration of all tasks
+ and interrupts from the CPU in question before flushing
+ the relevant cache level(s) and shutting down the CPU.
+ A CPU is shutdown by programming the relevant RST_HOLDx
register in the KingFisher System Control Block (KFSCB).
The Virtualizer software traps accesses to the KFSCB made
- by Linux to shutdown a cpu to save its HYP mode context
+ by Linux to shutdown a CPU to save its HYP mode context
and request the Secure world to save its own context. It
then proceeds with the shutdown operation as Linux
originally intended. The key assumption made here is that
Linux will access the KFSCB RST_HOLDx registers only
- during a cpu hotplug operation.
+ during a CPU hotplug operation.
- It is also assumed that its not possible hotplug cpu0.
- Hence, Linux cpu hotplug will work only with the MPx4
- variant of the big.LITTLE FastModels.
+ It is also assumed that its not possible to hotplug CPU0.
+ Hence, Linux CPU hotplug will work only with the MPx4
+ variant of the big.LITTLE FastModels. The CPU choice here
+ isn't prescriptive and does not imply that CPU0 should
+ always be the last man standing CPU in a hotplug capable
+ system. It was chosen for simplicity.
The Virtualizer software is built to switch the payload
software between clusters asynchronously. There is a
- possibility of unpredictable behaviour happenning if a
- cluster switch is initiated when a cpu hotplug operation
+ possibility of unpredictable behaviour happening if a
+ cluster switch is initiated when a CPU hotplug operation
is in progress. Hence the following two conditions need
to be met to be able to use the Virtualizer software in
- conjunction with Linux cpu hotplug:
+ conjunction with Linux CPU hotplug:
- 1. The Virtualizer software should be built to support
+ 1. The Virtualizer software must be built to support
synchronous switching by setting the ASYNC
environment variable to FALSE prior to building it.
For example with the tcsh shell:
@@ -45,7 +48,7 @@ B Guidelines
setenv ASYNC FALSE; make
2. Linux should invoke a cluster switch explicitly
- after ensuring that no cpu hotplug operation is in
+ after ensuring that no CPU hotplug operation is in
progress and vice versa. It can invoke a cluster
switch by using the "HVC #1" assembler instruction
from the relevant code.
@@ -54,7 +57,7 @@ C Instructions
1. Build a linux kernel as per the steps listed in
- The configuration includes support for cpu
+ The configuration includes support for CPU
hotplug by default.
2. Use an existing root filesystem or build a new
@@ -71,12 +74,11 @@ C Instructions
4. Boot the resulting "bootwrapper/img.axf" file
using the "bootwrapper/big-little-mp4.mxscript"
file. At the command prompt, the Linux cpu
- hotplug commands to hotplug cpus should work
- as expected. For example, to hotplug cpu1 do:
+ hotplug commands to hotplug CPUs should work
+ as expected. For example, to hotplug CPU1 do:
echo 0 > /sys/devices/system/cpu/cpu1/online
- To bring cpu1 online do:
+ To bring CPU1 online do:
echo 1 > /sys/devices/system/cpu/cpu1/online