amdfwtool: Only update count in header in only one function

Other function calls don't have to worry about the fletcher error.

TEST=Binary identical test on all AMD SOC platform

Change-Id: I7c9d653100b476b52d6d1d80c41d0c3d765f7be3
Signed-off-by: Zheng Bao <fishbaozi@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/81372
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Felix Held <felix-coreboot@felixheld.de>
diff --git a/util/amdfwtool/amdfwtool.c b/util/amdfwtool/amdfwtool.c
index 00a366c..ebadb91 100644
--- a/util/amdfwtool/amdfwtool.c
+++ b/util/amdfwtool/amdfwtool.c
@@ -877,7 +877,7 @@
 	}
 
 	count++;
-	pspdir->header.num_entries = count;
+	fill_dir_header(pspdir, count, ctx);
 	ctx->current_table = current_table_save;
 }
 
@@ -903,7 +903,6 @@
 			if (pspdir2_b != NULL)
 				ctx->ish_b_dir = new_ish_dir(ctx);
 		}
-		pspdir->header.num_entries = count;
 		integrate_psp_ab(ctx, pspdir, pspdir2, ctx->ish_a_dir,
 			AMD_FW_RECOVERYAB_A, cb_config->soc_id);
 		if (pspdir2_b != NULL)
@@ -915,7 +914,6 @@
 				use_only_a ? AMD_FW_RECOVERYAB_A : AMD_FW_RECOVERYAB_B,
 				cb_config->soc_id);
 
-		count = pspdir->header.num_entries;
 	} else if (pspdir2 != NULL) {
 		assert_fw_entry(count, MAX_PSP_ENTRIES, ctx);
 		pspdir->entries[count].type = AMD_FW_L2_PTR;
@@ -930,8 +928,8 @@
 		pspdir->entries[count].address_mode =
 				SET_ADDR_MODE(pspdir, AMD_ADDR_REL_BIOS);
 		count++;
+		fill_dir_header(pspdir, count, ctx);
 	}
-	fill_dir_header(pspdir, count, ctx);
 	ctx->current_table = current_table_save;
 }