diff options
-rw-r--r-- | utils/bcmregtool/main.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/utils/bcmregtool/main.cpp b/utils/bcmregtool/main.cpp index 0d9181e..7a24c91 100644 --- a/utils/bcmregtool/main.cpp +++ b/utils/bcmregtool/main.cpp @@ -401,6 +401,12 @@ int main(int argc, char const *argv[]) .metavar("APE_FILE") .help("File to boot on the APE."); + parser.add_option("--apehalt") + .dest("apehalt") + .set_default("0") + .action("store_true") + .help("Halt the APE."); + parser.add_option("-n", "--network") .dest("network") .set_default("0") @@ -705,6 +711,17 @@ int main(int argc, char const *argv[]) exit(0); } + if(options.get("apehalt")) + { + // Halt + RegAPEMode_t mode; + mode.r32 = 0; + mode.bits.Halt = 1; + mode.bits.FastBoot = 0; + APE.Mode = mode; + + exit(0); + } if(options.get("reset")) { @@ -813,6 +830,11 @@ int main(int argc, char const *argv[]) NVRam_releaseAllLocks(); APE_releaseAllLocks(); + // Ensure we don't have bitbang mode enabled. + NVRam_acquireLock(); + NVM.NvmCfg1.bits.BitbangMode = 0; + NVRam_releaseLock(); + exit(0); } if(options.get("nvm")) |