This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Triggering SW Reset on AM437x GP EVM

Hi,

I'd like to generate a SW reset on a AM437x EVM.  Reading the documentation, it seems like I can do this either by setting the PRM_RSTCTRL bit or by controlling the RESETIN_OUTn pin of the AM437.  Is there a way to do this from the command line.  I don't see anything that seems relevant to be able to control/export in the /sys filesystem for resets, but I'm probably looking in the wrong place.

Thanks!

Jeff

  • Hi,

    You can check this yourself by pulling the values of PRM_RSTST before and after executing reboot in your linux console.

    Here is the result on BBB, running SDK02.00.01.07, same will be valid for AM437X:

    1. Boot the board & read the value of PRCM_PRM_RSTST:

    root@am335x-evm:~# devmem2 0x44E00F08
    /dev/mem opened.
    Memory mapped at address 0xb6fda000.
    Read at address 0x44E00F08 (0xb6fdaf08): 0x00000001

    Default value indicates GLOBAL_COLD_RST because at least once in the life cycle of the device it has been cold reset.

    2. Execute reboot in the linux console & after the board reboots read the value of PRCM_PRM_RSTST again:

    am335x-evm login: root
    root@am335x-evm:~# devmem2 0x44E00F08
    /dev/mem opened.
    Memory mapped at address 0xb6fda000.
    Read at address 0x44E00F08 (0xb6fdaf08): 0x00000003
    Register indicates that GLOBAL_WARM_SW_RST has happened.

    So to answer your question, when you do a console reboot a GLOBAL_WARM_SW_RST happens.

    Note: Address for PRCM_PRM_RSTST on AM437x will be 0x44DF_0004, not 0x44E00F08.
  • Hi Biser,

    Thanks, but I was looking for a way to cause a reset... without going through a normal reboot sequence. In a certain situation, I'd like to do a fast reset and start booting immediately, without the need to send a TERM message to all processes and wait for shutdown.

    I was able to achieve what I needed with using a call to a system request trigger:

    echo s > /proc/sysrq-trigger; echo b > /proc/sysrq-trigger


    Thanks!