diff --git a/board/freescale/imx8mq_evk/zircon.c b/board/freescale/imx8mq_evk/zircon.c
index 525944a..b1fb5f0 100644
--- a/board/freescale/imx8mq_evk/zircon.c
+++ b/board/freescale/imx8mq_evk/zircon.c
@@ -7,7 +7,7 @@
 #define PDEV_VID_NXP                9
 #define PDEV_PID_IMX8MEVK           1
 
-const char* BOOTLOADER_VERSION = "zircon-bootloader=0.04";
+const char* BOOTLOADER_VERSION = "zircon-bootloader=0.05";
 
 static const zbi_cpu_config_t cpu_config = {
     .cluster_count = 1,
diff --git a/common/image-zircon.c b/common/image-zircon.c
index eb8cdb8..8b11b7b 100644
--- a/common/image-zircon.c
+++ b/common/image-zircon.c
@@ -31,15 +31,11 @@
 int zircon_image_check_header(const void *hdr)
 {
 	const zbi_header_t* zbi = hdr;
-printf("zircon_image_check_header zbi[0].type %08x zbi[0].extra %08x zbi[0].magic %08x zbi[1].type %08x\n",
-        zbi[0].type, zbi[0].extra, zbi[0].magic, zbi[1].type);
 
 	return (zbi[0].type == ZBI_TYPE_CONTAINER &&
 			zbi[0].extra == ZBI_CONTAINER_MAGIC &&
 			zbi[0].magic == ZBI_ITEM_MAGIC &&
-			ZBI_IS_KERNEL_BOOTITEM(zbi[1].type) &&  // TODO: change this to comparison with
-			                                        // ZBI_TYPE_KERNEL_ARM64 after zircon kernel
-			                                        // is switched over
+			zbi[1].type == ZBI_TYPE_KERNEL_ARM64 &&
 			zbi[1].magic == ZBI_ITEM_MAGIC) ? 0 : -1;
 }
 
diff --git a/include/zircon/image.h b/include/zircon/image.h
index 48ed84b..b204c38 100644
--- a/include/zircon/image.h
+++ b/include/zircon/image.h
@@ -32,7 +32,11 @@
 // make a complete ZBI.
 
 // All items begin at an 8-byte aligned offset into the image.
+#ifdef __ASSEMBLER__
 #define ZBI_ALIGNMENT           (8)
+#else
+#define ZBI_ALIGNMENT           (8u)
+#endif
 
 // Round n up to the next 8 byte boundary
 #define ZBI_ALIGN(n)            (((n) + ZBI_ALIGNMENT - 1) & -ZBI_ALIGNMENT)
@@ -88,6 +92,31 @@
 } zbi_header_t;
 #endif
 
+// Be sure to add new types to ZBI_ALL_TYPES.
+#define ZBI_ALL_TYPES(macro) \
+    macro(ZBI_TYPE_CONTAINER, "CONTAINER", ".bin") \
+    macro(ZBI_TYPE_KERNEL_X64, "KERNEL_X64", ".bin") \
+    macro(ZBI_TYPE_KERNEL_ARM64, "KERNEL_ARM64", ".bin") \
+    macro(ZBI_TYPE_DISCARD, "DISCARD", ".bin") \
+    macro(ZBI_TYPE_STORAGE_RAMDISK, "RAMDISK", ".bin") \
+    macro(ZBI_TYPE_STORAGE_BOOTFS, "BOOTFS", ".bin") \
+    macro(ZBI_TYPE_CMDLINE, "CMDLINE", ".txt") \
+    macro(ZBI_TYPE_CRASHLOG, "CRASHLOG", ".bin") \
+    macro(ZBI_TYPE_NVRAM, "NVRAM", ".bin") \
+    macro(ZBI_TYPE_PLATFORM_ID, "PLATFORM_ID", ".bin") \
+    macro(ZBI_TYPE_CPU_CONFIG, "CPU_CONFIG", ".bin") \
+    macro(ZBI_TYPE_MEM_CONFIG, "MEM_CONFIG", ".bin") \
+    macro(ZBI_TYPE_KERNEL_DRIVER, "KERNEL_DRIVER", ".bin") \
+    macro(ZBI_TYPE_ACPI_RSDP, "ACPI_RSDP", ".bin") \
+    macro(ZBI_TYPE_SMBIOS, "SMBIOS", ".bin") \
+    macro(ZBI_TYPE_EFI_MEMORY_MAP, "EFI_MEMORY_MAP", ".bin") \
+    macro(ZBI_TYPE_EFI_SYSTEM_TABLE, "EFI_SYSTEM_TABLE", ".bin") \
+    macro(ZBI_TYPE_E820_TABLE, "E820_TABLE", ".bin") \
+    macro(ZBI_TYPE_DEBUG_UART, "DEBUG_UART", ".bin") \
+    macro(ZBI_TYPE_FRAMEBUFFER, "FRAMEBUFFER", ".bin") \
+    macro(ZBI_TYPE_DRV_MAC_ADDRESS, "DRV_MAC_ADDRESS", ".bin") \
+    macro(ZBI_TYPE_DRV_PARTITION_MAP, "DRV_PARTITION_MAP", ".bin")
+
 // Each ZBI starts with a container header.
 //     length:          Total size of the image after this header.
 //                      This includes all item headers, payloads, and padding.
@@ -130,18 +159,14 @@
 // loader to describe the machine.  The precise protocol for transferring
 // control to the kernel's entry point varies by machine.
 //
-// TODO(mcgrathr): On all machines, the kernel requires some amount of
-// scratch memory to be available immediately after the kernel image at
-// boot.  It needs this space for early setup work before it has a chance
-// to read any memory-map information from the boot loader.  Currently, the
-// kernel simply assumes that enough space is available and clobbers some
-// memory after its load image.  (In zircon-image.elf, the IMAGE_RESERVE_END
-// symbol indicates the end of the address range that will be clobbered.)
-// If the boot loader happened to place its constructed ZBI or other reserved
-// areas immediately after the kernel image, things would go badly.
-// We should amend the protocol with the boot loader so that it knows how
-// much space to reserve after the kernel image.  Either zbi_header_t.extra
-// or zbi_kernel_t.reserved could be repurposed for this.
+// On all machines, the kernel requires some amount of scratch memory to be
+// available immediately after the kernel image at boot.  It needs this
+// space for early setup work before it has a chance to read any memory-map
+// information from the boot loader.  The `reserve_memory_size` field tells
+// the boot loader how much space after the kernel's load image it must
+// leave available for the kernel's use.  The boot loader must place its
+// constructed ZBI or other reserved areas at least this many bytes after
+// the kernel image.
 //
 // x86-64
 //
@@ -178,8 +203,9 @@
 typedef struct {
     // Entry-point address.  The interpretation of this differs by machine.
     uint64_t entry;
-    // Reserved for future use.
-    uint64_t reserved;
+    // Minimum amount (in bytes) of scratch memory that the kernel requires
+    // immediately after its load image.
+    uint64_t reserve_memory_size;
 } zbi_kernel_t;
 
 // The whole contiguous image loaded into memory by the boot loader.
@@ -392,6 +418,14 @@
 // E820 memory table, an array of e820entry_t.
 #define ZBI_TYPE_E820_TABLE             (0x30323845) // E820
 
+/* EFI Variable for Crash Log */
+#define ZIRCON_VENDOR_GUID \
+    {0x82305eb2, 0xd39e, 0x4575, {0xa0, 0xc8, 0x6c, 0x20, 0x72, 0xd0, 0x84, 0x4c}}
+#define ZIRCON_CRASHLOG_EFIVAR \
+    { 'c', 'r', 'a', 's', 'h', 'l', 'o', 'g', 0 };
+#define ZIRCON_CRASHLOG_EFIATTR \
+    (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | EFI_VARIABLE_RUNTIME_ACCESS)
+
 // Debug serial port, a zbi_uart_t entry.
 #define ZBI_TYPE_DEBUG_UART             (0x54524155) // UART
 #ifndef __ASSEMBLER__
