From 27d4569a6827cadfb2fe73264cdec868d0cc5207 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 29 Jan 2008 22:01:18 +0000 Subject: [PATCH] 2008-01-29 Eric Norum * startup/bspstart.c: Fixes a lockup which occurs when a speculative load occurs from a particular range of memory. --- c/src/lib/libbsp/powerpc/mvme3100/ChangeLog | 5 +++++ .../lib/libbsp/powerpc/mvme3100/startup/bspstart.c | 13 +++++++++++++ 2 files changed, 18 insertions(+) diff --git a/c/src/lib/libbsp/powerpc/mvme3100/ChangeLog b/c/src/lib/libbsp/powerpc/mvme3100/ChangeLog index 12e38e122f..c280ddfa65 100644 --- a/c/src/lib/libbsp/powerpc/mvme3100/ChangeLog +++ b/c/src/lib/libbsp/powerpc/mvme3100/ChangeLog @@ -1,3 +1,8 @@ +2008-01-29 Eric Norum + + * startup/bspstart.c: Fixes a lockup which occurs when a speculative + load occurs from a particular range of memory. + 2008-01-09 Eric Norum * include/bsp.h: Include . diff --git a/c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c b/c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c index 5fb1481715..c5486abf34 100644 --- a/c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c +++ b/c/src/lib/libbsp/powerpc/mvme3100/startup/bspstart.c @@ -228,6 +228,10 @@ bsp_predriver_hook(void) * This routine does the bulk of the system initialization. */ +#include + +SPR_RW(HID1) + void bsp_start( void ) { unsigned char *stack; @@ -317,6 +321,15 @@ VpdBufRec vpdData [] = { printk("Going to start PCI buses scanning and initialization\n"); #endif + { + /* disable checking for memory-select errors */ + *(volatile uint32_t*)0xe1002e44 |= 1; + /* clear all pending errors */ + *(volatile uint32_t*)0xe1002e40 = 0xffffffff; + /* enable machine check for bad bus errors */ + _write_HID1( _read_HID1() | 0x20000 ); + } + printk("Build Date: %s\n",BSP_build_date); BSP_vpdRetrieveFields( vpdData );