On Thu, 2012-09-06 at 22:34 +0800, Lei Wen wrote:
> I have several questions related how to run the mp over fastmodel.
> For the kernel config file, I see there are many for VE:
> android_vexpress_defconfig
> ubuntu_vexpress_defconfig
> vexpress_defconfig
> vexpress_tc2_defconfig
> Which one is suitable for the kernel run over fastmodel?
>
> Also the dts and bootwrapper, should I use below link?
> git://linux-arm.org/arm-dts.git
> git://git.linaro.org/arm/models/boot-wrapper.git or git://
> linux-arm.org/boot-wrapper.git
Linaro's standard vexpress kernel will work on Fast Models.
The kernel source is in the linux-linaro branch of
git://git.linaro.org/kernel/linux-linaro-tracking.git
The config used is generated by the command:
ARCH=arm scripts/kconfig/merge_config.sh \
linaro/configs/linaro-base.conf \
linaro/configs/ubuntu-minimal.conf \
linaro/configs/vexpress.conf
If you want to run a full Ubuntu desktop system its probably best to
replace 'ubuntu-minimal.conf' with 'ubuntu.conf'. And for Android
kernels use 'android.conf' instead.
This kernel tree also contains device-trees for the Fast Models as
arch/arm/boot/dts/rtsm_ve*
The boot-wrapper we are trying to standardise on is at
git://git.linaro.org/arm/models/boot-wrapper.git
Currently this requires a patch (attached) to work on big.LITTLE models.
Note, this patch will break non bit.LITTLE models but people are working
on a way of a single boot-wrapper to work on all models.
This boot-wrapper supports semi-hosting so it can be used as a
stand-alone bootloader and does not need to be merged with the kernel
binary. To build it:
make CROSS_COMPILE=arm-linux-gnueabi- linux-system-semi.axf
To run the big.LITTLE models you can then use a command like:
RTSM_VE_Cortex-A15x4-A7x4 \
-a coretile.cluster0.*=/path/linux-system-semi.axf \
-a coretile.cluster1.*=/path/linux-system-semi.axf \
-C coretile.dualclustersystemconfigurationblock.CFG_ACTIVECLUSTER=0x3
\
-C motherboard.mmc.p_mmc_file=/path/mmc.bin \
-C coretile.cluster0.cpu0.semihosting-cmd_line="--kernel /path/uImage
--initrd /path/uInitrd --dtb /path/rtsm_ve-v2p-ca15x4-ca7x4 --
console=ttyAMA0,115200n8 root=/dev/mmcblk0p2 rootwait ro debug"
replacing names and paths as appropriate; and making sure the dtb file
you use matches the model you are running. I.e. it has the same type and
number of CPUS.
For running non bit.LITTLE models use something like:
RTSM_VE_Cortex-A15x4 \
/path/linux-system-semi.axf \
-C motherboard.mmc.p_mmc_file=/path/mmc.bin \
-C cluster.cpu0.semihosting-cmd_line="--kernel /path/uImage --initrd
/path/uInitrd --dtb /path/rtsm_ve-cortex_a15x4 -- console=ttyAMA0,115200n8
root=/dev/mmcblk0p2 rootwait ro debug"
The MMC image to use for the root filesystem can be any Linaro vexpress
image created by linaro-media-create, or linaro-android-media-create,
but it needs to be limited to <2GB, e.g. for Android
linaro-android-media-create \
--image-file mmc.bin --image-size 2000M --dev vexpress \
--boot boot.tar.bz2 --system system.tar.bz2 --userdata
userdata.tar.bz2
or an Ubuntu image
linaro-media-create \
--image-file mmc.bin --image-size 2000M --dev vexpress \
--binary linaro-precise-XXXX.tar.gz \
--hwpack hwpack_linaro-vexpress_XXXX.tar.gz
To get a uInitrd to pass to the models then you can find this in
Android's boot.tar.bz2. However, for Ubuntu images I'm not sure of a
good way, only to create a second image on an SD card and then get a
uInitrd from the boot partition of that.
--
Tixy
>From 93c088c486f2cf7b3fd260684aa714ccce3dfbd4 Mon Sep 17 00:00:00 2001
From: Jon Medhurst <[email protected]>
Date: Fri, 7 Sep 2012 09:28:49 +0100
Subject: [PATCH] bootwrapper: Get it working for big.LITTLE models
Note, this breaks other models.
Signed-off-by: Jon Medhurst <[email protected]>
---
boot.S | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/boot.S b/boot.S
index 61cd93f..60b59a6 100644
--- a/boot.S
+++ b/boot.S
@@ -67,6 +67,19 @@ start:
mov r0, #0xf0000000
mcr p15, 0, r0, c12, c0, 1 @ Monitor vector base address
+ @
+ @ Turn on CCI snoops
+ @
+ mov r3, #3
+ ldr r4, =0x2c090000
+ mov r5, #0x4000 @ A15
+ str r3, [r4, r5]
+ mov r5, #0x5000 @ A7
+ str r3, [r4, r5]
+0: ldr r3, [r4, #0xc] @ status reg
+ tst r3, #1
+ bne 0b
+
@ Set up hvbar so hvc comes back here.
ldr r0, =vectors
mov r7, #0xfffffff0
@@ -93,7 +106,7 @@ vectors:
into_hyp_mode:
@ Check CPU nr again
mrc p15, 0, r0, c0, c0, 5 @ MPIDR (ARMv7 only)
- and r0, r0, #15 @ CPU number
+ bfc r0, #24, #8 @ CPU number, taking multicluster into account
cmp r0, #0 @ primary CPU?
beq 2f
--
1.7.10.4
_______________________________________________
linaro-dev mailing list
[email protected]
http://lists.linaro.org/mailman/listinfo/linaro-dev