diff --git a/target/linux/omap24xx/base-files/lib/preinit/99_bme_pmm_image b/target/linux/omap24xx/base-files/lib/preinit/99_bme_pmm_image
new file mode 100644
index 0000000000000000000000000000000000000000..8e29fd520ed77967d9a00c6983c1bdf13e7c279b
--- /dev/null
+++ b/target/linux/omap24xx/base-files/lib/preinit/99_bme_pmm_image
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+do_extract_cal_bme_pmm() {
+	[ -e /lib/firmware/n810-cal-bme-pmm.fw ] && return 0
+
+	[ -x /usr/bin/calvaria ] || { echo "CAL-BME extract: calvaria not found"; return 1; }
+
+	/usr/bin/calvaria -p -n bme -i last /dev/mtdblock1 >/lib/firmware/n810-cal-bme-pmm.fw || {
+		echo "CAL-BME extract: Failed to extract blob"
+		return 1
+	}
+}
+
+boot_hook_add preinit_mount_root do_extract_cal_bme_pmm