OK335xS can't reset with reboot

本文记录了解决AM335x芯片无法正常复位的问题过程。通过检查SYSBOOTConfigurationPins配置和相关硬件,最终确定了导致无法复位的原因并成功修复。
/***********************************************************************
 *                       OK335xS can't reset
 * 说明:
 *     最近OK335xS芯片无法reset,无论是watchdog、直接硬件reset、PMU断电
 * reset,都无法重启,但是正常的系统断电是可以重新进入系统,最后问题定
 * 位于系统在不断电情况下重启,SYSBOOT Configuration Pins配置上存在问题。
 *
 *                                     2016-4-8 深圳 南山平山村 曾剑锋
 **********************************************************************/

一. 参考文档:
    1. AM335X Watchdog Reset
        http://www.deyisupport.com.edgekey.net/question_answer/dsp_arm/sitara_arm/f/25/t/47590.aspx
    2. 关于am335x warm reset 和ROM code一个问题
        http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/65124.aspx
    3. The Chip don't Reset when pin PORz go LOW in Linux!
        http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/59743.aspx
    4. am335x w25Q256
        http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/69688.aspx
    5. AM335x: Reset the device with command for warmrstn
        https://e2e.ti.com/support/arm/sitara_arm/f/791/t/387231
    6. TPS65910x Integrated Power-Management Unit Top Specification
        http://www.ti.com/lit/ds/symlink/tps65910.pdf
    7. AM335x ARM Cortex-A8 Microprocessors (MPUs) Technical Reference Manual (Rev. H).pdf
        参考:26.1.5.2.1 SYSBOOT Configuration Pins
    8. 如何修改AM335x中的ROM code?
        http://www.deyisupport.com/question_answer/dsp_arm/sitara_arm/f/25/t/74633.aspx
    9. AM335x SYSBOOT[4:0] XIP(MUX2) Setting
        https://e2e.ti.com/support/arm/sitara_arm/f/791/t/345632

二. 现象:
    在linux命令行下执行reboot、reset按键、直接PMIC reset,系统会等5分钟之后才能reboot。

三. 解决思路:
    1. 执行reboot,watchdog是否引发了reset信号;
    2. 直接对PMU进行reset,因为PMU管理所有的电源,发现还是无法复位;
    3. 当reset PMU时,发现对应的输出电源有断开,说明PMU工作正常,并且reset了;
    4. am335x再重新上电之后没有动作,于是怀疑是SYSBOOT Configuration Pins电压不对;
    5. 对PMU reset时,同时检查SYSBOOT Configuration Pins引脚,发现电压不对;
    6. 移除连接在SYSBOOT Configuration Pins上的相关芯片,发现电压最低只能到达1.3V;
    7. 修改SYSBOOT Configuration Pins上拉电源来源,直接对PMU复位,am335x正常reset;
    8. 从上面现象判断问题是在SYSBOOT Configuration Pins硬件问题上;
    9. 硬件SYSBOOT[4:0]修改为00010b,一切正常,说明确实是SYSBOOT Configuration Pins配置问题;
    10. 尝试修改在SYSBOOT Configuration Pins为:
        SYSBOOT[4:0] = 10111b :
            1. NAND ;
            2. NANDI2C ;
            3. MMC0 ;
            4. UART0 .
        SYSBOOT[4:0] = 10011b : 
            1. MMC0 ;
            2. SPI0 ;
            3. UART0 ;
            4. USB0 .
    11. 这个时候好像所有的reset都行了,但是PWRONRSTn引脚上的reset还是不行;
    12. 经过调试最后发现是74LVCH162245芯片导致的问题,于是将其换成:74AVC161245;
    13. 到这里貌似问题就解决了。

四. 具体原因:
    1. 复位后,SYSBOOT Configuration Pins对应的电压决定了重启的device list;
    2. device list中没有nandflash,导致不能重启;
    3. 5分钟之后SYSBOOT Configuration Pins可能正常了,或者什么原因,导致的device list中有了nandflash,所以正常了。
    4. 等5分钟,其实是因为启动列表中有了EMAC1,这个会等待很长时间。

五. 建议:
    就个人感觉来说,其实在硬件调试阶段,可以考虑将SYSBOOT[4:0]配置如下,因为你可以看到几个"CCCCCCCC",这样就可以知道怎么内部的ROM code是否正常运行了。
        SYSBOOT[4:0] = 00100b 
            1. UART0 ;
            2. XIP ;
            3. MMC0 ; 
            4. NAND .

 

转载于:https://www.cnblogs.com/zengjfgit/p/5367448.html

<think>好的,我现在需要回答用户关于Linux系统中何时使用resetreboot命令的问题。首先,我得先理解这两个命令的区别以及它们的适用场景。 用户提到的是resetreboot,可能对这两个命令的用途不太清楚。我记得reboot是用来重启系统的,而reset可能和终端有关。首先,我应该确认这两个命令的具体功能。 首先,reboot命令用于重新启动系统,这会关闭所有正在运行的程序和服务,然后重新启动操作系统。通常在系统需要完全重启时使用,比如安装新内核或硬件更改后。 然后,reset命令,我记得在终端中使用时,它用于重置终端的状态。比如,当终端显示混乱或者出现乱码时,运行reset可以清除终端屏幕并恢复正常显示。可能用户误以为reset是系统级别的重启,但实际上它只是针对终端会话的。 接下来,我需要考虑用户可能的混淆点。比如,当系统无响应时,用户可能尝试用reset来重启系统,但实际上应该用reboot或者其他方式(如shutdown -r now)。或者,当终端出现问题时,使用reset来修复终端显示。 此外,还要注意权限的问题。reboot通常需要root权限,而普通用户可能需要使用sudo来执行。而reset则不需要特殊权限,因为它只影响当前终端会话。 还需要考虑特殊情况,比如系统崩溃无法响应命令时,可能需要通过物理方式重启,比如按下电源按钮。这时候resetreboot都无效了。 可能还需要提到其他相关命令,比如shutdown -r now,它和reboot类似,但可以安排延迟重启。而init 6或者systemctl reboot也是重启系统的方法。 总结一下,用户的问题是要区分resetreboot的使用场景。关键点在于reset是终端级别的重置,而reboot是系统级别的重启。需要明确两者的不同,避免混淆导致误操作。 另外,可能需要给出示例,比如当终端显示异常时使用reset,或者在需要重启系统时使用sudo reboot。同时提醒用户谨慎使用reboot,因为会导致服务中断。 检查是否有其他需要注意的地方,比如不同Linux发行版中这两个命令是否存在差异,但一般来说它们的用途是标准化的。可能某些情况下reset可能有其他用途,但大多数情况下是终端重置。 最后,确保回答结构清晰,分点说明两者的用途,并给出使用场景和示例,帮助用户理解何时选择哪个命令。</think>在Linux系统中,`reset`和`reboot`是两个功能完全不同的命令,其使用场景如下: --- ### **1. `reset`命令** - **功能**: `reset`主要用于**重置终端会话**。当终端显示异常(如乱码、光标错位或颜色异常)时,它会清除屏幕并恢复终端的默认配置。 - **适用场景**: - 终端输入/输出显示混乱(例如二进制数据输出破坏了终端状态)。 - 终端响应异常,无法正常输入命令。 - 需要快速清空当前终端屏幕(类似于`clear`,但更彻底)。 - **示例**: ```bash $ reset # 执行后终端会恢复默认状态 ``` - **注意**: `reset`仅影响当前终端会话,不会对系统运行状态或后台进程造成任何影响。 --- ### **2. `reboot`命令** - **功能**: `reboot`用于**重启整个操作系统**。它会关闭所有正在运行的程序和服务,执行系统清理,并重新加载内核。 - **适用场景**: - 系统内核更新后需要加载新内核。 - 硬件驱动变更或系统配置修改需重启生效。 - 系统出现严重问题(如进程死锁、资源耗尽)且无法通过其他方式恢复。 - **示例**: ```bash $ sudo reboot # 需要root权限,立即重启系统 ``` - **注意**: - `reboot`会中断所有用户进程和服务,需谨慎使用。 - 其他等效命令包括:`shutdown -r now`、`init 6`、`systemctl reboot`。 --- ### **3. 关键区别总结** | 命令 | 作用范围 | 权限需求 | 风险等级 | |----------|---------------|--------------|-------------| | `reset` | 当前终端 | 普通用户 | 低(仅终端)| | `reboot` | 整个操作系统 | 需root权限 | 高(影响系统)| --- ### **4. 扩展建议** - **终端问题**:优先尝试`reset`或`clear`,若无效可关闭终端窗口重新打开。 - **系统问题**: - 若系统无响应,可尝试通过`Alt + SysRq + REISUB`组合键安全重启(需启用`Magic SysRq`)。 - 避免直接断电,可能损坏文件系统。 通过合理选择命令,可避免因误操作导致的服务中断或数据丢失。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值