arm64: Add framework for legacy instruction emulation
authorPunit Agrawal <punit.agrawal@arm.com>
Tue, 18 Nov 2014 11:41:24 +0000 (11:41 +0000)
committerWill Deacon <will.deacon@arm.com>
Thu, 20 Nov 2014 16:33:53 +0000 (16:33 +0000)
commit587064b610c703f259317d00dc37bf6d40f4fc74
tree4170a2e03c6d046c45811f22ab662b988d73ae48
parent0be0e44c182c4f13df13903fd1377671d157d7b7
arm64: Add framework for legacy instruction emulation

Typically, providing support for legacy instructions requires
emulating the behaviour of instructions whose encodings have become
undefined. If the instructions haven't been removed from the
architecture, there maybe an option in the implementation to turn
on/off the support for these instructions.

Create common infrastructure to support legacy instruction
emulation. In addition to emulation, also provide an option to support
hardware execution when supported. The default execution mode (one of
undef, emulate, hw exeuction) is dependent on the state of the
instruction (deprecated or obsolete) in the architecture and
can specified at the time of registering the instruction handlers. The
runtime state of the emulation can be controlled by writing to
individual nodes in sysctl. The expected default behaviour is
documented as part of this patch.

Reviewed-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Punit Agrawal <punit.agrawal@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
Documentation/arm64/legacy_instructions.txt [new file with mode: 0644]
arch/arm64/Kconfig
arch/arm64/kernel/Makefile
arch/arm64/kernel/armv8_deprecated.c [new file with mode: 0644]