qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU


From: Antony Pavlov
Subject: [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU
Date: Thu, 29 Aug 2013 13:33:49 +0400

This is slightly altered version of ARM946E-S CPU code
from EOS QEMU (Magic Lantern project) so nearly all
credits go to @a1ex.

ARM946E-S Technical Reference Manual can be found here:
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0201d/index.html

Signed-off-by: Antony Pavlov <address@hidden>
---
 target-arm/cpu.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/target-arm/cpu.c b/target-arm/cpu.c
index b2556c6..409a311 100644
--- a/target-arm/cpu.c
+++ b/target-arm/cpu.c
@@ -322,6 +322,18 @@ static void arm926_initfn(Object *obj)
     cpu->reset_sctlr = 0x00090078;
 }
 
+static void arm946es_initfn(Object *obj)
+{
+    ARMCPU *cpu = ARM_CPU(obj);
+    set_feature(&cpu->env, ARM_FEATURE_V5);
+    set_feature(&cpu->env, ARM_FEATURE_MPU);
+    set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS);
+    cpu->midr = 0x41059461;
+    cpu->ctr = (7 << 25) | (1 << 24) | (4 << 18) | (4 << 15) \
+             | (2 << 12) | (4 << 6) | (4 << 3) | (2 << 0);
+    cpu->reset_sctlr = 0x00000078;
+}
+
 static void arm946_initfn(Object *obj)
 {
     ARMCPU *cpu = ARM_CPU(obj);
@@ -843,6 +855,7 @@ typedef struct ARMCPUInfo {
 
 static const ARMCPUInfo arm_cpus[] = {
     { .name = "arm926",      .initfn = arm926_initfn },
+    { .name = "arm946e-s",   .initfn = arm946es_initfn },
     { .name = "arm946",      .initfn = arm946_initfn },
     { .name = "arm1026",     .initfn = arm1026_initfn },
     /* What QEMU calls "arm1136-r2" is actually the 1136 r0p2, i.e. an
-- 
1.8.4.rc3




reply via email to

[Prev in Thread] Current Thread [Next in Thread]