Statistics
| Branch: | Revision:

root / target-ppc @ 75d5ec89

Name Size
Makefile.objs 342 Bytes
STATUS 10.6 kB
cpu-models.c 64.1 kB
cpu-models.h 29.4 kB
cpu-qom.h 2.6 kB
cpu.h 87.1 kB
excp_helper.c 34.2 kB
fpu_helper.c 49.1 kB
helper.h 16 kB
helper_regs.h 3.4 kB
int_helper.c 52.5 kB
kvm.c 41.7 kB
kvm_ppc.c 1.1 kB
kvm_ppc.h 3.3 kB
machine.c 5.7 kB
mem_helper.c 9.2 kB
mfrom_table.c 3.3 kB
mfrom_table_gen.c 653 Bytes
misc_helper.c 3.5 kB
mmu-hash32.c 16.7 kB
mmu-hash32.h 3.2 kB
mmu-hash64.c 15.4 kB
mmu-hash64.h 4.3 kB
mmu_helper.c 84.5 kB
timebase_helper.c 4.3 kB
translate.c 356.3 kB
translate_init.c 289 kB

Latest revisions

# Date Author Comment
75d5ec89 03/22/2013 04:28 pm David Gibson

mmu-hash*: Correctly mask RPN from hash PTE

BEHAVIOUR CHANGE

At present we take the whole of word 1 of the hash PTE as the real page
number used to calculate the translated address. This is incorrect,
because it leaves the flags from the low bits of PTE word 1 in place in the...

87dc3fd1 03/22/2013 04:28 pm David Gibson

mmu-hash*: Don't update PTE flags when permission is denied

BEHAVIOUR CHANGE

Currently if ppc_hash{32,64}_translate() finds a PTE matching the given
virtual address, it will always update the PTE's R & C (Referenced and
Changed) bits. This happens even if the PTE's permissions mean we are...

e1a53ba2 03/22/2013 04:28 pm David Gibson

mmu-hash32: Remove nx from context structure

Previous cleanups have meant the nx field of the mmu_ctx_hash32 structure
is now only used within ppc_hash32_translate(), and so it can be replaced
by a local variable.

Signed-off-by: David Gibson <>...

e01b4445 03/22/2013 04:28 pm David Gibson

mmu-hash*: Clean up permission checking

Currently checking of PTE permission bits is split messily amongst
ppc_hash{32,64}_pp_check(), ppc_hash{32,64}_check_prot() and their callers.
This patch cleans this up to have the new function
ppc_hash{32,64}_pte_prot() compute the page permissions from the SLBE (for...

57d0a39d 03/22/2013 04:28 pm David Gibson

mmu-hash64: Factor SLB N bit into permissions bits

BEHAVIOUR CHANGE

Currently, for 64-bit hash mmu, the execute protection bit placed into the
qemu tlb is based only on the N (No execute) bit from the PTE. However,
No Execute can also be set at the segment level. We do check this on...

b3440746 03/22/2013 04:28 pm David Gibson

mmu-hash*: Clean up PTE flags update

Currently the ppc_hash{32,64}_pte_update_flags() helper functions update a
PTE's referenced and changed bits as necessary to reflect the access. It
is somewhat long winded, though. This patch open codes them in their...

6d11d998 03/22/2013 04:28 pm David Gibson

mmu-hash*: Clean up real address calculation

More recent 64-bit hash MMUs support multiple page sizes, and PTEs for
large pages only include the offset of the whole large page. But the qemu
tlb only handles pages of the base size (4k) so we need to break up the...

6fc76aa9 03/22/2013 04:28 pm David Gibson

mmu-hash32: Clean up BAT matching logic

The code to search for a matching BAT for a virtual address is somewhat
longwinded and awkward. In particular, it relies on seperate size and
validity information being returned from the hash32_bat_size() function...

145e52f3 03/22/2013 04:28 pm David Gibson

mmu-hash32: Cleanup BAT lookup

This patch makes a general cleanup of the ppc_hash32_get_bat() function,
renaming it to ppc_hash32_bat_lookup(). In particular, the new function
only looks for a matching BAT, with the permissions check from the old
function moved to the caller....

59acbe28 03/22/2013 04:28 pm David Gibson

mmu-hash32: Don't look up page tables on BAT permission error

BEHAVIOUR CHANGE

Currently, on any failure translating an address with BATs, we proceed to
normal segment and page table translation. That's incorrect if the
BAT error was due to permissions, rather than not finding a matching BAT....

View revisions

Also available in: Atom