[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH ARM v6 00/14] mini-os: initial ARM support
This series is based on Karim's ARM support commits, further broken up into smaller patches. The comments from last time should be addressed now, plus a few other things: - The series is rebased on staging, dropping patches that have already been applied. - The changes have been further split into smaller patches to ease reviewing. Note that the build system isn't changed to allow building the new code until patch 13. - Define BUG to cause an undefined instruction fault. This lets us us dump the registers. - Renamed stack to _boot_stack for clarity. - Include kernel.h from arm/os.h. This is for consistency with x86/os.h and is needed to compile with lwIP. - Moved SVC stack to first 16KB of RAM (provides some protection against stack overlow corrupting memory). - Put translation table in second 16KB (simplifies boot code). - Moved shared_info_page and irqstack to .bss section (smaller image). - Moved __bss_start and _edata inside section in linker script. The linker adds non-listed sections, such as .got, just before .bss. This meant that we accidentally zeroed those out too. - Enable floating point unit. - Require only minimum FDT property lengths (requested by Ian Campbell). Addressed Julien Grall's comments: - Get hypercall numbers from xen.h. - Avoid duplicating the definition of _start's virtual address. - Moved definition of physical_address_offset from asm to C. - Added paddr_t type to represent physical addresses. - Added comments explaining the lengths when checking FDT properties. - Fixed (commented) DEBUG macro. - Drop check for arm,cortex-a9-gic. There are two assumptions the code makes that may need changing in the future, but which hopefully don't need to hold up this initial support: - The assumption that the kernel will be loaded at start of RAM + 0x8000. - The assumption that Xen will mark the GIC address range as device memory. This should probably be fixed when the C code gains the ability to control the translation tables, map 4K pages, etc. Karim Raslan (3): mini-os: headers for ARM mini-os: import libfdt mini-os: arm: events Thomas Leonard (11): mini-os: x86_64: make thread stacks 16-byte aligned mini-os: don't include lib.h from mm.h mini-os: added HYPERVISOR_xsm_op mini-os: use generic local_irq_enable function mini-os: arm: boot code mini-os: arm: memory management mini-os: arm: scheduling mini-os: arm: time mini-os: arm: interrupt controller mini-os: arm: build system mini-os: arm: show registers, stack and exception vector on fault extras/mini-os/ARM-TODO.txt | 5 + extras/mini-os/COPYING | 27 + extras/mini-os/Config.mk | 2 + extras/mini-os/Makefile | 22 + extras/mini-os/arch/arm/Makefile | 32 + extras/mini-os/arch/arm/arch.mk | 7 + extras/mini-os/arch/arm/arm32.S | 294 +++++ extras/mini-os/arch/arm/events.c | 31 + extras/mini-os/arch/arm/gic.c | 232 ++++ extras/mini-os/arch/arm/hypercalls32.S | 64 + extras/mini-os/arch/arm/minios-arm32.lds | 79 ++ extras/mini-os/arch/arm/mm.c | 138 ++ extras/mini-os/arch/arm/panic.c | 98 ++ extras/mini-os/arch/arm/sched.c | 38 + extras/mini-os/arch/arm/setup.c | 119 ++ extras/mini-os/arch/arm/time.c | 202 +++ extras/mini-os/arch/x86/sched.c | 3 + extras/mini-os/events.c | 4 +- extras/mini-os/include/arm/arch_endian.h | 7 + extras/mini-os/include/arm/arch_limits.h | 9 + extras/mini-os/include/arm/arch_mm.h | 38 + extras/mini-os/include/arm/arch_sched.h | 19 + extras/mini-os/include/arm/arch_spinlock.h | 36 + extras/mini-os/include/arm/arm32/arch_wordsize.h | 1 + extras/mini-os/include/arm/gic.h | 1 + extras/mini-os/include/arm/hypercall-arm.h | 98 ++ extras/mini-os/include/arm/os.h | 216 ++++ extras/mini-os/include/arm/traps.h | 20 + extras/mini-os/include/fdt.h | 60 + extras/mini-os/include/hypervisor.h | 2 + extras/mini-os/include/lib.h | 4 +- extras/mini-os/include/libfdt.h | 1478 ++++++++++++++++++++++ extras/mini-os/include/libfdt_env.h | 37 + extras/mini-os/include/mm.h | 5 +- extras/mini-os/include/types.h | 10 +- extras/mini-os/include/x86/os.h | 7 + extras/mini-os/kernel.c | 2 +- extras/mini-os/lib/fdt/fdt.c | 222 ++++ extras/mini-os/lib/fdt/fdt_empty_tree.c | 84 ++ extras/mini-os/lib/fdt/fdt_ro.c | 574 +++++++++ extras/mini-os/lib/fdt/fdt_rw.c | 492 +++++++ extras/mini-os/lib/fdt/fdt_strerror.c | 96 ++ extras/mini-os/lib/fdt/fdt_sw.c | 256 ++++ extras/mini-os/lib/fdt/fdt_wip.c | 118 ++ extras/mini-os/lib/fdt/libfdt_internal.h | 95 ++ extras/mini-os/lib/memmove.c | 45 + extras/mini-os/lib/string.c | 12 + extras/mini-os/lock.c | 1 + extras/mini-os/main.c | 1 + extras/mini-os/tpmfront.c | 1 + 50 files changed, 5433 insertions(+), 11 deletions(-) create mode 100644 extras/mini-os/ARM-TODO.txt create mode 100755 extras/mini-os/arch/arm/Makefile create mode 100644 extras/mini-os/arch/arm/arch.mk create mode 100644 extras/mini-os/arch/arm/arm32.S create mode 100644 extras/mini-os/arch/arm/events.c create mode 100644 extras/mini-os/arch/arm/gic.c create mode 100644 extras/mini-os/arch/arm/hypercalls32.S create mode 100755 extras/mini-os/arch/arm/minios-arm32.lds create mode 100644 extras/mini-os/arch/arm/mm.c create mode 100644 extras/mini-os/arch/arm/panic.c create mode 100644 extras/mini-os/arch/arm/sched.c create mode 100644 extras/mini-os/arch/arm/setup.c create mode 100644 extras/mini-os/arch/arm/time.c create mode 100644 extras/mini-os/include/arm/arch_endian.h create mode 100644 extras/mini-os/include/arm/arch_limits.h create mode 100644 extras/mini-os/include/arm/arch_mm.h create mode 100644 extras/mini-os/include/arm/arch_sched.h create mode 100755 extras/mini-os/include/arm/arch_spinlock.h create mode 100644 extras/mini-os/include/arm/arm32/arch_wordsize.h create mode 100644 extras/mini-os/include/arm/gic.h create mode 100644 extras/mini-os/include/arm/hypercall-arm.h create mode 100644 extras/mini-os/include/arm/os.h create mode 100644 extras/mini-os/include/arm/traps.h create mode 100644 extras/mini-os/include/fdt.h create mode 100644 extras/mini-os/include/libfdt.h create mode 100644 extras/mini-os/include/libfdt_env.h create mode 100644 extras/mini-os/lib/fdt/fdt.c create mode 100644 extras/mini-os/lib/fdt/fdt_empty_tree.c create mode 100644 extras/mini-os/lib/fdt/fdt_ro.c create mode 100644 extras/mini-os/lib/fdt/fdt_rw.c create mode 100644 extras/mini-os/lib/fdt/fdt_strerror.c create mode 100644 extras/mini-os/lib/fdt/fdt_sw.c create mode 100644 extras/mini-os/lib/fdt/fdt_wip.c create mode 100644 extras/mini-os/lib/fdt/libfdt_internal.h create mode 100644 extras/mini-os/lib/memmove.c -- 2.0.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |