source: rtems/c/src/lib/libbsp/powerpc/eth_comm/startup/cpuinit.c @ 8ef3818

4.104.114.84.95
Last change on this file since 8ef3818 was 8ef3818, checked in by Joel Sherrill <joel.sherrill@…>, on 06/12/00 at 19:57:02

Patch from John Cotton <john.cotton@…>, Charles-Antoine Gauthier
<charles.gauthier@…>, and Darlene A. Stewart
<Darlene.Stewart@…> to add support for a number of very
significant things:

+ BSPs for many variations on the Motorola MBX8xx board series
+ Cache Manager including initial support for m68040

and PowerPC

+ Rework of mpc8xx libcpu code so all mpc8xx CPUs now use

same code base.

+ Rework of eth_comm BSP to utiltize above.

John reports this works on the 821 and 860

  • Property mode set to 100644
File size: 1.0 KB
Line 
1/*
2 *  cpuinit.c - this file contains functions for initializing the CPU
3 *
4 *  Written by Jay Monkman (jmonkman@frasca.com)
5 *
6 *  $Id$
7 */
8
9#include <bsp.h>
10
11/* Macros for handling all the MMU SPRs */
12#define PUT_IC_CST(r)   __asm__ volatile ("mtspr 0x230,%0\n" ::"r"(r))
13#define GET_IC_CST(r)   __asm__ volatile ("mfspr %0,0x230\n" :"=r"(r))
14#define PUT_DC_CST(r)   __asm__ volatile ("mtspr 0x238,%0\n" ::"r"(r))
15#define GET_DC_CST(r)   __asm__ volatile ("mfspr %0,0x238\n" :"=r"(r))
16
17void cpu_init(void)
18{
19  register unsigned long t1, t2;
20
21  /* Let's clear MSR[IR] and MSR[DR] */
22  t2 = PPC_MSR_IR | PPC_MSR_DR;
23  __asm__ volatile (
24    "mfmsr    %0\n"
25    "andc     %0, %0, %1\n"
26    "mtmsr    %0\n" :"=r"(t1), "=r"(t2):
27    "1"(t2));
28 
29  t1 = M8xx_CACHE_CMD_UNLOCK;
30  /*  PUT_DC_CST(t1); */
31  PUT_IC_CST(t1);
32
33  t1 = M8xx_CACHE_CMD_INVALIDATE;
34  /*  PUT_DC_CST(t1); */
35  PUT_IC_CST(t1);
36
37  t1 = M8xx_CACHE_CMD_ENABLE;
38  PUT_IC_CST(t1);
39
40  t1 = M8xx_CACHE_CMD_SFWT;
41  /*  PUT_DC_CST(t1); */
42  t1 = M8xx_CACHE_CMD_ENABLE;
43  /*  PUT_DC_CST(t1);*/
44}
Note: See TracBrowser for help on using the repository browser.