[U-Boot] [PATCH 13/14] tegra: Add EMC settings for Seaboard, Harmony

Simon Glass sjg at chromium.org
Fri Jan 13 00:54:44 CET 2012


Hi Stephen,

On Thu, Jan 12, 2012 at 3:42 PM, Stephen Warren <swarren at nvidia.com> wrote:
> Simon Glass wrote at Thursday, January 12, 2012 4:05 PM:
>> On Tue, Jan 10, 2012 at 10:46 AM, Stephen Warren <swarren at nvidia.com> wrote:
>> > On 12/26/2011 12:33 PM, Simon Glass wrote:
>> >> From: Jimmy Zhang <jimmzhang at nvidia.com>
>> >>
>> >> Set Seaboard and Harmony to optimal memory settings based on the SOC
>> >> in use (T20 or T25).
> ...
>> >> +int board_emc_init(void)
>> >> +{
>> >> +       int     i;
>> >> +       DECLARE_GLOBAL_DATA_PTR;
>> >> +
>> >> +#ifdef CONFIG_TEGRA_PMU
>> >> +       /* if voltage has not been set properly, return */
>> >> +       if (!pmu_is_voltage_nominal())
>> >> +               return -1;
>> >> +#endif
>> >
>> > Why/when would the PMU voltage not be nominal?
>>
>> On boot, it starts up lower and we raise it to nominal so we can run
>> at full speed.
>>
>> > Can't we error out the compile if the options that cause the PMU voltage
>> > to be initialized to nominal are not set, instead of detecting this at
>> > runtime?
>>
>> I don't think so, since we can't know in U-Boot what the start-up voltages are.
>
> So how does the system get to the nominal state? And if board_emc_init()
> is called when the system isn't in the nominal state, does it somehow get
> called again later once it is, so that the EMC initialization doesn't fail
> the error-check quoted above?

We call board_emc_init() after pmu_set_nominal().

>
> In other words, presumably U-Boot explicitly programs the PMU into the
> nominal stage at some point. Shouldn't we defer calling board_emc_init()
> until after that time, thus making that error-check redundant?

Yes, but if you look at the patch above, that's what we do:

 #ifdef CONFIG_TEGRA_PMU
       pmu_set_nominal();
+
+       board_emc_init();
 #endif
 #endif
>

>> > Finally, I don't think there are EMC tables here for all the EMC
>> > frequencies that we have BCTs for. Perhaps that's not an issue, and
>> > perhaps I should ignore the other BCTs (e.g. 400MHZ EMC) since nobody
>> > actually uses them?
>>
>> Yes I think maximum speed is all anyone is probably interested in now.
>
> 400MHz is faster than the entries in the table in this change, IIRC.
> But if the tables in this change are for the standard frequencies average
> people use (i.e. not those doing board/memory quals), it's probably fine.

OK, perhaps I should have said maximum speed that actually works reliably :-)

Regards,
Simon

>
> --
> nvpublic
>


More information about the U-Boot mailing list