Peter Maydell fc1891c74a target-arm: Handle "extended small page" descriptors correctly
The old ARMv5-style page table format includes a kind of second level
descriptor named the "extended small page" format, whose primary purpose
is to allow specification of the TEX memory attribute bits on a 4K page.
This exists on ARMv6 and also (as an implementation extension) on XScale
CPUs; it's UNPREDICTABLE on v5.

We were mishandling this in two ways:
 (1) we weren't implementing it for v6 (probably never noticed because
Linux will use the new-style v6 page table format there)
 (2) we were not correctly setting the page_size, which is 4K, not 1K

The latter bug went unnoticed for years because the only thing which
the page_size affects is which TLB entries get flushed when the guest
does a TLB invalidate on an address in the page, and prior to commit
2f0d8631b7 we were doing a full TLB flush very frequently due to Linux's
habit of writing the SCTLR pointlessly a lot.

(We can assume that after commit 2f0d8631b7 the bug went unnoticed
for a year because nobody's actually using the Zaurus/XScale emulation...)

Report the correct page size for these descriptors, and permit them
on ARMv6 CPUs. This fixes a problem where a kernel image for Zaurus
can boot the kernel OK but gets random segfaults when it tries to
run userspace programs.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1432844085-16441-1-git-send-email-peter.maydell@linaro.org
2015-06-15 18:06:07 +01:00
2015-03-19 11:30:37 +03:00
2015-06-12 12:02:47 +02:00
2015-06-12 12:02:48 +02:00
…
2015-04-04 09:45:59 +03:00
…
2015-06-12 06:42:34 +02:00
2015-04-28 15:36:09 +02:00
…
…
…
…
2015-06-03 14:21:24 +03:00
…
2015-04-30 16:05:48 +03:00
…
2015-06-12 13:42:17 +01:00
2015-06-02 15:15:52 -03:00
2015-06-03 14:21:24 +03:00
2015-05-22 17:08:01 +02:00
…
…
2015-05-11 08:59:07 -04:00
2015-05-22 15:58:22 -04:00
…
2015-06-11 10:13:28 +01:00
…
2015-04-25 22:05:07 +01:00

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

- QEMU team
S
Description
Original Xbox Emulator for Windows, macOS, and Linux (Active Development)
Readme GPL-2.0
715 MiB
0 Stars 1 Watchers 0 Forks
Languages
C 82.3%
C++ 6.9%
Python 3.5%
Dylan 2.7%
Shell 1.5%
Other 2.9%