[U-Boot-Users] [PATCH v2] [new uImage] ppc: Re-order ramdisk/fdt handling sequence

Jerry Van Baren gerald.vanbaren at ge.com
Fri Feb 22 17:07:22 CET 2008


Marian Balakowicz wrote:
> Kumar Gala wrote:
>> On Feb 18, 2008, at 1:46 PM, Jerry Van Baren wrote:
>>
>>> Kumar Gala wrote:
>>>> On Feb 18, 2008, at 1:15 PM, Jerry Van Baren wrote:
>>>>> Kumar Gala wrote:
>>>>>> On Feb 18, 2008, at 11:51 AM, Jerry Van Baren wrote:
>>>>>>> Kumar Gala wrote:
>>> [[[[snip]]]]
>>>
>>>>> The patch is creating dummy initrd entries in the reserved map and  
>>>>> in /chosen, only to work hard to delete and re-create the reserved  
>>>>> map entries and rewrite the /chosen entries.
>>>>>
>>>>> My counter-proposal is to not bother with dummy values.  Simply  
>>>>> pass in 0,0 which will prevent the creation of the initrd entries  
>>>>> by fdt_chosen().  By not creating dummy entries, you can simply  
>>>>> create the proper entries once you know what the the correct  
>>>>> values are, rather than the more complicated rsvmap search &  
>>>>> delete + rsvmap creation + /chosen modifications.
>>>> Ahh, the reason I wanted them created was to ensure we have enough  
>>>> size for them up front rather than figuring that out later.  By  
>>>> creating them and replacing them I will not being changing the size  
>>>> at all.
>>>> - k
>>> OK, I see.
>>>
>>> Currently this isn't an issue because our blob has a fixed size that  
>>> has free space inside it, so creating the rsvmap and /chosen entries  
>>> eat at the internal free space and don't change the total blob size.
>>>
>>> People are advocating dynamically increasing the blob size, which  
>>> simplifies things for blob generation (don't have to guess how big  
>>> to make the blob when running the dtc to create it), but that would  
>>> cause problems with my counter-proposal.
>> And the whole point of my patch was to enable the ability to  
>> dynamically grow the blob before we do anything w/the ramdisk.
> 
> But we don't really grow the blob, we are just allocating the space for
> the initrd properties - *if* the blob already has enough free space. If
> the blob does not have enough free space we'll hit the bottom anyway,
> whether in fdt_chosen() or ft_board_setup(), so it seem that it doesn't
> matter whether we pre-allocate space for initrd or not. Or am I missing
> something?
> 
> I was rather thinking of increasing the total blob size when relocating
> it. Currently relocation happens only when the blob is not within
> BOOTMAPSZ region, so we would need to always relocate the blob and
> figure out the size delta: (1) get it from env variable, if set (2) or
> use some default delta. What do you think?
> 
> Cheers,
> m.

The missing part is libfdt doesn't exactly support dynamic resizing and 
our current code doesn't do in-place resizing (which it could do by 
doing a move to the same location, but with a larger/smaller length).

Kumar is lining up the pieces to get there, but we aren't there yet...

gvb




More information about the U-Boot mailing list