diff --git a/protocol/payload_update.c b/protocol/payload_update.c index c68dc69..3d761f5 100644 --- a/protocol/payload_update.c +++ b/protocol/payload_update.c @@ -115,8 +115,8 @@ enum payload_update_err libhoth_payload_update(struct libhoth_device* dev, for (; offset + block_erase <= size; offset += block_erase) { const int ret = payload_update_erase(dev, offset, block_erase); if (ret != 0) { - fprintf(stderr, "block erase err: %d\n", ret); - return ret; + fprintf(stderr, "block erase offset 0x%zx err: %d\n", offset, ret); + return PAYLOAD_UPDATE_ERASE_FAIL; } erase_progress.progress.func(erase_progress.progress.param, offset, size); } @@ -125,8 +125,8 @@ enum payload_update_err libhoth_payload_update(struct libhoth_device* dev, for (; offset + sector_erase <= size; offset += sector_erase) { const int ret = payload_update_erase(dev, offset, sector_erase); if (ret != 0) { - fprintf(stderr, "sector erase err: %d\n", ret); - return ret; + fprintf(stderr, "sector erase offset 0x%zx err: %d\n", offset, ret); + return PAYLOAD_UPDATE_ERASE_FAIL; } erase_progress.progress.func(erase_progress.progress.param, offset, size); } diff --git a/protocol/payload_update.h b/protocol/payload_update.h index d6b37c0..4d1065f 100644 --- a/protocol/payload_update.h +++ b/protocol/payload_update.h @@ -57,6 +57,7 @@ enum payload_update_err { PAYLOAD_UPDATE_FINALIZE_FAIL, PAYLOAD_UPDATE_READ_FAIL, PAYLOAD_UPDATE_IMAGE_NOT_SECTOR_ALIGNED, + PAYLOAD_UPDATE_ERASE_FAIL, }; struct payload_update_packet { diff --git a/protocol/payload_update_test.cc b/protocol/payload_update_test.cc index 93bd479..07ca2ac 100644 --- a/protocol/payload_update_test.cc +++ b/protocol/payload_update_test.cc @@ -127,7 +127,7 @@ TEST_F(LibHothTest, payload_update_erase_fail) { std::memcpy(buffer, &kMagic, sizeof(kMagic)); EXPECT_EQ(libhoth_payload_update(&hoth_dev_, buffer, sizeof(buffer), false), - -1); + PAYLOAD_UPDATE_ERASE_FAIL); } TEST_F(LibHothTest, payload_update_flash_fail) {