|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 0/8] Move parts of Arm's Dom0less to common code
The patch series needs to be rebased. Actually, I couldn't find a
baseline where to apply patch #2 successfully
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
>
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |