From: James S. <jsi...@us...> - 2002-05-30 20:42:18
|
Update of /cvsroot/linux-mips/linux/include/asm-mips64 In directory usw-pr-cvs1:/tmp/cvs-serv29100/include/asm-mips64 Modified Files: asm.h bootinfo.h branch.h cache.h cpu.h fpu_emulator.h mipsregs.h mmu_context.h processor.h serial.h spinlock.h Added Files: elf.h irq_cpu.h Log Message: Updated Mips 64 to OSS tree. --- NEW FILE: irq_cpu.h --- /* * include/asm-mips/irq_cpu.h * * MIPS CPU interrupt definitions. * * Copyright (C) 2002 Maciej W. Rozycki * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */ #ifndef __ASM_MIPS64_IRQ_CPU_H #define __ASM_MIPS64_IRQ_CPU_H extern void mips_cpu_irq_init(int irq_base); #endif /* __ASM_MIPS64_IRQ_CPU_H */ Index: asm.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/asm.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- asm.h 21 Apr 2002 20:06:20 -0000 1.9 +++ asm.h 30 May 2002 20:42:15 -0000 1.10 @@ -174,12 +174,12 @@ 9: #endif /* (_MIPS_ISA == _MIPS_ISA_MIPS2) || (_MIPS_ISA == _MIPS_ISA_MIPS3) */ #if (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5) || \ - (_MIPS_ISA == _MIPS_ISA_MIPS64) + (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64) #define MOVN(rd,rs,rt) \ movn rd,rs,rt #define MOVZ(rd,rs,rt) \ movz rd,rs,rt -#endif /* MIPS IV, MIPS V or MIPS64 */ +#endif /* MIPS IV, MIPS V, MIPS32 or MIPS64 */ /* * Stack alignment Index: bootinfo.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/bootinfo.h,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- bootinfo.h 19 Feb 2002 17:17:53 -0000 1.10 +++ bootinfo.h 30 May 2002 20:42:15 -0000 1.11 @@ -156,6 +156,7 @@ * Valid machtype for group Alchemy */ #define MACH_PB1000 0 /* Au1000-based eval board */ +#define MACH_PB1500 1 /* Au1500-based eval board */ /* * Valid machtype for group NEC_VR41XX Index: branch.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/branch.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- branch.h 31 Oct 2001 18:26:52 -0000 1.1 +++ branch.h 30 May 2002 20:42:15 -0000 1.2 @@ -3,10 +3,11 @@ * License. See the file "COPYING" in the main directory of this archive * for more details. * - * Branch and jump emulation. - * - * Copyright (C) 1996, 1997, 1998, 1999 by Ralf Baechle + * Copyright (C) 1996, 1997, 1998, 2001 by Ralf Baechle */ +#ifndef _ASM_BRANCH_H +#define _ASM_BRANCH_H + #include <asm/ptrace.h> static inline int delay_slot(struct pt_regs *regs) @@ -14,6 +15,14 @@ return regs->cp0_cause & CAUSEF_BD; } +static inline unsigned long exception_epc(struct pt_regs *regs) +{ + if (!delay_slot(regs)) + return regs->cp0_epc; + + return regs->cp0_epc + 4; +} + extern int __compute_return_epc(struct pt_regs *regs); static inline int compute_return_epc(struct pt_regs *regs) @@ -25,3 +34,5 @@ return __compute_return_epc(regs); } + +#endif /* _ASM_BRANCH_H */ Index: cache.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/cache.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- cache.h 21 Nov 2001 22:10:59 -0000 1.3 +++ cache.h 30 May 2002 20:42:15 -0000 1.4 @@ -9,6 +9,8 @@ #ifndef _ASM_CACHE_H #define _ASM_CACHE_H +#include <linux/config.h> + #ifndef _LANGUAGE_ASSEMBLY /* * Descriptor for a cache Index: cpu.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/cpu.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- cpu.h 4 Jan 2002 18:04:53 -0000 1.7 +++ cpu.h 30 May 2002 20:42:15 -0000 1.8 @@ -62,6 +62,7 @@ #define PRID_IMP_R5500 0x5500 #define PRID_IMP_4KC 0x8000 #define PRID_IMP_5KC 0x8100 +#define PRID_IMP_20KC 0x8200 #define PRID_IMP_4KEC 0x8400 #define PRID_IMP_4KSC 0x8600 @@ -126,7 +127,7 @@ CPU_R5000A, CPU_R4640, CPU_NEVADA, CPU_RM7000, CPU_R5432, CPU_4KC, CPU_5KC, CPU_R4310, CPU_SB1, CPU_TX3912, CPU_TX3922, CPU_TX3927, CPU_AU1000, CPU_4KEC, CPU_4KSC, CPU_VR41XX, CPU_R5500, CPU_TX49XX, - CPU_TX39XX, CPU_LAST + CPU_TX39XX, CPU_AU1500, CPU_20KC, CPU_LAST }; #endif @@ -159,5 +160,6 @@ #define MIPS_CPU_CACHE_CDEX 0x00000800 /* Create_Dirty_Exclusive CACHE op */ #define MIPS_CPU_MCHECK 0x00001000 /* Machine check exception */ #define MIPS_CPU_EJTAG 0x00002000 /* EJTAG exception */ +#define MIPS_CPU_FPUEX 0x00004000 /* FPU exception */ #endif /* _ASM_CPU_H */ Index: fpu_emulator.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/fpu_emulator.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- fpu_emulator.h 18 Mar 2002 22:25:08 -0000 1.1 +++ fpu_emulator.h 30 May 2002 20:42:15 -0000 1.2 @@ -1,15 +1,4 @@ /* - * Definitiona for the Algorithmics FPU Emulator port into MIPS Linux - */ -/************************************************************************** - * - * include/asm-mips/fpu_emulator.h - * - * Kevin D. Kissell, ke...@mi... and Carsten Langgaard, car...@mi... - * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. - * - * ######################################################################## - * * This program is free software; you can distribute it and/or modify it * under the terms of the GNU General Public License (Version 2) as * published by the Free Software Foundation. @@ -23,13 +12,16 @@ * with this program; if not, write to the Free Software Foundation, Inc., * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. * - *************************************************************************/ -/* * Further private data for which no space exists in mips_fpu_soft_struct. * This should be subsumed into the mips_fpu_soft_struct structure as * defined in processor.h as soon as the absurd wired absolute assembler * offsets become dynamic at compile time. + * + * Kevin D. Kissell, ke...@mi... and Carsten Langgaard, car...@mi... + * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. */ +#ifndef _ASM_FPU_EMULATOR_H +#define _ASM_FPU_EMULATOR_H struct mips_fpu_emulator_private { unsigned int eir; @@ -42,3 +34,5 @@ unsigned int errors; } stats; }; + +#endif /* _ASM_FPU_EMULATOR_H */ Index: mipsregs.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/mipsregs.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- mipsregs.h 26 Feb 2002 17:08:29 -0000 1.11 +++ mipsregs.h 30 May 2002 20:42:15 -0000 1.12 @@ -52,12 +52,15 @@ #define CP0_XCONTEXT $20 #define CP0_FRAMEMASK $21 #define CP0_DIAGNOSTIC $22 +#define CP0_DEBUG $23 +#define CP0_DEPC $24 #define CP0_PERFORMANCE $25 #define CP0_ECC $26 #define CP0_CACHEERR $27 #define CP0_TAGLO $28 #define CP0_TAGHI $29 #define CP0_ERROREPC $30 +#define CP0_DESAVE $31 /* * R4640/R4650 cp0 register names. These registers are listed Index: mmu_context.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/mmu_context.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- mmu_context.h 28 Jan 2002 20:32:05 -0000 1.4 +++ mmu_context.h 30 May 2002 20:42:15 -0000 1.5 @@ -27,7 +27,7 @@ #define TLBMISS_HANDLER_SETUP_PGD(pgd) \ pgd_current[smp_processor_id()] = (unsigned long)(pgd) #define TLBMISS_HANDLER_SETUP() \ - set_context((unsigned long) smp_processor_id() << (23 + 3)); \ + set_context(((long)(&pgd_current[smp_processor_id()])) << 23); \ TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir) extern unsigned long pgd_current[]; Index: processor.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/processor.h,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- processor.h 26 Feb 2002 17:34:15 -0000 1.9 +++ processor.h 30 May 2002 20:42:15 -0000 1.10 @@ -15,35 +15,19 @@ /* * Return current * instruction pointer ("program counter"). - * - * Two implementations. The ``la'' version results in shorter code for - * the kernel which we assume to reside in the 32-bit compat address space. - * The ``jal'' version is for use by modules which live in outer space. - * This is just a single instruction unlike the long dla macro expansion. */ -#ifdef MODULE -#define current_text_addr() \ -({ \ - void *_a; \ - \ - __asm__ ("jal\t1f, %0\n\t" \ - "1:" \ - : "=r" (_a)); \ - \ - _a; \ -}) -#else #define current_text_addr() \ ({ \ void *_a; \ \ - __asm__ ("dla\t%0, 1f\n\t" \ - "1:" \ - : "=r" (_a)); \ + __asm__ ("bal\t1f\t\t\t# current_text_addr\n" \ + "1:\tmove\t%0, $31" \ + : "=r" (_a) \ + : \ + : "$31"); \ \ _a; \ }) -#endif #if !defined (_LANGUAGE_ASSEMBLY) #include <asm/cachectl.h> Index: serial.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/serial.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- serial.h 17 Dec 2001 18:35:15 -0000 1.1 +++ serial.h 30 May 2002 20:42:15 -0000 1.2 @@ -9,6 +9,8 @@ #ifndef _ASM_SERIAL_H #define _ASM_SERIAL_H +#include <linux/config.h> + /* * This assumes you have a 1.8432 MHz clock for your UART. * Index: spinlock.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/spinlock.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- spinlock.h 14 Feb 2002 20:38:59 -0000 1.4 +++ spinlock.h 30 May 2002 20:42:15 -0000 1.5 @@ -22,7 +22,7 @@ #define spin_lock_init(x) do { (x)->lock = 0; } while(0) #define spin_is_locked(x) ((x)->lock != 0) -#define spin_unlock_wait(x) do { barrier(); } while ((x)->lock); +#define spin_unlock_wait(x) do { barrier(); } while ((x)->lock) /* * Simple spin lock operations. There are two variants, one clears IRQ's |