drivers/intel/fsp1_1/temp_ram_exit.c: Initialize CBMEM

prog_locate() will load FSP, before CBMEM is initialized.
The vboot workbuffer is used for loading, but
CBMEM_ID_VBOOT_WORKBUF is not available.
A NULL pointer is returned as workbuffer resulting in error
'Ramstage was not loaded!' at second boot.

Initialize CBMEM before calling prog_locate().

BUG  = N/A
TEST = Build and boot on Facebook FBG1701

Change-Id: I2f04a326a95840937b71f6ad65a7c011268ec6d6
Signed-off-by: Frans Hendriks <fhendriks@eltan.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/49639
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Arthur Heymans <arthur@aheymans.xyz>
This commit is contained in:
Frans Hendriks 2021-01-18 15:51:01 +01:00 committed by Patrick Georgi
parent be5cc7da5f
commit 162d704b57
1 changed files with 5 additions and 0 deletions

View File

@ -1,5 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-or-later */
#include <cbmem.h>
#include <console/console.h>
#include <fsp/util.h>
@ -10,6 +11,10 @@ asmlinkage void chipset_teardown_car_main(void)
FSP_TEMP_RAM_EXIT temp_ram_exit;
struct prog fsp = PROG_INIT(PROG_REFCODE, "fsp.bin");
/* CBMEM_ID_VBOOT_WORKBUF is used as vboot workbuffer.
* Init CBMEM before loading fsp, to have buffer available */
cbmem_initialize();
if (prog_locate(&fsp)) {
die("Unable to locate fsp.bin\n");
} else {