summaryrefslogtreecommitdiffstats
path: root/include/asm-ppc/processor.h
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>1998-05-07 02:55:41 +0000
committerRalf Baechle <ralf@linux-mips.org>1998-05-07 02:55:41 +0000
commitdcec8a13bf565e47942a1751a9cec21bec5648fe (patch)
tree548b69625b18cc2e88c3e68d0923be546c9ebb03 /include/asm-ppc/processor.h
parent2e0f55e79c49509b7ff70ff1a10e1e9e90a3dfd4 (diff)
o Merge with Linux 2.1.99.
o Fix ancient bug in the ELF loader making ldd crash. o Fix ancient bug in the keyboard code for SGI, SNI and Jazz.
Diffstat (limited to 'include/asm-ppc/processor.h')
-rw-r--r--include/asm-ppc/processor.h50
1 files changed, 47 insertions, 3 deletions
diff --git a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h
index c86ac43c5..130b5c8b0 100644
--- a/include/asm-ppc/processor.h
+++ b/include/asm-ppc/processor.h
@@ -24,7 +24,11 @@
#define MSR_RI (1<<1) /* Recoverable Exception */
#define MSR_LE (1<<0) /* Little-Endian enable */
+#ifdef CONFIG_APUS
+#define MSR_ MSR_ME|MSR_FE0|MSR_FE1|MSR_IP|MSR_RI
+#else
#define MSR_ MSR_ME|MSR_FE0|MSR_FE1|MSR_RI
+#endif
#define MSR_KERNEL MSR_|MSR_IR|MSR_DR
#define MSR_USER MSR_KERNEL|MSR_PR|MSR_EE
@@ -58,6 +62,8 @@
#define _MACH_prep 1
#define _MACH_Pmac 2 /* pmac or pmac clone (non-chrp) */
#define _MACH_chrp 4 /* chrp machine */
+#define _MACH_mbx 8 /* Motorola MBX board */
+#define _MACH_apus 16 /* amiga with phase5 powerup */
/* see residual.h for these */
#define _PREP_Motorola 0x01 /* motorola prep */
@@ -117,6 +123,18 @@ n:
#define IABR 1010 /* Instruction Address Breakpoint */
#define DEC 22 /* Decrementer */
#define EAR 282 /* External Address Register */
+#define L2CR 1017 /* PPC 750 L2 control register */
+
+#define THRM1 1020
+#define THRM2 1021
+#define THRM3 1022
+#define THRM1_TIN 0x1
+#define THRM1_TIV 0x2
+#define THRM1_THRES (0x7f<<2)
+#define THRM1_TID (1<<29)
+#define THRM1_TIE (1<<30)
+#define THRM1_V (1<<31)
+#define THRM3_E (1<<31)
/* Segment Registers */
#define SR0 0
@@ -146,18 +164,36 @@ n:
#ifdef CONFIG_PREP
#define _machine (_MACH_prep)
#define is_prep (1)
+#define is_chrp (0)
+#define have_of (0)
#endif /* CONFIG_PREP */
#ifdef CONFIG_CHRP
#define _machine (_MACH_chrp)
#define is_prep (0)
+#define is_chrp (1)
+#define have_of (1)
#endif /* CONFIG_CHRP */
#ifdef CONFIG_PMAC
#define _machine (_MACH_Pmac)
#define is_prep (0)
+#define is_chrp (0)
+#define have_of (1)
#endif /* CONFIG_PMAC */
+#ifdef CONFIG_MBX
+#define _machine (_MACH_mbx)
+#define is_prep (0)
+#define is_chrp (0)
+#define have_of (0)
+#endif /* CONFIG_MBX */
+
+#ifdef CONFIG_APUS
+#define _machine (_MACH_apus)
+#define is_prep (0)
+#endif /* CONFIG_APUS */
+
#else /* CONFIG_MACH_SPECIFIC */
extern int _machine;
@@ -165,10 +201,13 @@ extern int _machine;
/* if we're a prep machine */
#define is_prep (_machine == _MACH_prep)
-#endif /* CONFIG_MACH_SPECIFIC */
+/* if we're a chrp machine */
+#define is_chrp (_machine == _MACH_chrp)
/* if we have openfirmware */
extern unsigned long have_of;
+#endif /* CONFIG_MACH_SPECIFIC */
+
/* what kind of prep workstation we are */
extern int _prep_type;
@@ -216,6 +255,7 @@ struct thread_struct {
double fpr[32]; /* Complete floating point set */
unsigned long fpscr_pad; /* fpr ... fpscr must be contiguous */
unsigned long fpscr; /* Floating point status */
+ unsigned long smp_fork_ret;
};
#define INIT_SP (sizeof(init_stack) + (unsigned long) &init_stack)
@@ -227,10 +267,14 @@ struct thread_struct {
(struct pt_regs *)INIT_SP - 1, /* regs */ \
KERNEL_DS, /*fs*/ \
0, /* last_syscall */ \
- {0}, 0, 0 \
+ {0}, 0, 0, 0 \
}
-#define INIT_MMAP { &init_mm, KERNELBASE/*0*/, 0xffffffff/*0x40000000*/, \
+/*
+ * Note: the vm_start and vm_end fields here should *not*
+ * be in kernel space. (Could vm_end == vm_start perhaps?)
+ */
+#define INIT_MMAP { &init_mm, 0, 0x1000, \
PAGE_SHARED, VM_READ | VM_WRITE | VM_EXEC }
/*