exynos5250/snow: enable branch prediction

This enables branch prediction. We can probably find a better place
to do this, but for now we'll do it in snow's romstage main().

Change-Id: I86c7b6bc9e897a7a432c490fb96a126e81b8ce72
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/2701
Tested-by: build bot (Jenkins)
Reviewed-by: Ronald G. Minnich <rminnich@gmail.com>
This commit is contained in:
David Hendricks 2013-03-12 22:00:43 -07:00 committed by Ronald G. Minnich
parent 49ff3c50dd
commit 0274919bf6
2 changed files with 18 additions and 16 deletions

View File

@ -17,22 +17,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ */
#if 0
/*
* Set/clear program flow prediction and return the previous state.
*/
static int config_branch_prediction(int set_cr_z)
{
unsigned int cr;
/* System Control Register: 11th bit Z Branch prediction enable */
cr = get_cr();
set_cr(set_cr_z ? cr | CR_Z : cr & ~CR_Z);
return cr & CR_Z;
}
#endif
void bootblock_cpu_init(void); void bootblock_cpu_init(void);
void bootblock_cpu_init(void) void bootblock_cpu_init(void)
{ {

View File

@ -52,6 +52,20 @@ static int board_wakeup_permitted(void)
} }
#endif #endif
/*
* Set/clear program flow prediction and return the previous state.
*/
static int config_branch_prediction(int set_cr_z)
{
unsigned int cr;
/* System Control Register: 11th bit Z Branch prediction enable */
cr = get_cr();
set_cr(set_cr_z ? cr | CR_Z : cr & ~CR_Z);
return cr & CR_Z;
}
static void initialize_s5p_mshc(void) static void initialize_s5p_mshc(void)
{ {
/* MMC0: Fixed, 8 bit mode, connected with GPIO. */ /* MMC0: Fixed, 8 bit mode, connected with GPIO. */
@ -81,6 +95,10 @@ void main(void)
int ret; int ret;
void *entry; void *entry;
/* FIXME: if we boot from USB, we need to disable branch prediction
* before copying from USB into RAM */
config_branch_prediction(1);
clock_set_rate(PERIPH_ID_SPI1, 50000000); /* set spi clock to 50Mhz */ clock_set_rate(PERIPH_ID_SPI1, 50000000); /* set spi clock to 50Mhz */
/* Clock must be initialized before console_init, otherwise you may need /* Clock must be initialized before console_init, otherwise you may need