diff --git a/src/mainboard/asrock/b85m_pro4/romstage.c b/src/mainboard/asrock/b85m_pro4/romstage.c
index 119d007..16f3d0a 100644
--- a/src/mainboard/asrock/b85m_pro4/romstage.c
+++ b/src/mainboard/asrock/b85m_pro4/romstage.c
@@ -25,9 +25,7 @@
 	spd_map[3] = 0xa6;
 }
 
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL },
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL },
@@ -45,7 +43,7 @@
 		{ 0x0040, 1, 6, USB_PORT_BACK_PANEL },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		{ 1, 0 },
 		{ 1, 0 },
 		{ 1, 1 },
@@ -53,7 +51,3 @@
 		{ 1, 2 },
 		{ 1, 2 },
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/asrock/h81m-hds/romstage.c b/src/mainboard/asrock/h81m-hds/romstage.c
index deb6ec9..b8ecd43 100644
--- a/src/mainboard/asrock/h81m-hds/romstage.c
+++ b/src/mainboard/asrock/h81m-hds/romstage.c
@@ -23,9 +23,7 @@
 	spd_map[2] = 0xa4;
 }
 
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL },
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL },
@@ -43,7 +41,7 @@
 		{ 0x0040, 0, USB_OC_PIN_SKIP, USB_PORT_SKIP },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		/* Enable, OCn# */
 		{ 1, 0 },
 		{ 1, 0 },
@@ -52,7 +50,3 @@
 		{ 0, USB_OC_PIN_SKIP },
 		{ 0, USB_OC_PIN_SKIP },
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/google/beltino/romstage.c b/src/mainboard/google/beltino/romstage.c
index ee14630..f009f5a 100644
--- a/src/mainboard/google/beltino/romstage.c
+++ b/src/mainboard/google/beltino/romstage.c
@@ -46,9 +46,7 @@
 	spd_map[2] = 0xa4;
 }
 
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0064, 1, 0,               /* P0: VP8 */
 		  USB_PORT_MINI_PCIE },
@@ -68,14 +66,10 @@
 		  USB_PORT_SKIP },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		/* Enable, OCn# */
 		{ 1, 0 }, /* P1; CN22 */
 		{ 1, 1 }, /* P2; CN23  */
 		{ 1, 2 }, /* P3; CN25 */
 		{ 1, 2 }, /* P4; CN25 */
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/google/slippy/romstage.c b/src/mainboard/google/slippy/romstage.c
index 7f08a58..fb32b48 100644
--- a/src/mainboard/google/slippy/romstage.c
+++ b/src/mainboard/google/slippy/romstage.c
@@ -46,8 +46,3 @@
 	spd_map[0] = 0xff;
 	spd_map[2] = 0xff;
 }
-
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	variant_romstage_entry(pei_data);
-}
diff --git a/src/mainboard/google/slippy/variant.h b/src/mainboard/google/slippy/variant.h
index 2263f9d..bfcf855 100644
--- a/src/mainboard/google/slippy/variant.h
+++ b/src/mainboard/google/slippy/variant.h
@@ -3,6 +3,4 @@
 #ifndef VARIANT_H
 #define VARIANT_H
 
-void variant_romstage_entry(struct pei_data *pei_data);
-
 #endif
diff --git a/src/mainboard/google/slippy/variants/falco/romstage.c b/src/mainboard/google/slippy/variants/falco/romstage.c
index 516b26c..de0ac76 100644
--- a/src/mainboard/google/slippy/variants/falco/romstage.c
+++ b/src/mainboard/google/slippy/variants/falco/romstage.c
@@ -48,9 +48,7 @@
 	}
 }
 
-void variant_romstage_entry(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0064, 1, 0,               /* P0: Port A, CN8 */
 		  USB_PORT_BACK_PANEL },
@@ -70,14 +68,10 @@
 		  USB_PORT_INTERNAL },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		/* Enable, OCn# */
 		{ 1, 0               }, /* P1; Port A, CN8 */
 		{ 1, 0               }, /* P2; Port B, CN9  */
 		{ 0, USB_OC_PIN_SKIP }, /* P3; */
 		{ 0, USB_OC_PIN_SKIP }, /* P4; */
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/google/slippy/variants/leon/romstage.c b/src/mainboard/google/slippy/variants/leon/romstage.c
index e24dcb9..daf0c16 100644
--- a/src/mainboard/google/slippy/variants/leon/romstage.c
+++ b/src/mainboard/google/slippy/variants/leon/romstage.c
@@ -44,9 +44,7 @@
 			spd_file + (spd_index * spd_len), spd_len);
 }
 
-void variant_romstage_entry(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0040, 1, 0,               /* P0: Port A, CN10 */
 		  USB_PORT_BACK_PANEL },
@@ -66,14 +64,10 @@
 		  USB_PORT_SKIP },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		/* Enable, OCn# */
 		{ 1, 0               }, /* P1; Port A, CN10 */
 		{ 1, 2               }, /* P2; Port B, CN11 */
 		{ 0, USB_OC_PIN_SKIP }, /* P3; */
 		{ 0, USB_OC_PIN_SKIP }, /* P4; */
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/google/slippy/variants/peppy/romstage.c b/src/mainboard/google/slippy/variants/peppy/romstage.c
index 92e1e8d..535c07b 100644
--- a/src/mainboard/google/slippy/variants/peppy/romstage.c
+++ b/src/mainboard/google/slippy/variants/peppy/romstage.c
@@ -62,9 +62,7 @@
 	}
 }
 
-void variant_romstage_entry(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0150, 1, USB_OC_PIN_SKIP, /* P0: LTE */
 		  USB_PORT_MINI_PCIE },
@@ -84,14 +82,10 @@
 		  USB_PORT_SKIP },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		/* Enable, OCn# */
 		{ 1, 0               }, /* P1; Port A, CN6 */
 		{ 0, USB_OC_PIN_SKIP }, /* P2; */
 		{ 0, USB_OC_PIN_SKIP }, /* P3; */
 		{ 0, USB_OC_PIN_SKIP }, /* P4; */
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/google/slippy/variants/wolf/romstage.c b/src/mainboard/google/slippy/variants/wolf/romstage.c
index a0b5055..40ff9c2 100644
--- a/src/mainboard/google/slippy/variants/wolf/romstage.c
+++ b/src/mainboard/google/slippy/variants/wolf/romstage.c
@@ -48,9 +48,7 @@
 	}
 }
 
-void variant_romstage_entry(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0040, 1, 0,               /* P0: Port A, CN10 */
 		  USB_PORT_BACK_PANEL },
@@ -70,14 +68,10 @@
 		  USB_PORT_SKIP  },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		/* Enable, OCn# */
 		{ 1, 0               }, /* P1; Port A, CN10 */
 		{ 1, 2               }, /* P2; Port B, CN11  */
 		{ 0, USB_OC_PIN_SKIP }, /* P3; */
 		{ 0, USB_OC_PIN_SKIP }, /* P4; */
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/hp/folio_9480m/romstage.c b/src/mainboard/hp/folio_9480m/romstage.c
index 7eeb7bd..0c4308b 100644
--- a/src/mainboard/hp/folio_9480m/romstage.c
+++ b/src/mainboard/hp/folio_9480m/romstage.c
@@ -23,9 +23,7 @@
 	spd_map[2] = 0xa4;
 }
 
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0080, 1, USB_OC_PIN_SKIP, USB_PORT_BACK_PANEL }, /* dock */
 		{ 0x0040, 1, USB_OC_PIN_SKIP, USB_PORT_BACK_PANEL }, /* left, EHCI debug */
@@ -36,12 +34,10 @@
 		{ 0x0040, 1, USB_OC_PIN_SKIP, USB_PORT_BACK_PANEL }, /* Webcam */
 		{ 0x0040, 1, USB_OC_PIN_SKIP, USB_PORT_BACK_PANEL },
 	};
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		{ 1, USB_OC_PIN_SKIP }, /* dock */
 		{ 1, USB_OC_PIN_SKIP }, /* left */
 		{ 1, USB_OC_PIN_SKIP }, /* right */
 		{ 0, USB_OC_PIN_SKIP },
 	};
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/intel/baskingridge/romstage.c b/src/mainboard/intel/baskingridge/romstage.c
index 1927517..9c4c9b7 100644
--- a/src/mainboard/intel/baskingridge/romstage.c
+++ b/src/mainboard/intel/baskingridge/romstage.c
@@ -49,9 +49,7 @@
 	spd_map[3] = 0xa6;
 }
 
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0040, 1, 0, /* P0: Back USB3 port  (OC0) */
 		  USB_PORT_BACK_PANEL },
@@ -83,7 +81,7 @@
 		  USB_PORT_FRONT_PANEL },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		/* Enable, OCn# */
 		{ 1, 0 }, /* P1; */
 		{ 1, 0 }, /* P2; */
@@ -92,7 +90,3 @@
 		{ 1, 0 }, /* P6; */
 		{ 1, 0 }, /* P6; */
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/lenovo/t440p/romstage.c b/src/mainboard/lenovo/t440p/romstage.c
index 3e5cc0d..eaee734 100644
--- a/src/mainboard/lenovo/t440p/romstage.c
+++ b/src/mainboard/lenovo/t440p/romstage.c
@@ -46,9 +46,7 @@
 	spd_map[2] = 0xa2;
 }
 
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL }, /* USB3 */
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL }, /* USB3 */
@@ -66,7 +64,7 @@
 		{ 0x0040, 1, 6, USB_PORT_BACK_PANEL },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		{ 1, 0 },
 		{ 1, 0 },
 		{ 1, USB_OC_PIN_SKIP },
@@ -74,7 +72,3 @@
 		{ 1, 1 },
 		{ 1, 1 }, /* WWAN */
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/msi/h81m-p33/romstage.c b/src/mainboard/msi/h81m-p33/romstage.c
index 6321eeb..56c77cd 100644
--- a/src/mainboard/msi/h81m-p33/romstage.c
+++ b/src/mainboard/msi/h81m-p33/romstage.c
@@ -23,9 +23,7 @@
 	spd_map[2] = 0xa4;
 }
 
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL },
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL },
@@ -43,7 +41,7 @@
 		{ 0x0040, 1, 6, USB_PORT_BACK_PANEL },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		{ 1, 0 },
 		{ 1, 0 },
 		{ 1, 1 },
@@ -51,7 +49,3 @@
 		{ 1, 2 },
 		{ 1, 2 },
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/mainboard/supermicro/x10slm-f/romstage.c b/src/mainboard/supermicro/x10slm-f/romstage.c
index c9f1027..a2798d9 100644
--- a/src/mainboard/supermicro/x10slm-f/romstage.c
+++ b/src/mainboard/supermicro/x10slm-f/romstage.c
@@ -25,9 +25,7 @@
 	spd_map[3] = 0xa6;
 }
 
-void mainboard_fill_pei_data(struct pei_data *pei_data)
-{
-	struct usb2_port_setting usb2_ports[MAX_USB2_PORTS] = {
+	const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS] = {
 		/* Length, Enable, OCn#, Location */
 		{ 0x0040, 1, 0, USB_PORT_INTERNAL },
 		{ 0x0040, 1, 0, USB_PORT_BACK_PANEL },
@@ -45,7 +43,7 @@
 		{ 0x0040, 1, 6, USB_PORT_BACK_PANEL },
 	};
 
-	struct usb3_port_setting usb3_ports[MAX_USB3_PORTS] = {
+	const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS] = {
 		/* Enable, OCn# */
 		{ 1, 1 },
 		{ 1, 1 },
@@ -54,7 +52,3 @@
 		{ 1, 3 },
 		{ 1, 3 },
 	};
-
-	memcpy(pei_data->usb2_ports, usb2_ports, sizeof(usb2_ports));
-	memcpy(pei_data->usb3_ports, usb3_ports, sizeof(usb3_ports));
-}
diff --git a/src/northbridge/intel/haswell/raminit.h b/src/northbridge/intel/haswell/raminit.h
index adf53ea..ee0af77 100644
--- a/src/northbridge/intel/haswell/raminit.h
+++ b/src/northbridge/intel/haswell/raminit.h
@@ -6,15 +6,16 @@
 #include <stdint.h>
 #include "pei_data.h"
 
+/* Mainboard-specific USB configuration */
+extern const struct usb2_port_setting mainboard_usb2_ports[MAX_USB2_PORTS];
+extern const struct usb3_port_setting mainboard_usb3_ports[MAX_USB3_PORTS];
+
 /* Optional function to copy SPD data for on-board memory */
 void copy_spd(struct pei_data *peid);
 
 /* Mainboard callback to fill in the SPD addresses in MRC format */
 void mb_get_spd_map(uint8_t spd_map[4]);
 
-/* Necessary function to initialize pei_data with mainboard-specific settings */
-void mainboard_fill_pei_data(struct pei_data *pei_data);
-
 void sdram_initialize(struct pei_data *pei_data);
 void setup_sdram_meminfo(struct pei_data *pei_data);
 int fixup_haswell_errata(void);
diff --git a/src/northbridge/intel/haswell/romstage.c b/src/northbridge/intel/haswell/romstage.c
index cbb9834..b77e559 100644
--- a/src/northbridge/intel/haswell/romstage.c
+++ b/src/northbridge/intel/haswell/romstage.c
@@ -18,6 +18,7 @@
 #include <northbridge/intel/haswell/raminit.h>
 #include <southbridge/intel/lynxpoint/pch.h>
 #include <southbridge/intel/lynxpoint/me.h>
+#include <string.h>
 
 /* Copy SPD data for on-board memory */
 void __weak copy_spd(struct pei_data *peid)
@@ -70,7 +71,8 @@
 		.usb_xhci_on_resume	= cfg->usb_xhci_on_resume,
 	};
 
-	mainboard_fill_pei_data(&pei_data);
+	memcpy(pei_data.usb2_ports, mainboard_usb2_ports, sizeof(mainboard_usb2_ports));
+	memcpy(pei_data.usb3_ports, mainboard_usb3_ports, sizeof(mainboard_usb3_ports));
 
 	enable_lapic();
 
