2005-11-08 Till Straumann <strauman@slac.stanford.edu>

PR 845/bsps
	* startup/bspstart.c, start/start.S: setup BATs prior to attempting any
	device access - missing BAT mappings were probably the reason for the
	MMU malfunction assumption. Enabled MSR_DR.
This commit is contained in:
Till Straumann
2005-11-09 03:20:13 +00:00
parent 165527795f
commit dad43ef2eb
3 changed files with 35 additions and 31 deletions

View File

@@ -1,9 +1,17 @@
2005-11-08 Till Straumann <strauman@slac.stanford.edu>
PR 845/bsps
* startup/bspstart.c, start/start.S: setup BATs prior to attempting any
device access - missing BAT mappings were probably the reason for the
MMU malfunction assumption. Enabled MSR_DR.
2005-11-08 Till Straumann <strauman@slac.stanford.edu> 2005-11-08 Till Straumann <strauman@slac.stanford.edu>
PR 837/bsps PR 837/bsps
make sure exceptions_in_RAM flag is set prior to initializing exception * startup/bspstart.c, pci/detect_raven_bridge.c: make sure exceptions_in_RAM
handling. Keep MCP disabled for memory probes :-( (the raven would flag is set prior to initializing exception handling. Keep MCP disabled for
otherwise fault on PCI config space access to empty slots). memory probes :-( (the raven would otherwise fault on PCI config space access
to empty slots).
2005-11-07 Till Straumann <strauman@slac.stanford.edu> 2005-11-07 Till Straumann <strauman@slac.stanford.edu>

View File

@@ -131,10 +131,6 @@ enter_C_code:
MMUon: MMUon:
mfmsr r0 mfmsr r0
ori r0,r0, MSR_IP | MSR_RI | MSR_IR | MSR_DR | MSR_EE | MSR_FE0 | MSR_FE1 | MSR_FP ori r0,r0, MSR_IP | MSR_RI | MSR_IR | MSR_DR | MSR_EE | MSR_FE0 | MSR_FE1 | MSR_FP
#if defined(mvme2100)
/* Data addr translation is broken for the mvme2100, disable it here */
xori r0,r0, MSR_DR
#endif
#if (PPC_HAS_FPU == 0) #if (PPC_HAS_FPU == 0)
xori r0, r0, MSR_EE | MSR_IP | MSR_FP xori r0, r0, MSR_EE | MSR_IP | MSR_FP
#else #else

View File

@@ -262,9 +262,32 @@ void bsp_start( void )
myCpu = get_ppc_cpu_type(); myCpu = get_ppc_cpu_type();
myCpuRevision = get_ppc_cpu_revision(); myCpuRevision = get_ppc_cpu_revision();
/*
* Init MMU block address translation to enable hardware access
*/
#if !defined(mvme2100)
/*
* PC legacy IO space used for inb/outb and all PC compatible hardware
*/
setdbat(1, _IO_BASE, _IO_BASE, 0x10000000, IO_PAGE);
#endif
/*
* PCI devices memory area. Needed to access OpenPIC features
* provided by the Raven
*
* T. Straumann: give more PCI address space
*/
setdbat(2, PCI_MEM_BASE, PCI_MEM_BASE, 0x10000000, IO_PAGE);
/*
* Must have access to OpenPIC PCI ACK registers provided by the Raven
*/
setdbat(3, 0xf0000000, 0xf0000000, 0x10000000, IO_PAGE);
#if defined(mvme2100) #if defined(mvme2100)
EUMBBAR = get_eumbbar(); EUMBBAR = get_eumbbar();
{ unsigned v = 0x3000 ; _CPU_MSR_SET(v); }
#endif #endif
/* /*
@@ -323,29 +346,6 @@ void bsp_start( void )
*/ */
initialize_exceptions(); initialize_exceptions();
/*
* Init MMU block address translation to enable hardware access
*/
#if !defined(mvme2100)
/*
* PC legacy IO space used for inb/outb and all PC compatible hardware
*/
setdbat(1, _IO_BASE, _IO_BASE, 0x10000000, IO_PAGE);
#endif
/*
* PCI devices memory area. Needed to access OpenPIC features
* provided by the Raven
*
* T. Straumann: give more PCI address space
*/
setdbat(2, PCI_MEM_BASE, PCI_MEM_BASE, 0x10000000, IO_PAGE);
/*
* Must have access to OpenPIC PCI ACK registers provided by the Raven
*/
setdbat(3, 0xf0000000, 0xf0000000, 0x10000000, IO_PAGE);
select_console(CONSOLE_LOG); select_console(CONSOLE_LOG);
/* /*