[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [ImageBuilder] Add support for omitting host paddr for static shmem regions
On Mon, 24 Jun 2024, Michal Orzel wrote: > Reflect the latest Xen support to be able to omit the host physical > address for static shared memory regions, in which case the address will > come from the Xen heap. > > Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx> Reviewed-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > --- > README.md | 7 ++++--- > scripts/uboot-script-gen | 19 +++++++++++++------ > 2 files changed, 17 insertions(+), 9 deletions(-) > > diff --git a/README.md b/README.md > index 7683492a6f7f..4fcd908c2c2f 100644 > --- a/README.md > +++ b/README.md > @@ -199,9 +199,10 @@ Where: > > - DOMU_SHARED_MEM[number]="SHM-ID HPA GPA size" > if specified, indicate SHM-ID represents the unique identifier of the > shared > - memory region, the host physical address HPA will get mapped at guest > - address GPA in domU and the memory of size will be reserved to be shared > - memory. The shared memory is used between two dom0less domUs. > + memory region. The host physical address HPA is optional, if specified, > will > + get mapped at guest address GPA in domU (otherwise it will come from Xen > heap) > + and the memory of size will be reserved to be shared memory. The shared > memory > + is used between two dom0less domUs. > > Below is an example: > NUM_DOMUS=2 > diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen > index 20cc6ef7f892..8b664e711b10 100755 > --- a/scripts/uboot-script-gen > +++ b/scripts/uboot-script-gen > @@ -211,18 +211,25 @@ function add_device_tree_static_shared_mem() > local shared_mem_id=${shared_mem%% *} > local regions="${shared_mem#* }" > local cells=() > - local shared_mem_host=${regions%% *} > - > - dt_mknode "${path}" "shared-mem@${shared_mem_host}" > + local node_name= > > for val in ${regions[@]} > do > cells+=("$(split_value $val)") > done > > - dt_set "${path}/shared-mem@${shared_mem_host}" "compatible" "str" > "xen,domain-shared-memory-v1" > - dt_set "${path}/shared-mem@${shared_mem_host}" "xen,shm-id" "str" > "${shared_mem_id}" > - dt_set "${path}/shared-mem@${shared_mem_host}" "xen,shared-mem" "hex" > "${cells[*]}" > + # Less than 3 cells means host address not provided > + if [ ${#cells[@]} -lt 3 ]; then > + node_name="shared-mem-${shared_mem_id}" > + else > + node_name="shared-mem@${regions%% *}" > + fi > + > + dt_mknode "${path}" "${node_name}" > + > + dt_set "${path}/${node_name}" "compatible" "str" > "xen,domain-shared-memory-v1" > + dt_set "${path}/${node_name}" "xen,shm-id" "str" "${shared_mem_id}" > + dt_set "${path}/${node_name}" "xen,shared-mem" "hex" "${cells[*]}" > } > > function add_device_tree_cpupools() > -- > 2.25.1 >
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |