Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
880c59e5
U
U-Boot.Mirror
项目概览
OS
/
U-Boot.Mirror
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
U-Boot.Mirror
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
880c59e5
编写于
4月 24, 2010
作者:
G
Graeme Russ
提交者:
Wolfgang Denk
5月 06, 2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
eNET: Implement eNET Watchdog
Signed-off-by:
N
Graeme Russ
<
graeme.russ@gmail.com
>
上级
f2a55055
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
47 addition
and
9 deletion
+47
-9
board/eNET/eNET.c
board/eNET/eNET.c
+45
-0
board/eNET/hardware.h
board/eNET/hardware.h
+1
-0
include/configs/eNET.h
include/configs/eNET.h
+1
-9
未找到文件。
board/eNET/eNET.c
浏览文件 @
880c59e5
...
...
@@ -45,6 +45,9 @@ DECLARE_GLOBAL_DATA_PTR;
unsigned
long
monitor_flash_len
=
CONFIG_SYS_MONITOR_LEN
;
static
void
enet_timer_isr
(
void
);
static
void
enet_toggle_run_led
(
void
);
void
init_sc520_enet
(
void
)
{
/* Set CPU Speed to 100MHz */
...
...
@@ -160,6 +163,10 @@ int last_stage_init(void)
major
=
minor
=
0
;
outb
(
0x00
,
LED_LATCH_ADDRESS
);
register_timer_isr
(
enet_timer_isr
);
printf
(
"Serck Controls eNET
\n
"
);
return
0
;
...
...
@@ -218,3 +225,41 @@ void setup_pcat_compatibility()
writeb
(
SC520_IRQ_DISABLED
,
&
sc520_mmcr
->
wpvmap
);
writeb
(
SC520_IRQ_DISABLED
,
&
sc520_mmcr
->
icemap
);
}
void
enet_timer_isr
(
void
)
{
static
long
enet_ticks
=
0
;
enet_ticks
++
;
/* Toggle Watchdog every 100ms */
if
((
enet_ticks
%
100
)
==
0
)
hw_watchdog_reset
();
/* Toggle Run LED every 500ms */
if
((
enet_ticks
%
500
)
==
0
)
enet_toggle_run_led
();
}
void
hw_watchdog_reset
(
void
)
{
/* Watchdog Reset must be atomic */
long
flag
=
disable_interrupts
();
if
(
sc520_mmcr
->
piodata15_0
&
WATCHDOG_PIO_BIT
)
sc520_mmcr
->
pioclr15_0
=
WATCHDOG_PIO_BIT
;
else
sc520_mmcr
->
pioset15_0
=
WATCHDOG_PIO_BIT
;
if
(
flag
)
enable_interrupts
();
}
void
enet_toggle_run_led
(
void
)
{
unsigned
char
leds_state
=
inb
(
LED_LATCH_ADDRESS
);
if
(
leds_state
&
LED_RUN_BITMASK
)
outb
(
leds_state
&~
LED_RUN_BITMASK
,
LED_LATCH_ADDRESS
);
else
outb
(
leds_state
|
LED_RUN_BITMASK
,
LED_LATCH_ADDRESS
);
}
board/eNET/hardware.h
浏览文件 @
880c59e5
...
...
@@ -31,5 +31,6 @@
#define LED_RX_BITMASK 0x08
#define LED_TX_BITMASK 0x10
#define LED_ERR_BITMASK 0x20
#define WATCHDOG_PIO_BIT 0x8000
#endif
/* HARDWARE_H_ */
include/configs/eNET.h
浏览文件 @
880c59e5
...
...
@@ -53,7 +53,7 @@
* bottom (processor) board MUST be removed!
*/
#undef CONFIG_WATCHDOG
#
undef
CONFIG_HW_WATCHDOG
#
define
CONFIG_HW_WATCHDOG
/*-----------------------------------------------------------------------
* Serial Configuration
...
...
@@ -233,14 +233,6 @@
#define CONFIG_NET_MULTI
#define CONFIG_RTL8139
/*-----------------------------------------------------------------------
* Hardware watchdog configuration
*/
#define CONFIG_SYS_WATCHDOG_PIO_BIT 0x8000
#define CONFIG_SYS_WATCHDIG_PIO_DATA SC520_PIODATA15_0
#define CONFIG_SYS_WATCHDIG_PIO_CLR SC520_PIOCLR15_0
#define CONFIG_SYS_WATCHDIG_PIO_SET SC520_PIOSET15_0
/*-----------------------------------------------------------------------
* FPGA configuration
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录