#
12714:6870e0c151b1 |
|
09-May-2018 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: ISA param for treating MISCREG_IMPDEF_UNIMPL as NOP
In the Arm ISA there are some sys reg numbers which are reserved for implementation defined registers. The default behaviour is to to treat them as unimplemented registers. It is now possible to change this behaviour at runtime and treat them as NOP. In this way an access to those register won't make simulation fail.
Change-Id: I0d108299a6d5aa81fcdabdaef04eafe46df92343 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/10504 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12646:3fa08822f79c |
|
28-Mar-2018 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: Fix mrc,mcr to cop14 disassemble
This patch fixes the disassemble for AArch32 mcr/mrc p14 instructions.
Change-Id: If5d7c2d7c726f040ae20053bf1d70f4405b34d0e Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Curtis Dunham <curtis.dunham@arm.com> Reviewed-on: https://gem5-review.googlesource.com/9681 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12530:ab63172c4fbe |
|
24-Jan-2018 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arch-arm: IMPLEMENTATION DEFINED register
A new pseudo register has been added to the Misc pool. It is the implementation defined register. This kinds of registers are covered by the architecture and must be treated differently than UNIMPLEMENTED registers: their access can be trapped to EL2 (See HCR.TIDCP bit in the arm arm). Some previously undecoded registers in c9,c10,c11 have now this register type.
Change-Id: Ibfc35982470b9dea0ecf39aaa6b1012a21852f53 Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-on: https://gem5-review.googlesource.com/7922 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
12358:386d26feb00f |
|
07-Feb-2017 |
Nikos Nikoleris <nikos.nikoleris@arm.com> |
arm: Add support for the mcr dc{ic,i,c}mvac, dccmvau instructions
This patch adds support for the ARMv7 cache maintenance intructions: * mcr dccmvac cleans a VA to the PoC * mcr dcimvac invalidates a VA to the PoC * mcr dccimvac cleans and invalidates a VA to the PoC * mcr dccmvau cleans a VA to the PoU
Change-Id: I6511f203039ca145cc9128ddf61d09d6d7e40c10 Reviewed-by: Stephan Diestelhorst <stephan.diestelhorst@arm.com> Reviewed-by: Anouk Van Laer <anouk.vanlaer@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5059 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
|
#
12258:08990d24fe41 |
|
13-Oct-2017 |
Giacomo Travaglini <giacomo.travaglini@arm.com> |
arm: Add support for armv8 CRC32 instructions
This patch introduces the ARM A32/T32/A64 CRC Instructions, which are mandatory since ARMv8.1. The UNPREDICTABLE behaviours are implemented as follows: 1) CRC32(C)X (64 bit) instructions are decoded as Undefined in Aarch32 2) The instructions support predication in Aarch32 3) Using R15(PC) as source/dest operand is permitted in Aarch32
Change-Id: Iaf29b05874e1370c7615da79a07f111ded17b6cc Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com> Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Nikos Nikoleris <nikos.nikoleris@arm.com> Reviewed-by: Giacomo Gabrielli <giacomo.gabrielli@arm.com> Reviewed-on: https://gem5-review.googlesource.com/5521 Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
|
#
11572:9eac6e12c673 |
|
02-Aug-2016 |
Dylan Johnson <Dylan.Johnson@ARM.com> |
arm: change instruction classes to catch hyp traps
Change-Id: I122918d0e3dfd01ae1a4ca4f19240a069115c8b7
|
#
10506:aa23216161fa |
|
30-Oct-2014 |
Ali Saidi <Ali.Saidi@ARM.com> |
arm: Mark some miscregs (timer counter) registers at unverifiable.
The checker can't verify timer registers, so it should just grab the version from the executing CPU, otherwise it could get a larger value and diverge execution.
|
#
10420:cc13df09fa55 |
|
01-Oct-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
arm: More UBSan cleanups after additional full-system runs
Some incorrect casting to IntRegIndex, and a few uninitialized members in the i8254xGBe device.
|
#
10418:7a76e13f0101 |
|
27-Sep-2014 |
Andreas Hansson <andreas.hansson@arm.com> |
arm: Fixed undefined behaviours identified by gcc
This patch fixes the runtime errors highlighted by the undefined behaviour sanitizer. In the end there were two issues. First, when rotating an immediate, we ended up shifting an uint32_t by 32 in some cases. This case is fixed by checking for a rotation by 0 positions. Second, the Mrc15 and Mcr15 are operating on an IntReg and a MiscReg, but we used the type RegRegImmOp and passed a MiscRegIndex as an IntRegIndex. This issue is resolved by introducing a MiscRegRegImmOp and RegMiscRegImmOp with the appropriate types.
With these fixes there are no runtime errors identified for the full ARM regressions.
|
#
10173:a6402a046e36 |
|
23-Apr-2014 |
Mitchell Hayenga <Mitchell.Hayenga@ARM.com> |
arm: Don't use a stack allocated mnemonic
FailUnimplemented passed a stack created mnemonic as a const char * which causes some grief when the stack goes away.
|
#
10037:5cac77888310 |
|
24-Jan-2014 |
ARM gem5 Developers |
arm: Add support for ARMv8 (AArch64 & AArch32)
Note: AArch64 and AArch32 interworking is not supported. If you use an AArch64 kernel you are restricted to AArch64 user-mode binaries. This will be addressed in a later patch.
Note: Virtualization is only supported in AArch32 mode. This will also be fixed in a later patch.
Contributors: Giacomo Gabrielli (TrustZone, LPAE, system-level AArch64, AArch64 NEON, validation) Thomas Grocutt (AArch32 Virtualization, AArch64 FP, validation) Mbou Eyole (AArch64 NEON, validation) Ali Saidi (AArch64 Linux support, code integration, validation) Edmund Grimley-Evans (AArch64 FP) William Wang (AArch64 Linux support) Rene De Jong (AArch64 Linux support, performance opt.) Matt Horsnell (AArch64 MP, validation) Matt Evans (device models, code integration, validation) Chris Adeniyi-Jones (AArch64 syscall-emulation) Prakash Ramrakhyani (validation) Dam Sunwoo (validation) Chander Sudanthi (validation) Stephan Diestelhorst (validation) Andreas Hansson (code integration, performance opt.) Eric Van Hensbergen (performance opt.) Gabe Black
|
#
9554:406fbcf60223 |
|
19-Feb-2013 |
Andreas Hansson <andreas.hansson@arm.com> |
scons: Add warning for missing declarations
This patch enables warnings for missing declarations. To avoid issues with SWIG-generated code, the warning is only applied to non-SWIG code.
|
#
8868:26dbd171754e |
|
01-Mar-2012 |
Matt Horsnell <Matt.Horsnell@arm.com> |
ARM: Add limited CP14 support.
New kernels attempt to read CP14 what debug architecture is available. These changes add the debug registers and return that none is currently available.
|
#
8550:8ac6c1fa657f |
|
13-Sep-2011 |
Chander Sudanthi<Chander.Sudanthi@ARM.com> |
CP15 c15: enable execution with accesses to c15 registers
Previously, coprocessor accesses to CP15 c15 would fault. This patch enables accesses but prints out a warning, as the registers are not implemented.
|
#
8068:749581c26e71 |
|
23-Feb-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Do something for ISB, DSB, DMB
|
#
8058:a259ab86cabf |
|
23-Feb-2011 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Adds dummy support for a L2 latency miscreg.
|
#
7853:69aae4379062 |
|
18-Jan-2011 |
Matt Horsnell <Matt.Horsnell@ARM.com> |
ARM: The ARM decoder should not panic when decoding undefined holes is arch.
This can abort simulations when the fetch unit runs ahead and speculatively decodes instructions that are off the execution path.
|
#
7757:d7360f5052b2 |
|
15-Nov-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Return an FailUnimp instruction when an unimplemented CP15 register is accessed.
Just panicing in readMiscReg() doesn't work because a speculative access in the o3 model can end the simulation.
|
#
7652:f2621206b062 |
|
25-Aug-2010 |
Min Kyu Jeong <minkyu.jeong@arm.com> |
ARM: Adding a bogus fault that does nothing. This fault can used to flush the pipe, not including the faulting instruction.
The particular case I needed this was for a self-modifying code. It needed to drain the store queue and force the following instruction to refetch from icache. DCCMVAC cp15 mcr instruction is modified to raise this fault.
|
#
7583:665d71561298 |
|
23-Aug-2010 |
Ali Saidi <Ali.Saidi@arm.com> |
ARM: Implement some more misc registers
|
#
7420:498b27bc326d |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement a version of mcr and mrc that works in user mode.
|
#
7404:bfc74724914e |
|
02-Jun-2010 |
Ali Saidi <Ali.Saidi@ARM.com> |
ARM: Implement the ARM TLB/Tablewalker. Needs performance improvements.
|
#
7391:475d53c618c7 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Ignore reads and writes to DCIMVAC.
|
#
7358:69a04e7b14eb |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Move the CP15 decode block into a function.
|
#
7355:8d9b757b3583 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Warn/ignore when TLB maintenance operations are performed.
|
#
7351:d90afcb8724e |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Convert the CP15 registers from MPU to MMU.
|
#
7300:3b491ad98fea |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Ignore/warn on accesses to the DRBAR, DRACR, and DRSR registers.
|
#
7297:2b127f2655d6 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Ignore/warn on accesses to the BPIALLIS and BPIALL registers.
|
#
7286:f6d759c122a9 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Ignore/warn access to the bpimva registers.
|
#
7285:4b45e35807f2 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Ignore/warn on accesses to the dccmvac register.
|
#
7276:8444b49bd88d |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Ignore/warn on accesses to icimvau.
|
#
7274:b299cce14211 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Ignore/warn on ICIALLUIS.
|
#
7272:105f6d3e1099 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the unimplemented data barrier CP15 accesses.
These are CP15DSB (Data Synchronization Barrier), and CP15DMB (Data Memory Barrier).
|
#
7268:22f75f96c56c |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the unimplemented cp15 instruction barrier.
|
#
7267:fcbf902646a8 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Ignore accesses to DCCIMVAC.
|
#
7264:fc3dfbfb3066 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Warn about and ignore accesses to DCCISW.
This register is supposed to "Clean and invalidate data or unified cache line by set/way." Since there isn't a good way to do that, we'll just ignore these and warn about it.
|
#
7263:2eca996220d7 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Decode the thumb versions of the mcr and mrc instructions.
|
#
7203:39753c33e7aa |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Replace the versions of MRS and MSR in the ARM decoder with the new ones.
|
#
7199:3e96b80d1b55 |
|
02-Jun-2010 |
Gabe Black <gblack@eecs.umich.edu> |
ARM: Implement SVC (was SWI) outside of the decoder.
|