diff --git a/arch/x86/cpu/tangier/acpi.c b/arch/x86/cpu/tangier/acpi.c
index 1187356..12f9289 100644
--- a/arch/x86/cpu/tangier/acpi.c
+++ b/arch/x86/cpu/tangier/acpi.c
@@ -109,11 +109,14 @@
 	return grp->length;
 }
 
-u32 acpi_fill_csrt(u32 current)
+int acpi_fill_csrt(struct acpi_ctx *ctx)
 {
-	current += acpi_fill_csrt_dma((struct acpi_csrt_group *)current);
+	int size;
+
+	size = acpi_fill_csrt_dma(ctx->current);
+	acpi_inc(ctx, size);
 
-	return current;
+	return 0;
 }
 
 int acpi_create_gnvs(struct acpi_global_nvs *gnvs)
diff --git a/arch/x86/include/asm/acpi_table.h b/arch/x86/include/asm/acpi_table.h
index fb60f85..0d07f7c 100644
--- a/arch/x86/include/asm/acpi_table.h
+++ b/arch/x86/include/asm/acpi_table.h
@@ -35,7 +35,6 @@
 int acpi_create_mcfg_mmconfig(struct acpi_mcfg_mmconfig *mmconfig, u32 base,
 			      u16 seg_nr, u8 start, u8 end);
 u32 acpi_fill_mcfg(u32 current);
-u32 acpi_fill_csrt(u32 current);
 
 /**
  * acpi_write_hpet() - Write out a HPET table
diff --git a/include/acpi/acpi_table.h b/include/acpi/acpi_table.h
index fcc9caa..e405012 100644
--- a/include/acpi/acpi_table.h
+++ b/include/acpi/acpi_table.h
@@ -696,6 +696,18 @@
  */
 void acpi_fill_header(struct acpi_table_header *header, char *signature);
 
+/**
+ * acpi_fill_csrt() - Fill out the body of the CSRT
+ *
+ * This should write the contents of the Core System Resource Table (CSRT)
+ * to the context. The header (struct acpi_table_header) has already been
+ * written.
+ *
+ * @ctx: ACPI context to write to
+ * @return 0 if OK, -ve on error
+ */
+int acpi_fill_csrt(struct acpi_ctx *ctx);
+
 #endif /* !__ACPI__*/
 
 #include <asm/acpi_table.h>
diff --git a/lib/acpi/csrt.c b/lib/acpi/csrt.c
index 7606931..2ba86f2 100644
--- a/lib/acpi/csrt.c
+++ b/lib/acpi/csrt.c
@@ -13,7 +13,7 @@
 #include <acpi/acpi_table.h>
 #include <dm/acpi.h>
 
-__weak u32 acpi_fill_csrt(u32 current)
+__weak int acpi_fill_csrt(struct acpi_ctx *ctx)
 {
 	return 0;
 }
@@ -22,7 +22,7 @@
 {
 	struct acpi_table_header *header;
 	struct acpi_csrt *csrt;
-	uint ptr;
+	int ret;
 
 	csrt = ctx->current;
 	header = &csrt->header;
@@ -31,19 +31,18 @@
 
 	/* Fill out header fields */
 	acpi_fill_header(header, "CSRT");
-	header->length = sizeof(struct acpi_csrt);
 	header->revision = 0;
+	acpi_inc(ctx, sizeof(*header));
 
-	ptr = acpi_fill_csrt(map_to_sysmem(csrt));
-	if (!ptr)
-		return log_msg_ret("fill", -ENOENT);
+	ret = acpi_fill_csrt(ctx);
+	if (ret)
+		return log_msg_ret("fill", ret);
 
 	/* (Re)calculate length and checksum */
 	header->length = (ulong)ctx->current - (ulong)csrt;
 	header->checksum = table_compute_checksum(csrt, header->length);
 
 	acpi_add_table(ctx, csrt);
-	acpi_inc(ctx, csrt->header.length);
 
 	return 0;
 }
