summaryrefslogtreecommitdiff
path: root/opemembedded/vexpress-lsk
diff options
context:
space:
mode:
authorRyan Harkin <ryan.harkin@linaro.org>2013-11-15 15:29:23 +0000
committerRyan Harkin <ryan.harkin@linaro.org>2013-11-15 15:29:23 +0000
commite8fb750558b8a69dd45a019687e5f43680c17917 (patch)
tree4c196d7048c66c5b3adf88b7954c22ef6a7beb66 /opemembedded/vexpress-lsk
parentec12bb048faee5f95288dadcdb2cb703775f4a2e (diff)
13.11: re-org file structure
Fathi has recommended a better file structure that also matches the server layout. The UEFI release notes may get moved into a separate repo. Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
Diffstat (limited to 'opemembedded/vexpress-lsk')
-rw-r--r--opemembedded/vexpress-lsk/FIRMWARE.textile163
-rw-r--r--opemembedded/vexpress-lsk/HACKING.textile64
-rw-r--r--opemembedded/vexpress-lsk/INSTALL.textile85
-rw-r--r--opemembedded/vexpress-lsk/README.textile167
-rw-r--r--opemembedded/vexpress-lsk/RTSM.textile88
5 files changed, 567 insertions, 0 deletions
diff --git a/opemembedded/vexpress-lsk/FIRMWARE.textile b/opemembedded/vexpress-lsk/FIRMWARE.textile
new file mode 100644
index 0000000..28177a8
--- /dev/null
+++ b/opemembedded/vexpress-lsk/FIRMWARE.textile
@@ -0,0 +1,163 @@
+Ensure that you update your Versatile Express board firmware to the latest version. To update your VE board firmware, please follow the instructions below:
+
+* Connect and mount your Versatile Express motherboard USB mass storage device to your PC
+* Install the Recovery firmware from the "v5.0 VE DVD":https://silver.arm.com/download/download.tm?pv=1335158 onto your board.
+* Download ARM's CPU Migration patch for version 5.0 from "silver.arm.com":https://silver.arm.com/download/download.tm?pv=1357386
+** Unzip the firmware zip to the root of the motherboard mounted drive
+** Please contact "support@arm.com":mailto:support@arm.com for any issues related this firmware update
+
+* Download additional Linaro firmware (image.txt, board.txt, uefi.bin, ...) from "https://wiki.linaro.org/ARM/VersatileExpress?action=AttachFile&do=get&target=vemsd-armlt-20130626-001.zip":https://wiki.linaro.org/ARM/VersatileExpress?action=AttachFile&do=get&target=vemsd-armlt-20130626-001.zip
+** Unzip the firmware zip to the root of the motherboard mounted drive
+** Please "contact Linaro":http://www.linaro.org/engineering/getting-started/discuss for any issues related to this firmware update
+
+* Unmount the Versatile Express motherboard
+* Reboot the Versatile Express board
+* At the "Cmd> " prompt, type the following commands:
+Cmd> flash
+Cmd> eraseall
+Cmd> exit
+Cmd> reboot
+** You may need to configure UEFI to boot from the image that you've created. See the "UEFI page":https://wiki.linaro.org/ARM/UEFI#Configure_UEFI on the Linaro Wiki for more details on configuring UEFI.
+
+You may want to set /media/VEMSD/config.txt AUTORUN to TRUE to be make the CoreTile boot from power on.
+
+For TC2, you should set the DIP swich closest to the black reset button is down so that the Boot Monitor runs the boot script on power on.
+
+<br>
+
+h2. Using TC2 as an A7-only or A15-only board
+
+h3. Configure the Firmware
+
+It is possible to configure a TC2 development board as an A7 or A15 only board. To do this, the developer should modify the /SITE1/HBI0249A/board.txt file on the Versatile Express firmware drive, usually mounted at /media/VEMSD.
+
+The relevant register is CFGREG6 on pages 78-81 of the following TRM:
+"http://infocenter.arm.com/help/topic/com.arm.doc.ddi0503e/DDI0503E_v2p_ca15_a7_tc2_trm.pdf":http://infocenter.arm.com/help/topic/com.arm.doc.ddi0503e/DDI0503E_v2p_ca15_a7_tc2_trm.pdf
+
+You should add the following setting in board.txt:
+
+bc. SCC: 0x018 0x1FFFFFFF ; CFGRW6 - Reset register default (both clusters active)
+
+ - or -
+
+bc. SCC: 0x018 0x00001FFF ; CFGRW6 - A15-only config
+
+ - or -
+
+bc. SCC: 0x018 0x1FFFF000 ; CFGRW6 - A7-only config
+
+Remember to update TOTALSCCS, eg, if it was 32 and you've added one register, it becomes 33:
+
+bc. TOTALSCCS: 33 ;Total Number of SCC registers
+
+h3. Configure the Device Tree
+
+Once the hardware is booting as an A7 or A15 only board, next you need to remove the unused CPU nodes from the device tree.
+
+In the kernel source tree, edit arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts and remove the unused CPUs from this section:
+
+bc. cpus {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+bc. cpu2: cpu@2 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0x100>;
+ cluster = <&cluster1>;
+ core = <&core2>;
+ clock-frequency = <800000000>;
+ cci-control-port = <&cci_control2>;
+ };
+
+bc. cpu3: cpu@3 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0x101>;
+ cluster = <&cluster1>;
+ core = <&core3>;
+ clock-frequency = <800000000>;
+ cci-control-port = <&cci_control2>;
+ };
+
+bc. cpu4: cpu@4 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a7";
+ reg = <0x102>;
+ cluster = <&cluster1>;
+ core = <&core4>;
+ clock-frequency = <800000000>;
+ cci-control-port = <&cci_control2>;
+ };
+
+bc. cpu0: cpu@0 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a15";
+ reg = <0>;
+ cluster = <&cluster0>;
+ core = <&core0>;
+ clock-frequency = <1000000000>;
+ cci-control-port = <&cci_control1>;
+ };
+
+bc. cpu1: cpu@1 {
+ device_type = "cpu";
+ compatible = "arm,cortex-a15";
+ reg = <1>;
+ cluster = <&cluster0>;
+ core = <&core1>;
+ clock-frequency = <1000000000>;
+ cci-control-port = <&cci_control1>;
+ };
+ };
+
+Next, you need to remove the GIC entries that are associated with the removed CPUs, eg:
+
+bc. gic: interrupt-controller@2c001000 {
+ compatible = "arm,cortex-a15-gic", "arm,cortex-a9-gic";
+ #interrupt-cells = <3>;
+ #address-cells = <0>;
+ interrupt-controller;
+ reg = <0 0x2c001000 0 0x1000>,
+ <0 0x2c002000 0 0x1000>,
+ <0 0x2c004000 0 0x2000>,
+ <0 0x2c006000 0 0x2000>;
+ interrupts = <1 9 0xf04>;
+
+bc. gic-cpuif@0 {
+ compatible = "arm,gic-cpuif";
+ cpuif-id = <0>;
+ cpu = <&cpu0>;
+ };
+
+bc. gic-cpuif@1 {
+ compatible = "arm,gic-cpuif";
+ cpuif-id = <1>;
+ cpu = <&cpu1>;
+ };
+
+bc. gic-cpuif@2 {
+ compatible = "arm,gic-cpuif";
+ cpuif-id = <2>;
+ cpu = <&cpu2>;
+ };
+
+bc. gic-cpuif@3 {
+ compatible = "arm,gic-cpuif";
+ cpuif-id = <3>;
+ cpu = <&cpu3>;
+ };
+
+bc. gic-cpuif@4 {
+ compatible = "arm,gic-cpuif";
+ cpuif-id = <4>;
+ cpu = <&cpu4>;
+ };
+ };
+
+
+Finally, you need to re-compile the DTS file and copy it to the SD card used to boot the system, eg:
+
+bc. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs
+cp arch/arm/boot/dts/vexpress-v2p-ca15_a7.dtb /media/boot/v2p-ca15-tc2.dtb
+
diff --git a/opemembedded/vexpress-lsk/HACKING.textile b/opemembedded/vexpress-lsk/HACKING.textile
new file mode 100644
index 0000000..3d0d8d8
--- /dev/null
+++ b/opemembedded/vexpress-lsk/HACKING.textile
@@ -0,0 +1,64 @@
+OpenEmbedded images are comprised of a Hardware Pack ("HWPack":https://wiki.linaro.org/HardwarePacks) and a root file system. The hardware pack contains the kernel, boot loader and Device Tree blobs (if applicable). There is no need to rebuild the RootFS since it is comprised of a large number of debian packages. Instead, the best approach is to use an image, which you can create as outlined in the "Binary Image Installation" tab then replace the kernel with your compiled one. This is common practice that many engineers deploy when wanting a standard Linux image to use for testing and development purposes.
+
+The following instructions will walk you through how to obtain the kernel source, build it, and add it to a pre-existing image.
+
+h2. Prerequisites
+
+* Ubuntu 12.04 64 bit system. You can download Ubuntu from "ubuntu.com":http://www.ubuntu.com
+* git and toolchain. You can get those by typing the following command in your terminal
+
+bc. sudo apt-get install build-essential git gcc-arm-linux-gnueabi
+
+h2. Get the source
+
+You can use GIT to obtain the kernel source code for this release:
+
+bc. git clone git://git.linaro.org/kernel/linux-linaro-tracking.git
+cd linux-linaro-tracking
+git checkout ll_20131018.0
+
+h3. Create a kernel config
+
+Do not use the defconfig for Versatile Express, instead, build a config from the config fragments that Linaro provides:
+
+bc. ARCH=arm scripts/kconfig/merge_config.sh \
+linaro/configs/linaro-base.conf \
+linaro/configs/distribution.conf \
+linaro/configs/big-LITTLE-MP.conf \
+linaro/configs/vexpress.conf
+
+Note: the config fragments are part of the git repository and the source tarball.
+
+h3. Build the kernel
+
+To build the kernel uImage, use the following command:
+
+bc. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- LOADADDR=0x60008000 uImage
+
+h2. Install your kernel
+
+This section is common for both Android and OpenEmbedded.
+
+* Create the Device Tree blob if you don’t have one in your Linaro image (note, the A9 Core Tile boots using an ATAGS kernel so there is no need for a device tree blob):
+
+bc. make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- dtbs
+
+* Insert the SD card containing the Linaro disk image into your PC SD card reader
+
+* Copy the kernel onto the memory card using
+
+bc. cp arch/arm/boot/uImage /media/boot/
+
+* Copy the device tree blob
+** For A9 CoreTile: no device tree blob is needed
+** For A5 CoreTile: @cp arch/arm/boot/dts/vexpress-v2p-ca5s.dtb /media/boot/v2p-ca5s.dtb@
+** For A15 CoreTile (TC1): @cp arch/arm/boot/dts/vexpress-v2p-ca15-tc1.dtb /media/boot/v2p-ca15-tc1.dtb@
+** For A15_A7 CoreTile (TC2): @cp arch/arm/boot/dts/vexpress-v2p-ca15_a7.dtb /media/boot/v2p-ca15-tc2.dtb@
+
+* Eject the memory card from your PC by using the following command
+
+bc. eject /media/boot
+
+* Insert the memory card into the Versatile Express board and power it on
+
+* You should boot your image using your own compiled kernel
diff --git a/opemembedded/vexpress-lsk/INSTALL.textile b/opemembedded/vexpress-lsk/INSTALL.textile
new file mode 100644
index 0000000..d475805
--- /dev/null
+++ b/opemembedded/vexpress-lsk/INSTALL.textile
@@ -0,0 +1,85 @@
+Linaro OpenEmbedded images are made up of two components. The "Hardware Pack":https://wiki.linaro.org/HardwarePacks, which contains the kernel, boot loader and/or Device Tree blob and a Root file system (RootFS) of your choice to generate an image.
+
+Linaro provides two methods for installing Linaro binary builds:
+
+# Using a pre-built image, which you can download
+# Assembling your own image using provided components
+
+h2. Pre-Installation Steps
+
+Before any installation begins, it is important that you ensure you Versatile Express board has the latest firmware and boot loader installed. Please check the "Firmware Update" tab on this page for the latest updates and installation instructions.
+
+h2. Using pre-built image
+
+h3. Prerequisites
+
+* Ubuntu 12.04 64 bit or newer on your desktop PC ("www.ubuntu.com":http://www.ubuntu.com)
+* 4GB SD card or larger
+* Latest firmware installed onto the Versatile Express. Please see "Firmware Update" tab
+* This release "pre-built image":http://releases.linaro.org/13.10/openembedded/vexpress-lsk/vexpress-openembedded_alip-armv7a-gcc-4.8_20131021-500.img.gz.
+
+h3. Installation Steps
+
+* Unzip the downloaded pre-built image
+* Insert SD card into your PC and note the assigned @'/dev/sdX'@
+
+bc. dmesg
+SDCARD=/dev/sdX # sdcard found from dmesg above
+zcat vexpress-openembedded_alip-armv7a-gcc-4.8_20131021-500.img.gz | sudo dd bs=64k of=$SDCARD
+
+When the image is created, skip down to the section "Booting the image".
+
+*Note:* Windows users may use the "Image Writer for Windows.":https://launchpad.net/win32-image-writer/+download
+
+<hr>
+
+h2. Building a custom image using pre-built components
+
+Sometimes, you may wish to build your own custom image for a Versatile Express. Perhaps you wish to use a more recent snapshot of the "hardware pack":https://wiki.linaro.org/HardwarePacks or take the latest Android build. Whatever the reason, you will want to use the "Linaro Image Tools":https://wiki.linaro.org/Linaro-Image-Tools to create a custom image.
+
+Using components to generate the image will yield the same functionality found in the pre-built image of the same release.
+
+h3. Prerequisites
+
+* Ubuntu 12.04 64 bit or newer on your desktop PC ("www.ubuntu.com":http://www.ubuntu.com)
+* Download Artifacts from above or use the following command in your terminal
+
+bc. wget http://releases.linaro.org/13.10/openembedded/vexpress-lsk/hwpack_linaro-lsk-vexpress_20131021-500_armhf_supported.tar.gz
+wget http://releases.linaro.org/13.10/openembedded/vexpress-lsk/linaro-image-alip-genericarmv7a-20131021-134.rootfs.tar.gz
+
+* Get "Linaro image tools":https://wiki.linaro.org/Linaro-Image-Tools. There are multiple ways you can get the latest Linaro Image Tools:
+
+** Method 1: Install them from the Linaro Image Tools "PPA":https://launchpad.net/~linaro-maintainers/+archive/tools
+
+bc. sudo add-apt-repository ppa:linaro-maintainers/tools
+sudo apt-get update
+sudo apt-get install linaro-image-tools
+
+** Method 2: Building from source
+
+bc. wget http://releases.linaro.org/13.10/components/platform/linaro-image-tools/linaro-image-tools-2013.10.tar.gz
+
+* Insert SD card and note the assigned @'/dev/sdX'@ or @'/dev/mmcblk0'@
+
+bc. dmesg | less
+
+Look for a line that looks like the following at the end of the log
+
+@[288582.790722] sdc: sdc1 sdc2 sdc3 sdc4 <sdc5 sdc6 >@
+
+Or, if your machine uses '/dev/mmcblkX', you may see a line line this:
+
+@[10770.938042] mmcblk0: p1 p2 p3 p4 < p5 p6 >@
+
+*WARNING:* In the next step, make sure you use /dev/"whatever you see above". *You can erase your hard drive* with the wrong parameter.
+
+* Create media
+
+bc. sudo linaro-media-create --mmc /dev/sdX --dev vexpress --hwpack hwpack_linaro-lsk-vexpress_20131021-500_armhf_supported.tar.gz --binary linaro-image-alip-genericarmv7a-20131021-134.rootfs.tar.gz
+
+h2. Booting the image
+
+After the media create tool has finished executing, remove the SD card from your PC and insert it into the Versatile Express board.
+
+Before you can boot the image you will need to install the UEFI boot loader into NOR flash and update the Versatile MMC card configuration files. The instructions on the Firmware Update tab provide information on how to do this and how to configure UEFI to specify the SD card as a boot device.
+
diff --git a/opemembedded/vexpress-lsk/README.textile b/opemembedded/vexpress-lsk/README.textile
new file mode 100644
index 0000000..5e0eb74
--- /dev/null
+++ b/opemembedded/vexpress-lsk/README.textile
@@ -0,0 +1,167 @@
+h1. Linaro Stable Kernel (LSK) 13.10 Release for Versatile Express (OpenEmbedded)
+
+p. The Linaro Stable Kernel (LSK) is produced, validated and released by Linaro and is based on the linux stable kernel tree. It is produced to satisfy the requirements of Linaro members. The LSK focuses on quality and stability and is therefore a great basis for member products. It also includes backports of commonly desired features, provided they meet the quality requirements, and also any bug fixes.
+
+p. Linaro releases monthly binary images for the ARM "Versatile Express":http://www.arm.com/products/tools/development-boards/versatile-express/index.php including support for Cortex-A9, Cortex-A5, TC2 (big.LITTLE) CoreTiles and RTSM.
+
+p. For support matters related to ARM hardware or firmware images downloaded from ARM sites, please contact "ARM support":mailto:support@arm.com
+
+p. This release includes Linaro OpenEmbedded for both Versatile Express and Real-Time System Model ("RTSM":http://www.arm.com/products/tools/software-tools/ds-5/rtsm-simulator.php). The images are able to boot A5, A9 and TC2 using UEFI. Sources are also made available so you can build your own images (see the "'Building from Source'":https://releases.linaro.org/13.10/openembedded/vexpress-lsk/#tabs-3 tab).
+
+h2. About the TC2 Engineering Build
+
+This release is based on the Linux v3.10.16 kernel. As a consequence, almost all of the patches in the ARM Landing Team tree have been rebased and refactored to account for the latest upstream content.
+
+The TC2 CoreTile is the first example of a big.LITTLE system shipped by ARM and serves as a platform for development and test of big.LITTLE software. TC2 contains a tri-core Cortex-A7 cluster and a dual-core Cortex-A15 cluster linked using the CCI-400 coherent interconnect.
+
+The release contains the big.LITTLE MP patchset developed by ARM. This patchset is hosted by Linaro and can be found in the linked "git repository":https://git.linaro.org/gitweb?p=arm/big.LITTLE/mp.git;a=shortlog;h=refs/heads/big-LITTLE-MP-latest. These patches have been developed and rigorously tested in order to enable the ARM Versatile Express V2P-CA15_A7 CoreTile (TC2) to run in full MP mode. This functionality has been optimised for energy and performance bringing it close to the Cortex-A7 (LITTLE) in energy consumption with near Cortex-A15 (big) performance. The patchset also includes optimizations that provide a considerable performance uplift across a wide range of benchmarks. The functionality introduced by this patchset is stable and ready for use on other platforms. Note that at present this LSK release is the reference point for big.LITTLE MP functionality.
+
+The patches in the big.LITTLE MP patchset are generic and applicable to big.LITTLE systems with minimal porting effort. To ease porting, the patches are also available as an isolated package located "here":https://wiki.linaro.org/ARM/VersatileExpress?action=AttachFile&do=get&target=big-LITTLE-MP-scheduler-patchset-13.10-lsk.tar.bz2. This package may be used directly by partners interested in porting the big.LITTLE MP scheduler functionality to their custom platform. Please contact "ARM support":mailto:support-sw@arm.com?subject=Query%20about%20ARM%20big.LITTLE%20MP%20patchset%20package in case of any queries related to this package.
+
+Also provided is optional configurable kernel support for an implementation of ARM's Power State Co-ordination Interface (PSCI). This support is disabled by default. To use PSCI support you will require secure firmware that is currently available to ARM licensees upon request to ARM. Please contact "ARM support":mailto:support-sw@arm.com?subject=Access%20to%20PSCI to get access to the firmware code.
+
+In this release the big.LITTLE MP patchset has been extended with experimental support for small task packing (see patch list below). At present, this functionality is disabled in the kernel configuration.
+
+h3. Scheduler modifications to support big.LITTLE
+
+The following patches make up the big.LITTLE MP patchset.
+
+| "sched: implement usage tracking":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=0841c6ae0b53d43e4634cf4a1f88407b93c15399 | |
+| "sched: entity load-tracking load_avg_ratio":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=be6ef1d56e70bfdfd79174d7d23a4b12d5b911ee | |
+| "sched: Task placement for heterogeneous systems based on task load-tracking":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=798e82cab1a39f4d75796be024c4d7b08bc062e8 | |
+| "sched: Forced task migration on heterogeneous systems":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=2dd22b22c95851445c189c3d4708c027aa19cf5f | |
+| "sched: Introduce priority-based task migration filter":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=943106d9437fcced79c4e48ed794410e5f750b4c | |
+| "ARM: Add HMP scheduling support for ARM architecture":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=d278bb1c4d5191e0d9b9911337e3b31a100a7f9f | |
+| "ARM: sched: Use device-tree to provide fast/slow CPU list for HMP":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=dc68bd92107d8990f4608d8f42744770fe203f7f | |
+| "ARM: sched: Setup SCHED_HMP domains":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=1baaccf456ece33b8fa02f8cdf3977d6a95b393c | |
+| "sched: Add ftrace events for entity load-tracking":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=b9d3d5612899de4f8372ecfbc4c8f4ba5aa170ec | |
+| "sched: Add HMP task migration ftrace event":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=0d811e649ad31994e8f06b6b18101f249b34e912 | |
+| "sched: SCHED_HMP multi-domain task migration control":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=76525733b4f4e0fdcc188dfe23941024ae626979 | |
+| "sched: Enable HMP priority filter by default":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=1b8ae251638844173bd04a4c9e543581f3d92fbd | |
+| "ARM: sched: Avoid empty 'slow' HMP domain":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=362036513b1dff299b2035d5b928a203742b98d7 | |
+| "sched: Only down migrate low priority tasks if allowed by affinity mask":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=eeebbf595c8dcd6392537c4d13b8cda78001f4e5 | |
+| "sched: fix arch_get_fast_and_slow_cpus to get logical cpumask correctly":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=a9f9bca843e44144670c660638274363f34b9847 | |
+| "sched: Do not ignore grouped tasks during HMP forced migration.":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=d2c920023cbc456414f8e07ff253a89be535b41b | |
+| "sched: Ignore offline CPUs in HMP migration & load stats":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=b64cc6f7e54b97536dbecc05d193b31b27feecf1 | |
+| "ARM: Change load tracking scale using sysfs":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=0e48eed05c47aa2e00b772a519b36286e466621e | |
+| "ARM: Experimental Frequency-Invariant Load Scaling Patch":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=71b5dbd6d527d5de8aaef7e1f8658df95caf28aa | |
+| "ARM: Fix build breakage when big.LITTLE.conf is not used.":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=ae570aeb1d40d531a498e53e2a815a52996f0749 | |
+| "sched: Basic global balancing support for HMP":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=cf71912f481c7b6fc39e9b2021e8f9c058116c26 | |
+| "sched: cfs.nr_running does not contain the intended metric":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=7e6446630039fcbabb9582ebefdcbc30de32c0e2 | |
+| "Revert sched: Enable HMP priority filter by default":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=7362251d8a422dcba5c56408b92fc2b6ad03b10c | |
+| "HMP: Use unweighted load for hmp migration decisions":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=ede58a69a32b187899e6cccbbd299a04d3f50b71 | |
+| "HMP: Select least-loaded CPU when performing HMP Migrations":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=08d7db89a214a138516419a85e17272b09180abd | |
+| "HMP: Avoid multiple calls to hmp_domain_min_load in fast path":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=3f3b210703f80fe60dbfa13c25b30d4effbf9f4b | |
+| "HMP: Force new non-kernel tasks onto big CPUs until load stabilises":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=954978dd2cff81cc15745b9e581a1709e238f8ef | |
+| "sched: Restrict nohz balance kicks to stay in the HMP domain":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=6eada0087366d8aec6bc38348a68f721f538cc5c | |
+| "HMP: experimental: Force all rt tasks to start on little domain":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=4ab2679351e9566a6b0822f2d841a902758ba066 | |
+| "HMP: select 'best' task for migration rather than 'current'":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=ee52487aaf659ef630ce3371de0e59944253581b | |
+| "sched: HMP fix traversing the rb-tree from the curr pointer":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=aaba2453951b3743d003be228102e1da63c75326 | |
+| "sched: track per-rq 'last migration time'":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=5fad81c7739db3a1fc6380dcc3d7902666ed5ee8 | |
+| "HMP: Modify the runqueue stats to add a new child stat":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=b98cd6acc86f2c3bc10902476836746727b73ba9 | |
+| "HMP: Explicitly implement all-load-is-max-load policy for HMP targets":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=6b695bd8a4e2c86cc466010517c0260dc3653742 | |
+| "sched: HMP change nr_running offload metric":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=1f435579ea80d4639061435d8337df5a2c92e530 | |
+| "HMP: Implement idle pull for HMP":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=db20b7088c6d7f7920dace95c7fc8d9955650214 | |
+| "HMP: Access runqueue task clocks directly.":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=de66e01565848d0236ca9e7e9e2f6ecd5c27a021 | |
+| "HMP: Update migration timer when we fork-migrate":https://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=18e3c3d2cc1346cb7cc2e3fd777b2c6f4fbb6135 | |
+| "sched: HMP: Change default HMP thresholds":http://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=d73babce9a77f8143136fe0d7b6c1ae44b5652dc |<div style="color:white;background-color:green">New in this release</div> |
+| "sched: HMP: Additional trace points for debugging HMP":http://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=7b8e0b3f2af55b1ffb5c10be1daa59d8dc21d140 | <div style="color:white;background-color:green">New in this release</div> |
+| "arm: ipi raise/start/end tracing":http://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=2353c1f8009c14e89b323b18ae246c485fc034e4 | <div style="color:white;background-color:green">New in this release</div> |
+| "smp: smp_cross_call function pointer tracing":http://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=5ecaba3d9f4ab514fe8d383534e24b306f116896 | <div style="color:white;background-color:green">New in this release</div> |
+| "sched: HMP: fix potential logical errors":http://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=2e14ecb254a3eaa2993b5dd04014f41e1d6188ce | <div style="color:white;background-color:green">New in this release</div> |
+| "hmp: Remove potential for task_struct access race":http://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=cd5c2cc93d3dc581a19c62442f40895500d2a34c | <div style="color:white;background-color:green">New in this release</div> |
+| "HMP: Implement task packing for small tasks in HMP":http://git.linaro.org/gitweb?p=kernel/linux-linaro-stable.git;a=commit;h=d8063e7015122eb3f6173acf496171def8941734 | <div style="color:white;background-color:green">New in this release</div> |
+
+h3. Platform Support.
+
+In addition to the big.LITTLE MP work the TC2 platform support includes:
+** TC2: reset CPUs spuriously woken up on cluster power up
+** vexpress: add shim layer for psci backend on TC2
+** vexpress: allow native pm ops backends to probe for psci suppport
+** psci: add cmdline option to enable use of psci
+** psci: add probe function to discover presence of a psci implementation
+** psci: convert psci '-EALREADYON' error code to linux '-EAGAIN'
+** vexpress: add psci support in TC2 device tree
+** psci: add constants to specify affinity levels
+** TC2: replace hard coded cluster and cpu values with constants
+** TC2: use generic accessors to extract cpu and cluster ids
+** CPUidle & CPUfreq support
+** hwmon driver allowing, amongst other things, TC2's power, current and energy measurements to be read through standard sysfs interfaces
+** Common clocks implementation
+** Regulator driver
+** Drivers for previously hard-coded configuration interfaces
+** Support self-hosted debugging through idle
+** In addition to the CPU PMUs the perf framework supports the CCI-400 PMUs
+** A patch from Thomas Gliexner which supports a IRQ affinity mask being specified in the command line. This can be used to reduce unnecessary IRQ wakeups on Cortex-A15. For instructions see the irqaffinity entry in Documentation/kernel-parameters.txt
+** arm-multi_pmu_v2 - enables the use of multiple PMU types or sources, for example profiling across both Cortex-A15 and Cortex-A7 clusters and getting results for CCI.
+
+h2. Where To Find More Information
+
+More information on Linaro can be found on our "website.":http://www.linaro.org/
+
+h2. Feedback and Support
+
+Subscribe to the important Linaro mailing lists and join our IRC channels to stay on top of Linaro development.
+
+** Linaro Development "mailing list":http://lists.linaro.org/mailman/listinfo/linaro-dev
+** Linaro IRC channel on irc.freenode.net at @#linaro@
+
+* Landing Team bug reports should be filed in "JIRA":http://cards.linaro.org/browse/ARM#selectedTab=com.atlassian.jira.plugin.system.project%3Aissues-panel by clicking on the "Create issue" button on the top menu bar.
+** You will need to login to your JIRA account. If you do not have an account or are having problems, email its@linaro.org for help.
+* More general bug reports should be filed in Launchpad against the individual packages that are affected. If a suitable package cannot be identified, feel free to assign them to "Linaro project":http://bugs.launchpad.net/linaro/+filebug.
+* Questions? "ask Linaro":http://ask.linaro.org/.
+* Interested in commercial support? inquire at "Linaro support":mailto:support@linaro.org
+
+h2. Resolved in this release
+
+* "ARM-23":http://cards.linaro.org/browse/ARM-23 LP:1129005 - Intermitent failure of LTP shmat01 testcase
+* "ARM-35":http://cards.linaro.org/browse/ARM-35 Warning in kmalloc_slab when running Android on RTSM
+* "ARM-45":http://cards.linaro.org/browse/ARM-45 cpu_hotplug_latency_with_load/without_load failed to get trace
+* "ARM-49":http://cards.linaro.org/browse/ARM-49 Vexpress-tc2 linaro 13.05 segfaults when cluster DTS node is removed
+* "ARM-54":http://cards.linaro.org/browse/ARM-54 No audio on ARM Versatile Express A9 ALIP image
+* "ARM-55":http://cards.linaro.org/browse/ARM-55 HTML5 video playback failed, using Chromium but works with Firefox, on ARM Versatile Express ALIP image
+* "LP: #1042755":https://launchpad.net/bugs/1042755 TC2: powertop doesn't show correct frequency stats
+
+h2. Known Issues
+
+h3. General Issues
+
+* "ARM-16":http://cards.linaro.org/browse/ARM-16 LP:1097309 - serial console doesn't received characters on TC2
+* "ARM-24":http://cards.linaro.org/browse/ARM-24 LP:1172350 - Audio playback under Android JellyBean stops sporadically on TC2 with release 13.03
+* "ARM-46":http://cards.linaro.org/browse/ARM-46 Booting using UEFI with bootmon from VE CD 5.2 fails
+* "ARM-50":http://cards.linaro.org/browse/ARM-50 perf shows zero for cycle and instruction counts on TC2
+* "ARM-52":http://cards.linaro.org/browse/ARM-52 hrtimer issues with TC2 on Linaro 13.06
+* "ARM-53":http://cards.linaro.org/browse/ARM-53 Watchdog timeout booting Android on single core fastmodels
+
+h3. Known Issues due to lack of video acceleration
+
+* "LP: #987155":https://launchpad.net/bugs/987155 vexpress: Angrybirds display severely truncated
+* "LP: #987172":https://launchpad.net/bugs/987172 vexpress: YouTube video playback fails
+
+h3. Known Issues due to generic Android features
+
+* "ARM-51":http://cards.linaro.org/browse/ARM-51 Gallery app crashes on start on vexpress Android 4.3
+
+h3. Known Issues due to generic features
+
+* "LP: #1231468":https://launchpad.net/bugs/1231468 HTML5 video playback failed, using Chromium but works with Firefox, on ARM Versatile Express ALIP image
+
+h3. Additional information
+
+NOTE: When using the interactive governor with Android, take care to use the following values for governor specific tunables. These values have been selected after careful analysis on this LSK version and result in optimal power-performance on TC2. In future LSK releases, additional system initialisation logic will use these values as defaults.
+
+Interactive settings for the Cortex-A7 cluster:
+
+'above_hispeed_delay': 20000
+'go_hispeed_load': 85
+'hispeed_freq': 800000
+'min_sample_time': 80000
+'timer_rate': 20000
+
+Interactive settings for the Cortex-A15 cluster:
+
+'above_hispeed_delay': 20000
+'go_hispeed_load': 85
+'hispeed_freq': 1000000
+'min_sample_time': 80000
+'timer_rate': 20000
diff --git a/opemembedded/vexpress-lsk/RTSM.textile b/opemembedded/vexpress-lsk/RTSM.textile
new file mode 100644
index 0000000..122b7b0
--- /dev/null
+++ b/opemembedded/vexpress-lsk/RTSM.textile
@@ -0,0 +1,88 @@
+This release was boot tested on RTSM A15x4 and A15x4-A7x4 models. No rigorous testing was carried out. This build is expected to run on other RTSM models.
+
+h2. Prerequisites
+
+* Install the RTSM model(s) you wish to run. You must have a valid license and the environment set up to run models
+* Install "Linaro image tools":https://wiki.linaro.org/Linaro-Image-Tools
+* Install kpartx which you can get by issuing the following command in your terminal
+
+bc. sudo apt-get install kpartx
+
+Linaro OpemEmbedded images are made up of two components. The "Hardware Pack":https://wiki.linaro.org/HardwarePacks, which contains the kernel, boot loader and/or Device Tree blob and a Root file system (RootFS) of your choice to generate an image.
+
+h3. Install Linaro Image Tools
+
+There are multiple ways you can get the latest Linaro Image Tools:
+
+** Method 1: Install them from the Linaro Image Tools "PPA":https://launchpad.net/~linaro-maintainers/+archive/tools
+
+bc. sudo add-apt-repository ppa:linaro-maintainers/tools
+sudo apt-get update
+sudo apt-get install linaro-image-tools
+
+** Method 2: Building from source
+
+bc. wget http://releases.linaro.org/13.10/components/platform/linaro-image-tools/linaro-image-tools-2013.10.tar.gz
+
+h2. Create a 2GB image file
+
+RTSM will only deal with file systems up to 2GB in size, however the if the pre-built image may be larger. In this case, you can build your own image using the pre-built artifacts as listed below.
+
+Using the following command, you will download the RootFS, the hardware pack.
+
+bc. wget http://releases.linaro.org/13.10/openembedded/vexpress-lsk/hwpack_linaro-lsk-vexpress_20131021-500_armhf_supported.tar.gz
+wget https://releases.linaro.org/13.10/openembedded/vexpress-lsk/linaro-image-alip-genericarmv7a-20131021-134.rootfs.tar.gz
+
+Now you need to create the image using the following commands.
+
+bc. linaro-media-create --image-file linaro.img --image-size 2000M --dev vexpress --hwpack hwpack_linaro-lsk-vexpress_20131021-500_armhf_supported.tar.gz --binary linaro-image-alip-genericarmv7a-20131021-134.rootfs.tar.gz
+
+bc. sudo kpartx -a linaro.img
+mkdir boot
+sudo mount /dev/mapper/loop0p1 boot
+cp boot/uImage .
+cp boot/uInitrd .
+cp -ar boot/rtsm rtsm
+sudo umount boot
+sudo kpartx -d linaro.img
+
+note: unless you use kpartx to delete the loop mappings as above, even if you update linaro.img and re-mount it, it will not refresh and you will end up using the old image.
+
+h2. Run RTSM with UEFI
+
+The instructions for running UEFI on the various models are very similar. The two differences are the UEFI binary and the model used. Follow the model specific instruction below, then proceed to the generic instructions in the section "Run the model with UEFI".
+
+h3. Run A9x4 model with UEFI
+
+bc. RTSM_MODEL=/usr/local/DS-5/bin/RTSM_VE_Cortex-A9_MPx4
+RTSM_UEFI=rtsm/uefi_rtsm_ve-ca9x4.bin
+
+h3. Run A15x1 model with UEFI
+
+bc. RTSM_MODEL=$HOME/ARM/RTSM/Linux64_RTSM_VE_Cortex-A15x1/RTSM_VE_Cortex-A15x1
+RTSM_UEFI=rtsm/uefi_rtsm_ve-ca15.bin
+
+h3. Run A15x2 model with UEFI
+
+bc. RTSM_MODEL=$HOME/ARM/RTSM/Linux64_RTSM_VE_Cortex-A15x2/RTSM_VE_Cortex-A15x2
+RTSM_UEFI=rtsm/uefi_rtsm_ve-ca15.bin
+
+h3. Run A15x4 model with UEFI
+
+bc. RTSM_MODEL=$HOME/ARM/RTSM/Linux64_RTSM_VE_Cortex-A15x4/RTSM_VE_Cortex-A15x4
+RTSM_UEFI=rtsm/uefi_rtsm_ve-ca15.bin
+
+h3. Run the model with UEFI
+
+bc. RTSM_MMC=linaro.img
+RTSM_UEFI_VARS=$HOME/uefi-vars.fd
+touch $RTSM_UEFI_VARS # create the file if it doesn't already exist
+
+bc. $RTSM_MODEL \
+-C motherboard.flashloader0.fname=$RTSM_UEFI \
+-C motherboard.flashloader1.fname=$RTSM_UEFI_VARS \
+-C motherboard.flashloader1.fnameWrite=$RTSM_UEFI_VARS \
+-C motherboard.mmc.p_mmc_file=$RTSM_MMC \
+-C motherboard.pl011_uart0.unbuffered_output=true \
+-C motherboard.smsc_91c111.enabled=1 \
+-C motherboard.hostbridge.userNetworking=1