changeset 3e5761bfa300 in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=3e5761bfa300
description:
ARM: Fix issue with with way MPIDR is read to include affinity levels.
The simple_bootloader checks for CPU0 in a manner incompatible with
systems
actually using affinity levels -- just looking at MPIDR[7:0]. However,
in
future we may wish to use real affinity levels and this method will be
in danger
of matching several CPUs with affinity0 = 0.
Match affinity2 == affinity1 == affinity0 == 0 instead.
diffstat:
system/arm/simple_bootloader/simple.S | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diffs (13 lines):
diff -r 64c434f26d58 -r 3e5761bfa300 system/arm/simple_bootloader/simple.S
--- a/system/arm/simple_bootloader/simple.S Fri Sep 07 14:20:53 2012 -0500
+++ b/system/arm/simple_bootloader/simple.S Fri Sep 07 14:20:53 2012 -0500
@@ -68,8 +68,7 @@
bootldr:
mrc p15, 0, r8, c0, c0, 5 // get the MPIDR register
- uxtb r8, r8 // isolate the lower 8 bits (affinity lvl 1)
- adds r8, r8, #0 // set flags for branch
+ bics r8, r8, #0xff000000 // isolate the lower 24 bits (affinity levels)
bxeq r3 // if it's 0 (CPU 0), branch to kernel
mov r8, #1
str r8, [r4, #0] // Enable CPU interface on GIC
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev