[U-Boot] [RFC PATCH v5 1/4] common: Convert ulong to phys_addr_t for image addresses

york sun york.sun at nxp.com
Fri Feb 26 19:09:15 CET 2016


On 02/26/2016 10:05 AM, Simon Glass wrote:

<snip>

>>>>>
>>>>> All these double casts look somewhat wrong to me.  Why are they
>>>>> needed?
>>>>
>>>> Dear Wolfgang,
>>>>
>>>> I can use some serious help here. What I am really trying to achieve is the last
>>>> two patches in this set. I didn't want to use replace ulong with phys_addr_t. I
>>>> am not proud with the change I proposed, but I didn't come up with a smarter
>>>> solution. My specific trouble is to build ARMv8 targets on 32-bit Ubuntu host.
>>>> Some code is shared between the target and host tool (mkimage). I started from
>>>> small changes, but it gets wider and wider when I tried to get rid of the
>>>> compiling warnings.
>>>>
>>>> York
>>>>
>>>
>>> I suggest just documenting it better with comments and in the commit
>>> message. It's mostly the same comment I made.
>>>
>>> One concern is that if you cast to uintptr_t on a 32-bit host machine,
>>> won't you end up dropping the top 32 bits?
>>>
>>
>> Simon,
>>
>> Some code is shared between targets and hosts, but not all. The ugly casting is
>> used by targets only. Maybe I should take another look at the issue and back
>> away from converting ulong to phys_addr_t totally. It is only broken on 32-bit
>> host tool and seems nobody really cares. Sandbox is also broken on 32-bit host
>> (compiling warnings), and yet no one complains. Am I the only one living in old
>> age? I can upgrade to 64-bit Ubuntu and we all can forget about this mess I
>> created. (Getting exhausted here...)
> 
> Well maybe. You could instead just print an error and quit when trying
> to use 64-bit images on a 32-bit host machine. I think that would be
> acceptable these days.
> 

Sounds good to me. Let me try to rework the patch set.

York




More information about the U-Boot mailing list