mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 16:53:55 -06:00
target/avr: Move cpu register accesses into system memory
Integrate the i/o 0x00-0x1f and 0x38-0x3f loopbacks into the cpu registers with normal address space accesses. We no longer need to trap accesses to the first page within avr_cpu_tlb_fill but can wait until a write occurs. Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
a2860ff908
commit
204a7bd856
5 changed files with 138 additions and 153 deletions
|
@ -23,6 +23,7 @@
|
|||
#include "qemu/qemu-print.h"
|
||||
#include "exec/exec-all.h"
|
||||
#include "exec/translation-block.h"
|
||||
#include "exec/address-spaces.h"
|
||||
#include "cpu.h"
|
||||
#include "disas/dis-asm.h"
|
||||
#include "tcg/debug-assert.h"
|
||||
|
@ -110,6 +111,8 @@ static void avr_cpu_disas_set_info(CPUState *cpu, disassemble_info *info)
|
|||
static void avr_cpu_realizefn(DeviceState *dev, Error **errp)
|
||||
{
|
||||
CPUState *cs = CPU(dev);
|
||||
CPUAVRState *env = cpu_env(cs);
|
||||
AVRCPU *cpu = env_archcpu(env);
|
||||
AVRCPUClass *mcc = AVR_CPU_GET_CLASS(dev);
|
||||
Error *local_err = NULL;
|
||||
|
||||
|
@ -122,6 +125,19 @@ static void avr_cpu_realizefn(DeviceState *dev, Error **errp)
|
|||
cpu_reset(cs);
|
||||
|
||||
mcc->parent_realize(dev, errp);
|
||||
|
||||
/*
|
||||
* Two blocks in the low data space loop back into cpu registers.
|
||||
*/
|
||||
memory_region_init_io(&cpu->cpu_reg1, OBJECT(cpu), &avr_cpu_reg1, env,
|
||||
"avr-cpu-reg1", 32);
|
||||
memory_region_add_subregion(get_system_memory(),
|
||||
OFFSET_DATA, &cpu->cpu_reg1);
|
||||
|
||||
memory_region_init_io(&cpu->cpu_reg2, OBJECT(cpu), &avr_cpu_reg2, env,
|
||||
"avr-cpu-reg2", 8);
|
||||
memory_region_add_subregion(get_system_memory(),
|
||||
OFFSET_DATA + 0x58, &cpu->cpu_reg2);
|
||||
}
|
||||
|
||||
static void avr_cpu_set_int(void *opaque, int irq, int level)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue