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

Re: [ImageBuilder v2] Add support for 64-bit addresses/sizes


  • To: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Michal Orzel <michal.orzel@xxxxxxx>
  • Date: Mon, 10 Oct 2022 11:48:13 +0200
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 165.204.84.17) smtp.rcpttodomain=gmail.com 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
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=n+oiqXiIEQsh91k5QdM3+lKlZyOl+iWPncFyfcj5C+Q=; b=K8Jc3/flkLvfrVxSyo3yzz+Kg9Z2iUuCtjL8cIzBEHsl28RKajxy2c+P5s6umKfQ2gn4p7EkBJG3Wkj1bVhjlxE7STtdrE2ZvYh3G8UvdfPkCVuc06fIEb6cN824Xl68aj+IRgwyjC+Jy/Q6Qt/yHL33uXrKTlchQddulZoQ34J+UOVWAX9LKIzD6WxB/GIFig+4XqGLjTCZmY3rBdZdXcJZF04UXj8T+42LTj9ltnU8lb+np9FmqfYrKviyp4wqZt5ZBzjtpfFTrbNUYveqxjW5eQmqivvYnnXGi+zVVVhTIrgvNaU6VHWkg9ViDEJIboLAnhFJM6a/y9/ScDiF6Q==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gfg85jAaP0MgBJVLevGudJg+rEOFHmNzfY1t0C6E1DLHskBPNYJPiGd3wel8JyfmOferTHVgre3tJo/7Jrrz8WILromnkJUSQoFvAuwtNTDIwYEnn1uRkEJSIkgrG/oW5yfMNz9V90HhAERo3X5WT0AmiScCpCdG8gwSsCIVE+cIBdwkR7ayf5yF4ymYwiT1A4W4NjJsB15zIWjyJG6KcqQHOmh+x4YvBWTxvEYuIXPPvR/LA2YXjyXdZgo3ZZCV9xvSo1GQon9O8p0EwsjWsOZhDuVb4YGTsdOBZT4bvXrKZDFJVQDUgp03SvR1gy6R0kTmUcO61xziJs/VCkb+gA==
  • Cc: <sstabellini@xxxxxxxxxx>
  • Delivery-date: Mon, 10 Oct 2022 09:48:42 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

Hi Xenia,

On 10/10/2022 10:52, Xenia Ragiadakou wrote:
> 
> 
> On 10/10/22 10:29, Michal Orzel wrote:
> 
> Hi Michal
> 
>> At the moment, ImageBuilder assumes that all addresses/sizes are
>> 32-bit max. It sets #{address,size}-cells to 0x2 and puts 0x0 as the
>> value for the first cell. Because of that, we cannot specify
>> MEMORY_START and MEMORY_END to be above 32-bits (e.g. to place the images
>> in the upper memory bank).
>>
>> Add support to properly handle 64-bit addresses/sizes:
>>   - add function split_into_halves to split the value passed as a first
>>     argument into upper and lower halves. These are then set as values for
>>     variables passed respetively as the second and third argument,
> 
> s/respetively/respectively/
Ok.

> 
>>   - add function split_addr_size to split address and size and form a
>>     string to be passed to dt_set as data argument for reg property.
>>
>> Signed-off-by: Michal Orzel <michal.orzel@xxxxxxx>
>> ---
>> Changes in v2:
>> - redesign a patch based on master-next instead of NXP dynamic assignment 
>> patch
>> ---
>>   scripts/uboot-script-gen | 33 ++++++++++++++++++++++++++++-----
>>   1 file changed, 28 insertions(+), 5 deletions(-)
>>
>> diff --git a/scripts/uboot-script-gen b/scripts/uboot-script-gen
>> index b24dca2b7f7e..09d237d192c1 100755
>> --- a/scripts/uboot-script-gen
>> +++ b/scripts/uboot-script-gen
>> @@ -22,6 +22,29 @@ function dt_mknode()
>>       fi
>>   }
>>
>> +# Usage:
>> +# split_into_halves <value> <variable_to_store_upper> 
>> <variable_to_store_lower>
>> +function split_into_halves()
>> +{
>> +    local value=$1
>> +    local upper=$2
>> +    local lower=$3
>> +
>> +    eval "$upper=$(printf "0x%X\n" $(($value >> 32)))"
>> +    eval "$lower=$(printf "0x%X\n" $(($value & 0xFFFFFFFF)))"
>> +}
>> +
>> +function split_addr_size()
>> +{
>> +    local addr=$1
>> +    local size=$2
>> +
>> +    split_into_halves $addr addr_upper addr_lower
>> +    split_into_halves $size size_upper size_lower
>> +
> 
> Just a minor observation, the variables addr_upper, addr_lower,
> size_upper and size_lower can be declared local.
> 
This function is to be called to perform substitution and as such
is always executed within a subshell so no need for local.

~Michal



 


Rackspace

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