X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Ftarget%2Fmips32.c;h=27caebee19d7c2b5c9514aa9b4aa0d11c04924c2;hp=8c77986496fc4554586837fa3be23ad3fe4f1533;hb=eaacb900dd3ce5257dcfec35a8032a873d141b6a;hpb=b9ee6dd4655310c0553f4eef853213b11c1df28f;ds=sidebyside diff --git a/src/target/mips32.c b/src/target/mips32.c index 8c77986496..27caebee19 100644 --- a/src/target/mips32.c +++ b/src/target/mips32.c @@ -771,9 +771,9 @@ int mips32_checksum_memory(struct target *target, uint32_t address, return retval; } -/** Checks whether a memory region is zeroed. */ +/** Checks whether a memory region is erased. */ int mips32_blank_check_memory(struct target *target, - uint32_t address, uint32_t count, uint32_t *blank) + uint32_t address, uint32_t count, uint32_t *blank, uint8_t erased_value) { struct working_area *erase_check_algorithm; struct reg_param reg_params[3]; @@ -789,6 +789,12 @@ int mips32_blank_check_memory(struct target *target, 0x7000003F /* sdbbp */ }; + if (erased_value != 0xff) { + LOG_ERROR("Erase value 0x%02" PRIx8 " not yet supported for MIPS32", + erased_value); + return ERROR_FAIL; + } + /* make sure we have a working area */ if (target_alloc_working_area(target, sizeof(erase_check_code), &erase_check_algorithm) != ERROR_OK) return ERROR_TARGET_RESOURCE_NOT_AVAILABLE; @@ -810,7 +816,7 @@ int mips32_blank_check_memory(struct target *target, buf_set_u32(reg_params[1].value, 0, 32, count); init_reg_param(®_params[2], "r6", 32, PARAM_IN_OUT); - buf_set_u32(reg_params[2].value, 0, 32, 0xff); + buf_set_u32(reg_params[2].value, 0, 32, erased_value); int retval = target_run_algorithm(target, 0, NULL, 3, reg_params, erase_check_algorithm->address,