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

2013-01-22 Thread Stephen Warren
On 01/22/2013 01:46 PM, Tom Warren wrote:
> Stephen,
> 
> On Fri, Jan 18, 2013 at 5:09 PM, Stephen Warren  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.

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2013-01-22 Thread Tom Warren
Stephen,

On Fri, Jan 18, 2013 at 5:09 PM, Stephen Warren  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?
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2013-01-18 Thread Stephen Warren
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).
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


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

2013-01-18 Thread Stephen Warren
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.

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot