On 5/1/25 2:55 AM, Stefano Stabellini wrote:
The patch series needs to be rebased. Actually, I couldn't find a
baseline where to apply patch #2 successfully

The baseline is:

  b0e54c0719 CI: write whole etc/issue for domU initrd But I will prepare and send new version of the patch series soon, and, of course, it will be rebased on top of current staging. ~ Oleksii


On Mon, 14 Apr 2025, Oleksii Kurochko wrote:
Some parts of Arm's Dom0less solution could be moved to common code as they are
not truly Arm-specific.

Most of the code is moved as is, with only minor changes introduced to provide
abstractions that hide Arm-specific details, while maintaining functional
equivalence with original Arm's code.

There are several open questions:
1. Probably, the introduced headers currently placed in asm-generic should
    instead reside in the xen/include folder.
2. Perhaps the introduced *.c files should always be placed elsewhere. They
    have been put in device-tree common as they somewhat depend on device tree
    functionality.
3. The u64 and u32 types are widely used in the code where device tree
    functionality is implemented because these types are used in device tree
    function arguments.
    Should this be reworked to use uint32_t and uint64_t instead? If so, will it
    also be necessary to change the type of variables passed to dt-related
    functions, or should the argument types of device tree functions be updated
    too? For example:
    ```
     u64 mem;
     ...
     rc = dt_property_read_u64(node, "memory", &mem);
    ```
    where dt_property_read_u64 is declared as:
      bool dt_property_read_u64(... , u64 *out_value);
4. Instead of providing init_intc_phandle() (see the patch: [1]), perhaps it
    would be better to add a for loop in domain_handle_dtb_bootmodule()?
    Something like:
    ```
     bool is_intc_phandle_inited = false;
     for ( unsigned int i = 0; i < ARRAY_SIZE(intc_names_array); i++ )
     {
         if ( dt_node_cmp(name, intc_names_array[i]) == 0 )
         {
             uint32_t phandle_intc = fdt_get_phandle(pfdt, node_next);

             if ( phandle_intc != 0 )
                 kinfo->phandle_intc = phandle_intc;

             is_intc_phandle_inited = true;
             break;
         }
     }

     if ( is_intc_phandle_inited ) continue;
   ```

[1]] [PATCH v1 9/9] xen/common: dom0less: introduce common dom0less-build.c

---
Changes in v2:
- Update cover letter message.
- Rebase on top of the current staging.
- Drop patches:
    - asm-generic: move Arm's static-memory.h to asm-generic
    - asm-generic: move Arm's static-shmem.h to asm-generic
   as in the nearest future there is no real users of STATIC_MEMORY and
   STATIC_SHMEM.
- Add new cleanup patch:
   [PATCH v2 1/8] xen/arm: drop declaration of handle_device_interrupts()
- All other changes are patch specific. Please check them seprately for each
   patch
---

Oleksii Kurochko (8):
   xen/arm: drop declaration of handle_device_interrupts()
   xen/common: dom0less: make some parts of Arm's CONFIG_DOM0LESS common
   asm-generic: move parts of Arm's asm/kernel.h to common code
   arm/static-shmem.h: drop inclusion of asm/setup.h
   asm-generic: move some parts of Arm's domain_build.h to common
   xen/common: dom0less: introduce common kernel.c
   xen/common: dom0less: introduce common domain-build.c
   xen/common: dom0less: introduce common dom0less-build.c

  xen/arch/arm/Kconfig                      |  10 +-
  xen/arch/arm/acpi/domain_build.c          |   4 +-
  xen/arch/arm/dom0less-build.c             | 997 +++-------------------
  xen/arch/arm/domain_build.c               | 411 +--------
  xen/arch/arm/include/asm/Makefile         |   1 +
  xen/arch/arm/include/asm/dom0less-build.h |  32 -
  xen/arch/arm/include/asm/domain_build.h   |  31 +-
  xen/arch/arm/include/asm/kernel.h         | 126 +--
  xen/arch/arm/include/asm/static-memory.h  |   2 +-
  xen/arch/arm/include/asm/static-shmem.h   |   2 +-
  xen/arch/arm/kernel.c                     | 234 +----
  xen/arch/arm/static-memory.c              |   1 +
  xen/arch/arm/static-shmem.c               |   3 +-
  xen/common/Kconfig                        |  19 +
  xen/common/device-tree/Makefile           |   3 +
  xen/common/device-tree/dom0less-build.c   | 891 +++++++++++++++++++
  xen/common/device-tree/domain-build.c     | 404 +++++++++
  xen/common/device-tree/dt-overlay.c       |   4 +-
  xen/common/device-tree/kernel.c           | 242 ++++++
  xen/include/asm-generic/dom0less-build.h  |  82 ++
  xen/include/xen/fdt-domain-build.h        |  77 ++
  xen/include/xen/fdt-kernel.h              | 146 ++++
  22 files changed, 2013 insertions(+), 1709 deletions(-)
  delete mode 100644 xen/arch/arm/include/asm/dom0less-build.h
  create mode 100644 xen/common/device-tree/dom0less-build.c
  create mode 100644 xen/common/device-tree/domain-build.c
  create mode 100644 xen/common/device-tree/kernel.c
  create mode 100644 xen/include/asm-generic/dom0less-build.h
  create mode 100644 xen/include/xen/fdt-domain-build.h
  create mode 100644 xen/include/xen/fdt-kernel.h

--
2.49.0

Reply via email to