Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
565a9b49
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
565a9b49
编写于
3月 07, 2015
作者:
V
Vineet Gupta
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
ARC: RIP broken 64bit RTSC
Signed-off-by:
N
Vineet Gupta
<
vgupta@synopsys.com
>
上级
742f8af6
变更
7
显示空白变更内容
内联
并排
Showing
7 changed file
with
4 addition
and
63 deletion
+4
-63
arch/arc/Kconfig
arch/arc/Kconfig
+0
-5
arch/arc/Makefile
arch/arc/Makefile
+1
-1
arch/arc/configs/nsim_700_defconfig
arch/arc/configs/nsim_700_defconfig
+0
-1
arch/arc/configs/nsimosci_defconfig
arch/arc/configs/nsimosci_defconfig
+0
-1
arch/arc/configs/tb10x_defconfig
arch/arc/configs/tb10x_defconfig
+0
-1
arch/arc/kernel/setup.c
arch/arc/kernel/setup.c
+2
-6
arch/arc/kernel/time.c
arch/arc/kernel/time.c
+1
-48
未找到文件。
arch/arc/Kconfig
浏览文件 @
565a9b49
...
...
@@ -311,11 +311,6 @@ config ARC_HAS_SWAPE
bool "Insn: SWAPE (endian-swap)"
default y
config ARC_HAS_RTSC
bool "Insn: RTSC (64-bit r/o cycle counter)"
default y
depends on !SMP
endmenu # "ARC CPU Configuration"
config LINUX_LINK_BASE
...
...
arch/arc/Makefile
浏览文件 @
565a9b49
...
...
@@ -33,7 +33,7 @@ cflags-$(atleast_gcc44) += -fsection-anchors
cflags-$(CONFIG_ARC_HAS_LLSC)
+=
-mlock
cflags-$(CONFIG_ARC_HAS_SWAPE)
+=
-mswape
cflags-$(CONFIG_ARC_HAS_RTSC)
+=
-mrtsc
cflags-$(CONFIG_ARC_DW2_UNWIND)
+=
-fasynchronous-unwind-tables
# By default gcc 4.8 generates dwarf4 which kernel unwinder can't grok
...
...
arch/arc/configs/nsim_700_defconfig
浏览文件 @
565a9b49
...
...
@@ -23,7 +23,6 @@ CONFIG_MODULES=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARC_PLAT_FPGA_LEGACY=y
# CONFIG_ARC_HAS_RTSC is not set
CONFIG_ARC_BUILTIN_DTB_NAME="angel4"
CONFIG_PREEMPT=y
# CONFIG_COMPACTION is not set
...
...
arch/arc/configs/nsimosci_defconfig
浏览文件 @
565a9b49
...
...
@@ -24,7 +24,6 @@ CONFIG_MODULES=y
# CONFIG_IOSCHED_DEADLINE is not set
# CONFIG_IOSCHED_CFQ is not set
CONFIG_ARC_PLAT_FPGA_LEGACY=y
# CONFIG_ARC_HAS_RTSC is not set
CONFIG_ARC_BUILTIN_DTB_NAME="nsimosci"
# CONFIG_COMPACTION is not set
CONFIG_NET=y
...
...
arch/arc/configs/tb10x_defconfig
浏览文件 @
565a9b49
...
...
@@ -26,7 +26,6 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLOCK is not set
CONFIG_ARC_PLAT_TB10X=y
CONFIG_ARC_CACHE_LINE_SHIFT=5
# CONFIG_ARC_HAS_RTSC is not set
CONFIG_ARC_STACK_NONEXEC=y
CONFIG_HZ=250
CONFIG_ARC_BUILTIN_DTB_NAME="abilis_tb100_dvk"
...
...
arch/arc/kernel/setup.c
浏览文件 @
565a9b49
...
...
@@ -180,10 +180,9 @@ static char *arc_cpu_mumbojumbo(int cpu_id, char *buf, int len)
(
unsigned
int
)(
arc_get_core_freq
()
/
1000000
),
(
unsigned
int
)(
arc_get_core_freq
()
/
10000
)
%
100
);
n
+=
scnprintf
(
buf
+
n
,
len
-
n
,
"Timers
\t\t
: %s%s
%s%s
\n
ISA Extn
\t
: "
,
n
+=
scnprintf
(
buf
+
n
,
len
-
n
,
"Timers
\t\t
: %s%s
\n
ISA Extn
\t
: "
,
IS_AVAIL1
(
cpu
->
timers
.
t0
,
"Timer0 "
),
IS_AVAIL1
(
cpu
->
timers
.
t1
,
"Timer1 "
),
IS_AVAIL2
(
cpu
->
timers
.
rtsc
,
"64-bit RTSC "
,
CONFIG_ARC_HAS_RTSC
));
IS_AVAIL1
(
cpu
->
timers
.
t1
,
"Timer1 "
));
n
+=
i
=
scnprintf
(
buf
+
n
,
len
-
n
,
"%s%s"
,
IS_AVAIL2
(
atomic
,
"atomic "
,
CONFIG_ARC_HAS_LLSC
));
...
...
@@ -254,9 +253,6 @@ static void arc_chk_core_config(void)
if
(
!
cpu
->
timers
.
t1
)
panic
(
"Timer1 is not present!
\n
"
);
if
(
IS_ENABLED
(
CONFIG_ARC_HAS_RTSC
)
&&
!
cpu
->
timers
.
rtsc
)
panic
(
"RTSC is not present
\n
"
);
#ifdef CONFIG_ARC_HAS_DCCM
/*
* DCCM can be arbit placed in hardware.
...
...
arch/arc/kernel/time.c
浏览文件 @
565a9b49
...
...
@@ -26,6 +26,7 @@
* while TIMER1 for free running (clocksource)
*
* Newer ARC700 cores have 64bit clk fetching RTSC insn, preferred over TIMER1
* which however is currently broken
*/
#include <linux/spinlock.h>
...
...
@@ -59,52 +60,6 @@
/********** Clock Source Device *********/
#ifdef CONFIG_ARC_HAS_RTSC
int
arc_counter_setup
(
void
)
{
/*
* For SMP this needs to be 0. However Kconfig glue doesn't
* enable this option for SMP configs
*/
return
1
;
}
static
cycle_t
arc_counter_read
(
struct
clocksource
*
cs
)
{
unsigned
long
flags
;
union
{
#ifdef CONFIG_CPU_BIG_ENDIAN
struct
{
u32
high
,
low
;
};
#else
struct
{
u32
low
,
high
;
};
#endif
cycle_t
full
;
}
stamp
;
flags
=
arch_local_irq_save
();
__asm__
__volatile
(
" .extCoreRegister tsch, 58, r, cannot_shortcut
\n
"
" rtsc %0, 0
\n
"
" mov %1, 0
\n
"
:
"=r"
(
stamp
.
low
),
"=r"
(
stamp
.
high
));
arch_local_irq_restore
(
flags
);
return
stamp
.
full
;
}
static
struct
clocksource
arc_counter
=
{
.
name
=
"ARC RTSC"
,
.
rating
=
300
,
.
read
=
arc_counter_read
,
.
mask
=
CLOCKSOURCE_MASK
(
32
),
.
flags
=
CLOCK_SOURCE_IS_CONTINUOUS
,
};
#else
/* !CONFIG_ARC_HAS_RTSC */
static
bool
is_usable_as_clocksource
(
void
)
{
#ifdef CONFIG_SMP
...
...
@@ -139,8 +94,6 @@ static struct clocksource arc_counter = {
.
flags
=
CLOCK_SOURCE_IS_CONTINUOUS
,
};
#endif
/********** Clock Event Device *********/
/*
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录