diff --git a/mboxd_pnor_partition_table.cpp b/mboxd_pnor_partition_table.cpp
index 2464e6c..d2fdba3 100644
--- a/mboxd_pnor_partition_table.cpp
+++ b/mboxd_pnor_partition_table.cpp
@@ -1,5 +1,7 @@
 #include "mboxd_pnor_partition_table.h"
+#include "common.h"
 #include "mbox.h"
+#include "mboxd_flash.h"
 #include "pnor_partition_table.hpp"
 #include <experimental/filesystem>
 
@@ -57,6 +59,44 @@
         &(context->vpnor->table->partition(offset)) : nullptr;
 }
 
+void vpnor_copy_bootloader_partition(const struct mbox_context *context)
+{
+    // The hostboot bootloader has certain size/offset assumptions, so
+    // we need a special partition table here.
+    // It assumes the PNOR is 64M, the TOC size is 32K, the erase block is
+    // 4K, the page size is 4K.
+    // It also assumes the TOC is at the 'end of pnor - toc size - 1 page size'
+    // offset, and first looks for the TOC here, before proceeding to move up
+    // page by page looking for the TOC. So it is optimal to place the TOC at
+    // this offset.
+    constexpr size_t eraseSize = 0x1000;
+    constexpr size_t pageSize = 0x1000;
+    constexpr size_t pnorSize = 0x4000000;
+    constexpr size_t tocMaxSize = 0x8000;
+    constexpr size_t tocStart = pnorSize - tocMaxSize - pageSize;
+    constexpr auto blPartitionName = "HBB";
+
+    openpower::virtual_pnor::partition::Table blTable(eraseSize, pnorSize);
+    vpnor_partition_table vtbl{};
+    vtbl.table = &blTable;
+    struct mbox_context local{};
+    local.vpnor = &vtbl;
+    local.block_size_shift = log_2(eraseSize);
+    memcpy(&local.paths, &context->paths, sizeof(local.paths));
+
+    size_t tocOffset = 0;
+    // Copy TOC
+    copy_flash(&local, tocOffset,
+               static_cast<uint8_t*>(context->mem) + tocStart,
+               blTable.size() * eraseSize);
+    const pnor_partition& partition = blTable.partition(blPartitionName);
+    size_t hbbOffset = partition.data.base * eraseSize;
+    size_t hbbSize = partition.data.actual;
+    // Copy HBB
+    copy_flash(&local, hbbOffset,
+               static_cast<uint8_t*>(context->mem) + hbbOffset, hbbSize);
+}
+
 void vpnor_destroy_partition_table(struct mbox_context *context)
 {
     if(context && context->vpnor)
