Andrew Jones d8e052b387 target-arm: get_phys_addr_lpae: more xn control
This patch makes the following changes to the determination of
whether an address is executable, when translating addresses
using LPAE.

1. No longer assumes that PL0 can't execute when it can't read.
   It can in AArch64, a difference from AArch32.
2. Use va_size == 64 to determine we're in AArch64, rather than
   arm_feature(env, ARM_FEATURE_V8), which is insufficient.
3. Add additional XN determinants
   - NS && is_secure && (SCR & SCR_SIF)
   - WXN && (prot & PAGE_WRITE)
   - AArch64: (prot_PL0 & PAGE_WRITE)
   - AArch32: UWXN && (prot_PL0 & PAGE_WRITE)
   - XN determination should also work in secure mode (untested)
   - XN may even work in EL2 (currently impossible to test)
4. Cleans up the bloated PAGE_EXEC condition - by removing it.

The helper get_S1prot is introduced. It may even work in EL2,
when support for that comes, but, as the function name implies,
it only works for stage 1 translations.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Message-id: 1426099139-14463-4-git-send-email-drjones@redhat.com
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2015-03-16 12:30:46 +00:00
2015-03-04 13:00:36 -05:00
2015-02-06 16:11:38 +00:00
2015-03-13 14:03:31 +00:00
2015-03-10 10:49:25 +01:00
2015-03-09 09:14:28 +00:00
2015-03-13 14:03:31 +00:00
2015-02-23 10:56:09 -05:00
2015-03-08 06:43:32 +00:00
2015-02-16 17:30:19 +01:00
2015-03-12 09:13:07 +00:00
2015-03-04 14:47:52 +01:00
2015-03-12 09:13:07 +00:00
2015-03-10 10:49:25 +01:00
2015-02-05 17:16:14 +01:00
2015-03-02 12:13:45 +00:00
2015-02-16 14:36:03 +00:00
2015-02-16 15:07:19 +00:00
2015-03-10 11:33:35 +01:00
2015-01-14 10:38:57 +01:00
2015-02-12 21:21:38 -08:00
2015-03-10 09:26:22 +01:00
2014-12-09 21:48:34 +00:00
2015-03-12 15:49:57 +01:00

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team
Description
No description provided
Readme 404 MiB
Languages
C 82.6%
C++ 6.5%
Python 3.4%
Dylan 2.9%
Shell 1.6%
Other 2.8%