x86: fsp: Set up init runtime buffer in update_fsp_configs()
authorBin Meng <bmeng.cn@gmail.com>
Fri, 11 Dec 2015 06:03:04 +0000 (22:03 -0800)
committerBin Meng <bmeng.cn@gmail.com>
Wed, 13 Jan 2016 04:20:14 +0000 (12:20 +0800)
fsp_init() runtime buffer parameter might be different across
different platforms. Move this to update_fsp_configs().

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
Tested-by: Simon Glass <sjg@chromium.org>
arch/x86/cpu/baytrail/fsp_configs.c
arch/x86/cpu/queensbay/fsp_configs.c
arch/x86/include/asm/fsp/fsp_support.h
arch/x86/lib/fsp/fsp_support.c

index 9810921c0c64c4eab02917858909b92eda6a70c7..d49b8d27371b2afccc17713d957eddfd63a3c4ac 100644 (file)
@@ -125,13 +125,19 @@ const struct pch_azalia_config azalia_config = {
  * If the device tree does not specify an integer setting, use the default
  * provided in Intel's Baytrail_FSP_Gold4.tgz release FSP/BayleyBayFsp.bsf file.
  */
-void update_fsp_configs(struct fsp_config_data *config)
+void update_fsp_configs(struct fsp_config_data *config,
+                       struct fspinit_rtbuf *rt_buf)
 {
        struct upd_region *fsp_upd = &config->fsp_upd;
        struct memory_down_data *mem;
        const void *blob = gd->fdt_blob;
        int node;
 
+       /* Initialize runtime buffer for fsp_init() */
+       rt_buf->common.stack_top = config->common.stack_top - 32;
+       rt_buf->common.boot_mode = config->common.boot_mode;
+       rt_buf->common.upd_data = &config->fsp_upd;
+
        fsp_upd->azalia_config_ptr = (uint32_t)&azalia_config;
 
        node = fdtdec_next_compatible(blob, 0, COMPAT_INTEL_BAYTRAIL_FSP);
index 25a92f7a7cc0986d552733bb79be727d4770df0c..f83bb5f22143be166504a55cccb84b1faa92bf20 100644 (file)
@@ -8,7 +8,13 @@
 #include <common.h>
 #include <asm/fsp/fsp_support.h>
 
-void update_fsp_configs(struct fsp_config_data *config)
+void update_fsp_configs(struct fsp_config_data *config,
+                       struct fspinit_rtbuf *rt_buf)
 {
+       /* Initialize runtime buffer for fsp_init() */
+       rt_buf->common.stack_top = config->common.stack_top - 32;
+       rt_buf->common.boot_mode = config->common.boot_mode;
+       rt_buf->common.upd_data = &config->fsp_upd;
+
        /* Override any UPD setting if required */
 }
index e65a130ef502e7bf5c2e56f15b545d828c188a71..61d811f70e0acbf6a1dae511c4e294fd5c9bf9d9 100644 (file)
@@ -194,10 +194,12 @@ void *fsp_get_bootloader_tmp_mem(const void *hob_list, u32 *len);
  * This function overrides the default configurations of FSP.
  *
  * @config:  A pointer to the FSP configuration data structure
+ * @rt_buf:  A pointer to the FSP runtime buffer data structure
  *
  * @return:  None
  */
-void update_fsp_configs(struct fsp_config_data *config);
+void update_fsp_configs(struct fsp_config_data *config,
+                       struct fspinit_rtbuf *rt_buf);
 
 /**
  * fsp_init_phase_pci() - Tell the FSP that we have completed PCI init
index d86a511b096abb96881958cf4483ebb1252c1294..875c96a8f19a47961b366d2f1ea400e3270ac347 100644 (file)
@@ -144,13 +144,8 @@ void fsp_init(u32 stack_top, u32 boot_mode, void *nvs_buf)
 
        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);
+       update_fsp_configs(&config_data, &rt_buf);
 
        memset(&params, 0, sizeof(struct fsp_init_params));
        params.nvs_buf = nvs_buf;