arm: Add support for ARMv8 (AArch64 & AArch32)
authorARM gem5 Developers <none@none>
Fri, 24 Jan 2014 21:29:34 +0000 (15:29 -0600)
committerARM gem5 Developers <none@none>
Fri, 24 Jan 2014 21:29:34 +0000 (15:29 -0600)
commit612f8f074fa1099cf70faf495d46cc647762a031
treebd1e99c43bf15292395eadd4b7ae3f5c823545c3
parentf3585c841e964c98911784a187fc4f081a02a0a6
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
145 files changed:
configs/common/FSConfig.py
configs/common/O3_ARM_v7a.py
configs/common/Options.py
configs/common/cpu2000.py
configs/example/fs.py
configs/example/se.py
ext/libelf/elf_common.h
src/arch/arm/ArmISA.py
src/arch/arm/ArmSystem.py
src/arch/arm/ArmTLB.py
src/arch/arm/SConscript
src/arch/arm/decoder.cc
src/arch/arm/decoder.hh
src/arch/arm/faults.cc
src/arch/arm/faults.hh
src/arch/arm/insts/branch64.cc [new file with mode: 0644]
src/arch/arm/insts/branch64.hh [new file with mode: 0644]
src/arch/arm/insts/data64.cc [new file with mode: 0644]
src/arch/arm/insts/data64.hh [new file with mode: 0644]
src/arch/arm/insts/fplib.cc [new file with mode: 0644]
src/arch/arm/insts/fplib.hh [new file with mode: 0644]
src/arch/arm/insts/macromem.cc
src/arch/arm/insts/macromem.hh
src/arch/arm/insts/mem.cc
src/arch/arm/insts/mem64.cc [new file with mode: 0644]
src/arch/arm/insts/mem64.hh [new file with mode: 0644]
src/arch/arm/insts/misc.cc
src/arch/arm/insts/misc.hh
src/arch/arm/insts/misc64.cc [new file with mode: 0644]
src/arch/arm/insts/misc64.hh [new file with mode: 0644]
src/arch/arm/insts/neon64_mem.hh [new file with mode: 0644]
src/arch/arm/insts/pred_inst.hh
src/arch/arm/insts/static_inst.cc
src/arch/arm/insts/static_inst.hh
src/arch/arm/insts/vfp.cc
src/arch/arm/insts/vfp.hh
src/arch/arm/interrupts.cc
src/arch/arm/interrupts.hh
src/arch/arm/intregs.hh
src/arch/arm/isa.cc
src/arch/arm/isa.hh
src/arch/arm/isa/bitfields.isa
src/arch/arm/isa/decoder/aarch64.isa [new file with mode: 0644]
src/arch/arm/isa/decoder/arm.isa
src/arch/arm/isa/decoder/decoder.isa
src/arch/arm/isa/decoder/thumb.isa
src/arch/arm/isa/formats/aarch64.isa [new file with mode: 0644]
src/arch/arm/isa/formats/branch.isa
src/arch/arm/isa/formats/formats.isa
src/arch/arm/isa/formats/fp.isa
src/arch/arm/isa/formats/mem.isa
src/arch/arm/isa/formats/misc.isa
src/arch/arm/isa/formats/neon64.isa [new file with mode: 0644]
src/arch/arm/isa/formats/uncond.isa
src/arch/arm/isa/formats/unimp.isa
src/arch/arm/isa/includes.isa
src/arch/arm/isa/insts/aarch64.isa [new file with mode: 0644]
src/arch/arm/isa/insts/branch.isa
src/arch/arm/isa/insts/branch64.isa [new file with mode: 0644]
src/arch/arm/isa/insts/data.isa
src/arch/arm/isa/insts/data64.isa [new file with mode: 0644]
src/arch/arm/isa/insts/div.isa
src/arch/arm/isa/insts/fp.isa
src/arch/arm/isa/insts/fp64.isa [new file with mode: 0644]
src/arch/arm/isa/insts/insts.isa
src/arch/arm/isa/insts/ldr.isa
src/arch/arm/isa/insts/ldr64.isa [new file with mode: 0644]
src/arch/arm/isa/insts/m5ops.isa
src/arch/arm/isa/insts/macromem.isa
src/arch/arm/isa/insts/mem.isa
src/arch/arm/isa/insts/misc.isa
src/arch/arm/isa/insts/misc64.isa [new file with mode: 0644]
src/arch/arm/isa/insts/neon.isa
src/arch/arm/isa/insts/neon64.isa [new file with mode: 0644]
src/arch/arm/isa/insts/neon64_mem.isa [new file with mode: 0644]
src/arch/arm/isa/insts/str.isa
src/arch/arm/isa/insts/str64.isa [new file with mode: 0644]
src/arch/arm/isa/insts/swap.isa
src/arch/arm/isa/operands.isa
src/arch/arm/isa/templates/basic.isa
src/arch/arm/isa/templates/branch64.isa [new file with mode: 0644]
src/arch/arm/isa/templates/data64.isa [new file with mode: 0644]
src/arch/arm/isa/templates/macromem.isa
src/arch/arm/isa/templates/mem.isa
src/arch/arm/isa/templates/mem64.isa [new file with mode: 0644]
src/arch/arm/isa/templates/misc.isa
src/arch/arm/isa/templates/misc64.isa [new file with mode: 0644]
src/arch/arm/isa/templates/neon.isa
src/arch/arm/isa/templates/neon64.isa [new file with mode: 0644]
src/arch/arm/isa/templates/templates.isa
src/arch/arm/isa/templates/vfp.isa
src/arch/arm/isa/templates/vfp64.isa [new file with mode: 0644]
src/arch/arm/isa_traits.hh
src/arch/arm/linux/linux.cc
src/arch/arm/linux/linux.hh
src/arch/arm/linux/process.cc
src/arch/arm/linux/process.hh
src/arch/arm/linux/system.cc
src/arch/arm/linux/system.hh
src/arch/arm/locked_mem.hh
src/arch/arm/miscregs.cc
src/arch/arm/miscregs.hh
src/arch/arm/nativetrace.cc
src/arch/arm/pagetable.hh
src/arch/arm/process.cc
src/arch/arm/process.hh
src/arch/arm/registers.hh
src/arch/arm/remote_gdb.cc
src/arch/arm/remote_gdb.hh
src/arch/arm/stage2_lookup.cc [new file with mode: 0755]
src/arch/arm/stage2_lookup.hh [new file with mode: 0755]
src/arch/arm/stage2_mmu.cc [new file with mode: 0755]
src/arch/arm/stage2_mmu.hh [new file with mode: 0755]
src/arch/arm/system.cc
src/arch/arm/system.hh
src/arch/arm/table_walker.cc
src/arch/arm/table_walker.hh
src/arch/arm/tlb.cc
src/arch/arm/tlb.hh
src/arch/arm/types.hh
src/arch/arm/utility.cc
src/arch/arm/utility.hh
src/arch/arm/vtophys.cc
src/base/loader/elf_object.cc
src/base/loader/elf_object.hh
src/base/loader/object_file.cc
src/base/loader/object_file.hh
src/cpu/BaseCPU.py
src/dev/arm/RealView.py
src/dev/arm/SConscript
src/dev/arm/generic_timer.cc [new file with mode: 0644]
src/dev/arm/generic_timer.hh [new file with mode: 0644]
src/dev/arm/gic_pl390.cc
src/dev/arm/vgic.cc [new file with mode: 0644]
src/dev/arm/vgic.hh [new file with mode: 0644]
src/sim/System.py
src/sim/process.cc
src/sim/serialize.hh
src/sim/system.cc
src/sim/system.hh
system/arm/aarch64_bootloader/LICENSE.txt [new file with mode: 0644]
system/arm/aarch64_bootloader/boot.S [new file with mode: 0644]
system/arm/aarch64_bootloader/makefile [new file with mode: 0644]
util/cpt_upgrader.py
util/m5/m5op_arm_A64.S [new file with mode: 0644]