diff --git a/src/soc/intel/apollolake/systemagent.c b/src/soc/intel/apollolake/systemagent.c
index 22d801e..57de4b8 100644
--- a/src/soc/intel/apollolake/systemagent.c
+++ b/src/soc/intel/apollolake/systemagent.c
@@ -16,7 +16,10 @@
  * GNU General Public License for more details.
  */
 
+#include <cpu/cpu.h>
+#include <console/console.h>
 #include <device/device.h>
+#include <fsp/util.h>
 #include <intelblocks/systemagent.h>
 #include <soc/iomap.h>
 #include <soc/systemagent.h>
@@ -38,3 +41,47 @@
 	sa_add_fixed_mmio_resources(dev, index, soc_fixed_resources,
 			ARRAY_SIZE(soc_fixed_resources));
 }
+
+int soc_get_uncore_prmmr_base_and_mask(uint64_t *prmrr_base,
+			uint64_t *prmrr_mask)
+{
+	const void *hob;
+	size_t hob_size, prmrr_size;
+	uint64_t phys_address_mask;
+	const uint8_t prmrr_phys_base_guid[16] = {
+		0x38, 0x3a, 0x81, 0x9f, 0xb0, 0x6f, 0xa7, 0x4f,
+		0xaf, 0x79, 0x8a, 0x4e, 0x74, 0xdd, 0x48, 0x33
+	};
+	const uint8_t prmrr_size_guid[16] = {
+		0x44, 0xed, 0x0b, 0x99, 0x4e, 0x9b, 0x26, 0x42,
+		0xa5, 0x97, 0x28, 0x36, 0x76, 0x6b, 0x5c, 0x41
+	};
+
+	hob = fsp_find_extension_hob_by_guid(prmrr_phys_base_guid,
+			&hob_size);
+	if (!hob) {
+		printk(BIOS_ERR, "Failed to locate PRMRR base hob\n");
+		return -1;
+	}
+	if (hob_size != sizeof(uint64_t)) {
+		printk(BIOS_ERR, "Incorrect PRMRR base hob size\n");
+		return -1;
+	}
+	*prmrr_base = *(uint64_t *) hob;
+
+	hob = fsp_find_extension_hob_by_guid(prmrr_size_guid,
+			&hob_size);
+	if (!hob) {
+		printk(BIOS_ERR, "Failed to locate PRMRR size hob\n");
+		return -1;
+	}
+	if (hob_size != sizeof(uint64_t)) {
+		printk(BIOS_ERR, "Incorrect PRMRR base hob size\n");
+		return -1;
+	}
+	prmrr_size = *(uint64_t *) hob;
+	phys_address_mask = (1ULL << cpu_phys_address_size()) - 1;
+	*prmrr_mask = phys_address_mask & ~(uint64_t)(prmrr_size - 1);
+
+	return 0;
+}
