• OK335xS can't reset with reboot


    /***********************************************************************
     *                       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 .
  • 相关阅读:
    linux下shell显示-bash-4.1#不显示路径解决方法
    update chnroute
    An error "Host key verification failed" when you connect to other computer by OSX SSH
    使用dig查询dns解析
    DNS被污染后
    TunnelBroker for EdgeRouter 后记
    mdadm详细使用手册
    关于尼康黄的原因
    Panda3d code in github
    Python实例浅谈之三Python与C/C++相互调用
  • 原文地址:https://www.cnblogs.com/zengjfgit/p/5367448.html
Copyright © 2020-2023  润新知