|
@@ -103,10 +103,12 @@ void fsp_init(u32 stack_top, u32 boot_mode, void *nvs_buf)
|
|
|
fsp_init_f init;
|
|
|
struct fsp_init_params params;
|
|
|
struct fspinit_rtbuf rt_buf;
|
|
|
- struct vpd_region *fsp_vpd;
|
|
|
struct fsp_header *fsp_hdr;
|
|
|
struct fsp_init_params *params_ptr;
|
|
|
+#ifdef CONFIG_FSP_USE_UPD
|
|
|
+ struct vpd_region *fsp_vpd;
|
|
|
struct upd_region *fsp_upd;
|
|
|
+#endif
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_UART
|
|
|
setup_early_uart();
|
|
@@ -122,14 +124,7 @@ void fsp_init(u32 stack_top, u32 boot_mode, void *nvs_buf)
|
|
|
config_data.common.stack_top = stack_top;
|
|
|
config_data.common.boot_mode = boot_mode;
|
|
|
|
|
|
- fsp_upd = &config_data.fsp_upd;
|
|
|
- memset(&rt_buf, 0, sizeof(struct fspinit_rtbuf));
|
|
|
-
|
|
|
- /* Reserve a gap in stack top */
|
|
|
- rt_buf.common.stack_top = stack_top - 32;
|
|
|
- rt_buf.common.boot_mode = boot_mode;
|
|
|
- rt_buf.common.upd_data = fsp_upd;
|
|
|
-
|
|
|
+#ifdef CONFIG_FSP_USE_UPD
|
|
|
/* Get VPD region start */
|
|
|
fsp_vpd = (struct vpd_region *)(fsp_hdr->img_base +
|
|
|
fsp_hdr->cfg_region_off);
|
|
@@ -137,12 +132,22 @@ void fsp_init(u32 stack_top, u32 boot_mode, void *nvs_buf)
|
|
|
/* Verify the VPD data region is valid */
|
|
|
assert(fsp_vpd->sign == VPD_IMAGE_ID);
|
|
|
|
|
|
+ fsp_upd = &config_data.fsp_upd;
|
|
|
+
|
|
|
/* Copy default data from Flash */
|
|
|
memcpy(fsp_upd, (void *)(fsp_hdr->img_base + fsp_vpd->upd_offset),
|
|
|
sizeof(struct upd_region));
|
|
|
|
|
|
/* Verify the UPD data region is valid */
|
|
|
assert(fsp_upd->terminator == UPD_TERMINATOR);
|
|
|
+#endif
|
|
|
+
|
|
|
+ memset(&rt_buf, 0, sizeof(struct fspinit_rtbuf));
|
|
|
+
|
|
|
+ /* Initialize runtime buffer for fsp_init() */
|
|
|
+ rt_buf.common.stack_top = stack_top - 32;
|
|
|
+ rt_buf.common.boot_mode = boot_mode;
|
|
|
+ rt_buf.common.upd_data = fsp_upd;
|
|
|
|
|
|
/* Override any configuration if required */
|
|
|
update_fsp_configs(&config_data);
|