diff options
author | Greg Watson <gwatson@lanl.gov> | 2005-10-20 01:44:21 +0000 |
---|---|---|
committer | Greg Watson <gwatson@lanl.gov> | 2005-10-20 01:44:21 +0000 |
commit | 8d4edc2fcd003990228f505ce717c32b45831f2d (patch) | |
tree | 3024ed9def3ae2572c42d45facf5cf7259325f6c /src/arch/ppc/lib/ppc.c | |
parent | 58cb0bf1dfe1fa39760c3edcc68146fe6ed9d474 (diff) |
changes to support new ppc arch
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@2064 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/ppc/lib/ppc.c')
-rw-r--r-- | src/arch/ppc/lib/ppc.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/arch/ppc/lib/ppc.c b/src/arch/ppc/lib/ppc.c new file mode 100644 index 0000000000..6222536864 --- /dev/null +++ b/src/arch/ppc/lib/ppc.c @@ -0,0 +1,49 @@ +/* Copyright 2000 AG Electronics Ltd. */ +/* This code is distributed without warranty under the GPL v2 (see COPYING) */ + +#include "ppc.h" +#include "ppcreg.h" + +unsigned ppc_getmsr(void) +{ + unsigned result; + __asm__ volatile ("mfmsr %0" : "=r" (result)); + return result; +} + +unsigned ppc_gethid0(void) +{ + unsigned result; + __asm__ volatile ("mfspr %0,1008" : "=r" (result)); + return result; +} + +unsigned ppc_gethid1(void) +{ + unsigned result; + __asm__ volatile ("mfspr %0,1009" : "=r" (result)); + return result; +} + +void ppc_sethid0(unsigned value) +{ + __asm__ volatile ("mtspr 1008,%0" : : "r" (value)); +} + +unsigned ppc_getpvr(void) +{ + unsigned result; + __asm__("mfspr %0, 287" : "=r" (result)); + return result; +} + +void ppc_setmsr(unsigned value) +{ + __asm__ volatile ("mtmsr %0; sync" :: "r" (value)); +} + +void ppc_set1015(unsigned value) +{ + __asm__ volatile ("mtspr 1015,%0" : : "r" (value)); +} + |