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

[Xen-devel] [PATCH ARM v4 00/12] 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 too, plus a few other things:

- the series is rebased onto the patches that Ian already applied
- removing the "link" make target broke stubdom, so I brought that back
- the x86 stack address printk is back, and I moved all the other x86 printks
  to after the "WARN: don't do printk before here" line
- the TODOs in arm/os.h have been implemented (mainly using GCC intrinsics)
- added clrex to the IRQ handler return in case these get interrupted
- added an explicit -march=armv7-a to cope with other compiler defaults
- the zImage header now works with the XSA-95 fix to "xl create"
- added fixes for unbinding ports (also useful on x86)
- configued ARM not to fault on unaligned word accessess (useful for lwIP)
- fixed the off_t type to match POSIX (maybe Mini-OS shouldn't be defining it
  in the first place, but since it is, it should do it correctly).
- there are also some new patches adding support for using the FDT to
  initialise the MM, GIC and grant tables.

This patch roll is also available here:

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

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

Karim Raslan (3):
  mini-os: switched initial C entry point to arch_init
  mini-os: initial ARM support
  mini-os: import libfdt

Thomas Leonard (9):
  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: arm: show registers, stack and exception vector on fault
  mini-os: get RAM base and size from the FDT
  mini-os: get GIC addresses from FDT
  mini-os: added ARM grant table initialisation

 extras/mini-os/ARM-TODO.txt                      |   10 +
 extras/mini-os/COPYING                           |   27 +
 extras/mini-os/Config.mk                         |    2 +
 extras/mini-os/Makefile                          |   48 +-
 extras/mini-os/arch/arm/Makefile                 |   32 +
 extras/mini-os/arch/arm/arch.mk                  |    7 +
 extras/mini-os/arch/arm/arm32.S                  |  222 ++++
 extras/mini-os/arch/arm/events.c                 |   30 +
 extras/mini-os/arch/arm/hypercalls32.S           |   88 ++
 extras/mini-os/arch/arm/minios-arm32.lds         |   75 ++
 extras/mini-os/arch/arm/mm.c                     |  162 +++
 extras/mini-os/arch/arm/panic.c                  |   99 ++
 extras/mini-os/arch/arm/sched.c                  |   37 +
 extras/mini-os/arch/arm/setup.c                  |  112 ++
 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/drivers/gic.c                     |  217 ++++
 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             |   37 +
 extras/mini-os/include/arm/arch_sched.h          |   22 +
 extras/mini-os/include/arm/arch_spinlock.h       |   49 +
 extras/mini-os/include/arm/arm32/arch_wordsize.h |    1 +
 extras/mini-os/include/arm/hypercall-arm32.h     |  173 +++
 extras/mini-os/include/arm/os.h                  |  232 ++++
 extras/mini-os/include/arm/traps.h               |   20 +
 extras/mini-os/include/events.h                  |    4 +
 extras/mini-os/include/fdt.h                     |   60 +
 extras/mini-os/include/gic.h                     |    1 +
 extras/mini-os/include/gnttab.h                  |    1 +
 extras/mini-os/include/hypervisor.h              |    4 +
 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                   |   14 +-
 extras/mini-os/include/x86/os.h                  |    2 -
 extras/mini-os/kernel.c                          |   55 +-
 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                           |   29 +-
 59 files changed, 5632 insertions(+), 112 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/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/drivers/gic.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/hypercall-arm32.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/gic.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®.