diff --git a/minichlink/minichlink.c b/minichlink/minichlink.c index 9ee525d05834b0bf3d14dfdc708b02393fc6c003..3c610a48db6f2952b8e646e79fabc6eb790d0d89 100644 --- a/minichlink/minichlink.c +++ b/minichlink/minichlink.c @@ -600,8 +600,14 @@ keep_going: exit( -9 ); } + int is_flash = IsAddressFlash( offset ); - if( MCF.HaltMode ) MCF.HaltMode( dev, is_flash ? HALT_MODE_HALT_AND_RESET : HALT_MODE_HALT_BUT_NO_RESET ); + //if( MCF.HaltMode ) MCF.HaltMode( dev, is_flash ? HALT_MODE_HALT_AND_RESET : HALT_MODE_HALT_BUT_NO_RESET ); + if( MCF.HaltMode && is_flash ) + { + if ( offset == 0x1ffff000 ) MCF.HaltMode( dev, HALT_MODE_HALT_BUT_NO_RESET ); // do not reset if writing bootloader, even if it is considered flash memory + else MCF.HaltMode( dev, HALT_MODE_HALT_AND_RESET ); + } if( MCF.WriteBinaryBlob ) {