Update,

This doesn't look like a timing issue, but an SPL executable size issue, 
being larger than the # block size for the dd command.

When I compile in the 3 condition else if branch in vcores_init (but 
compiler switch off some other code so as to keep the MLO code size small 
enough), the board boots up again, so long as the MLO size is < ~ 131 KB 
(128 KiB)...


Thanks, FYI, and regards..

Jeff



On Friday, September 29, 2017 at 8:59:39 AM UTC-5, Jeff Andich wrote:
>
> Hi,
>
> In u-boot/board/ti/am57xx/board.c, function, vcores_init() appears to be 
> initializing a pointer to one of 2-3 tables which appear to contain a set 
> of voltage rails for all the cores on a given board. 
>
> I witnessed something a little funky last-night and I was wondering if you 
> might have some insight into what's going on.  If you implement a simple 
> if, else statement (e.g. with two possible tables), then SPL boots. 
>  However, if you implement an if : else if : else construct, the board 
> doesn't want to boot.  I'm not sure what's going on here, but I'm wondering 
> if vcores_init has timing constraints?  I know that the PMIC shuts 
> everything (or at least the A15 cores) down if you don't send a message to 
> it on the I2C bus to keep the cores powered on.  
>
> I'm wondering if vcores_init is called close to the end of this time 
> window??
>
> If you use a simple if, else statement:
>
>         if (board_is_am572x_idk())
>         {
>                 *omap_vcores = &am572x_idk_volts;
>         }
>         else
>         {
>                 *omap_vcores = &beagle_x15_volts;
>         }
>
> SPL loads and vectors to u-boot.
>
> If, however, you code the following construct:
>
>
>         if (board_is_am572x_idk())
>         {
>                 *omap_vcores = &am572x_idk_volts;
>         }
>         else if (board_is_am571x_idk())
>         {
>                 *omap_vcores = &am571x_idk_volts;
>         }
>         else if (board_is_am572x_custom())
>         {
>                 *omap_vcores = &beagle_x15_volts;
>         }
>         else
>         {
>                 *omap_vcores = &beagle_x15_volts;
>         }
>
>
> Then all that pops up on the boot console is 1-2 ASCII characters and then 
> everything APPEARS dead.
>
> I have no idea what's going on, but I wonder if the additional assembly 
> code generated for the else if, else if could be delaying the "stay powered 
> on" I2C message which gets sent to the PMIC until after the PMIC has 
> already started the core power down ???
>
>
> Thanks!
>
> Jeff 
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/beagleboard/bf602ff2-ae03-423a-8bc2-e8a48e63cf2f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to