[U-Boot-Users] [PATCH][FDT][UPDATE] Add common memory fixup function

Scott Wood scottwood at freescale.com
Thu Nov 29 00:04:26 CET 2007


Kumar Gala wrote:
> On Nov 28, 2007, at 4:38 PM, Scott Wood wrote:
>> Kumar Gala wrote:
>>> I don't see how to use them w/o going through an additional memcpy.
>>> If you can provide a better solution I'm all for it.  But I don't see 
>>> any reason to hold up the patch at this point.
>>
>> union {
>>     uint8_t tmp[8];
>>     uint64_t mem64;
>>     uint32_t mem32;
>> }
>>
>> int len;
>>
>> if (addrcell && *addrcell == 2) {
>>     mem64 = cpu_to_fdt64(memsize);
>>     len = 8;
>> } else {
>>     mem32 = cpu_to_fdt32(memsize);
>>     len = 4;
>> }
> 
> This gets more complicated with finishing off the rest of temp since you 
> have to use len to figure out an index.

OK, so make mem64/mem32 arrays. :-P

> I'm keeping the code as is since its the simplest version.

Fine, if you don't mind making people's eyes bleed...

Maybe a generic function that takes a buffer pointer, a uint64_t, and a 
numcells?  This is hardly going to be the only place that needs to write 
out a quantity that might be one or two cells.

-Scott




More information about the U-Boot mailing list