From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stephen Warren Date: Fri, 18 Jan 2013 17:09:34 -0700 Subject: [U-Boot] [PATCH v2 2/7] Tegra114: Add AVP (arm720t) files In-Reply-To: <50F9E244.9040402@wwwdotorg.org> References: <1358543537-18035-1-git-send-email-twarren@nvidia.com> <1358543537-18035-3-git-send-email-twarren@nvidia.com> <50F9E244.9040402@wwwdotorg.org> Message-ID: <50F9E43E.6010305@wwwdotorg.org> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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).