# nsx reset

Explicitly reset a target with SEGGER J-Link

## Usage

```text
nsx reset [-h] --device DEVICE [--probe-serial PROBE_SERIAL]
                 [--kind {debug,swpoi}] [--interface INTERFACE]
                 [--speed-khz SPEED_KHZ] [--verify-reconnect]
                 [--timeout SECONDS]
```

## Options

| Option | Value | Default | Description |
| --- | --- | --- | --- |
| --device DEVICE | value | required | SEGGER J-Link target device name |
| --probe-serial PROBE_SERIAL | value | optional | Optional SEGGER J-Link USB serial number to use |
| --kind KIND | debug \| swpoi | debug | Reset primitive |
| --interface INTERFACE | value | SWD | Debug interface (default: SWD) |
| --speed-khz SPEED_KHZ | value | 4000 | Debug interface speed in kHz |
| --verify-reconnect | flag | optional | Reconnect after reset and fail if the target is unavailable |
| --timeout SECONDS | value | optional | Wall-clock budget per subprocess (seconds). Kills the whole process group on timeout. |

## Notes

Reset is a separate mechanism and is never added implicitly to an existing flash flow.

`--kind debug` issues the standard reset/go sequence. `--kind swpoi` writes `0x1B` to the
Ambiq RSTGEN address `0x40000004`, which resets the target immediately and may interrupt
J-Link's write. NSX accepts only the expected interrupted-write signature; unrelated
nonzero exits remain failures.

Use `--verify-reconnect` to require a separate successful J-Link connection after the
reset. Choosing reset policy, controlling power rails and managing measurement
synchronization remain responsibilities of the calling tool.

J-Link Commander uses the same discovery order as flashing and `nsx doctor`: the explicit
`JLINK_PATH` executable, `PATH`, then standard SEGGER install locations on Linux, macOS and
Windows.

`-v/--verbose`, `-q/--quiet` are parsed by `nsx` itself, so they go before the command name, as `nsx -v reset`.
