S3C6410 BSP驱动默认并未实现reboot机制,reboot的底层驱动实现接口为arch_reset, 该函数在system.h中实现。
实现方式可参考UBOOT中的实现:
.globl reset_cpu
reset_cpu:
ldr r1, =ELFIN_CLOCK_POWER_BASE
ldr r2, [r1, #SYS_ID_OFFSET]
ldr r3, =0xffff
and r2, r3, r2, lsr #12
str r2, [r1, #SW_RST_OFFSET]
_loop_forever:
b _loop_forever
也可以通过看门狗来复位:
static inline void arch_wdt_reset(void)
{
struct clk *wdtclk;
printk("arch_reset: attempting watchdog reset\n");
__raw_writel(0, S3C2410_WTCON); /* disable watchdog, to be safe */
wdtclk = clk_get(NULL, "watchdog");
if (!IS_ERR(wdtclk)) {
clk_enable(wdtclk);
} else
printk(KERN_WARNING "%s: warning: cannot get watchdog clock\n", __func__);
/* put initial values into count and data */
__raw_writel(0x80, S3C2410_WTCNT);
__raw_writel(0x80, S3C2410_WTDAT);
/* set the watchdog to go and reset... */
__raw_writel(S3C2410_WTCON_ENABLE|S3C2410_WTCON_DIV16|S3C2410_WTCON_RSTEN |
S3C2410_WTCON_PRESCALE(0x20), S3C2410_WTCON);
/* wait for reset to assert... */
mdelay(500);
printk(KERN_ERR "Watchdog reset failed to assert reset\n");
/* delay to allow the serial port to show the message */
mdelay(50);
分享到:
相关推荐
linux-2.6.29.tar.bz2
《Linux 2.6.29 内核详解与系统移植》 Linux 2.6.29 是 Linux 内核历史上的一个重要版本,它在2009年发布,为当时的开发者和嵌入式系统设计者提供了丰富的功能和改进。这个版本的内核对于学习 Linux 内核原理和进行...
标题“rt73-2.6.29-linux-driver”涉及的是一个专为Linux操作系统设计的无线网卡驱动程序,适用于Linux内核版本2.6.29。这个驱动是针对RT73系列芯片的,它由Ralink Technology公司生产,主要用于802.11g/b无线网络...
### 基于 Linux-2.6.29 在 Mini2440 上移植 Boa 服务器的详细步骤 #### 环境准备与概述 本文档详细介绍了如何在基于 Linux 2.6.29 的 Mini2440 开发板上移植 Boa 服务器的过程。Boa 是一款轻量级的 Web 服务器,...
"goldfish-android-goldfish-2.6.29" 是一个特定版本的Android模拟器内核源代码包,基于Linux内核2.6.29。这个版本的Goldfish内核是Android开发环境中用于模拟Android设备硬件的一个关键组件。在Android应用开发和...
### Linux-2.6.29在Mini2440上的内存底层初始化学习笔记 #### 一、基础知识 ##### 1.1 关于伙伴系统(Buddy System) 伙伴系统是Linux内核用来管理物理地址连续的内存页的一种机制。它的核心思想是基于2的幂次来...
iproute2 的2.6版本! 用于linux下的源码包
`libxml2-2.6.29.tar.gz` 是一个针对Linux系统的开源库,主要用于处理XML(可扩展标记语言)文档。libxml2是Gnome项目的一部分,由Daniel Veillard领导的开发团队创建,它是XML解析、XPath处理、XInclude支持以及XML...
索下载你所需要的版本号的内核源代码,有时候一个一个的上传太麻烦了,我做了压缩,不过我都写了版本号的范围,总体范围从linux-1.0.tar到linux-2.6.29.tar,推荐 朋友们用ultraedit去打开比较方便阅读,当然是自己...
3. **`***.h>`** - 存放在`linux-2.6.29/arch/arm/mach-s3c2410/include/mach`目录下,针对具体的硬件平台提供定制化的接口和定义。 4. **`***.h>`** - 如`<plat/regs-adc.h>`,这类文件通常位于架构相关的平台目录...
索下载你所需要的版本号的内核源代码,有时候一个一个的上传太麻烦了,我做了压缩,不过我都写了版本号的范围,总体范围从linux-1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜欢...
在 mini2440 平台上,GPIO 头文件的定义位于 Linux-2.6.29/arch/arm/plat-s3cxx 目录下的 gpio.c 文件中,声明位于 Linux-2.6.29/arch/arm/mach-s3c2410/include/mach 目录下的 gpio.h 文件中。这些头文件提供了大量...
索下载你所需要的版本号的内核源代码范围从linux-1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜 欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!
linux-2.6.19.tar.bz2
不过我都写了版本号的范围,总体范围从linux1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!
linux-2.6.36内核源代码,用来测试,修改,编写驱动。
**位置**: `Linux-2.6.29/drivers/media/video/s3c2440camif.c` **设备名**: `/dev/camera` **说明**: CMOS摄像头驱动程序负责与开发板上的摄像头进行通信。通过`/dev/camera`设备节点可以访问摄像头并获取图像...
标题 "android/kernel/goldfish.git/refs/heads/android-goldfish-2.6.29" 暗示我们正在讨论Android操作系统内核的一个特定分支,即“android-goldfish-2.6.29”。这个分支是针对“goldfish”架构的,goldfish是...
不过我都写了版本号的范围,总体范围从linux1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!
索下载你所需要的版本号的内核源代码范围从linux-1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜 欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!