diff --git a/arch/x86/lib/acpi_nhlt.c b/arch/x86/lib/acpi_nhlt.c
index 8aae5fa5af7..00b313b0703 100644
--- a/arch/x86/lib/acpi_nhlt.c
+++ b/arch/x86/lib/acpi_nhlt.c
@@ -408,7 +408,7 @@ int nhlt_serialise_oem_overrides(struct acpi_ctx *ctx, struct nhlt *nhlt,
 		memcpy(header->oem_table_id, oem_table_id, oem_table_id_len);
 	}
 	header->oem_revision = oem_revision;
-	memcpy(header->creator_id, ASLC_ID, 4);
+	memcpy(header->creator_id, ACPI_CREATOR, 4);
 
 	cur.buf = (void *)(header + 1);
 	cur.start = (void *)header;
diff --git a/arch/x86/lib/acpi_table.c b/arch/x86/lib/acpi_table.c
index b13292c4150..8663f97457e 100644
--- a/arch/x86/lib/acpi_table.c
+++ b/arch/x86/lib/acpi_table.c
@@ -224,7 +224,7 @@ static int acpi_write_tpm2(struct acpi_ctx *ctx,
 
 	/* Fill out header fields. */
 	acpi_fill_header(header, "TPM2");
-	memcpy(header->creator_id, ASLC_ID, 4);
+	memcpy(header->creator_id, ACPI_CREATOR, 4);
 
 	header->length = sizeof(struct acpi_tpm2);
 	header->revision = acpi_get_table_revision(ACPITAB_TPM2);
diff --git a/include/acpi/acpi_table.h b/include/acpi/acpi_table.h
index 850cb8db816..f2bd758599f 100644
--- a/include/acpi/acpi_table.h
+++ b/include/acpi/acpi_table.h
@@ -18,10 +18,7 @@
 #define RSDP_SIG		"RSD PTR "	/* RSDP pointer signature */
 #define OEM_ID			"U-BOOT"	/* U-Boot */
 #define OEM_TABLE_ID		"U-BOOTBL"	/* U-Boot Table */
-#define ASLC_ID			"INTL"		/* Intel ASL Compiler */
-
-/* TODO(sjg@chromium.org): Figure out how to get compiler revision */
-#define ASL_REVISION	0
+#define ACPI_CREATOR		"UBOO"		/* U-Boot */
 
 #define ACPI_RSDP_REV_ACPI_1_0	0
 #define ACPI_RSDP_REV_ACPI_2_0	2
diff --git a/lib/acpi/acpi.c b/lib/acpi/acpi.c
index 698d17a02e8..3e0360ab9fe 100644
--- a/lib/acpi/acpi.c
+++ b/lib/acpi/acpi.c
@@ -10,6 +10,7 @@
 #include <errno.h>
 #include <mapmem.h>
 #include <tables_csum.h>
+#include <version.h>
 #include <version_string.h>
 #include <acpi/acpi_table.h>
 #include <asm/global_data.h>
@@ -174,8 +175,9 @@ void acpi_fill_header(struct acpi_table_header *header, char *signature)
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, OEM_TABLE_ID, 8);
 	header->oem_revision = OEM_REVISION;
-	memcpy(header->creator_id, ASLC_ID, 4);
-	header->creator_revision = ASL_REVISION;
+	memcpy(header->creator_id, ACPI_CREATOR, 4);
+	header->creator_revision = (U_BOOT_VERSION_NUM << 16) |
+			 (U_BOOT_VERSION_NUM_PATCH << 8);
 }
 
 void acpi_align(struct acpi_ctx *ctx)
diff --git a/lib/acpi/acpi_table.c b/lib/acpi/acpi_table.c
index f2dadd792bd..2589efbb5f2 100644
--- a/lib/acpi/acpi_table.c
+++ b/lib/acpi/acpi_table.c
@@ -126,7 +126,7 @@ int acpi_write_fadt(struct acpi_ctx *ctx, const struct acpi_writer *entry)
 	header->revision = acpi_get_table_revision(ACPITAB_FADT);
 	memcpy(header->oem_id, OEM_ID, 6);
 	memcpy(header->oem_table_id, OEM_TABLE_ID, 8);
-	memcpy(header->creator_id, ASLC_ID, 4);
+	memcpy(header->creator_id, ACPI_CREATOR, 4);
 	header->creator_revision = 1;
 	fadt->minor_revision = 2;
 
diff --git a/test/dm/acpi.c b/test/dm/acpi.c
index a274671de02..d1be6707693 100644
--- a/test/dm/acpi.c
+++ b/test/dm/acpi.c
@@ -13,6 +13,7 @@
 #include <malloc.h>
 #include <mapmem.h>
 #include <tables_csum.h>
+#include <version.h>
 #include <version_string.h>
 #include <acpi/acpigen.h>
 #include <acpi/acpi_device.h>
@@ -25,6 +26,9 @@
 
 #define BUF_SIZE		4096
 
+#define CREATOR_REVISION	((U_BOOT_VERSION_NUM << 16) | \
+				 (U_BOOT_VERSION_NUM_PATCH << 8))
+
 #define OEM_REVISION ((((version_num / 1000) % 10) << 28) | \
 		      (((version_num / 100) % 10) << 24) | \
 		      (((version_num / 10) % 10) << 20) | \
@@ -263,8 +267,8 @@ static int dm_test_acpi_fill_header(struct unit_test_state *uts)
 	ut_asserteq_mem(OEM_TABLE_ID, hdr.oem_table_id,
 			sizeof(hdr.oem_table_id));
 	ut_asserteq(OEM_REVISION, hdr.oem_revision);
-	ut_asserteq_mem(ASLC_ID, hdr.creator_id, sizeof(hdr.creator_id));
-	ut_asserteq(ASL_REVISION, hdr.creator_revision);
+	ut_asserteq_mem(ACPI_CREATOR, hdr.creator_id, sizeof(hdr.creator_id));
+	ut_asserteq(CREATOR_REVISION, hdr.creator_revision);
 
 	return 0;
 }
@@ -417,22 +421,27 @@ static int dm_test_acpi_cmd_list(struct unit_test_state *uts)
 	ut_assert_nextline("RSDP  %16lx  %5zx  v02 U-BOOT", addr,
 			   sizeof(struct acpi_rsdp));
 	addr = ALIGN(addr + sizeof(struct acpi_rsdp), 16);
-	ut_assert_nextline("RSDT  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0",
+	ut_assert_nextline("RSDT  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x",
 			   addr, sizeof(struct acpi_table_header) +
-			   3 * sizeof(u32), OEM_REVISION);
+			   3 * sizeof(u32), OEM_REVISION,
+			   CREATOR_REVISION);
 	addr = ALIGN(addr + sizeof(struct acpi_rsdt), 16);
-	ut_assert_nextline("XSDT  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0",
+	ut_assert_nextline("XSDT  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x",
 			   addr, sizeof(struct acpi_table_header) +
-			   3 * sizeof(u64), OEM_REVISION);
+			   3 * sizeof(u64), OEM_REVISION,
+			   CREATOR_REVISION);
 	addr = ALIGN(addr + sizeof(struct acpi_xsdt), 64);
-	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0",
-			   addr, sizeof(struct acpi_dmar), OEM_REVISION);
+	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x",
+			   addr, sizeof(struct acpi_dmar), OEM_REVISION,
+			   CREATOR_REVISION);
 	addr = ALIGN(addr + sizeof(struct acpi_dmar), 16);
-	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0",
-			   addr, sizeof(struct acpi_dmar), OEM_REVISION);
+	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x",
+			   addr, sizeof(struct acpi_dmar), OEM_REVISION,
+			   CREATOR_REVISION);
 	addr = ALIGN(addr + sizeof(struct acpi_dmar), 16);
-	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0",
-			   addr, sizeof(struct acpi_dmar), OEM_REVISION);
+	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x",
+			   addr, sizeof(struct acpi_dmar), OEM_REVISION,
+			   CREATOR_REVISION);
 	ut_assert_console_end();
 	unmap_sysmem(buf);
 	free(buf);
@@ -461,22 +470,27 @@ static int dm_test_acpi_cmd_list_chksum(struct unit_test_state *uts)
 	ut_assert_nextline("RSDP  %16lx  %5zx  v02 U-BOOT  OK  OK", addr,
 			   sizeof(struct acpi_rsdp));
 	addr = ALIGN(addr + sizeof(struct acpi_rsdp), 16);
-	ut_assert_nextline("RSDT  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0  OK",
+	ut_assert_nextline("RSDT  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x  OK",
 			   addr, sizeof(struct acpi_table_header) +
-			   3 * sizeof(u32), OEM_REVISION);
+			   3 * sizeof(u32), OEM_REVISION,
+			   CREATOR_REVISION);
 	addr = ALIGN(addr + sizeof(struct acpi_rsdt), 16);
-	ut_assert_nextline("XSDT  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0  OK",
+	ut_assert_nextline("XSDT  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x  OK",
 			   addr, sizeof(struct acpi_table_header) +
-			   3 * sizeof(u64), OEM_REVISION);
+			   3 * sizeof(u64), OEM_REVISION,
+			   CREATOR_REVISION);
 	addr = ALIGN(addr + sizeof(struct acpi_xsdt), 64);
-	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0  OK",
-			   addr, sizeof(struct acpi_dmar), OEM_REVISION);
+	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x  OK",
+			   addr, sizeof(struct acpi_dmar), OEM_REVISION,
+			   CREATOR_REVISION);
 	addr = ALIGN(addr + sizeof(struct acpi_dmar), 16);
-	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0  OK",
-			   addr, sizeof(struct acpi_dmar), OEM_REVISION);
+	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x  OK",
+			   addr, sizeof(struct acpi_dmar), OEM_REVISION,
+			   CREATOR_REVISION);
 	addr = ALIGN(addr + sizeof(struct acpi_dmar), 16);
-	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x INTL 0  OK",
-			   addr, sizeof(struct acpi_dmar), OEM_REVISION);
+	ut_assert_nextline("DMAR  %16lx  %5zx  v01 U-BOOT U-BOOTBL %x UBOO %x  OK",
+			   addr, sizeof(struct acpi_dmar), OEM_REVISION,
+			   CREATOR_REVISION);
 	ut_assert_console_end();
 	ut_assert_console_end();
 	unmap_sysmem(buf);
