[U-Boot] [PATCH 24/24] tegra124: Expand SPL space by 8KB

Stephen Warren swarren at wwwdotorg.org
Tue May 5 20:20:52 CEST 2015


On 05/05/2015 10:26 AM, Simon Glass wrote:
> Hi Stephen,
>
> On 5 May 2015 at 10:12, Stephen Warren <swarren at wwwdotorg.org> wrote:
>> On 05/05/2015 10:03 AM, Simon Glass wrote:
>>>
>>> Hi Stephen,
>>>
>>> On 5 May 2015 at 09:59, Stephen Warren <swarren at wwwdotorg.org> wrote:
>>>>
>>>> On 05/04/2015 11:31 AM, Simon Glass wrote:
>>>>>
>>>>>
>>>>> We are getting very close to running out of space in SPL, and with the
>>>>> currently Chrome OS gcc 4.9 we exceed the limit. Add a litle more space.
>>>>
>>>>
>>>>
>>>> 8K is quite a bump given we only had 24K allocated before. Why is gcc-4.9
>>>> less efficient that earlier compilers I wonder? Were we extremely close
>>>> to
>>>> the limit ebfore? Still, I guess this is fine.
>
> We were about 1KB away, mostly due to the gcc garbage collection bug I
> think. The cros compiler seems even worse, not sure why.
>
>>>> Did you validate whether tegra-uboot-flasher still works with this
>>>> change? I
>>>> think it will since it only cares about the SPL TEXT_BASE and not the
>>>> main
>>>> U-Boot TEXT_BASE, but double-checking would be nice.
>>>
>>>
>>> I tested this with USB A-A (tegrarcm). Is that what you mean?
>>
>>
>> Did you just use tegrarcm, or tegra-uboot-flasher? The latter is a wrapper
>> on top of tegrarcm, and is a bit more involved. See the various READMEs at
>> https://github.com/NVIDIA/tegra-uboot-flasher-scripts. This doesn't support
>> any nyan-derived boards yet, but does support Jetson TK1 which I think you
>> have?
>
> Ah, OK. The script at:
>
> https://github.com/NVIDIA/tegra-uboot-flasher-scripts/blob/master/tegra-uboot-flasher
>
> looks OK to me. It does not have anything hard-coded that I can see.
> But I have not used it myself. It's kind-of painful that we have all
> this out-of-tree Tegra stuff (pin mux also) that might break when we
> change U-Boot. Is there any way to improve this?

I don't think there's anything to improve; nothing is wrong.


If something changes about the way U-Boot works or must be used, then 
that requires changes elsewhere no matter what. Whether the externals 
changes are:

* Updates to documentation of how to build/use/... U-Boot.
* Updates to the command-lines/techniques people know and use.
* Updates to code/tools that interface with U-Boot.

... then in all cases, a change to U-Boot requires a change to something 
else. I would argue that updating an external tool is actually the 
easiest of the cases, since it's entirely clear what that tool does, 
what change to make to it, and how. Conversely, updating the 
command-lines/techniques that people use is much harder to propagate to 
all people. The update-a-document case may also be about as easy, 
presuming you know which documents to update (there are probably more 
docs than tools at least at present).


In the pinmux case, please consider the system-level implications of a 
change to the pinmux. There is a single correct pinmux configuration for 
a given HW configuration, and that's driven purely by the HW design[1]. 
If the pinmux that U-Boot programs is wrong and needs to be changed, the 
same change should be propagated to all SW to fix the bug everywhere. 
The existence of the external Tegra pinmux tools makes that easier; 
update the pinmux tool, regenerate derived files for all SW stacks, and 
apply the changes everywhere. Sure it's more work to do that than just 
updating only U-Boot. However, the tool doesn't add that extra work, 
rather the change to the desired pinmux makes the work. The only 
alternative (which does indeed reduce overall work) is to update e.g. 
only U-Boot's pinmux programming, and leave everything else buggy. 
That's certainly not a desirable situation. I introduced 
tegra-pinmux-scripts specifically to avoid that kind of situation.

[1] For boards with expansion headers where the end-user/... can use 
different pins for different things, I consider the HW configuration to 
include the definition of whatever the user has plugged into the 
expansion header.


More information about the U-Boot mailing list