[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH ARM v5 00/20] 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 biggest change in this roll is that it can now cope with being loaded at
  different addresses, and so works on Xen 4.4 and Xen/unstable. It does this
  by configuring the MMU to map virtual address x to physical address (x +
  physical_address_offset), where physical_address_offset is calculated to make
  everything appear where the linker is expecting it.
- The GIC code has moved into the arm directory.
- To make review easier (as requested), libfdt support is now added before the
  main ARM commit, which now uses the FDT immediately rather than adding
  support in later commits.
- I also re-enabled test_xenbus. The old code said "Xenbus tests disabled,
  because of a Xend bug". Since xend doesn't exist any longer, we can enable
  these again.

This patch roll is also available here:

  https://github.com/talex5/xen/commits/sent-Jun-26

Please include Karim in any reply as I am not the author of much of this code.


Karim Raslan (4):
  mini-os: switched initial C entry point to arch_init
  mini-os: added arch_init_gnttab
  mini-os: headers for ARM
  mini-os: import libfdt

Thomas Leonard (16):
  mini-os: build fixes
  mini-os: fixed shutdown thread
  mini-os: fixed format string error in unbind_evtchn
  mini-os: use unbind_evtchn in unbind_all_ports
  mini-os: made off_t type signed
  mini-os: whitespace
  mini-os: don't require XEN_HAVE_PV_UPCALL_MASK
  mini-os: add missing casts to MM printk
  mini-os: added HYPERVISOR_xsm_op
  mini-os: added arch_unbind_ports
  mini-os: moved __pte to x86
  mini-os: moved unlikely/likely macros to new compiler.h
  mini-os: enable test_xenbus again
  mini-os: use irqs_disabled() helper in schedule
  mini-os: initial ARM support
  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                            |   45 +-
 extras/mini-os/arch/arm/Makefile                   |   32 +
 extras/mini-os/arch/arm/arch.mk                    |    7 +
 extras/mini-os/arch/arm/arm32.S                    |  332 +++++
 extras/mini-os/arch/arm/events.c                   |   30 +
 extras/mini-os/arch/arm/gic.c                      |  222 +++
 extras/mini-os/arch/arm/hypercalls32.S             |   75 +
 extras/mini-os/arch/arm/minios-arm32.lds           |   75 +
 extras/mini-os/arch/arm/mm.c                       |  134 ++
 extras/mini-os/arch/arm/panic.c                    |   99 ++
 extras/mini-os/arch/arm/sched.c                    |   37 +
 extras/mini-os/arch/arm/setup.c                    |  116 ++
 extras/mini-os/arch/arm/time.c                     |  202 +++
 extras/mini-os/arch/x86/events.c                   |    4 +
 extras/mini-os/arch/x86/mm.c                       |   13 +
 extras/mini-os/arch/x86/setup.c                    |   44 +-
 extras/mini-os/arch/x86/x86_32.S                   |    2 +-
 extras/mini-os/arch/x86/x86_64.S                   |    2 +-
 extras/mini-os/events.c                            |   39 +-
 extras/mini-os/gnttab.c                            |   11 +-
 extras/mini-os/hypervisor.c                        |   12 +-
 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               |   35 +
 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                    |  215 +++
 extras/mini-os/include/arm/traps.h                 |   20 +
 extras/mini-os/include/compiler.h                  |    5 +
 extras/mini-os/include/events.h                    |    4 +
 extras/mini-os/include/fdt.h                       |   60 +
 extras/mini-os/include/gnttab.h                    |    1 +
 extras/mini-os/include/hypervisor.h                |    2 +
 extras/mini-os/include/kernel.h                    |    6 +-
 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                        |    2 +
 extras/mini-os/include/types.h                     |   24 +-
 extras/mini-os/include/x86/os.h                    |   16 +-
 .../mini-os/include/x86/x86_32/hypercall-x86_32.h  |    5 +
 .../mini-os/include/x86/x86_64/hypercall-x86_64.h  |    4 +
 extras/mini-os/kernel.c                            |   49 +-
 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/main.c                              |    2 +-
 extras/mini-os/mm.c                                |    4 +-
 extras/mini-os/sched.c                             |   36 +-
 extras/mini-os/test.c                              |    3 +-
 63 files changed, 5606 insertions(+), 138 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/compiler.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.0


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.