From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47685) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VEyeP-0006EE-Qi for qemu-devel@nongnu.org; Thu, 29 Aug 2013 05:36:31 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VEyeK-0003XZ-1C for qemu-devel@nongnu.org; Thu, 29 Aug 2013 05:36:25 -0400 Received: from mail-la0-x22e.google.com ([2a00:1450:4010:c03::22e]:32783) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VEyeJ-0003XP-OK for qemu-devel@nongnu.org; Thu, 29 Aug 2013 05:36:19 -0400 Received: by mail-la0-f46.google.com with SMTP id eh20so149283lab.19 for ; Thu, 29 Aug 2013 02:36:18 -0700 (PDT) From: Antony Pavlov Date: Thu, 29 Aug 2013 13:33:49 +0400 Message-Id: <1377768833-11400-2-git-send-email-antonynpavlov@gmail.com> In-Reply-To: <1377768833-11400-1-git-send-email-antonynpavlov@gmail.com> References: <1377768833-11400-1-git-send-email-antonynpavlov@gmail.com> Subject: [Qemu-devel] [RFC 1/5] target-arm: add ARM946E-S CPU List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , Paul Brook , Peter Crosthwaite , Peter Maydell , Alex Dumitrache , g3gg0 , Giovanni Condello Cc: qemu-devel@nongnu.org, Antony Pavlov 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 --- 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