All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/45] initial arm v8 (64-bit) support
@ 2013-01-23 15:56 Ian Campbell
  2013-01-23 15:56 ` [PATCH 01/45] xen: arm: do not panic when failing to translate a guest address Ian Campbell
                   ` (45 more replies)
  0 siblings, 46 replies; 133+ messages in thread
From: Ian Campbell @ 2013-01-23 15:56 UTC (permalink / raw)
  To: xen-devel; +Cc: Tim Deegan, Stefano Stabellini

First off, Apologies for the massive patch series...

This series boots a 32-bit dom0 kernel to a command prompt on an ARMv8
(AArch64) model. The kernel is the same one as I am currently using with
the 32 bit hypervisor

I haven't yet tried starting a guest or anything super advanced like
that ;-). Also there is not real support for 64-bit domains at all,
although in one or two places I have laid some groundwork.

Sadly the 32- and 64-bit assembly is very different, which makes sharing
the ASM bits pretty much impossible. (Other than register names, the big
change is lack of general conditional instructions).

AArch64 has removed the concept of co-processor registers and replaced
it with system registers which are accessed by name (i.e. the assembler
understands the names). There is most often a 1-1 mapping between an
AArch64 system register and a AArch32 cp register. To try and reduce
ifdeferry in common code I've introduced some macros which take the
AArch64 name but which translate to the appropriate AArch32 cpreg access
in the 32-bit hypervisor. A little bit of ifdeferry remains.

Other uses of the coprocessors (e.g. cache/TLB flushing etc) are
replaced with explicit instructions (again there's mostly a 1-1
mapping). We had already wrapped most of these in a suitable inline
function so it was easy enough to abstract away.

Lastly, rather than switch internally from explicitly sized types to
unsigned long I have instead introduced some semantic types (register_t
and vaddr_t, which complement the existing paddr_t). I'm not really too
sure of this approach though.

Ian.

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

end of thread, other threads:[~2013-02-18 16:43 UTC | newest]

Thread overview: 133+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-01-23 15:56 [PATCH 00/45] initial arm v8 (64-bit) support Ian Campbell
2013-01-23 15:56 ` [PATCH 01/45] xen: arm: do not panic when failing to translate a guest address Ian Campbell
2013-01-23 18:50   ` Stefano Stabellini
2013-01-24 10:00     ` Ian Campbell
2013-01-23 15:56 ` [PATCH 02/45] xen: arm32: Don't bother with the bootloader provided ARM-Linux machine type Ian Campbell
2013-01-24 17:39   ` Stefano Stabellini
2013-02-07 12:20   ` Ian Campbell
2013-01-23 15:56 ` [PATCH 03/45] xen: arm: rename atag_paddr argument fdt_paddr Ian Campbell
2013-02-07 12:08   ` Tim Deegan
2013-02-07 12:18     ` Ian Campbell
2013-02-07 13:18       ` Tim Deegan
2013-01-23 15:56 ` [PATCH 04/45] xen: arm: do not pass a machine ID to dom0 Ian Campbell
2013-02-07 12:09   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 05/45] arm: avoid inline asm for dsb, isb, wfi and sev Ian Campbell
2013-01-24 17:40   ` Stefano Stabellini
2013-01-23 15:56 ` [PATCH 06/45] xen: arm64: initial build + config changes, start of day code Ian Campbell
2013-02-07 13:12   ` Tim Deegan
2013-02-07 13:20     ` Ian Campbell
2013-02-14 11:16       ` Tim Deegan
2013-01-23 15:56 ` [PATCH 07/45] xen: arm64: basic config and types headers Ian Campbell
2013-02-07 14:34   ` Tim Deegan
2013-02-07 14:42     ` Ian Campbell
2013-01-23 15:56 ` [PATCH 08/45] xen: arm64: spinlocks Ian Campbell
2013-02-07 14:42   ` Tim Deegan
2013-02-07 15:34     ` Tim Deegan
2013-02-07 15:51       ` Ian Campbell
2013-02-14 11:20         ` Tim Deegan
2013-02-07 15:50     ` Ian Campbell
2013-01-23 15:56 ` [PATCH 09/45] xen: arm64: atomics Ian Campbell
2013-02-07 14:47   ` Tim Deegan
2013-02-07 15:49     ` Ian Campbell
2013-02-08 15:27       ` Ian Campbell
2013-01-23 15:56 ` [PATCH 10/45] xen: arm: refactor co-pro and sysreg reg handling Ian Campbell
2013-02-07 15:14   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 11/45] xen: arm64: TLB flushes Ian Campbell
2013-02-07 15:31   ` Tim Deegan
2013-02-08 15:41     ` Ian Campbell
2013-01-23 15:56 ` [PATCH 12/45] xen: arm64: PTE handling Ian Campbell
2013-02-07 15:36   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 13/45] xen: arm64: dcache flush Ian Campbell
2013-02-07 16:14   ` Tim Deegan
2013-02-07 16:22     ` Ian Campbell
2013-02-07 16:30       ` Tim Deegan
2013-02-07 16:33         ` Ian Campbell
2013-02-08 16:45           ` Ian Campbell
2013-02-08 16:53             ` Tim Deegan
2013-01-23 15:56 ` [PATCH 14/45] xen: arm64: TLB flushes Ian Campbell
2013-02-07 16:34   ` Tim Deegan
2013-02-07 16:43     ` Ian Campbell
2013-01-23 15:56 ` [PATCH 15/45] xen: arm64: address translation Ian Campbell
2013-02-07 16:38   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 16/45] xen: arm64: barriers and wait for interrupts/events Ian Campbell
2013-02-07 16:43   ` Tim Deegan
2013-02-07 17:01     ` Ian Campbell
2013-01-23 15:56 ` [PATCH 17/45] xen: arm64: xchg and cmpxchg Ian Campbell
2013-02-07 16:48   ` Tim Deegan
2013-02-07 17:06     ` Ian Campbell
2013-02-07 17:18       ` Tim Deegan
2013-01-23 15:56 ` [PATCH 18/45] xen: arm64: interrupt/abort mask/unmask Ian Campbell
2013-02-14 11:26   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 19/45] xen: arm64: div64 Ian Campbell
2013-02-14 11:32   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 20/45] xen: arm64: start of day changes to setup.c Ian Campbell
2013-02-14 11:37   ` Tim Deegan
2013-02-14 11:51     ` Ian Campbell
2013-02-14 11:57       ` Tim Deegan
2013-01-23 15:56 ` [PATCH 21/45] xen: arm64: changes to setup_pagetables and mm.c Ian Campbell
2013-02-14 11:48   ` Tim Deegan
2013-02-14 12:02     ` Ian Campbell
2013-02-14 12:09       ` Tim Deegan
2013-01-23 15:56 ` [PATCH 22/45] xen: arm: extend HSR struct definitions to 64-bit Ian Campbell
2013-02-14 11:49   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 23/45] xen: arm: use vaddr_t more widely Ian Campbell
2013-02-14 12:13   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 24/45] xen: arm: add register_t type, native register size for the hypervisor Ian Campbell
2013-02-14 12:37   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 25/45] xen: arm: separate guest user regs from internal guest state Ian Campbell
2013-02-14 13:10   ` Tim Deegan
2013-02-14 13:38     ` Ian Campbell
2013-02-14 13:50       ` Tim Deegan
2013-02-14 13:57         ` Ian Campbell
2013-02-14 14:40       ` Ian Campbell
2013-02-14 14:48         ` Tim Deegan
2013-01-23 15:56 ` [PATCH 26/45] xen: arm64: add guest type to domain field Ian Campbell
2013-02-14 13:56   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 27/45] xen: arm: move arm32 specific trap handlers to xen/arch/arm/arm32 Ian Campbell
2013-02-14 14:06   ` Tim Deegan
2013-02-14 14:11     ` Ian Campbell
2013-01-23 15:56 ` [PATCH 28/45] xen: arm: arm64 trap handling Ian Campbell
2013-02-14 14:24   ` Tim Deegan
2013-02-14 14:39     ` Ian Campbell
2013-02-18 16:43       ` Ian Campbell
2013-01-23 15:56 ` [PATCH 29/45] xen: arm: pcpu context switch Ian Campbell
2013-02-14 14:36   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 30/45] xen: arm64: percpu variable support Ian Campbell
2013-02-14 14:36   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 31/45] xen: arm: guest context switching Ian Campbell
2013-02-14 14:43   ` Tim Deegan
2013-02-14 14:50     ` Ian Campbell
2013-02-14 15:00       ` Tim Deegan
2013-01-23 15:56 ` [PATCH 32/45] xen: arm: show_registers() support for 64-bit Ian Campbell
2013-02-14 14:59   ` Tim Deegan
2013-02-14 15:10     ` Ian Campbell
2013-02-14 15:51       ` Ian Campbell
2013-01-23 15:56 ` [PATCH 33/45] xen: arm: make dom0 builder work on 64-bit hypervisor Ian Campbell
2013-02-14 15:18   ` Tim Deegan
2013-02-14 15:36     ` Ian Campbell
2013-01-23 15:56 ` [PATCH 34/45] xen: arm: gic: use 64-bit compatible registers Ian Campbell
2013-02-14 15:20   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 35/45] xen: arm: time: " Ian Campbell
2013-02-14 15:22   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 36/45] xen: arm: p2m: " Ian Campbell
2013-02-14 15:22   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 37/45] xen: arm: Use 64-bit compatible registers in vtimer Ian Campbell
2013-02-14 15:24   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 38/45] xen: arm: select_user_reg support for 64-bit hypervisor Ian Campbell
2013-02-14 15:26   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 39/45] xen: arm: handle 32-bit guest CP register traps on " Ian Campbell
2013-02-14 15:29   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 40/45] xen: arm: guest stage 1 walks " Ian Campbell
2013-02-14 15:29   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 41/45] xen: arm: implement do_multicall_call for both 32 and 64-bit Ian Campbell
2013-02-14 15:34   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 42/45] xen: arm: Enable VFP is a nop on 64-bit Ian Campbell
2013-02-14 15:35   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 43/45] xen: arm: Use generic mem{cpy, move, set, zero} " Ian Campbell
2013-02-14 15:35   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 44/45] xen: arm: Explicitly setup VPIDR & VMPIDR at start of day Ian Campbell
2013-02-14 15:36   ` Tim Deegan
2013-01-23 15:56 ` [PATCH 45/45] xen: arm: skanky "appended kernel" option Ian Campbell
2013-02-14 15:37   ` Tim Deegan
2013-01-23 16:21 ` [PATCH 00/45] initial arm v8 (64-bit) support Jan Beulich
2013-01-23 16:42   ` 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.