xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [Xen-devel] [PATCH 00/17] xen/arm64: Rework head.S to make it more compliant with the Arm Arm
@ 2019-06-10 19:31 Julien Grall
  2019-06-10 19:31 ` [Xen-devel] [PATCH 01/17] xen/arm64: head Mark the end of subroutines with ENDPROC Julien Grall
                   ` (16 more replies)
  0 siblings, 17 replies; 70+ messages in thread
From: Julien Grall @ 2019-06-10 19:31 UTC (permalink / raw)
  To: xen-devel
  Cc: andre.przywara, Julien Grall, Stefano Stabellini, andrii_anisov,
	Oleksandr_Tyshchenko

Hi all,

This is part of the boot/memory rework for Xen on Arm, but not sent as
MM-PARTx as this is focusing on the boot code.

Similar to the memory code, the boot code is not following the Arm Arm and
could lead to memory corruption/TLB conflict abort. I am not aware
of any platforms where Xen fails to boot, yet it should be fixed sooner
rather than later.

While making the code more compliant, I have also took the opportunity
to simplify the boot and also add more documentation.

After this series, the boot CPU and secondary CPUs path is mostly compliant
with the Arm Arm. The only non-compliant places I am aware of are:
    1) create_page_tables: Some rework is necessary to update the page-tables
    safely without the MMU on.
    2) The switches between boot and runtime page-tables (for both boot CPU
       and secondary CPUs) are not safe.

Both will be addressed in follow-up work.

Lastly, only Arm64 has been modified so far. Arm32 requires the same
modifications. It will be sent once I gathered feedback on the approach.

Note that the series have a minor clash with MM-PART3 and reference some
change done in MM-PART1. Yet the code is mostly self-contained to
xen/arch/arm64/head.S.

For convenience I provided a branch based on staging:
    git://xenbits.xen.org/people/julieng/xen-unstable.git branch boot/arm64/v1

Cheers,

Julien Grall (17):
  xen/arm64: head Mark the end of subroutines with ENDPROC
  xen/arm64: head: Don't clobber x30/lr in the macro PRINT
  xen/arm64: head: Rework UART initialization on boot CPU
  xen/arm64: head: Don't "reserve" x24 for the CPUID
  xen/arm64: head: Introduce print_reg
  xen/arm64: head: Introduce distinct paths for the boot CPU and
    secondary CPUs
  xen/arm64: head: Rework and document check_cpu_mode()
  xen/arm64: head: Rework and document zero_bss()
  xen/arm64: head: Improve coding style and document cpu_init()
  xen/arm64: head: Improve coding style and document
    create_pages_tables()
  xen/arm64: head: Document enable_mmu()
  xen/arm64: head: Move assembly switch to the runtime PT in secondary
    CPUs path
  xen/arm64: head: Don't setup the fixmap on secondary CPUs
  xen/arm64: head: Remove ID map as soon as it is not used
  xen/arm64: head: Rework and document setup_fixmap()
  xen/arm64: head: Rework and document launch()
  xen/arm64: Zero BSS after the MMU and D-cache is turned on

 xen/arch/arm/arm64/head.S | 396 +++++++++++++++++++++++++++++++++-------------
 xen/arch/arm/mm.c         |  23 ++-
 2 files changed, 306 insertions(+), 113 deletions(-)

-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

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

end of thread, other threads:[~2019-07-31 21:07 UTC | newest]

Thread overview: 70+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-10 19:31 [Xen-devel] [PATCH 00/17] xen/arm64: Rework head.S to make it more compliant with the Arm Arm Julien Grall
2019-06-10 19:31 ` [Xen-devel] [PATCH 01/17] xen/arm64: head Mark the end of subroutines with ENDPROC Julien Grall
2019-06-25 23:23   ` Stefano Stabellini
2019-06-10 19:32 ` [Xen-devel] [PATCH 02/17] xen/arm64: head: Don't clobber x30/lr in the macro PRINT Julien Grall
2019-06-25 23:35   ` Stefano Stabellini
2019-06-25 23:59     ` Stefano Stabellini
2019-06-26  9:07       ` Julien Grall
2019-06-26 15:27         ` Stefano Stabellini
2019-06-26 15:28           ` Julien Grall
2019-06-26 18:32             ` Stefano Stabellini
2019-06-26 19:24               ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 03/17] xen/arm64: head: Rework UART initialization on boot CPU Julien Grall
2019-06-25 23:49   ` Stefano Stabellini
2019-06-10 19:32 ` [Xen-devel] [PATCH 04/17] xen/arm64: head: Don't "reserve" x24 for the CPUID Julien Grall
2019-06-26  0:01   ` Stefano Stabellini
2019-06-26  9:09     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 05/17] xen/arm64: head: Introduce print_reg Julien Grall
2019-06-26  0:09   ` Stefano Stabellini
2019-06-26  9:10     ` Julien Grall
2019-07-15 18:46   ` Volodymyr Babchuk
2019-07-16  9:55     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 06/17] xen/arm64: head: Introduce distinct paths for the boot CPU and secondary CPUs Julien Grall
2019-06-26  1:00   ` Stefano Stabellini
2019-06-26  9:14     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 07/17] xen/arm64: head: Rework and document check_cpu_mode() Julien Grall
2019-06-26  1:00   ` Stefano Stabellini
2019-06-10 19:32 ` [Xen-devel] [PATCH 08/17] xen/arm64: head: Rework and document zero_bss() Julien Grall
2019-06-26  1:01   ` Stefano Stabellini
2019-06-26  9:16     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 09/17] xen/arm64: head: Improve coding style and document cpu_init() Julien Grall
2019-06-26  1:01   ` Stefano Stabellini
2019-06-26 10:34     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 10/17] xen/arm64: head: Improve coding style and document create_pages_tables() Julien Grall
2019-06-26  1:03   ` Stefano Stabellini
2019-06-26 11:20     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 11/17] xen/arm64: head: Document enable_mmu() Julien Grall
2019-06-26  1:03   ` Stefano Stabellini
2019-06-26 11:23     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 12/17] xen/arm64: head: Move assembly switch to the runtime PT in secondary CPUs path Julien Grall
2019-06-26  1:03   ` Stefano Stabellini
2019-06-10 19:32 ` [Xen-devel] [PATCH 13/17] xen/arm64: head: Don't setup the fixmap on secondary CPUs Julien Grall
2019-06-26 18:51   ` Stefano Stabellini
2019-06-26 19:26     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 14/17] xen/arm64: head: Remove ID map as soon as it is not used Julien Grall
2019-06-26 20:25   ` Stefano Stabellini
2019-06-26 20:39     ` Julien Grall
2019-06-26 20:44       ` Andrew Cooper
2019-06-28  0:36       ` Stefano Stabellini
2019-06-27 18:55   ` Stefano Stabellini
2019-06-27 19:30     ` Julien Grall
2019-07-10 19:39       ` Julien Grall
2019-07-30 17:33       ` Stefano Stabellini
2019-07-30 19:52         ` Julien Grall
2019-07-31 20:40           ` Stefano Stabellini
2019-07-31 21:07             ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 15/17] xen/arm64: head: Rework and document setup_fixmap() Julien Grall
2019-06-26 19:01   ` Stefano Stabellini
2019-06-26 19:30     ` Julien Grall
2019-06-27  9:29       ` Julien Grall
2019-06-27 15:38         ` Stefano Stabellini
2019-06-26 19:02   ` Stefano Stabellini
2019-06-27  9:19     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 16/17] xen/arm64: head: Rework and document launch() Julien Grall
2019-06-26 19:12   ` Stefano Stabellini
2019-06-26 20:09     ` Julien Grall
2019-06-10 19:32 ` [Xen-devel] [PATCH 17/17] xen/arm64: Zero BSS after the MMU and D-cache is turned on Julien Grall
2019-06-26 19:29   ` Stefano Stabellini
2019-06-26 20:07     ` Julien Grall
2019-06-26 21:08       ` Stefano Stabellini
2019-06-27 11:04         ` Julien Grall

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).