[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v4 0/7] target/m68k: supervisor mode (part 2)
From: |
Laurent Vivier |
Subject: |
[Qemu-devel] [PATCH v4 0/7] target/m68k: supervisor mode (part 2) |
Date: |
Thu, 18 Jan 2018 20:38:39 +0100 |
This series introduces the MC68040 MMU.
But first of all, we need to modify the prototype
of tlb_fill() and handle_mmu_fault handler to pass
the size of the access. MC68040 stores this value
in the exception stack frame.
Following patches add:
- MMU page table and fault handlers,
- Transparent Translation Registers
- instruction "moves" to move data
between user and kernel space
- instructions pflush/ptest, to flush TLB and
convert virtual address to physical address
- "info tlb" HMP command
I have tested it doesn't break QEMU linux-user mode
emulation and coldfire softmmu machine.
With the help of these patches I'm able to start
a debian etch-m68k, but the following patches
are still missing in master:
- m68k softfloat series
- Quadra 800 machine emulation series
(VIA emulation, Nubus emulation,
ESCC control/data address bit selector,
video card emulation, ESP Pseudo-DMA,
SWIM floppy controller, Apple Sound Chip
emulation, and some big-endian fixes for
dp8393x)
v4: Add some defines and use them
fix parameter of M68K_UDT_VALID() and M68K_PDT_VALID()
align logical/physical on TARGET_PAGE_SIZE for tlb_set_page()
remove QEMU_SFC and QEMU_DFC
use directly tb->flags
v3: fix checkpatch.pl errors/warnings
s/smaller/smallest/
v2: use "0" for the access size when we don't know
the size of the access
move mmu_fault to CPUM68KState
set TARGET_PAGE_BITS to 12 to avoid tlb_add_large_page() path
use -page_size to mask address instead of TARGET_PAGE_MASK
add ACCESS_DEBUG to not update page table USED/MODIFIED bits
on gdb access
rename ACCESS_INT to ACCESS_DATA
add index parameter to gen_load()/gen_store()
copy bit 2 of SFC and DFC to tb->flags to
inline memory access in moves decoder
change ACCESS_PTEST value because of new ACCESS_DEBUG
Laurent Vivier (7):
accel/tcg: add size paremeter in tlb_fill()
target/m68k: add MC68040 MMU
target/m68k: add Transparent Translation
target/m68k: add index parameter to gen_load()/gen_store() and Co.
target/m68k: add moves
target/m68k: add pflush/ptest
target/m68k: add HMP command "info tlb"
accel/tcg/cputlb.c | 13 +-
accel/tcg/softmmu_template.h | 14 +-
accel/tcg/user-exec.c | 2 +-
hmp-commands-info.hx | 2 +-
include/exec/exec-all.h | 6 +-
include/qom/cpu.h | 2 +-
target/alpha/cpu.h | 2 +-
target/alpha/helper.c | 4 +-
target/alpha/mem_helper.c | 6 +-
target/arm/cpu.c | 4 +-
target/arm/op_helper.c | 4 +-
target/cris/cpu.h | 2 +-
target/cris/helper.c | 4 +-
target/cris/op_helper.c | 6 +-
target/hppa/cpu.h | 3 +-
target/hppa/helper.c | 2 +-
target/hppa/op_helper.c | 2 +-
target/i386/cpu.h | 2 +-
target/i386/excp_helper.c | 4 +-
target/i386/mem_helper.c | 6 +-
target/lm32/cpu.h | 2 +-
target/lm32/helper.c | 2 +-
target/lm32/op_helper.c | 6 +-
target/m68k/cpu.c | 4 +-
target/m68k/cpu.h | 161 ++++++++++-
target/m68k/helper.c | 606 +++++++++++++++++++++++++++++++++++++++++-
target/m68k/helper.h | 2 +
target/m68k/monitor.c | 22 ++
target/m68k/op_helper.c | 101 ++++++-
target/m68k/translate.c | 233 +++++++++++-----
target/microblaze/cpu.h | 2 +-
target/microblaze/helper.c | 4 +-
target/microblaze/op_helper.c | 6 +-
target/mips/helper.c | 2 +-
target/mips/internal.h | 2 +-
target/mips/op_helper.c | 10 +-
target/moxie/cpu.h | 2 +-
target/moxie/helper.c | 10 +-
target/nios2/cpu.h | 2 +-
target/nios2/helper.c | 6 +-
target/nios2/mmu.c | 6 +-
target/openrisc/cpu.h | 2 +-
target/openrisc/mmu.c | 8 +-
target/openrisc/mmu_helper.c | 6 +-
target/ppc/cpu.h | 2 +-
target/ppc/mmu_helper.c | 4 +-
target/ppc/user_only_helper.c | 2 +-
target/s390x/excp_helper.c | 4 +-
target/s390x/internal.h | 2 +-
target/s390x/mem_helper.c | 8 +-
target/sh4/cpu.h | 2 +-
target/sh4/helper.c | 4 +-
target/sh4/op_helper.c | 6 +-
target/sparc/cpu.h | 2 +-
target/sparc/ldst_helper.c | 6 +-
target/sparc/mmu_helper.c | 6 +-
target/tilegx/cpu.c | 4 +-
target/tricore/op_helper.c | 4 +-
target/unicore32/cpu.h | 2 +-
target/unicore32/helper.c | 2 +-
target/unicore32/op_helper.c | 6 +-
target/unicore32/softmmu.c | 2 +-
target/xtensa/op_helper.c | 4 +-
63 files changed, 1167 insertions(+), 202 deletions(-)
--
2.14.3
- [Qemu-devel] [PATCH v4 0/7] target/m68k: supervisor mode (part 2),
Laurent Vivier <=
- [Qemu-devel] [PATCH v4 3/7] target/m68k: add Transparent Translation, Laurent Vivier, 2018/01/18
- [Qemu-devel] [PATCH v4 2/7] target/m68k: add MC68040 MMU, Laurent Vivier, 2018/01/18
- [Qemu-devel] [PATCH v4 5/7] target/m68k: add moves, Laurent Vivier, 2018/01/18
- [Qemu-devel] [PATCH v4 6/7] target/m68k: add pflush/ptest, Laurent Vivier, 2018/01/18
- [Qemu-devel] [PATCH v4 4/7] target/m68k: add index parameter to gen_load()/gen_store() and Co., Laurent Vivier, 2018/01/18
- [Qemu-devel] [PATCH v4 7/7] target/m68k: add HMP command "info tlb", Laurent Vivier, 2018/01/18