diff --git a/src/cpu/intel/fsp_model_206ax/Kconfig b/src/cpu/intel/fsp_model_206ax/Kconfig
index ea99ee0..05bdce4 100644
--- a/src/cpu/intel/fsp_model_206ax/Kconfig
+++ b/src/cpu/intel/fsp_model_206ax/Kconfig
@@ -41,7 +41,6 @@
 	select PARALLEL_CPU_INIT
 	select TSC_SYNC_MFENCE
 	select LAPIC_MONOTONIC_TIMER
-	select BROKEN_CAR_MIGRATE
 
 config BOOTBLOCK_CPU_INIT
 	string
diff --git a/src/cpu/intel/fsp_model_406dx/Kconfig b/src/cpu/intel/fsp_model_406dx/Kconfig
index c3acc78..ec4be84 100644
--- a/src/cpu/intel/fsp_model_406dx/Kconfig
+++ b/src/cpu/intel/fsp_model_406dx/Kconfig
@@ -36,7 +36,6 @@
 	select PARALLEL_CPU_INIT
 	select TSC_SYNC_MFENCE
 	select LAPIC_MONOTONIC_TIMER
-	select BROKEN_CAR_MIGRATE
 
 choice
 	prompt "Rangeley CPU Stepping"
diff --git a/src/cpu/x86/car.c b/src/cpu/x86/car.c
index cca9afd..9f1a26e 100644
--- a/src/cpu/x86/car.c
+++ b/src/cpu/x86/car.c
@@ -23,6 +23,9 @@
 #include <cbmem.h>
 #include <arch/early_variables.h>
 
+#if IS_ENABLED(CONFIG_PLATFORM_USES_FSP)
+#include <drivers/intel/fsp/fsp_util.h>
+#endif
 typedef void (* const car_migration_func_t)(void);
 
 extern car_migration_func_t _car_migrate_start;
@@ -41,10 +44,13 @@
  */
 static int car_migrated CAR_GLOBAL;
 
-
+/** @brief returns pointer to a CAR variable, before or after migration.
+ *
+ * @param var pointer to the CAR variable
+ */
 void *car_get_var_ptr(void *var)
 {
-	char *migrated_base;
+	char *migrated_base = NULL;
 	int offset;
 	void * _car_start = &_car_data_start;
 	void * _car_end = &_car_data_end;
@@ -61,12 +67,15 @@
 		return var;
 	}
 
+#if IS_ENABLED(CONFIG_PLATFORM_USES_FSP)
+	migrated_base=(char *)find_saved_temp_mem(
+			*(void **)CBMEM_FSP_HOB_PTR);
+#else
 	migrated_base = cbmem_find(CBMEM_ID_CAR_GLOBALS);
+#endif
 
-	if (migrated_base == NULL) {
-		printk(BIOS_ERR, "CAR: Could not find migration base!\n");
-		return var;
-	}
+	if (migrated_base == NULL)
+		die( "CAR: Could not find migration base!\n");
 
 	offset = (char *)var - (char *)_car_start;
 
@@ -140,7 +149,7 @@
 
 void car_migrate_variables(void)
 {
-	if (!IS_ENABLED(CONFIG_BROKEN_CAR_MIGRATE))
+	if (!IS_ENABLED(CONFIG_BROKEN_CAR_MIGRATE) && !IS_ENABLED(PLATFORM_USES_FSP))
 		do_car_migrate_variables();
 
 	if (!IS_ENABLED(CONFIG_BROKEN_CAR_MIGRATE))
diff --git a/src/include/cbmem.h b/src/include/cbmem.h
index ca7a5f4..2f86b85 100644
--- a/src/include/cbmem.h
+++ b/src/include/cbmem.h
@@ -40,6 +40,7 @@
  */
 #define CBMEM_BOOT_MODE		0x610
 #define CBMEM_RESUME_BACKUP	0x614
+#define CBMEM_FSP_HOB_PTR	0x614
 
 #define CBMEM_ID_FREESPACE	0x46524545
 #define CBMEM_ID_GDT		0x4c474454
diff --git a/src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.c b/src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.c
index 3f8690a..949cf2a 100644
--- a/src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.c
+++ b/src/northbridge/intel/fsp_rangeley/fsp/chipset_fsp_util.c
@@ -174,6 +174,8 @@
 void ChipsetFspReturnPoint(EFI_STATUS Status,
 		VOID *HobListPtr)
 {
+	*(void **)CBMEM_FSP_HOB_PTR=HobListPtr;
+
 	if (Status == 0xFFFFFFFF) {
 		soft_reset();
 	}
diff --git a/src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.c b/src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.c
index a666d70..716873c 100644
--- a/src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.c
+++ b/src/northbridge/intel/fsp_sandybridge/fsp/chipset_fsp_util.c
@@ -107,6 +107,7 @@
 void ChipsetFspReturnPoint(EFI_STATUS Status,
 		VOID *HobListPtr)
 {
+	*(void **)CBMEM_FSP_HOB_PTR=HobListPtr;
 	if (Status == 0xFFFFFFFF) {
 		hard_reset();
 	}
diff --git a/src/soc/intel/fsp_baytrail/Kconfig b/src/soc/intel/fsp_baytrail/Kconfig
index b05def2..0ebb5c7 100644
--- a/src/soc/intel/fsp_baytrail/Kconfig
+++ b/src/soc/intel/fsp_baytrail/Kconfig
@@ -50,7 +50,6 @@
 	select SUPPORT_CPU_UCODE_IN_CBFS if INCLUDE_MICROCODE_IN_BUILD
 	select CPU_MICROCODE_ADDED_DURING_BUILD if INCLUDE_MICROCODE_IN_BUILD
 	select ROMSTAGE_RTC_INIT
-	select BROKEN_CAR_MIGRATE
 
 config BOOTBLOCK_CPU_INIT
 	string
diff --git a/src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.c b/src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.c
index c6b5f9c..b8c1bf6 100644
--- a/src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.c
+++ b/src/soc/intel/fsp_baytrail/fsp/chipset_fsp_util.c
@@ -329,6 +329,8 @@
 void ChipsetFspReturnPoint(EFI_STATUS Status,
 		VOID *HobListPtr)
 {
+	*(void **)CBMEM_FSP_HOB_PTR=HobListPtr;
+
 	if (Status == 0xFFFFFFFF) {
 		warm_reset();
 	}
