All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH V3 00/41] Support multiple ARM platform in Xen
@ 2013-05-10  2:17 Julien Grall
  2013-05-10  2:17 ` [PATCH V3 01/41] xen/arm: lr must be included in range [0-nr_lr( Julien Grall
                   ` (41 more replies)
  0 siblings, 42 replies; 79+ messages in thread
From: Julien Grall @ 2013-05-10  2:17 UTC (permalink / raw)
  To: xen-devel; +Cc: patches, ian.campbell, Julien Grall, Stefano.Stabellini

Hi,

This is the third version of the patch series. It's rebased on the lastest
master, with 3 others patches.

Major changes in v3:
    - Introduce ioremap_attr, ioreadl, iowritel
    - Typoes, hard tab, java doc...
    - Make generic UART based on DT architecture agnostic
    - Remove hardcoded IRQs in the virtual timer
    - Rework device tree printk

Major changes in v2:
    - Add platform_poweroff and platform_quirks
    - Rework early assembly printk to use macro instead of function
    - Use defines where it's possible in exynos UART code
    - Missing Signed-off-by from Anthony exynos UART code
    - Introduce request_dt_irq and setup_dt_irq. request_irq and setup_irq
    are deprecated for ARM. This part is divided in small patches (one to introduce
    new function and one to remove the old function) to avoid compilation breakage.

For all changes see in each patch.

Xen can boot on both Arndale Board and Versatile Express without recompilation.
But there is still some hardcoded part, mainly in assembly.

Things to do:
    - Move secondary CPUs bring up code in platform specific
    - Move out of Xen the switch between secure mode and hypervisor mode
    - Rework dom0 device tree creation
    - Use everywhere the new device tree API
    - Add a support for SYS MMU

For the moment the ARM specific known bugs are:
    - Bash can sometimes crash with: segfault, memory corruption. It's
    seems it's due to a lack of VPF save/restore in Xen.
    - Assert in early code, ie before console is setup, let Xen spinned
    without an error message.

If you want to try this patch series you can clone:
    git clone -b arm-v3 git://xenbits.xen.org/people/julieng/xen-unstable.git

The command line to compile Xen is the same as before. You just need to
specify on Xen command line, via the device tree, which UART will be used
for the console.

Feel free to test this branch. The wiki page is up-to-date for the arndale
board:
http://wiki.xen.org/wiki/Xen_ARM_with_Virtualization_Extensions/Arndale

Cheers,

Anthony PERARD (2):
  xen/arm: Add exynos 4210 UART support
  xen/arm: Add Exynos 4210 UART support for early printk

Julien Grall (39):
  xen/arm: lr must be included in range [0-nr_lr(
  xen/arm: Don't allow dom0 to access to vpl011 UART0 memory range
  xen/arm: Remove duplicated GICD_ICPIDR2 definition
  xen/arm: Bump early printk internal buffer to 512
  xen/arm: Fix early_panic when EARLY_PRINTK is disabled
  xen/arm: Load dtb after dom0 kernel
  xen/arm: Switch to SYS_STATE_boot right after console setup
  xen/arm: Export early_vprintk
  xen/arm: Extend create_xen_entries prototype to take mapping
    attribute
  xen/mm: Align virtual address on PAGE_SIZE in iounmap
  xen/arm: Introduce ioremap_attr
  xen/arm: Add helpers ioreadl/iowritel
  xen/arm: Remove early_ioremap
  xen/arm: Create a hierarchical device tree
  xen/arm: Add helpers to use the device tree
  xen/arm: Add helpers to retrieve an address from the device tree
  xen/arm: Add helpers to retrieve an interrupt description from the
    device tree
  xen/arm: Introduce gic_route_dt_irq
  xen/arm: Introduce gic_irq_xlate
  xen/arm: Introduce setup_dt_irq
  xen/arm: Introduce request_dt_irq
  xen/arm: Use hierarchical device tree to retrieve GIC information
  xen/arm: Retrieve timer interrupts from the device tree
  xen/arm: Don't hardcode VGIC informations
  xen/arm: Don't hardcode virtual timer IRQs
  xen/arm: Introduce a generic way to use a device from the device tree
  xen/arm: New callback in uart_driver to get device tree interrupt
    structure
  xen/arm: Add generic UART to get the device in the device tree
  xen/arm: Use device tree API in pl011 UART driver
  xen/arm: Use the device tree to map the address range and IRQ to dom0
  xen/arm: Allow Xen to run on multiple platform without recompilation
  xen/arm: WORKAROUND 1:1 memory mapping for dom0
  xen/arm: Add versatile express platform
  xen/arm: Remove request_irq
  xen/arm: Remove setup_irq
  xen/arm: Don't use pl011 UART by default for early printk
  xen/arm: Add platform specific code for the exynos5
  xen/arm: WORKAROUND Support kick cpus and switch to hypervisor for
    the exynos5
  xen/arm64: Remove hardcoded value for gic in assembly code

 config/arm32.mk                          |    1 +
 docs/misc/arm/early-printk.txt           |   15 +
 xen/arch/arm/Makefile                    |    4 +-
 xen/arch/arm/Rules.mk                    |   21 +
 xen/arch/arm/arm32/Makefile              |    4 +-
 xen/arch/arm/arm32/debug-exynos4210.inc  |   77 ++
 xen/arch/arm/arm32/debug-pl011.inc       |   58 ++
 xen/arch/arm/arm32/debug.S               |   33 +
 xen/arch/arm/arm32/head.S                |   84 +-
 xen/arch/arm/arm32/mode_switch.S         |   75 +-
 xen/arch/arm/arm64/Makefile              |    2 +
 xen/arch/arm/arm64/debug-pl011.inc       |   59 ++
 xen/arch/arm/arm64/debug.S               |   33 +
 xen/arch/arm/arm64/head.S                |   69 +-
 xen/arch/arm/arm64/mode_switch.S         |    7 +-
 xen/arch/arm/device.c                    |   74 ++
 xen/arch/arm/domain_build.c              |  194 ++++-
 xen/arch/arm/early_printk.c              |   21 +-
 xen/arch/arm/gic.c                       |  160 +++-
 xen/arch/arm/irq.c                       |    8 +-
 xen/arch/arm/mm.c                        |   57 +-
 xen/arch/arm/platform.c                  |  137 +++
 xen/arch/arm/platforms/Makefile          |    1 +
 xen/arch/arm/platforms/exynos5.c         |  110 +++
 xen/arch/arm/platforms/vexpress.c        |   43 +
 xen/arch/arm/setup.c                     |   16 +-
 xen/arch/arm/shutdown.c                  |   16 +-
 xen/arch/arm/time.c                      |   68 +-
 xen/arch/arm/vgic.c                      |   20 +-
 xen/arch/arm/vpl011.c                    |    4 +-
 xen/arch/arm/vtimer.c                    |   13 +-
 xen/arch/arm/xen.lds.S                   |   14 +
 xen/common/device_tree.c                 | 1372 ++++++++++++++++++++++++++++--
 xen/drivers/char/Makefile                |    2 +
 xen/drivers/char/dt-uart.c               |   69 ++
 xen/drivers/char/exynos4210-uart.c       |  359 ++++++++
 xen/drivers/char/pl011.c                 |   84 +-
 xen/drivers/char/serial.c                |   16 +
 xen/drivers/video/arm_hdlcd.c            |    3 +-
 xen/include/asm-arm/config.h             |   15 +-
 xen/include/asm-arm/device.h             |   52 ++
 xen/include/asm-arm/domain.h             |    5 +-
 xen/include/asm-arm/early_printk.h       |    8 +-
 xen/include/asm-arm/exynos4210-uart.h    |  111 +++
 xen/include/asm-arm/gic.h                |   16 +-
 xen/include/asm-arm/irq.h                |    8 +
 xen/include/asm-arm/mm.h                 |   14 +-
 xen/include/asm-arm/page.h               |    2 +
 xen/include/asm-arm/platform.h           |   61 ++
 xen/include/asm-arm/platforms/exynos5.h  |   39 +
 xen/include/asm-arm/platforms/vexpress.h |   14 +
 xen/include/asm-arm/time.h               |   15 +
 xen/include/xen/device_tree.h            |  404 ++++++++-
 xen/include/xen/serial.h                 |   11 +-
 xen/include/xen/vmap.h                   |    4 +-
 55 files changed, 3804 insertions(+), 378 deletions(-)
 create mode 100644 docs/misc/arm/early-printk.txt
 create mode 100644 xen/arch/arm/arm32/debug-exynos4210.inc
 create mode 100644 xen/arch/arm/arm32/debug-pl011.inc
 create mode 100644 xen/arch/arm/arm32/debug.S
 create mode 100644 xen/arch/arm/arm64/debug-pl011.inc
 create mode 100644 xen/arch/arm/arm64/debug.S
 create mode 100644 xen/arch/arm/device.c
 create mode 100644 xen/arch/arm/platform.c
 create mode 100644 xen/arch/arm/platforms/exynos5.c
 create mode 100644 xen/drivers/char/dt-uart.c
 create mode 100644 xen/drivers/char/exynos4210-uart.c
 create mode 100644 xen/include/asm-arm/device.h
 create mode 100644 xen/include/asm-arm/exynos4210-uart.h
 create mode 100644 xen/include/asm-arm/platform.h
 create mode 100644 xen/include/asm-arm/platforms/exynos5.h

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 79+ messages in thread

end of thread, other threads:[~2013-05-10 17:06 UTC | newest]

Thread overview: 79+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-10  2:17 [PATCH V3 00/41] Support multiple ARM platform in Xen Julien Grall
2013-05-10  2:17 ` [PATCH V3 01/41] xen/arm: lr must be included in range [0-nr_lr( Julien Grall
2013-05-10  2:17 ` [PATCH V3 02/41] xen/arm: Don't allow dom0 to access to vpl011 UART0 memory range Julien Grall
2013-05-10  2:17 ` [PATCH V3 03/41] xen/arm: Remove duplicated GICD_ICPIDR2 definition Julien Grall
2013-05-10  2:17 ` [PATCH V3 04/41] xen/arm: Bump early printk internal buffer to 512 Julien Grall
2013-05-10  2:17 ` [PATCH V3 05/41] xen/arm: Fix early_panic when EARLY_PRINTK is disabled Julien Grall
2013-05-10  2:17 ` [PATCH V3 06/41] xen/arm: Load dtb after dom0 kernel Julien Grall
2013-05-10  2:17 ` [PATCH V3 07/41] xen/arm: Switch to SYS_STATE_boot right after console setup Julien Grall
2013-05-10  8:40   ` Ian Campbell
2013-05-10  2:17 ` [PATCH V3 08/41] xen/arm: Export early_vprintk Julien Grall
2013-05-10  8:46   ` Ian Campbell
2013-05-10  2:17 ` [PATCH V3 09/41] xen/arm: Extend create_xen_entries prototype to take mapping attribute Julien Grall
2013-05-10  9:08   ` Ian Campbell
2013-05-10  2:17 ` [PATCH V3 10/41] xen/mm: Align virtual address on PAGE_SIZE in iounmap Julien Grall
2013-05-10  8:23   ` Jan Beulich
2013-05-10 12:40     ` Julien Grall
2013-05-10  2:17 ` [PATCH V3 11/41] xen/arm: Introduce ioremap_attr Julien Grall
2013-05-10  9:13   ` Ian Campbell
2013-05-10 12:00     ` Julien Grall
2013-05-10 12:07       ` Ian Campbell
2013-05-10 12:38         ` Julien Grall
2013-05-10  9:17   ` Ian Campbell
2013-05-10 17:06     ` Stefano Stabellini
2013-05-10  2:17 ` [PATCH V3 12/41] xen/arm: Add helpers ioreadl/iowritel Julien Grall
2013-05-10  2:17 ` [PATCH V3 13/41] xen/arm: Remove early_ioremap Julien Grall
2013-05-10  9:21   ` Ian Campbell
2013-05-10 12:35     ` Julien Grall
2013-05-10  2:18 ` [PATCH V3 14/41] xen/arm: Create a hierarchical device tree Julien Grall
2013-05-10  8:54   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 15/41] xen/arm: Add helpers to use the " Julien Grall
2013-05-10  8:54   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 16/41] xen/arm: Add helpers to retrieve an address from " Julien Grall
2013-05-10  2:18 ` [PATCH V3 17/41] xen/arm: Add helpers to retrieve an interrupt description " Julien Grall
2013-05-10  2:18 ` [PATCH V3 18/41] xen/arm: Introduce gic_route_dt_irq Julien Grall
2013-05-10  2:18 ` [PATCH V3 19/41] xen/arm: Introduce gic_irq_xlate Julien Grall
2013-05-10  2:18 ` [PATCH V3 20/41] xen/arm: Introduce setup_dt_irq Julien Grall
2013-05-10  2:18 ` [PATCH V3 21/41] xen/arm: Introduce request_dt_irq Julien Grall
2013-05-10  2:18 ` [PATCH V3 22/41] xen/arm: Use hierarchical device tree to retrieve GIC information Julien Grall
2013-05-10  9:23   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 23/41] xen/arm: Retrieve timer interrupts from the device tree Julien Grall
2013-05-10  9:23   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 24/41] xen/arm: Don't hardcode VGIC informations Julien Grall
2013-05-10  2:18 ` [PATCH V3 25/41] xen/arm: Don't hardcode virtual timer IRQs Julien Grall
2013-05-10  9:25   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 26/41] xen/arm: Introduce a generic way to use a device from the device tree Julien Grall
2013-05-10  2:18 ` [PATCH V3 27/41] xen/arm: New callback in uart_driver to get device tree interrupt structure Julien Grall
2013-05-10  2:18 ` [PATCH V3 28/41] xen/arm: Add generic UART to get the device in the device tree Julien Grall
2013-05-10  9:32   ` Ian Campbell
2013-05-10 12:47     ` Julien Grall
2013-05-10  2:18 ` [PATCH V3 29/41] xen/arm: Use device tree API in pl011 UART driver Julien Grall
2013-05-10  9:35   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 30/41] xen/arm: Use the device tree to map the address range and IRQ to dom0 Julien Grall
2013-05-10  9:37   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 31/41] xen/arm: Allow Xen to run on multiple platform without recompilation Julien Grall
2013-05-10  9:41   ` Ian Campbell
2013-05-10 14:47     ` Julien Grall
2013-05-10  2:18 ` [PATCH V3 32/41] xen/arm: WORKAROUND 1:1 memory mapping for dom0 Julien Grall
2013-05-10  2:18 ` [PATCH V3 33/41] xen/arm: Add versatile express platform Julien Grall
2013-05-10  9:44   ` Ian Campbell
2013-05-10 14:00     ` Julien Grall
2013-05-10 14:06       ` Ian Campbell
2013-05-10 14:10         ` Julien Grall
2013-05-10 14:19           ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 34/41] xen/arm: Remove request_irq Julien Grall
2013-05-10  2:18 ` [PATCH V3 35/41] xen/arm: Remove setup_irq Julien Grall
2013-05-10  2:18 ` [PATCH V3 36/41] xen/arm: Don't use pl011 UART by default for early printk Julien Grall
2013-05-10  9:46   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 37/41] xen/arm: Add exynos 4210 UART support Julien Grall
2013-05-10  9:49   ` Ian Campbell
2013-05-10 13:00     ` Julien Grall
2013-05-10  2:18 ` [PATCH V3 38/41] xen/arm: Add Exynos 4210 UART support for early printk Julien Grall
2013-05-10  9:49   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 39/41] xen/arm: Add platform specific code for the exynos5 Julien Grall
2013-05-10  9:50   ` Ian Campbell
2013-05-10  2:18 ` [PATCH V3 40/41] xen/arm: WORKAROUND Support kick cpus and switch to hypervisor " Julien Grall
2013-05-10  2:18 ` [PATCH V3 41/41] xen/arm64: Remove hardcoded value for gic in assembly code Julien Grall
2013-05-10  9:48 ` [PATCH V3 00/41] Support multiple ARM platform in Xen George Dunlap
2013-05-10 12:50   ` Julien Grall
2013-05-10 13:34     ` Ian Campbell

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.