|author||Dietmar Eggemann <email@example.com>||2012-03-12 17:48:04 +0000|
|committer||Dave Martin <firstname.lastname@example.org>||2012-04-19 11:18:43 +0100|
Update release notes and docs subdirectory to v2.3.
Signed-off-by: Dietmar Eggemann <email@example.com>
4 files changed, 83 insertions, 14 deletions
diff --git a/Release_Notes.txt b/Release_Notes.txt
index 3c48778..5e87ac9 100644
@@ -52,7 +52,7 @@ Release notes
d. Product status
- ARM Virtualizer for Cortex-A15/Cortex-A7 Task Migration v2.2
+ ARM Virtualizer for Cortex-A15/Cortex-A7 Task Migration v2.3
e. Web address
@@ -70,11 +70,11 @@ Release notes
a. Product release status
- b. ARM Virtualizer software release v2.2
+ b. ARM Virtualizer software release v2.3
- This software release is a v2.2 snapshot of the ARM
+ This software release is a v2.3 snapshot of the ARM
The ARM Virtualizer software is example code that demonstrates
@@ -128,7 +128,27 @@ Release notes
e. New features
- Release v2.2 is a bug fix only release.
+ 1. It is possible to hotplug a cpu using the mechanisms provided
+ by the Linux 3.x cpu hotplug implementation e.g.
+ To offline cpu1:
+ echo 0 > /sys/devices/system/cpu/cpu1/online
+ To bring cpu1 online:
+ echo 1 > /sys/devices/system/cpu/cpu1/online
+ This feature is supported only when the Virtualizer software
+ has been built to support synchronous switching. It is not
+ possible to hotplug cpu0.
+ 2. Context of the registers specified by the v7.1 Debug architecture
+ is saved and restored during a cluster context switch operation.
+ 3. Use of inter-processor interrupts for HYP mode communication has
+ been made generic. It is possible to use an IPI for a particular
+ type of HYP mode operation. Requesting a cluster switch and
+ completing a virtual irq migration operation are the two types of
+ HYP mode operations that are currently supported.
f. Known issues
@@ -147,6 +167,17 @@ Release notes
Cortex-A7 and Cortex-A15 are not hidden through the use of
Virtualization extensions by the Virtualizer.
+ 5. Save & Restore of Debug context is done only when the memory mapped
+ interface is supported. Doing the same using the cp14 interface is
+ currently not supported.
+ 6. Save & Restore of Debug context is still being tested.
+ 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
g. Issues resolved since last release
1. Bug fixes
@@ -190,6 +221,15 @@ Release notes
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:
+ 1. When a physical interrupt is migrated from one cpu interface to
+ another on any cluster, it is possible that its virtual interrupt
+ is in a pending state in the HYP view interface list registers.
+ It is now ensured that the virtual interrupt is also migrated by
+ requesting it to be added to the queue of virtual interrupts on
+ the destination cpu interface.
h. Test cases and results
In accordance with the delivery’s status as example code, testing is
@@ -203,6 +243,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.
i. Other information
diff --git a/docs/01-Usage.txt b/docs/01-Usage.txt
index 39d3b7f..ff1b689 100644
@@ -59,6 +59,17 @@ Usage
suitably configured linux kernel image and a root filesystem
+ The Virtualizer software image supports asynchronous switching
+ by default. This means that an interrupt causes a cluster
+ switch approx. every 12 million cycles. The payload software
+ can request the Virtualizer software to invoke a switch
+ explicitly. This can be done using the "HVC #1" ARM assembler
+ instruction from the payload software. This is the synchronous
+ method of switching. The two methods are mutually exclusive.
+ The Virtualizer software can be built with support for
+ synchronous switching by setting the ASYNC environment variable
+ to FALSE prior to building it.
Look at docs/03-Linux-kernel-build.txt for instructions on
building a suitable Linux kernel.
diff --git a/docs/02-Code-layout.txt b/docs/02-Code-layout.txt
index ba1690e..9e49fa8 100644
@@ -251,6 +251,8 @@ B Code layout overview
5. Cache maintenance, Stack manipulation and Locking
+ 6. Use of IPIs for HYP mode communication.
1. This directory contains the headers specific to HYP
@@ -272,11 +274,18 @@ B Code layout overview
1. Contains top level routines to save and
restore the Non-secure world context.
- 2. It requests the secure world to save its own
- context and bring the inbound cluster out of
- reset. It also uses events to synchronise
- the switching process between the inbound
- and outbound clusters.
+ 2. If the type of operation is a cluster
+ switch it requests the secure world to save
+ its own context and bring the inbound
+ cluster out of reset. It also uses events to
+ synchronise the switching process between
+ the inbound and outbound clusters.
+ 3. If the type of operation is a cpu hotplug
+ it requests the secure world to save
+ its own context and then saves only the
+ relevant HYP mode context before placing the
+ cpu in reset.
@@ -441,6 +450,12 @@ B Code layout overview
1. Generic function that handles trapped accesses
to the shared vGIC.
+ 7. kfscb_trap_handler.c
+ 1. Generic function that handles trapped accesses
+ to the Kingfisher System Control Block. This is
+ usually done to start a cpu hotplug operation.
Header files specific to the Virtualisor code.
diff --git a/docs/03-Linux-kernel-build.txt b/docs/03-Linux-kernel-build.txt
index 876cce3..a35b5c4 100644
@@ -9,10 +9,10 @@ $ tar -jxf arm-virtualizer-v2_2-160212.tar.bz2
$ cd arm-virtualizer-v2_2-160212/bootwrapper
$ make clean
$ pushd /tmp
-$ 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
+$ git clone git://linux-arm.org/linux-2.6-lp.git linux-2.6-lp.git
+$ cd linux-2.6-lp.git
+$ git checkout -b a15-hotplug origin/a15-hotplug
+$ yes | make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_a15_virt_defconfig
$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j4
$ cp $OLDPWD/arch/arm/boot/Image payload/kernel