[U-Boot] [PATCH v2 2/7] Tegra114: Add AVP (arm720t) files

Tom Warren twarren.nvidia at gmail.com
Tue Jan 22 21:46:13 CET 2013


Stephen,

On Fri, Jan 18, 2013 at 5:09 PM, Stephen Warren <swarren at wwwdotorg.org> wrote:
> On 01/18/2013 05:01 PM, Stephen Warren wrote:
>> On 01/18/2013 02:12 PM, Tom Warren wrote:
>>> This provides SPL support for T114 boards - AVP early init, plus
>>> CPU (A15) init/jump to main U-Boot.
>>
>>> +void powerup_cpus(void)
>>> +{
>>> +    debug("powerup_cpus entry\n");
>>> +
>>> +    /* Are we booting to the fast cluster? */
>>> +    if (get_cluster_id() == 0) {
>>> +            debug("powerup_cpus entry: G cluster\n");
>>> +            /* Power up the fast cluster rail partition */
>>> +            power_partition(CRAIL, CRAILID);
>>> +
>>> +            /* Power up the fast cluster non-CPU partition */
>>> +            power_partition(C0NC, C0NCID);
>>> +
>>> +            /* Power up the fast cluster CPU0 partition */
>>> +            power_partition(CE0, CE0ID);
>>> +    } else {
>>> +            debug("powerup_cpus entry: LP cluster\n");
>>> +            /* Power up the slow cluster non-CPU partition */
>>> +            power_partition(C1NC, C1NCID);
>>> +
>>> +            /* Power up the slow cluster CPU partition */
>>> +            power_partition(CELP, CELPID);
>>> +    }
>>> +}
>>
>> I strongly believe we should determine why that is needed rather than
>> blindly upstreaming it.
>
> Thinking about this more, this makes even less sense. When Tegra boots,
> code runs on the AVP. That code is U-Boot. U-Boot then boots the A15
> cores, and hence U-Boot is what decides whether to boot the LP or G
> cluster; it doesn't follow some decision by some other SW since there is
> no other SW.
>
> The only possible exception to this might be resume from some low-power
> state where you want to restart the same A15 cluster as was running
> prior to entering sleep. But that would require the flow controller
> register read by get_cluster_id() to be in an always-on power domain.
> I'm not sure if that's true or not. (If it isnt', presumably the
> power-on state would always be static, hence there would be no need to
> read the register).

I agree with your analysis. How about if I remove get_cluster_id(),
and just set the power partitions for the fast cluster?


More information about the U-Boot mailing list