Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
gsplhtlxg
clone-Linux
提交
ec917c2c
C
clone-Linux
项目概览
gsplhtlxg
/
clone-Linux
通知
2
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
clone-Linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ec917c2c
编写于
10月 07, 2005
作者:
R
Ralf Baechle
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fixup a few lose ends in explicit support for MIPS R1/R2.
Signed-off-by:
N
Ralf Baechle
<
ralf@linux-mips.org
>
上级
f92c1759
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
49 addition
and
50 deletion
+49
-50
arch/mips/kernel/Makefile
arch/mips/kernel/Makefile
+2
-2
arch/mips/kernel/r4k_switch.S
arch/mips/kernel/r4k_switch.S
+1
-1
arch/mips/kernel/traps.c
arch/mips/kernel/traps.c
+1
-1
arch/mips/lib-32/Makefile
arch/mips/lib-32/Makefile
+2
-2
arch/mips/lib-64/Makefile
arch/mips/lib-64/Makefile
+2
-2
arch/mips/mm/Makefile
arch/mips/mm/Makefile
+2
-2
arch/mips/oprofile/Makefile
arch/mips/oprofile/Makefile
+2
-2
include/asm-mips/addrspace.h
include/asm-mips/addrspace.h
+1
-1
include/asm-mips/bitops.h
include/asm-mips/bitops.h
+27
-27
include/asm-mips/hazards.h
include/asm-mips/hazards.h
+1
-1
include/asm-mips/interrupt.h
include/asm-mips/interrupt.h
+5
-6
include/asm-mips/mach-mips/cpu-feature-overrides.h
include/asm-mips/mach-mips/cpu-feature-overrides.h
+2
-2
include/asm-mips/page.h
include/asm-mips/page.h
+1
-1
未找到文件。
arch/mips/kernel/Makefile
浏览文件 @
ec917c2c
...
...
@@ -28,8 +28,8 @@ obj-$(CONFIG_CPU_RM9000) += r4k_fpu.o r4k_switch.o
obj-$(CONFIG_CPU_NEVADA)
+=
r4k_fpu.o r4k_switch.o
obj-$(CONFIG_CPU_R10000)
+=
r4k_fpu.o r4k_switch.o
obj-$(CONFIG_CPU_SB1)
+=
r4k_fpu.o r4k_switch.o
obj-$(CONFIG_CPU_MIPS32
_R1
)
+=
r4k_fpu.o r4k_switch.o
obj-$(CONFIG_CPU_MIPS64
_R1
)
+=
r4k_fpu.o r4k_switch.o
obj-$(CONFIG_CPU_MIPS32)
+=
r4k_fpu.o r4k_switch.o
obj-$(CONFIG_CPU_MIPS64)
+=
r4k_fpu.o r4k_switch.o
obj-$(CONFIG_CPU_R6000)
+=
r6000_fpu.o r4k_switch.o
obj-$(CONFIG_SMP)
+=
smp.o
...
...
arch/mips/kernel/r4k_switch.S
浏览文件 @
ec917c2c
...
...
@@ -165,7 +165,7 @@ LEAF(_init_fpu)
1
:
#endif
#ifdef CONFIG_CPU_MIPS32
_R1
#ifdef CONFIG_CPU_MIPS32
mtc1
t1
,
$f0
mtc1
t1
,
$f1
mtc1
t1
,
$f2
...
...
arch/mips/kernel/traps.c
浏览文件 @
ec917c2c
...
...
@@ -885,7 +885,7 @@ asmlinkage void cache_parity_error(void)
reg_val
&
(
1
<<
22
)
?
"E0 "
:
""
);
printk
(
"IDX: 0x%08x
\n
"
,
reg_val
&
((
1
<<
22
)
-
1
));
#if defined(CONFIG_CPU_MIPS32
_R1) || defined(CONFIG_CPU_MIPS64_R1
)
#if defined(CONFIG_CPU_MIPS32
) || defined(CONFIG_CPU_MIPS64
)
if
(
reg_val
&
(
1
<<
22
))
printk
(
"DErrAddr0: 0x%0*lx
\n
"
,
field
,
read_c0_derraddr0
());
...
...
arch/mips/lib-32/Makefile
浏览文件 @
ec917c2c
...
...
@@ -4,8 +4,8 @@
lib-y
+=
csum_partial.o memset.o watch.o
obj-$(CONFIG_CPU_MIPS32
_R1
)
+=
dump_tlb.o
obj-$(CONFIG_CPU_MIPS64
_R1
)
+=
dump_tlb.o
obj-$(CONFIG_CPU_MIPS32)
+=
dump_tlb.o
obj-$(CONFIG_CPU_MIPS64)
+=
dump_tlb.o
obj-$(CONFIG_CPU_NEVADA)
+=
dump_tlb.o
obj-$(CONFIG_CPU_R10000)
+=
dump_tlb.o
obj-$(CONFIG_CPU_R3000)
+=
r3k_dump_tlb.o
...
...
arch/mips/lib-64/Makefile
浏览文件 @
ec917c2c
...
...
@@ -4,8 +4,8 @@
lib-y
+=
csum_partial.o memset.o watch.o
obj-$(CONFIG_CPU_MIPS32
_R1
)
+=
dump_tlb.o
obj-$(CONFIG_CPU_MIPS64
_R1
)
+=
dump_tlb.o
obj-$(CONFIG_CPU_MIPS32)
+=
dump_tlb.o
obj-$(CONFIG_CPU_MIPS64)
+=
dump_tlb.o
obj-$(CONFIG_CPU_NEVADA)
+=
dump_tlb.o
obj-$(CONFIG_CPU_R10000)
+=
dump_tlb.o
obj-$(CONFIG_CPU_R3000)
+=
r3k_dump_tlb.o
...
...
arch/mips/mm/Makefile
浏览文件 @
ec917c2c
...
...
@@ -9,8 +9,8 @@ obj-$(CONFIG_32BIT) += ioremap.o pgtable-32.o
obj-$(CONFIG_64BIT)
+=
pgtable-64.o
obj-$(CONFIG_HIGHMEM)
+=
highmem.o
obj-$(CONFIG_CPU_MIPS32
_R1
)
+=
c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o
obj-$(CONFIG_CPU_MIPS64
_R1
)
+=
c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o
obj-$(CONFIG_CPU_MIPS32)
+=
c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o
obj-$(CONFIG_CPU_MIPS64)
+=
c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o
obj-$(CONFIG_CPU_NEVADA)
+=
c-r4k.o cex-gen.o pg-r4k.o tlb-r4k.o
obj-$(CONFIG_CPU_R10000)
+=
c-r4k.o cex-gen.o pg-r4k.o tlb-andes.o
obj-$(CONFIG_CPU_R3000)
+=
c-r3k.o tlb-r3k.o pg-r4k.o
...
...
arch/mips/oprofile/Makefile
浏览文件 @
ec917c2c
...
...
@@ -10,6 +10,6 @@ DRIVER_OBJS = $(addprefix ../../../drivers/oprofile/, \
oprofile-y
:=
$(DRIVER_OBJS)
common.o
oprofile-$(CONFIG_CPU_MIPS32
_R1
)
+=
op_model_mipsxx.o
oprofile-$(CONFIG_CPU_MIPS64
_R1
)
+=
op_model_mipsxx.o
oprofile-$(CONFIG_CPU_MIPS32)
+=
op_model_mipsxx.o
oprofile-$(CONFIG_CPU_MIPS64)
+=
op_model_mipsxx.o
oprofile-$(CONFIG_CPU_RM9000)
+=
op_model_rm9000.o
include/asm-mips/addrspace.h
浏览文件 @
ec917c2c
...
...
@@ -131,7 +131,7 @@
|| defined (CONFIG_CPU_R5000) \
|| defined (CONFIG_CPU_NEVADA) \
|| defined (CONFIG_CPU_TX49XX) \
|| defined (CONFIG_CPU_MIPS64
_R1
)
|| defined (CONFIG_CPU_MIPS64)
#define KUSIZE _LLCONST_(0x0000010000000000)
/* 2^^40 */
#define KUSIZE_64 _LLCONST_(0x0000010000000000)
/* 2^^40 */
#define K0SIZE _LLCONST_(0x0000001000000000)
/* 2^^36 */
...
...
include/asm-mips/bitops.h
浏览文件 @
ec917c2c
...
...
@@ -12,6 +12,7 @@
#include <linux/config.h>
#include <linux/compiler.h>
#include <linux/types.h>
#include <asm/bug.h>
#include <asm/byteorder.h>
/* sigh ... */
#include <asm/cpu-features.h>
...
...
@@ -546,33 +547,27 @@ static inline int test_bit(unsigned long nr, const volatile unsigned long *addr)
return
1UL
&
(
addr
[
nr
>>
SZLONG_LOG
]
>>
(
nr
&
SZLONG_MASK
));
}
#ifdef CONFIG_CPU_MIPS32_R1
/*
* Return the bit position (0..
31
) of the most significant 1 bit in a word
* Return the bit position (0..
63
) of the most significant 1 bit in a word
* Returns -1 if no 1 bit exists
*/
static
__inline__
int
__ilog2
(
unsigned
long
x
)
static
inline
int
__ilog2
(
unsigned
long
x
)
{
int
lz
;
__asm__
(
" .set push
\n
"
" .set mips32
\n
"
" clz %0, %1
\n
"
" .set pop
\n
"
:
"=r"
(
lz
)
:
"r"
(
x
));
if
(
sizeof
(
x
)
==
4
)
{
__asm__
(
" .set push
\n
"
" .set mips32
\n
"
" clz %0, %1
\n
"
" .set pop
\n
"
:
"=r"
(
lz
)
:
"r"
(
x
));
return
31
-
lz
;
}
#elif defined(CONFIG_CPU_MIPS64_R1)
/*
* Return the bit position (0..63) of the most significant 1 bit in a word
* Returns -1 if no 1 bit exists
*/
static
__inline__
int
__ilog2
(
unsigned
long
x
)
{
int
lz
;
return
31
-
lz
;
}
BUG_ON
(
sizeof
(
x
)
!=
8
);
__asm__
(
" .set push
\n
"
...
...
@@ -584,7 +579,6 @@ static __inline__ int __ilog2(unsigned long x)
return
63
-
lz
;
}
#endif
/*
* __ffs - find first bit in word.
...
...
@@ -595,7 +589,7 @@ static __inline__ int __ilog2(unsigned long x)
*/
static
inline
unsigned
long
__ffs
(
unsigned
long
word
)
{
#if defined(CONFIG_CPU_MIPS32
_R1) || defined(CONFIG_CPU_MIPS64_R1
)
#if defined(CONFIG_CPU_MIPS32
) || defined(CONFIG_CPU_MIPS64
)
return
__ilog2
(
word
&
-
word
);
#else
int
b
=
0
,
s
;
...
...
@@ -606,6 +600,8 @@ static inline unsigned long __ffs(unsigned long word)
s
=
4
;
if
(
word
<<
28
!=
0
)
s
=
0
;
b
+=
s
;
word
>>=
s
;
s
=
2
;
if
(
word
<<
30
!=
0
)
s
=
0
;
b
+=
s
;
word
>>=
s
;
s
=
1
;
if
(
word
<<
31
!=
0
)
s
=
0
;
b
+=
s
;
return
b
;
#endif
#ifdef CONFIG_64BIT
s
=
32
;
if
(
word
<<
32
!=
0
)
s
=
0
;
b
+=
s
;
word
>>=
s
;
...
...
@@ -614,9 +610,10 @@ static inline unsigned long __ffs(unsigned long word)
s
=
4
;
if
(
word
<<
60
!=
0
)
s
=
0
;
b
+=
s
;
word
>>=
s
;
s
=
2
;
if
(
word
<<
62
!=
0
)
s
=
0
;
b
+=
s
;
word
>>=
s
;
s
=
1
;
if
(
word
<<
63
!=
0
)
s
=
0
;
b
+=
s
;
#endif
return
b
;
#endif
#endif
}
/*
...
...
@@ -655,10 +652,10 @@ static inline unsigned long ffz(unsigned long word)
*/
static
inline
unsigned
long
flz
(
unsigned
long
word
)
{
#if defined(CONFIG_CPU_MIPS32
_R1) || defined(CONFIG_CPU_MIPS64_R1
)
#if defined(CONFIG_CPU_MIPS32
) || defined(CONFIG_CPU_MIPS64
)
return
__ilog2
(
~
word
);
#else
#if
defined(CONFIG_32BIT)
#if
def CONFIG_32BIT
int
r
=
31
,
s
;
word
=
~
word
;
s
=
16
;
if
((
word
&
0xffff0000
))
s
=
0
;
r
-=
s
;
word
<<=
s
;
...
...
@@ -666,8 +663,10 @@ static inline unsigned long flz(unsigned long word)
s
=
4
;
if
((
word
&
0xf0000000
))
s
=
0
;
r
-=
s
;
word
<<=
s
;
s
=
2
;
if
((
word
&
0xc0000000
))
s
=
0
;
r
-=
s
;
word
<<=
s
;
s
=
1
;
if
((
word
&
0x80000000
))
s
=
0
;
r
-=
s
;
return
r
;
#endif
#if
defined(CONFIG_64BIT)
#if
def CONFIG_64BIT
int
r
=
63
,
s
;
word
=
~
word
;
s
=
32
;
if
((
word
&
0xffffffff00000000UL
))
s
=
0
;
r
-=
s
;
word
<<=
s
;
...
...
@@ -676,9 +675,10 @@ static inline unsigned long flz(unsigned long word)
s
=
4
;
if
((
word
&
0xf000000000000000UL
))
s
=
0
;
r
-=
s
;
word
<<=
s
;
s
=
2
;
if
((
word
&
0xc000000000000000UL
))
s
=
0
;
r
-=
s
;
word
<<=
s
;
s
=
1
;
if
((
word
&
0x8000000000000000UL
))
s
=
0
;
r
-=
s
;
#endif
return
r
;
#endif
#endif
}
/*
...
...
include/asm-mips/hazards.h
浏览文件 @
ec917c2c
...
...
@@ -232,7 +232,7 @@ __asm__(
#endif
#if
defined(CONFIG_CPU_MIPS32_R2) || defined (CONFIG_CPU_MIPS64_R2)
#if
def CONFIG_CPU_MIPSR2
#define instruction_hazard() \
do { \
__label__ __next; \
...
...
include/asm-mips/interrupt.h
浏览文件 @
ec917c2c
...
...
@@ -19,7 +19,7 @@ __asm__ (
" .set push
\n
"
" .set reorder
\n
"
" .set noat
\n
"
#if
defined(CONFIG_CPU_MIPS32_R2) || defined(CONFIG_CPU_MIPS64_R2)
#if
def CONFIG_CPU_MIPSR2
" ei
\n
"
#else
" mfc0 $1,$12
\n
"
...
...
@@ -51,7 +51,7 @@ __asm__ (
" .macro local_irq_disable
\n
"
" .set push
\n
"
" .set noat
\n
"
#if
defined(CONFIG_CPU_MIPS32_R2) || defined(CONFIG_CPU_MIPS64_R2)
#if
def CONFIG_CPU_MIPSR2
" di
\n
"
#else
" mfc0 $1,$12
\n
"
...
...
@@ -91,7 +91,7 @@ __asm__ (
" .set push
\n
"
" .set reorder
\n
"
" .set noat
\n
"
#if
defined(CONFIG_CPU_MIPS32_R2) || defined(CONFIG_CPU_MIPS64_R2)
#if
def CONFIG_CPU_MIPSR2
" di
\\
result
\n
"
#else
" mfc0
\\
result, $12
\n
"
...
...
@@ -115,8 +115,7 @@ __asm__ (
" .macro local_irq_restore flags
\n
"
" .set noreorder
\n
"
" .set noat
\n
"
#if (defined(CONFIG_CPU_MIPS32_R2) || defined(CONFIG_CPU_MIPS64_R2)) && \
defined(CONFIG_IRQ_CPU)
#if defined(CONFIG_CPU_MIPSR2) && defined(CONFIG_IRQ_CPU)
/*
* Slow, but doesn't suffer from a relativly unlikely race
* condition we're having since days 1.
...
...
@@ -125,7 +124,7 @@ __asm__ (
" di
\n
"
" ei
\n
"
"1:
\n
"
#elif defined(CONFIG_CPU_MIPS
32_R2) || defined(CONFIG_CPU_MIPS64_
R2)
#elif defined(CONFIG_CPU_MIPSR2)
/*
* Fast, dangerous. Life is fun, life is good.
*/
...
...
include/asm-mips/mach-mips/cpu-feature-overrides.h
浏览文件 @
ec917c2c
...
...
@@ -14,7 +14,7 @@
/*
* CPU feature overrides for MIPS boards
*/
#ifdef CONFIG_CPU_MIPS32
_R1
#ifdef CONFIG_CPU_MIPS32
#define cpu_has_tlb 1
#define cpu_has_4kex 1
#define cpu_has_4kcache 1
...
...
@@ -40,7 +40,7 @@
#define cpu_icache_snoops_remote_store 1
#endif
#ifdef CONFIG_CPU_MIPS64
_R1
#ifdef CONFIG_CPU_MIPS64
#define cpu_has_tlb 1
#define cpu_has_4kex 1
#define cpu_has_4kcache 1
...
...
include/asm-mips/page.h
浏览文件 @
ec917c2c
...
...
@@ -76,7 +76,7 @@ static inline void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
* These are used to make use of C type-checking..
*/
#ifdef CONFIG_64BIT_PHYS_ADDR
#ifdef CONFIG_CPU_MIPS32
_R1
#ifdef CONFIG_CPU_MIPS32
typedef
struct
{
unsigned
long
pte_low
,
pte_high
;
}
pte_t
;
#define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
#else
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录