How do you do a software reset of the am355x (like on the BeagleBone Black)?
The PRM_RSTCTRL register has bits that let you directly reset the chip from software...



This register is located here...



So from Linux, for example, we can execute a cold reset by executing the devmem2 command like so...

devmem2 0x44e00f00 W 0x02


...and it will dutifully reset before the output line is finished printing!

NB: If you are thinking you can use this to pull down the NRESET_INOUT line in hopes of reseting the LAN chip to get around the Beaglebone's nasty PHY bug (I was), you will be sad. It does not work because the chip does not hold the line low long enough to discharge the capacitor that is also connected to that line near the button... :/


NBB: If you are thinking you can just extend the reset time using the PRM_RSTCTRL delay register, you will be double sad because the maximum time you can set there is 13 bits number of cycles, which is not nearly long enough... :/