]> Git Repo - qemu.git/commit
target/arm: Provide fault type enum and FSR conversion functions
authorPeter Maydell <[email protected]>
Wed, 13 Dec 2017 17:59:24 +0000 (17:59 +0000)
committerPeter Maydell <[email protected]>
Wed, 13 Dec 2017 17:59:24 +0000 (17:59 +0000)
commit1fa498fe0de979030bd1f481046e9f1c5574a584
tree1593bc5525b783e7c730f7a3177f6aac22610f98
parent5158de241b0fb344a6c948dfcbc4e611ab5fafbe
target/arm: Provide fault type enum and FSR conversion functions

Currently get_phys_addr() and its various subfunctions return
a hard-coded fault status register value for translation
failures. This is awkward because FSR values these days may
be either long-descriptor format or short-descriptor format.
Worse, the right FSR type to use doesn't depend only on the
translation table being walked -- some cases, like fault
info reported to AArch32 EL2 for some kinds of ATS operation,
must be in long-descriptor format even if the translation
table being walked was short format. We can't get those cases
right with our current approach.

Provide fields in the ARMMMUFaultInfo struct which allow
get_phys_addr() to provide sufficient information for a caller to
construct an FSR value themselves, and utility functions which do
this for both long and short format FSR values, as a first step in
switching get_phys_addr() and its children to only returning the
failure cause in the ARMMMUFaultInfo struct.

Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Edgar E. Iglesias <[email protected]>
Tested-by: Stefano Stabellini <[email protected]>
Message-id: 1512503192[email protected]
target/arm/internals.h
This page took 0.024772 seconds and 4 git commands to generate.