diff --git a/lib/acpi/acpi_table.c b/lib/acpi/acpi_table.c
index c0ed249..b5495d4 100644
--- a/lib/acpi/acpi_table.c
+++ b/lib/acpi/acpi_table.c
@@ -195,9 +195,7 @@
 					(sizeof(u32) * (i + 1));
 
 		/* Re-calculate checksum */
-		rsdt->header.checksum = 0;
-		rsdt->header.checksum = table_compute_checksum((u8 *)rsdt,
-							       rsdt->header.length);
+		acpi_update_checksum(&rsdt->header);
 	}
 
 	if (ctx->xsdt) {
@@ -228,9 +226,7 @@
 					(sizeof(u64) * (i + 1));
 
 		/* Re-calculate checksum */
-		xsdt->header.checksum = 0;
-		xsdt->header.checksum = table_compute_checksum((u8 *)xsdt,
-							       xsdt->header.length);
+		acpi_update_checksum(&xsdt->header);
 	}
 
 	return 0;
@@ -268,7 +264,7 @@
 
 	acpi_fill_fadt(fadt);
 
-	header->checksum = table_compute_checksum(fadt, header->length);
+	acpi_update_checksum(header);
 
 	return acpi_add_fadt(ctx, fadt);
 }
@@ -303,7 +299,7 @@
 	if (IS_ENABLED(CONFIG_ACPI_PARKING_PROTOCOL))
 		acpi_write_park(madt);
 
-	header->checksum = table_compute_checksum((void *)madt, header->length);
+	acpi_update_checksum(header);
 	acpi_add_table(ctx, madt);
 	ctx->current = (void *)madt + madt->header.length;
 
@@ -374,7 +370,7 @@
 	/* Update structure lengths and checksum */
 	device->length = current - (uintptr_t)device;
 	header->length = current - (uintptr_t)dbg2;
-	header->checksum = table_compute_checksum(dbg2, header->length);
+	acpi_update_checksum(header);
 }
 
 int acpi_write_dbg2_pci_uart(struct acpi_ctx *ctx, struct udevice *dev,
@@ -549,7 +545,7 @@
 		spcr->baud_rate = 0;
 
 	/* Fix checksum */
-	header->checksum = table_compute_checksum((void *)spcr, header->length);
+	acpi_update_checksum(header);
 
 	acpi_add_table(ctx, spcr);
 	acpi_inc(ctx, spcr->header.length);
@@ -759,7 +755,7 @@
 
 	/* (Re)calculate length and checksum */
 	iort->header.length = ctx->current - (void *)iort;
-	iort->header.checksum = table_compute_checksum((void *)iort, iort->header.length);
+	acpi_update_checksum(&iort->header);
 	log_debug("IORT at %p, length %x\n", iort, iort->header.length);
 
 	/* Drop the table if it is empty */
diff --git a/lib/acpi/base.c b/lib/acpi/base.c
index 8b6af2b..5c755b1 100644
--- a/lib/acpi/base.c
+++ b/lib/acpi/base.c
@@ -50,8 +50,7 @@
 	/* Entries are filled in later, we come with an empty set */
 
 	/* Fix checksum */
-	header->checksum = table_compute_checksum(rsdt,
-						  sizeof(struct acpi_rsdt));
+	acpi_update_checksum(header);
 }
 
 static void acpi_write_xsdt(struct acpi_xsdt *xsdt)
@@ -66,8 +65,7 @@
 	/* Entries are filled in later, we come with an empty set */
 
 	/* Fix checksum */
-	header->checksum = table_compute_checksum(xsdt,
-						  sizeof(struct acpi_xsdt));
+	acpi_update_checksum(header);
 }
 
 static int acpi_write_base(struct acpi_ctx *ctx,
diff --git a/lib/acpi/csrt.c b/lib/acpi/csrt.c
index 00927e5..b863c64 100644
--- a/lib/acpi/csrt.c
+++ b/lib/acpi/csrt.c
@@ -40,7 +40,7 @@
 
 	/* (Re)calculate length and checksum */
 	header->length = (ulong)ctx->current - (ulong)csrt;
-	header->checksum = table_compute_checksum(csrt, header->length);
+	acpi_update_checksum(header);
 
 	acpi_add_table(ctx, csrt);
 
diff --git a/lib/acpi/mcfg.c b/lib/acpi/mcfg.c
index 8b8a5bf..e21fe7c 100644
--- a/lib/acpi/mcfg.c
+++ b/lib/acpi/mcfg.c
@@ -57,7 +57,7 @@
 
 	/* (Re)calculate length and checksum */
 	header->length = (ulong)ctx->current - (ulong)mcfg;
-	header->checksum = table_compute_checksum(mcfg, header->length);
+	acpi_update_checksum(header);
 
 	acpi_add_table(ctx, mcfg);
 
diff --git a/lib/acpi/ssdt.c b/lib/acpi/ssdt.c
index df1d739..41e2d3c 100644
--- a/lib/acpi/ssdt.c
+++ b/lib/acpi/ssdt.c
@@ -35,7 +35,7 @@
 
 	/* (Re)calculate length and checksum */
 	ssdt->length = ctx->current - (void *)ssdt;
-	ssdt->checksum = table_compute_checksum((void *)ssdt, ssdt->length);
+	acpi_update_checksum(ssdt);
 	log_debug("SSDT at %p, length %x\n", ssdt, ssdt->length);
 
 	/* Drop the table if it is empty */
