Re: [U-Boot] [PATCH v2 2/7] Tegra114: Add AVP (arm720t) files
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
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
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
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