|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH V4 00/32] Support multiple ARM platform in Xen
Hi,
This is the fourth version of the patch series. It's rebased on the latest
staging.
Major changes in v4:
- Introduce ioremap_nocache, ioremap_wc, ioremap_cache and use it
- Merge patch "Remove early_ioremap" to "Introduce ioremap_attr"
- Rework device tree printk
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. I have only reposted patch which are not
yet acked or changed in v4. All the others patch is in:
git clone -b arm-v4 git://xenbits.xen.org/people/julieng/xen-unstable.git
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 (30):
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, ioremap_cache, ioremap_nocache,
ioremap_wc
xen/arm: Add helpers ioreadl/iowritel
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 | 191 ++++-
xen/arch/arm/early_printk.c | 16 +-
xen/arch/arm/gic.c | 156 +++-
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 | 40 +
xen/arch/arm/setup.c | 14 +-
xen/arch/arm/shutdown.c | 16 +-
xen/arch/arm/time.c | 68 +-
xen/arch/arm/vgic.c | 20 +-
xen/arch/arm/vtimer.c | 13 +-
xen/arch/arm/xen.lds.S | 14 +
xen/common/device_tree.c | 1364 ++++++++++++++++++++++++++++--
xen/drivers/char/Makefile | 2 +
xen/drivers/char/dt-uart.c | 69 ++
xen/drivers/char/exynos4210-uart.c | 365 ++++++++
xen/drivers/char/pl011.c | 88 +-
xen/drivers/char/serial.c | 16 +
xen/drivers/video/arm_hdlcd.c | 2 +-
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 | 2 +-
xen/include/asm-arm/exynos4210-uart.h | 111 +++
xen/include/asm-arm/gic.h | 15 +-
xen/include/asm-arm/irq.h | 8 +
xen/include/asm-arm/mm.h | 29 +-
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 +-
54 files changed, 3800 insertions(+), 370 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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |