Hi Stephen, On Thu, Jan 12, 2012 at 3:42 PM, Stephen Warren <swar...@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 <swar...@nvidia.com> wrote: >> > On 12/26/2011 12:33 PM, Simon Glass wrote: >> >> From: Jimmy Zhang <jimmzh...@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 > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot