From 46fc68bee63cd8385b6db86a7d81d20237f241ce Mon Sep 17 00:00:00 2001 From: Antony Pavlov Date: Sat, 24 Aug 2013 21:59:29 +0400 Subject: [PATCH] qemu-1.6.0 eos support patch Signed-off-by: Antony Pavlov --- hw/arm/Makefile.objs | 1 + memory.c | 5 ++++- target-arm/cpu.c | 13 +++++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs index 9e3a06f..b6a67b0 100644 --- a/hw/arm/Makefile.objs +++ b/hw/arm/Makefile.objs @@ -2,6 +2,7 @@ obj-y += boot.o collie.o exynos4_boards.o gumstix.o highbank.o obj-y += integratorcp.o kzm.o mainstone.o musicpal.o nseries.o obj-y += omap_sx1.o palm.o pic_cpu.o realview.o spitz.o stellaris.o obj-y += tosa.o versatilepb.o vexpress.o xilinx_zynq.o z2.o +obj-y += eos.o obj-y += armv7m.o exynos4210.o pxa2xx.o pxa2xx_gpio.o pxa2xx_pic.o obj-y += omap1.o omap2.o strongarm.o diff --git a/memory.c b/memory.c index 886f838..369a53f 100644 --- a/memory.c +++ b/memory.c @@ -1437,7 +1437,7 @@ static void memory_region_add_subregion_common(MemoryRegion *mr, int128_make64(other->addr))) { continue; } -#if 0 +#if 1 printf("warning: subregion collision %llx/%llx (%s) " "vs %llx/%llx (%s)\n", (unsigned long long)offset, @@ -1465,6 +1465,9 @@ void memory_region_add_subregion(MemoryRegion *mr, hwaddr offset, MemoryRegion *subregion) { + fprintf(stderr, "%08X - %08X: %s\n", + (int)offset, (int)offset + (int)subregion->size.lo - 1, + subregion->name); subregion->may_overlap = false; subregion->priority = 0; memory_region_add_subregion_common(mr, offset, subregion); diff --git a/target-arm/cpu.c b/target-arm/cpu.c index 5a7566b..46e347c 100644 --- a/target-arm/cpu.c +++ b/target-arm/cpu.c @@ -255,6 +255,18 @@ static void arm926_initfn(Object *obj) cpu->reset_sctlr = 0x00090078; } +static void arm946eos_initfn(Object *obj) +{ + ARMCPU *cpu = ARM_CPU(obj); + set_feature(&cpu->env, ARM_FEATURE_V5); + set_feature(&cpu->env, ARM_FEATURE_MPU); + set_feature(&cpu->env, ARM_FEATURE_DUMMY_C15_REGS); + cpu->midr = 0x41059461; + cpu->ctr = (7 << 25) | (1 << 24) | (4 << 18) | (4 << 15) \ + | (2 << 12) | (4 << 6) | (4 << 3) | (2 << 0); + cpu->reset_sctlr = 0x00000078; +} + static void arm946_initfn(Object *obj) { ARMCPU *cpu = ARM_CPU(obj); @@ -776,6 +788,7 @@ typedef struct ARMCPUInfo { static const ARMCPUInfo arm_cpus[] = { { .name = "arm926", .initfn = arm926_initfn }, + { .name = "arm946eos", .initfn = arm946eos_initfn }, { .name = "arm946", .initfn = arm946_initfn }, { .name = "arm1026", .initfn = arm1026_initfn }, /* What QEMU calls "arm1136-r2" is actually the 1136 r0p2, i.e. an -- 1.8.3.2