diff --git a/tools/firmware-utils/src/mkzcfw.c b/tools/firmware-utils/src/mkzcfw.c
index d438f0373965c1be025863cb67e6000e158c96e2..7674e706c99b2c6c6f21ea2efb94d6d84fc7d93f 100644
--- a/tools/firmware-utils/src/mkzcfw.c
+++ b/tools/firmware-utils/src/mkzcfw.c
@@ -297,7 +297,7 @@ static int build_fw(void)
 	/* fill firmware header */
 	hdr = (struct fw_header *) p;
 	hdr->magic = HOST_TO_LE32(MAGIC_FIRMWARE);
-	hdr->length = HOST_TO_LE32(buflen) - sizeof(struct fw_header);
+	hdr->length = HOST_TO_LE32(buflen - sizeof(struct fw_header));
 	p += sizeof(struct fw_header);
 
 	/* fill kernel block header */