From c9c4dfc09dacd9dfc29655e78f7caa1fcc6dfce6 Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Wed, 2 Jun 2010 12:58:11 -0500 Subject: ARM: Ignore attempts to disable coprocessors that aren't implemented anyway. --- src/arch/arm/isa.hh | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src/arch/arm/isa.hh') diff --git a/src/arch/arm/isa.hh b/src/arch/arm/isa.hh index a7bb1cc3e..8d547f9c6 100644 --- a/src/arch/arm/isa.hh +++ b/src/arch/arm/isa.hh @@ -110,7 +110,11 @@ namespace ArmISA * Technically this should be 0, but we don't support those * settings. */ - miscRegs[MISCREG_CPACR] = 0x0fffffff; + CPACR cpacr = 0; + // Enable CP 10, 11 + cpacr.cp10 = 0x3; + cpacr.cp11 = 0x3; + miscRegs[MISCREG_CPACR] = cpacr; /* One region, unified map. */ miscRegs[MISCREG_MPUIR] = 0x100; @@ -249,9 +253,15 @@ namespace ArmISA } switch (misc_reg) { case MISCREG_CPACR: - newVal = bits(val, 27, 0); - if (newVal != 0x0fffffff) { - panic("Disabling coprocessors isn't implemented.\n"); + { + CPACR newCpacr = 0; + CPACR valCpacr = val; + newCpacr.cp10 = valCpacr.cp10; + newCpacr.cp11 = valCpacr.cp11; + if (newCpacr.cp10 != 0x3 || newCpacr.cp11 != 3) { + panic("Disabling coprocessors isn't implemented.\n"); + } + newVal = newCpacr; } break; case MISCREG_CSSELR: -- cgit v1.2.3