diff --git a/src/soc/amd/cezanne/include/soc/psp_transfer.h b/src/soc/amd/cezanne/include/soc/psp_transfer.h
deleted file mode 100644
index f81785e..0000000
--- a/src/soc/amd/cezanne/include/soc/psp_transfer.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-#ifndef AMD_CEZANNE_PSP_TRANSFER_H
-#define AMD_CEZANNE_PSP_TRANSFER_H
-
-# if (CONFIG_CMOS_RECOVERY_BYTE != 0)
-#  define CMOS_RECOVERY_BYTE CONFIG_CMOS_RECOVERY_BYTE
-# elif CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK)
-#  error "Must set CONFIG_CMOS_RECOVERY_BYTE"
-# endif
-
-#define CMOS_RECOVERY_MAGIC_VAL		0x96
-
-#define TRANSFER_INFO_SIZE		64
-#define TIMESTAMP_BUFFER_SIZE		0x200
-
-#define TRANSFER_MAGIC_VAL		0x50544953
-
-/* Bit definitions for the psp_info field in the PSP transfer_info_struct */
-#define PSP_INFO_PRODUCTION_MODE	0x00000001UL
-#define PSP_INFO_PRODUCTION_SILICON	0x00000002UL
-#define PSP_INFO_VALID			0x80000000UL
-
-/* Area for things that would cause errors in a linker script */
-#if !defined(__ASSEMBLER__)
-#include <stdint.h>
-
-struct transfer_info_struct {
-	uint32_t	magic_val;		/* Identifier */
-	uint32_t	struct_bytes;		/* Size of this structure */
-	uint32_t	buffer_size;		/* Size of the transfer buffer area */
-
-	/* Offsets from start of transfer buffer */
-	uint32_t	workbuf_offset;
-	uint32_t	console_offset;
-	uint32_t	timestamp_offset;
-	uint32_t	fmap_offset;
-
-	uint32_t	unused1[5];
-
-	/* Fields reserved for the PSP */
-	uint64_t	timestamp;		/* Offset 0x30 */
-	uint32_t	psp_unused;		/* Offset 0x38 */
-	uint32_t	psp_info;		/* Offset 0x3C */
-};
-
-_Static_assert(sizeof(struct transfer_info_struct) == TRANSFER_INFO_SIZE,
-		"TRANSFER_INFO_SIZE is incorrect");
-
-/* Make sure the PSP transferred information over to x86 side. */
-int transfer_buffer_valid(const struct transfer_info_struct *ptr);
-/* Verify vboot work buffer is valid in transfer buffer */
-void verify_psp_transfer_buf(void);
-/* Display the transfer block's PSP_info data */
-void show_psp_transfer_info(void);
-/* Replays the pre-x86 cbmem console into the x86 cbmem console */
-void replay_transfer_buffer_cbmemc(void);
-/* Called by bootblock_c_entry in the VBOOT_STARTS_BEFORE_BOOTBLOCK case */
-void boot_with_psp_timestamp(uint64_t base_timestamp);
-
-#endif
-#endif	/* AMD_CEZANNE_PSP_TRANSFER_H */
diff --git a/src/soc/amd/cezanne/smihandler.c b/src/soc/amd/cezanne/smihandler.c
index 61f5099..2c5489f 100644
--- a/src/soc/amd/cezanne/smihandler.c
+++ b/src/soc/amd/cezanne/smihandler.c
@@ -13,7 +13,7 @@
 #include <cpu/x86/cache.h>
 #include <cpu/x86/smm.h>
 #include <elog.h>
-#include <soc/psp_transfer.h>
+#include <psp_verstage/psp_transfer.h>
 #include <soc/smi.h>
 #include <soc/smu.h>
 #include <soc/southbridge.h>
diff --git a/src/soc/amd/common/Makefile.inc b/src/soc/amd/common/Makefile.inc
index 9f45513..c5d952f 100644
--- a/src/soc/amd/common/Makefile.inc
+++ b/src/soc/amd/common/Makefile.inc
@@ -5,6 +5,8 @@
 subdirs-y += pi
 subdirs-y += vboot
 
+CPPFLAGS_common += -I$(src)/soc/amd/common/vboot/include
+
 ifneq ($(V),)
 OPT_DEBUG_AMDFWTOOL = --debug
 endif
diff --git a/src/soc/amd/common/block/cpu/noncar/bootblock.c b/src/soc/amd/common/block/cpu/noncar/bootblock.c
index 9ef899e..e32499d 100644
--- a/src/soc/amd/common/block/cpu/noncar/bootblock.c
+++ b/src/soc/amd/common/block/cpu/noncar/bootblock.c
@@ -6,8 +6,8 @@
 #include <console/console.h>
 #include <cpu/cpu.h>
 #include <cpu/x86/tsc.h>
+#include <psp_verstage/psp_transfer.h>
 #include <soc/southbridge.h>
-#include <soc/psp_transfer.h>
 #include <stdint.h>
 
 asmlinkage void bootblock_c_entry(uint64_t base_timestamp)
diff --git a/src/soc/amd/common/block/cpu/noncar/memlayout_psp_verstage.ld b/src/soc/amd/common/block/cpu/noncar/memlayout_psp_verstage.ld
index e0278ab..cc1a1b5 100644
--- a/src/soc/amd/common/block/cpu/noncar/memlayout_psp_verstage.ld
+++ b/src/soc/amd/common/block/cpu/noncar/memlayout_psp_verstage.ld
@@ -1,8 +1,8 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
 #include <memlayout.h>
-#include <soc/psp_transfer.h>
 #include <fmap_config.h>
+#include <psp_verstage/psp_transfer.h>
 #include <soc/psp_verstage_addr.h>
 
 ENTRY(_psp_vs_start)
diff --git a/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld b/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld
index 42323f5..090d8b7 100644
--- a/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld
+++ b/src/soc/amd/common/block/cpu/noncar/memlayout_x86.ld
@@ -2,7 +2,7 @@
 
 #include <memlayout.h>
 #include <arch/header.ld>
-#include <soc/psp_transfer.h>
+#include <psp_verstage/psp_transfer.h>
 
 #define EARLY_RESERVED_DRAM_START(addr)		REGION_START(early_reserved_dram, addr)
 #define EARLY_RESERVED_DRAM_END(addr)		REGION_END(early_reserved_dram, addr)
diff --git a/src/soc/amd/common/psp_verstage/include/psp_verstage.h b/src/soc/amd/common/psp_verstage/include/psp_verstage.h
index 39059b8..c397b1e 100644
--- a/src/soc/amd/common/psp_verstage/include/psp_verstage.h
+++ b/src/soc/amd/common/psp_verstage/include/psp_verstage.h
@@ -7,7 +7,7 @@
 #include <amdblocks/psp_efs.h>
 #include <bl_uapp/bl_syscall_public.h>
 #include <stdint.h>
-#include <soc/psp_transfer.h>
+#include <psp_verstage/psp_transfer.h>
 #include <psp_post_code.h>
 
 #define EMBEDDED_FW_SIGNATURE			0x55aa55aa
diff --git a/src/soc/amd/common/psp_verstage/psp_verstage.c b/src/soc/amd/common/psp_verstage/psp_verstage.c
index e84ea06..cc710fa 100644
--- a/src/soc/amd/common/psp_verstage/psp_verstage.c
+++ b/src/soc/amd/common/psp_verstage/psp_verstage.c
@@ -12,8 +12,8 @@
 #include <fmap.h>
 #include <fmap_config.h>
 #include <pc80/mc146818rtc.h>
+#include <psp_verstage/psp_transfer.h>
 #include <soc/iomap.h>
-#include <soc/psp_transfer.h>
 #include <security/tpm/tspi.h>
 #include <security/tpm/tss.h>
 #include <security/vboot/vbnv.h>
diff --git a/src/soc/amd/picasso/include/soc/psp_transfer.h b/src/soc/amd/common/vboot/include/psp_verstage/psp_transfer.h
similarity index 94%
rename from src/soc/amd/picasso/include/soc/psp_transfer.h
rename to src/soc/amd/common/vboot/include/psp_verstage/psp_transfer.h
index 5b51691..e236516 100644
--- a/src/soc/amd/picasso/include/soc/psp_transfer.h
+++ b/src/soc/amd/common/vboot/include/psp_verstage/psp_transfer.h
@@ -1,7 +1,7 @@
 /* SPDX-License-Identifier: GPL-2.0-only */
 
-#ifndef AMD_PICASSO_PSP_TRANSFER_H
-#define AMD_PICASSO_PSP_TRANSFER_H
+#ifndef AMD_COMMON_PSP_TRANSFER_H
+#define AMD_COMMON_PSP_TRANSFER_H
 
 # if (CONFIG_CMOS_RECOVERY_BYTE != 0)
 #  define CMOS_RECOVERY_BYTE CONFIG_CMOS_RECOVERY_BYTE
@@ -60,4 +60,4 @@
 
 #endif
 
-#endif	/* AMD_PICASSO_PSP_TRANSFER_H */
+#endif	/* AMD_COMMON_PSP_TRANSFER_H */
diff --git a/src/soc/amd/common/vboot/transfer_buffer.c b/src/soc/amd/common/vboot/transfer_buffer.c
index e08847e..a9644d3 100644
--- a/src/soc/amd/common/vboot/transfer_buffer.c
+++ b/src/soc/amd/common/vboot/transfer_buffer.c
@@ -4,9 +4,9 @@
 #include <console/cbmem_console.h>
 #include <console/console.h>
 #include <pc80/mc146818rtc.h>
+#include <psp_verstage/psp_transfer.h>
 #include <security/vboot/vbnv.h>
 #include <security/vboot/symbols.h>
-#include <soc/psp_transfer.h>
 #include <timestamp.h>
 #include <2struct.h>
 
diff --git a/src/soc/amd/common/vboot/vboot_bootblock.c b/src/soc/amd/common/vboot/vboot_bootblock.c
index 07039fd..9b24232 100644
--- a/src/soc/amd/common/vboot/vboot_bootblock.c
+++ b/src/soc/amd/common/vboot/vboot_bootblock.c
@@ -3,7 +3,7 @@
 #include <bootblock_common.h>
 #include <console/console.h>
 #include <cpu/x86/tsc.h>
-#include <soc/psp_transfer.h>
+#include <psp_verstage/psp_transfer.h>
 #include <symbols.h>
 #include <timestamp.h>
 #include <types.h>
diff --git a/src/soc/amd/glinda/include/soc/psp_transfer.h b/src/soc/amd/glinda/include/soc/psp_transfer.h
deleted file mode 100644
index 2c2b22a..0000000
--- a/src/soc/amd/glinda/include/soc/psp_transfer.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-/* TODO: Update for Glinda */
-
-#ifndef AMD_GLINDA_PSP_TRANSFER_H
-#define AMD_GLINDA_PSP_TRANSFER_H
-
-# if (CONFIG_CMOS_RECOVERY_BYTE != 0)
-#  define CMOS_RECOVERY_BYTE CONFIG_CMOS_RECOVERY_BYTE
-# elif CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK)
-#  error "Must set CONFIG_CMOS_RECOVERY_BYTE"
-# endif
-
-#define CMOS_RECOVERY_MAGIC_VAL		0x96
-
-#define TRANSFER_INFO_SIZE		64
-#define TIMESTAMP_BUFFER_SIZE		0x200
-
-#define TRANSFER_MAGIC_VAL		0x50544953
-
-/* Bit definitions for the psp_info field in the PSP transfer_info_struct */
-#define PSP_INFO_PRODUCTION_MODE	0x00000001UL
-#define PSP_INFO_PRODUCTION_SILICON	0x00000002UL
-#define PSP_INFO_VALID			0x80000000UL
-
-/* Area for things that would cause errors in a linker script */
-#if !defined(__ASSEMBLER__)
-#include <stdint.h>
-
-struct transfer_info_struct {
-	uint32_t	magic_val;		/* Identifier */
-	uint32_t	struct_bytes;		/* Size of this structure */
-	uint32_t	buffer_size;		/* Size of the transfer buffer area */
-
-	/* Offsets from start of transfer buffer */
-	uint32_t	workbuf_offset;
-	uint32_t	console_offset;
-	uint32_t	timestamp_offset;
-	uint32_t	fmap_offset;
-
-	uint32_t	unused1[5];
-
-	/* Fields reserved for the PSP */
-	uint64_t	timestamp;		/* Offset 0x30 */
-	uint32_t	psp_unused;		/* Offset 0x38 */
-	uint32_t	psp_info;		/* Offset 0x3C */
-};
-
-_Static_assert(sizeof(struct transfer_info_struct) == TRANSFER_INFO_SIZE,
-		"TRANSFER_INFO_SIZE is incorrect");
-
-/* Make sure the PSP transferred information over to x86 side. */
-int transfer_buffer_valid(const struct transfer_info_struct *ptr);
-/* Verify vboot work buffer is valid in transfer buffer */
-void verify_psp_transfer_buf(void);
-/* Display the transfer block's PSP_info data */
-void show_psp_transfer_info(void);
-/* Replays the pre-x86 cbmem console into the x86 cbmem console */
-void replay_transfer_buffer_cbmemc(void);
-/* Called by bootblock_c_entry in the VBOOT_STARTS_BEFORE_BOOTBLOCK case */
-void boot_with_psp_timestamp(uint64_t base_timestamp);
-
-#endif
-#endif	/* AMD_GLINDA_PSP_TRANSFER_H */
diff --git a/src/soc/amd/mendocino/include/soc/psp_transfer.h b/src/soc/amd/mendocino/include/soc/psp_transfer.h
deleted file mode 100644
index 3612f17..0000000
--- a/src/soc/amd/mendocino/include/soc/psp_transfer.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-/* TODO: Check if this is still correct */
-
-#ifndef AMD_MENDOCINO_PSP_TRANSFER_H
-#define AMD_MENDOCINO_PSP_TRANSFER_H
-
-# if (CONFIG_CMOS_RECOVERY_BYTE != 0)
-#  define CMOS_RECOVERY_BYTE CONFIG_CMOS_RECOVERY_BYTE
-# elif CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK)
-#  error "Must set CONFIG_CMOS_RECOVERY_BYTE"
-# endif
-
-#define CMOS_RECOVERY_MAGIC_VAL		0x96
-
-#define TRANSFER_INFO_SIZE		64
-#define TIMESTAMP_BUFFER_SIZE		0x200
-
-#define TRANSFER_MAGIC_VAL		0x50544953
-
-/* Bit definitions for the psp_info field in the PSP transfer_info_struct */
-#define PSP_INFO_PRODUCTION_MODE	0x00000001UL
-#define PSP_INFO_PRODUCTION_SILICON	0x00000002UL
-#define PSP_INFO_VALID			0x80000000UL
-
-/* Area for things that would cause errors in a linker script */
-#if !defined(__ASSEMBLER__)
-#include <stdint.h>
-
-struct transfer_info_struct {
-	uint32_t	magic_val;		/* Identifier */
-	uint32_t	struct_bytes;		/* Size of this structure */
-	uint32_t	buffer_size;		/* Size of the transfer buffer area */
-
-	/* Offsets from start of transfer buffer */
-	uint32_t	workbuf_offset;
-	uint32_t	console_offset;
-	uint32_t	timestamp_offset;
-	uint32_t	fmap_offset;
-
-	uint32_t	unused1[5];
-
-	/* Fields reserved for the PSP */
-	uint64_t	timestamp;		/* Offset 0x30 */
-	uint32_t	psp_unused;		/* Offset 0x38 */
-	uint32_t	psp_info;		/* Offset 0x3C */
-};
-
-_Static_assert(sizeof(struct transfer_info_struct) == TRANSFER_INFO_SIZE,
-		"TRANSFER_INFO_SIZE is incorrect");
-
-/* Make sure the PSP transferred information over to x86 side. */
-int transfer_buffer_valid(const struct transfer_info_struct *ptr);
-/* Verify vboot work buffer is valid in transfer buffer */
-void verify_psp_transfer_buf(void);
-/* Display the transfer block's PSP_info data */
-void show_psp_transfer_info(void);
-/* Replays the pre-x86 cbmem console into the x86 cbmem console */
-void replay_transfer_buffer_cbmemc(void);
-/* Called by bootblock_c_entry in the VBOOT_STARTS_BEFORE_BOOTBLOCK case */
-void boot_with_psp_timestamp(uint64_t base_timestamp);
-
-#endif
-#endif	/* AMD_MENDOCINO_PSP_TRANSFER_H */
diff --git a/src/soc/amd/phoenix/include/soc/psp_transfer.h b/src/soc/amd/phoenix/include/soc/psp_transfer.h
deleted file mode 100644
index a197bb8..0000000
--- a/src/soc/amd/phoenix/include/soc/psp_transfer.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-
-/* TODO: Update for Phoenix */
-
-#ifndef AMD_PHOENIX_PSP_TRANSFER_H
-#define AMD_PHOENIX_PSP_TRANSFER_H
-
-# if (CONFIG_CMOS_RECOVERY_BYTE != 0)
-#  define CMOS_RECOVERY_BYTE CONFIG_CMOS_RECOVERY_BYTE
-# elif CONFIG(VBOOT_STARTS_BEFORE_BOOTBLOCK)
-#  error "Must set CONFIG_CMOS_RECOVERY_BYTE"
-# endif
-
-#define CMOS_RECOVERY_MAGIC_VAL		0x96
-
-#define TRANSFER_INFO_SIZE		64
-#define TIMESTAMP_BUFFER_SIZE		0x200
-
-#define TRANSFER_MAGIC_VAL		0x50544953
-
-/* Bit definitions for the psp_info field in the PSP transfer_info_struct */
-#define PSP_INFO_PRODUCTION_MODE	0x00000001UL
-#define PSP_INFO_PRODUCTION_SILICON	0x00000002UL
-#define PSP_INFO_VALID			0x80000000UL
-
-/* Area for things that would cause errors in a linker script */
-#if !defined(__ASSEMBLER__)
-#include <stdint.h>
-
-struct transfer_info_struct {
-	uint32_t	magic_val;		/* Identifier */
-	uint32_t	struct_bytes;		/* Size of this structure */
-	uint32_t	buffer_size;		/* Size of the transfer buffer area */
-
-	/* Offsets from start of transfer buffer */
-	uint32_t	workbuf_offset;
-	uint32_t	console_offset;
-	uint32_t	timestamp_offset;
-	uint32_t	fmap_offset;
-
-	uint32_t	unused1[5];
-
-	/* Fields reserved for the PSP */
-	uint64_t	timestamp;		/* Offset 0x30 */
-	uint32_t	psp_unused;		/* Offset 0x38 */
-	uint32_t	psp_info;		/* Offset 0x3C */
-};
-
-_Static_assert(sizeof(struct transfer_info_struct) == TRANSFER_INFO_SIZE,
-		"TRANSFER_INFO_SIZE is incorrect");
-
-/* Make sure the PSP transferred information over to x86 side. */
-int transfer_buffer_valid(const struct transfer_info_struct *ptr);
-/* Verify vboot work buffer is valid in transfer buffer */
-void verify_psp_transfer_buf(void);
-/* Display the transfer block's PSP_info data */
-void show_psp_transfer_info(void);
-/* Replays the pre-x86 cbmem console into the x86 cbmem console */
-void replay_transfer_buffer_cbmemc(void);
-/* Called by bootblock_c_entry in the VBOOT_STARTS_BEFORE_BOOTBLOCK case */
-void boot_with_psp_timestamp(uint64_t base_timestamp);
-
-#endif
-#endif	/* AMD_PHOENIX_PSP_TRANSFER_H */
