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

Stephen Warren swarren at wwwdotorg.org
Tue Jan 22 22:02:56 CET 2013


On 01/22/2013 01:46 PM, Tom Warren wrote:
> 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?

I think that makes sense, yes.



More information about the U-Boot mailing list