`
face2face
  • 浏览: 14652 次
  • 性别: Icon_minigender_1
  • 来自: 福州
最近访客 更多访客>>
社区版块
存档分类
最新评论

linux-2.6.29 s3c6410 reboot实现

阅读更多
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.tar.bz2

    linux-2.6.29.tar.gz

    《Linux 2.6.29 内核详解与系统移植》 Linux 2.6.29 是 Linux 内核历史上的一个重要版本,它在2009年发布,为当时的开发者和嵌入式系统设计者提供了丰富的功能和改进。这个版本的内核对于学习 Linux 内核原理和进行...

    rt73-2.6.29-linux-driver

    标题“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 服务器的详细步骤 #### 环境准备与概述 本文档详细介绍了如何在基于 Linux 2.6.29 的 Mini2440 开发板上移植 Boa 服务器的过程。Boa 是一款轻量级的 Web 服务器,...

    goldfish-android-goldfish-2.6.29

    "goldfish-android-goldfish-2.6.29" 是一个特定版本的Android模拟器内核源代码包,基于Linux内核2.6.29。这个版本的Goldfish内核是Android开发环境中用于模拟Android设备硬件的一个关键组件。在Android应用开发和...

    linux-2.6.29在mini2440上的内存底层初始化学习笔记

    ### Linux-2.6.29在Mini2440上的内存底层初始化学习笔记 #### 一、基础知识 ##### 1.1 关于伙伴系统(Buddy System) 伙伴系统是Linux内核用来管理物理地址连续的内存页的一种机制。它的核心思想是基于2的幂次来...

    iproute2-2.6.29-1.tar.bz2

    iproute2 的2.6版本! 用于linux下的源码包

    libxml2-2.6.29.tar.gz

    `libxml2-2.6.29.tar.gz` 是一个针对Linux系统的开源库,主要用于处理XML(可扩展标记语言)文档。libxml2是Gnome项目的一部分,由Daniel Veillard领导的开发团队创建,它是XML解析、XPath处理、XInclude支持以及XML...

    linux-1.1.45.-linux-1.1.83

    索下载你所需要的版本号的内核源代码,有时候一个一个的上传太麻烦了,我做了压缩,不过我都写了版本号的范围,总体范围从linux-1.0.tar到linux-2.6.29.tar,推荐 朋友们用ultraedit去打开比较方便阅读,当然是自己...

    linux驱动头文件位置及作用

    3. **`***.h>`** - 存放在`linux-2.6.29/arch/arm/mach-s3c2410/include/mach`目录下,针对具体的硬件平台提供定制化的接口和定义。 4. **`***.h>`** - 如`<plat/regs-adc.h>`,这类文件通常位于架构相关的平台目录...

    linux-1.3.11---20

    索下载你所需要的版本号的内核源代码,有时候一个一个的上传太麻烦了,我做了压缩,不过我都写了版本号的范围,总体范围从linux-1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜欢...

    Linux中常见头文件的包含位置

    在 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.1.23.tar

    索下载你所需要的版本号的内核源代码范围从linux-1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜 欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!

    linux-2.1.23--26

    不过我都写了版本号的范围,总体范围从linux1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!

    linux-2.6.36内核源代码(1)

    linux-2.6.36内核源代码,用来测试,修改,编写驱动。

    micro2440之Linux驱动程序

    **位置**: `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/kernel/goldfish.git/refs/heads/android-goldfish-2.6.29" 暗示我们正在讨论Android操作系统内核的一个特定分支,即“android-goldfish-2.6.29”。这个分支是针对“goldfish”架构的,goldfish是...

    linux-2.2.0.tar

    不过我都写了版本号的范围,总体范围从linux1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!

    linux-1.1.29.tar

    索下载你所需要的版本号的内核源代码范围从linux-1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜 欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!

    linux-2.6.24(1)

    不过我都写了版本号的范围,总体范围从linux1.0.tar到linux-2.6.29.tar,推荐朋友们用ultraedit去打开比较方便阅读,当然是自己喜欢的阅读器就行了,也不一定用这个,不过这个阅读起来的确比较好用的!

Global site tag (gtag.js) - Google Analytics