[U-Boot] [PATCH v2 2/7] Tegra114: Add AVP (arm720t) files
Stephen Warren
swarren at wwwdotorg.org
Sat Jan 19 01:09:34 CET 2013
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).
More information about the U-Boot
mailing list