diff options
-rw-r--r-- | Config.mk | 4 | ||||
-rw-r--r-- | config/arm32.mk (renamed from config/arm.mk) | 0 | ||||
-rw-r--r-- | xen/Rules.mk | 2 | ||||
-rw-r--r-- | xen/arch/arm/Makefile | 9 | ||||
-rw-r--r-- | xen/arch/arm/Rules.mk | 13 | ||||
-rw-r--r-- | xen/arch/arm/arm32/Makefile | 5 | ||||
-rw-r--r-- | xen/arch/arm/arm32/asm-offsets.c (renamed from xen/arch/arm/asm-offsets.c) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/entry.S (renamed from xen/arch/arm/entry.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/head.S (renamed from xen/arch/arm/head.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/Makefile (renamed from xen/arch/arm/lib/Makefile) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/assembler.h (renamed from xen/arch/arm/lib/assembler.h) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/bitops.h (renamed from xen/arch/arm/lib/bitops.h) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/changebit.S (renamed from xen/arch/arm/lib/changebit.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/clearbit.S (renamed from xen/arch/arm/lib/clearbit.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/copy_template.S (renamed from xen/arch/arm/lib/copy_template.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/div64.S (renamed from xen/arch/arm/lib/div64.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/findbit.S (renamed from xen/arch/arm/lib/findbit.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/lib1funcs.S (renamed from xen/arch/arm/lib/lib1funcs.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/lshrdi3.S (renamed from xen/arch/arm/lib/lshrdi3.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/memcpy.S (renamed from xen/arch/arm/lib/memcpy.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/memmove.S (renamed from xen/arch/arm/lib/memmove.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/memset.S (renamed from xen/arch/arm/lib/memset.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/memzero.S (renamed from xen/arch/arm/lib/memzero.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/setbit.S (renamed from xen/arch/arm/lib/setbit.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/testchangebit.S (renamed from xen/arch/arm/lib/testchangebit.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/testclearbit.S (renamed from xen/arch/arm/lib/testclearbit.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/lib/testsetbit.S (renamed from xen/arch/arm/lib/testsetbit.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/arm32/mode_switch.S (renamed from xen/arch/arm/mode_switch.S) | 2 | ||||
-rw-r--r-- | xen/arch/arm/arm32/proc-ca15.S (renamed from xen/arch/arm/proc-ca15.S) | 0 | ||||
-rw-r--r-- | xen/arch/arm/domain.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/domain_build.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/gic.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/irq.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/p2m.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/setup.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/smpboot.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/traps.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/vgic.c | 2 | ||||
-rw-r--r-- | xen/arch/arm/vtimer.c | 2 | ||||
-rw-r--r-- | xen/include/asm-arm/gic.h (renamed from xen/arch/arm/gic.h) | 6 |
40 files changed, 33 insertions, 28 deletions
@@ -14,7 +14,9 @@ debug ?= y debug_symbols ?= $(debug) XEN_COMPILE_ARCH ?= $(shell uname -m | sed -e s/i.86/x86_32/ \ - -e s/i86pc/x86_32/ -e s/amd64/x86_64/ -e s/arm.*/arm/) + -e s/i86pc/x86_32/ -e s/amd64/x86_64/ \ + -e s/armv7.*/arm32/) + XEN_TARGET_ARCH ?= $(XEN_COMPILE_ARCH) XEN_OS ?= $(shell uname -s) diff --git a/config/arm.mk b/config/arm32.mk index f64f0c1c83..f64f0c1c83 100644 --- a/config/arm.mk +++ b/config/arm32.mk diff --git a/xen/Rules.mk b/xen/Rules.mk index f7cb8b2c86..c2db449648 100644 --- a/xen/Rules.mk +++ b/xen/Rules.mk @@ -28,7 +28,7 @@ endif # Set ARCH/SUBARCH appropriately. override TARGET_SUBARCH := $(XEN_TARGET_ARCH) override TARGET_ARCH := $(shell echo $(XEN_TARGET_ARCH) | \ - sed -e 's/x86.*/x86/') + sed -e 's/x86.*/x86/' -e s'/arm\(32\|64\)/arm/g') TARGET := $(BASEDIR)/xen diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile index 4c61b042a7..24c0c12625 100644 --- a/xen/arch/arm/Makefile +++ b/xen/arch/arm/Makefile @@ -1,8 +1,7 @@ -subdir-y += lib +subdir-$(arm32) += arm32 obj-y += dummy.o obj-y += early_printk.o -obj-y += entry.o obj-y += domain.o obj-y += domctl.o obj-y += sysctl.o @@ -12,8 +11,6 @@ obj-y += io.o obj-y += irq.o obj-y += kernel.o obj-y += mm.o -obj-y += mode_switch.o -obj-y += proc-ca15.o obj-y += p2m.o obj-y += percpu.o obj-y += guestcopy.o @@ -36,7 +33,7 @@ obj-y += dtb.o AFLAGS += -DCONFIG_DTB_FILE=\"$(CONFIG_DTB_FILE)\" endif -ALL_OBJS := head.o $(ALL_OBJS) +ALL_OBJS := $(TARGET_SUBARCH)/head.o $(ALL_OBJS) $(TARGET): $(TARGET)-syms $(TARGET).bin # XXX: VE model loads by VMA so instead of @@ -81,7 +78,7 @@ $(TARGET)-syms: prelink.o xen.lds $(BASEDIR)/common/symbols-dummy.o $(@D)/.$(@F).1.o -o $@ rm -f $(@D)/.$(@F).[0-9]* -asm-offsets.s: asm-offsets.c +asm-offsets.s: $(TARGET_SUBARCH)/asm-offsets.c $(CC) $(filter-out -flto,$(CFLAGS)) -S -o $@ $< xen.lds: xen.lds.S diff --git a/xen/arch/arm/Rules.mk b/xen/arch/arm/Rules.mk index a45c654346..f83bfee24d 100644 --- a/xen/arch/arm/Rules.mk +++ b/xen/arch/arm/Rules.mk @@ -12,16 +12,19 @@ CFLAGS += -fno-builtin -fno-common -Wredundant-decls CFLAGS += -iwithprefix include -Werror -Wno-pointer-arith -pipe CFLAGS += -I$(BASEDIR)/include -# Prevent floating-point variables from creeping into Xen. -CFLAGS += -msoft-float - $(call cc-options-add,CFLAGS,CC,$(EMBEDDED_EXTRA_CFLAGS)) $(call cc-option-add,CFLAGS,CC,-Wnested-externs) arm := y +ifeq ($(TARGET_SUBARCH),arm32) +# Prevent floating-point variables from creeping into Xen. +CFLAGS += -msoft-float +CFLAGS += -mcpu=cortex-a15 -mfpu=vfpv3 -mfloat-abi=softfp +arm32 := y +arm64 := n +endif + ifneq ($(call cc-option,$(CC),-fvisibility=hidden,n),n) CFLAGS += -DGCC_HAS_VISIBILITY_ATTRIBUTE endif - -CFLAGS += -mcpu=cortex-a15 -mfpu=vfpv3 -mfloat-abi=softfp diff --git a/xen/arch/arm/arm32/Makefile b/xen/arch/arm/arm32/Makefile new file mode 100644 index 0000000000..20931fa63d --- /dev/null +++ b/xen/arch/arm/arm32/Makefile @@ -0,0 +1,5 @@ +subdir-y += lib + +obj-y += entry.o +obj-y += mode_switch.o +obj-y += proc-ca15.o diff --git a/xen/arch/arm/asm-offsets.c b/xen/arch/arm/arm32/asm-offsets.c index cc1a72a659..cc1a72a659 100644 --- a/xen/arch/arm/asm-offsets.c +++ b/xen/arch/arm/arm32/asm-offsets.c diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/arm32/entry.S index 36114273d7..36114273d7 100644 --- a/xen/arch/arm/entry.S +++ b/xen/arch/arm/arm32/entry.S diff --git a/xen/arch/arm/head.S b/xen/arch/arm/arm32/head.S index 93f4edba53..93f4edba53 100644 --- a/xen/arch/arm/head.S +++ b/xen/arch/arm/arm32/head.S diff --git a/xen/arch/arm/lib/Makefile b/xen/arch/arm/arm32/lib/Makefile index 4cf41f41e1..4cf41f41e1 100644 --- a/xen/arch/arm/lib/Makefile +++ b/xen/arch/arm/arm32/lib/Makefile diff --git a/xen/arch/arm/lib/assembler.h b/xen/arch/arm/arm32/lib/assembler.h index f8d4b3aa04..f8d4b3aa04 100644 --- a/xen/arch/arm/lib/assembler.h +++ b/xen/arch/arm/arm32/lib/assembler.h diff --git a/xen/arch/arm/lib/bitops.h b/xen/arch/arm/arm32/lib/bitops.h index 689f2e8665..689f2e8665 100644 --- a/xen/arch/arm/lib/bitops.h +++ b/xen/arch/arm/arm32/lib/bitops.h diff --git a/xen/arch/arm/lib/changebit.S b/xen/arch/arm/arm32/lib/changebit.S index 62954bcd07..62954bcd07 100644 --- a/xen/arch/arm/lib/changebit.S +++ b/xen/arch/arm/arm32/lib/changebit.S diff --git a/xen/arch/arm/lib/clearbit.S b/xen/arch/arm/arm32/lib/clearbit.S index 42ce41656d..42ce41656d 100644 --- a/xen/arch/arm/lib/clearbit.S +++ b/xen/arch/arm/arm32/lib/clearbit.S diff --git a/xen/arch/arm/lib/copy_template.S b/xen/arch/arm/arm32/lib/copy_template.S index 805e3f8fb0..805e3f8fb0 100644 --- a/xen/arch/arm/lib/copy_template.S +++ b/xen/arch/arm/arm32/lib/copy_template.S diff --git a/xen/arch/arm/lib/div64.S b/xen/arch/arm/arm32/lib/div64.S index 83a5f22a84..83a5f22a84 100644 --- a/xen/arch/arm/lib/div64.S +++ b/xen/arch/arm/arm32/lib/div64.S diff --git a/xen/arch/arm/lib/findbit.S b/xen/arch/arm/arm32/lib/findbit.S index 2fbcc82995..2fbcc82995 100644 --- a/xen/arch/arm/lib/findbit.S +++ b/xen/arch/arm/arm32/lib/findbit.S diff --git a/xen/arch/arm/lib/lib1funcs.S b/xen/arch/arm/arm32/lib/lib1funcs.S index 95ee3121d9..95ee3121d9 100644 --- a/xen/arch/arm/lib/lib1funcs.S +++ b/xen/arch/arm/arm32/lib/lib1funcs.S diff --git a/xen/arch/arm/lib/lshrdi3.S b/xen/arch/arm/arm32/lib/lshrdi3.S index 3e8887ef4e..3e8887ef4e 100644 --- a/xen/arch/arm/lib/lshrdi3.S +++ b/xen/arch/arm/arm32/lib/lshrdi3.S diff --git a/xen/arch/arm/lib/memcpy.S b/xen/arch/arm/arm32/lib/memcpy.S index d1ab9fbb55..d1ab9fbb55 100644 --- a/xen/arch/arm/lib/memcpy.S +++ b/xen/arch/arm/arm32/lib/memcpy.S diff --git a/xen/arch/arm/lib/memmove.S b/xen/arch/arm/arm32/lib/memmove.S index 4e142b8aeb..4e142b8aeb 100644 --- a/xen/arch/arm/lib/memmove.S +++ b/xen/arch/arm/arm32/lib/memmove.S diff --git a/xen/arch/arm/lib/memset.S b/xen/arch/arm/arm32/lib/memset.S index d2937a3e0e..d2937a3e0e 100644 --- a/xen/arch/arm/lib/memset.S +++ b/xen/arch/arm/arm32/lib/memset.S diff --git a/xen/arch/arm/lib/memzero.S b/xen/arch/arm/arm32/lib/memzero.S index ce25acaad1..ce25acaad1 100644 --- a/xen/arch/arm/lib/memzero.S +++ b/xen/arch/arm/arm32/lib/memzero.S diff --git a/xen/arch/arm/lib/setbit.S b/xen/arch/arm/arm32/lib/setbit.S index c828851553..c828851553 100644 --- a/xen/arch/arm/lib/setbit.S +++ b/xen/arch/arm/arm32/lib/setbit.S diff --git a/xen/arch/arm/lib/testchangebit.S b/xen/arch/arm/arm32/lib/testchangebit.S index a7f527cd98..a7f527cd98 100644 --- a/xen/arch/arm/lib/testchangebit.S +++ b/xen/arch/arm/arm32/lib/testchangebit.S diff --git a/xen/arch/arm/lib/testclearbit.S b/xen/arch/arm/arm32/lib/testclearbit.S index 8f39c72936..8f39c72936 100644 --- a/xen/arch/arm/lib/testclearbit.S +++ b/xen/arch/arm/arm32/lib/testclearbit.S diff --git a/xen/arch/arm/lib/testsetbit.S b/xen/arch/arm/arm32/lib/testsetbit.S index 1b8d273100..1b8d273100 100644 --- a/xen/arch/arm/lib/testsetbit.S +++ b/xen/arch/arm/arm32/lib/testsetbit.S diff --git a/xen/arch/arm/mode_switch.S b/xen/arch/arm/arm32/mode_switch.S index 3dba38df7d..411eb924cb 100644 --- a/xen/arch/arm/mode_switch.S +++ b/xen/arch/arm/arm32/mode_switch.S @@ -21,7 +21,7 @@ #include <asm/page.h> #include <asm/platform_vexpress.h> #include <asm/asm_defns.h> -#include "gic.h" +#include <asm/gic.h> /* XXX: Versatile Express specific code */ diff --git a/xen/arch/arm/proc-ca15.S b/xen/arch/arm/arm32/proc-ca15.S index dcdd42e09e..dcdd42e09e 100644 --- a/xen/arch/arm/proc-ca15.S +++ b/xen/arch/arm/arm32/proc-ca15.S diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c index 7bbad45553..2ad5c9063e 100644 --- a/xen/arch/arm/domain.c +++ b/xen/arch/arm/domain.c @@ -12,7 +12,7 @@ #include <asm/p2m.h> #include <asm/irq.h> -#include "gic.h" +#include <asm/gic.h> #include "vtimer.h" #include "vpl011.h" diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index 432fdc01c3..1e9776d597 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -11,7 +11,7 @@ #include <xen/libfdt/libfdt.h> #include <xen/guest_access.h> -#include "gic.h" +#include <asm/gic.h> #include "kernel.h" static unsigned int __initdata opt_dom0_max_vcpus; diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c index 7686bde7cf..b77761e245 100644 --- a/xen/arch/arm/gic.c +++ b/xen/arch/arm/gic.c @@ -30,7 +30,7 @@ #include <asm/p2m.h> #include <asm/domain.h> -#include "gic.h" +#include <asm/gic.h> /* Access to the GIC Distributor registers through the fixmap */ #define GICD ((volatile uint32_t *) FIXMAP_ADDR(FIXMAP_GICD)) diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c index a50281b04b..587a725dc2 100644 --- a/xen/arch/arm/irq.c +++ b/xen/arch/arm/irq.c @@ -25,7 +25,7 @@ #include <xen/errno.h> #include <xen/sched.h> -#include "gic.h" +#include <asm/gic.h> static void enable_none(struct irq_desc *irq) { } static unsigned int startup_none(struct irq_desc *irq) { return 0; } diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c index 7ae451596e..852f0d879e 100644 --- a/xen/arch/arm/p2m.c +++ b/xen/arch/arm/p2m.c @@ -4,7 +4,7 @@ #include <xen/errno.h> #include <xen/domain_page.h> #include <asm/flushtlb.h> -#include "gic.h" +#include <asm/gic.h> void dump_p2m_lookup(struct domain *d, paddr_t addr) { diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c index bbee051c1b..b5cb912f0a 100644 --- a/xen/arch/arm/setup.c +++ b/xen/arch/arm/setup.c @@ -39,7 +39,7 @@ #include <asm/setup.h> #include <asm/vfp.h> #include <asm/early_printk.h> -#include "gic.h" +#include <asm/gic.h> static __used void init_done(void) { diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c index 351b559f48..c7a586b3b8 100644 --- a/xen/arch/arm/smpboot.c +++ b/xen/arch/arm/smpboot.c @@ -29,7 +29,7 @@ #include <xen/timer.h> #include <xen/irq.h> #include <asm/vfp.h> -#include "gic.h" +#include <asm/gic.h> cpumask_t cpu_online_map; EXPORT_SYMBOL(cpu_online_map); diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 096dc0bfb3..bddd7d4094 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -35,7 +35,7 @@ #include "io.h" #include "vtimer.h" -#include "gic.h" +#include <asm/gic.h> /* The base of the stack must always be double-word aligned, which means * that both the kernel half of struct cpu_user_regs (which is pushed in diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c index 3f7e757a08..7d1a5adaeb 100644 --- a/xen/arch/arm/vgic.c +++ b/xen/arch/arm/vgic.c @@ -27,7 +27,7 @@ #include <asm/current.h> #include "io.h" -#include "gic.h" +#include <asm/gic.h> #define VGIC_DISTR_BASE_ADDRESS 0x000000002c001000 diff --git a/xen/arch/arm/vtimer.c b/xen/arch/arm/vtimer.c index 490b021342..1c45f4a9d3 100644 --- a/xen/arch/arm/vtimer.c +++ b/xen/arch/arm/vtimer.c @@ -21,7 +21,7 @@ #include <xen/lib.h> #include <xen/timer.h> #include <xen/sched.h> -#include "gic.h" +#include <asm/gic.h> extern s_time_t ticks_to_ns(uint64_t ticks); extern uint64_t ns_to_ticks(s_time_t ns); diff --git a/xen/arch/arm/gic.h b/xen/include/asm-arm/gic.h index 1bf1b02913..bf30fbdd74 100644 --- a/xen/arch/arm/gic.h +++ b/xen/include/asm-arm/gic.h @@ -1,6 +1,4 @@ /* - * xen/arch/arm/gic.h - * * ARM Generic Interrupt Controller support * * Tim Deegan <tim@xen.org> @@ -17,8 +15,8 @@ * GNU General Public License for more details. */ -#ifndef __ARCH_ARM_GIC_H__ -#define __ARCH_ARM_GIC_H__ +#ifndef __ASM_ARM_GIC_H__ +#define __ASM_ARM_GIC_H__ #define GICD_CTLR (0x000/4) #define GICD_TYPER (0x004/4) |