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

[PATCH v3 00/15] Allow x86 to unflatten DTs


  • To: <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Alejandro Vallejo <agarciav@xxxxxxx>
  • Date: Fri, 13 Jun 2025 17:13:09 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=lists.xenproject.org smtp.mailfrom=amd.com; dmarc=pass (p=quarantine sp=quarantine pct=100) action=none header.from=amd.com; dkim=none (message not signed); arc=none (0)
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=T/8591m6gZeWmotQSP3G4jc9QpcD9wa9uKHTk1MKAeE=; b=KylRfBAFSklOYh7Pg4S9RVcWZT7NAtH+9qAvmi8M2CQwxJMeTnrt2YXACrndz2wnweF7zf2cAliMFcicj4ZznbnTz2dykm7jpZ04iEUQou2pPZE6yIsn2+v+BULMy4yXHVWPSaEcuNdiqF6Cdph+gPDKYeAOHx5HKHehSy0qw0p0OVUcJfmemyYjmxFTfj3fAov7kMEhbumOh0U3X+UPf/2HunGl0gFikdArYog1ALfQw6wqnLAAbMGdHvTSHws/VNxrRn/UPGltw9KqqphkWUHcSQeGHu2UoFT4qg5EnV0mLjH9nkqCJpK30si28EVu/l4jnCbYO4blVV+asZbqfw==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yZdnn4bhRWDNMX0veTAmEZ5l1LcxegyhULNPpM9iVtnuMJZ3Pua2T+0Q+yB3seGu/07GCF0jV0SJ40/774KIICcYjcicP0lIiYe3zaHWycps67dQFIpRJqiwpwH6tdTGS22+cd8Fh2tu2Q6+8/xUbkMewjmz3P0HFUXS6S2bzAR3Y8Dz50GwY6AXsI/zQRyIJ6Z/Psmig/Kynl8bCsbQgt0L8ZveCKda80aOwe5JGScbyOWbJocWtcwsdaWtokT1LTK2hqCN1+UukJekkL1wju1jgSBKlcxvj3ARXDDrOePn/FZTfqBrheMNodZBeAZorFey2W9/z1MfE5VutTThpQ==
  • Cc: Alejandro Vallejo <agarciav@xxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>, Julien Grall <julien@xxxxxxx>, Bertrand Marquis <bertrand.marquis@xxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, "Volodymyr Babchuk" <Volodymyr_Babchuk@xxxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, "Andrew Cooper" <andrew.cooper3@xxxxxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Anthony PERARD <anthony.perard@xxxxxxxxxx>, "Daniel P. Smith" <dpsmith@xxxxxxxxxxxxxxxxxxxx>, Alistair Francis <alistair.francis@xxxxxxx>, Bob Eshleman <bobbyeshleman@xxxxxxxxx>, "Connor Davis" <connojdavis@xxxxxxxxx>, Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
  • Delivery-date: Fri, 13 Jun 2025 15:16:40 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi,

New summary when compared to v2:

  * Patches 1 and 2 are just cleanup
  * Patch 3 is a modification of the CODING_STYLE to reflect the unwritten rule
    of splitting type names in words.
  * Patch 4 is a rename of struct bootmodule{,s} to boot_module{,s}, in 
accordance
    to the modification of patch 3. 
  * Patch 5-7 replaces x86-specific boot_{domain,module} defs in favour of
    common ones.
  * The rest are code motion and enablement of x86 to unflatten DTs and use
    some dom0less helpers.

v3 pipeline: 
https://gitlab.com/xen-project/people/agvallejo/xen/-/pipelines/1868636712

v2: https://lore.kernel.org/xen-devel/20250605194810.2782031-1-agarciav@xxxxxxx/
v1: https://lore.kernel.org/xen-devel/20250530120242.39398-1-agarciav@xxxxxxx/

Original cover letter:

This is the aftermath of this discussion:

  
https://lore.kernel.org/xen-devel/DA1WWRUQLCAG.ZTVR1HXJ85V0@xxxxxxx/https://lore.kernel.org/xen-devel/DA1WWRUQLCAG.ZTVR1HXJ85V0@xxxxxxx/

It's a first round of cleanup and preparation to have a much easier time
later when integrating dom0less boot into hyperlaunch.

The refactor on device-tree/ is _fine_ by I'm open to other suggestions
to achieve the same thing. In particular, after this series x86 can
unflatten the DT host device tree when it has CONFIG_DOM0LESS_BOOT set,
which enables the builder to use factored-out functions from
dom0less-build.c (not done here).

The diffstat is deceptive because I renamed a large file and then
created a new file with the same name. There aren't that many LoC
changes.

Alejandro Vallejo (14):
  arm/gnttab: Remove xen/grant_table.h cyclic include
  x86: Preinitialise all modules to be of kind BOOTMOD_UNKNOWN
  CODING_STYLE: Custom type names must be snake-cased by word.
  xen: Rename bootmodule{,s} to boot_module{,s}
  x86: Replace arch-specific boot_module with common one
  xen: Refactor kernel_info to have a header like boot_domain
  x86: Replace arch-specific boot_domain common one bootdomain
  xen/dt: Move bootfdt functions to xen/bootfdt.h
  xen/dt: Move bootinfo functions to a new bootinfo.h
  xen/dt: Rename bootfdt.c -> bootinfo-fdt.c
  xen/dt: Extract helper to map nodes to module kinds
  xen/dt: ifdef out DEV_DT-related bits from device_tree.{c,h}
  xen/dt: Allow CONFIG_DOM0LESS_BOOT to include device-tree/
  kconfig: Allow x86 to pick CONFIG_DOM0LESS_BOOT

 CODING_STYLE                            |   3 +
 xen/arch/arm/dom0less-build.c           |   8 +-
 xen/arch/arm/domain_build.c             |  21 +-
 xen/arch/arm/efi/efi-boot.h             |   6 +-
 xen/arch/arm/include/asm/grant_table.h  |   1 -
 xen/arch/arm/kernel.c                   |  10 +-
 xen/arch/arm/llc-coloring.c             |   8 +-
 xen/arch/arm/mmu/setup.c                |  10 +-
 xen/arch/arm/setup.c                    |  11 +-
 xen/arch/riscv/mm.c                     |   2 +-
 xen/arch/riscv/setup.c                  |   2 +-
 xen/arch/x86/Kconfig                    |   1 +
 xen/arch/x86/cpu/microcode/core.c       |   7 +-
 xen/arch/x86/hvm/dom0_build.c           |   8 +-
 xen/arch/x86/include/asm/boot-domain.h  |  33 --
 xen/arch/x86/include/asm/bootfdt.h      |  56 ++
 xen/arch/x86/include/asm/bootinfo.h     |  57 +--
 xen/arch/x86/pv/dom0_build.c            |   6 +-
 xen/arch/x86/setup.c                    |  58 ++-
 xen/common/Kconfig                      |  13 +-
 xen/common/Makefile                     |   2 +-
 xen/common/device-tree/Makefile         |   9 +-
 xen/common/device-tree/bootfdt.c        | 654 ++----------------------
 xen/common/device-tree/bootinfo-fdt.c   | 583 +++++++++++++++++++++
 xen/common/device-tree/bootinfo.c       |  54 +-
 xen/common/device-tree/device-tree.c    |   2 +
 xen/common/device-tree/dom0less-build.c |  45 +-
 xen/common/device-tree/domain-build.c   |  22 +-
 xen/common/device-tree/kernel.c         |  30 +-
 xen/include/xen/bootfdt.h               | 277 +++-------
 xen/include/xen/bootinfo.h              | 213 ++++++++
 xen/include/xen/device_tree.h           |  44 +-
 xen/include/xen/fdt-domain-build.h      |   2 +-
 xen/include/xen/fdt-kernel.h            |  12 +-
 xen/xsm/xsm_policy.c                    |   4 +-
 35 files changed, 1162 insertions(+), 1112 deletions(-)
 delete mode 100644 xen/arch/x86/include/asm/boot-domain.h
 create mode 100644 xen/arch/x86/include/asm/bootfdt.h
 create mode 100644 xen/common/device-tree/bootinfo-fdt.c
 create mode 100644 xen/include/xen/bootinfo.h

-- 
2.43.0




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.