broadwell: fix HAVE_REFCODE_BLOB build errors
When building HAVE_REFCODE_BLOB there are a couple of errors. One is a failure building !CHROME_OS. The other is from a header change where console_tx_byte() was declared. Change-Id: I4110debd6d3818d4a803ed22037166c226f2ed11 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: http://review.coreboot.org/9142 Tested-by: build bot (Jenkins) Reviewed-by: Duncan Laurie <dlaurie@google.com>
This commit is contained in:
parent
43b7db7df0
commit
83a8df52b0
|
@ -21,11 +21,14 @@
|
||||||
#include <arch/acpi.h>
|
#include <arch/acpi.h>
|
||||||
#include <cbmem.h>
|
#include <cbmem.h>
|
||||||
#include <console/console.h>
|
#include <console/console.h>
|
||||||
|
#include <console/streams.h>
|
||||||
#include <cpu/x86/tsc.h>
|
#include <cpu/x86/tsc.h>
|
||||||
#include <rmodule.h>
|
#include <rmodule.h>
|
||||||
#include <ramstage_cache.h>
|
#include <ramstage_cache.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#if IS_ENABLED(CONFIG_CHROMEOS)
|
||||||
#include <vendorcode/google/chromeos/vboot_handoff.h>
|
#include <vendorcode/google/chromeos/vboot_handoff.h>
|
||||||
|
#endif
|
||||||
#include <broadwell/pei_data.h>
|
#include <broadwell/pei_data.h>
|
||||||
#include <broadwell/pei_wrapper.h>
|
#include <broadwell/pei_wrapper.h>
|
||||||
#include <broadwell/ramstage.h>
|
#include <broadwell/ramstage.h>
|
||||||
|
@ -93,10 +96,24 @@ static void cache_refcode(const struct rmod_stage_load *rsl)
|
||||||
memcpy(&c->program[0], (void *)c->load_address, c->size);
|
memcpy(&c->program[0], (void *)c->load_address, c->size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int load_refcode_from_vboot(struct rmod_stage_load *refcode,
|
#if IS_ENABLED(CONFIG_CHROMEOS)
|
||||||
struct cbfs_stage *stage)
|
static int load_refcode_from_vboot(struct rmod_stage_load *refcode)
|
||||||
{
|
{
|
||||||
|
struct vboot_handoff *vboot_handoff;
|
||||||
|
const struct firmware_component *fwc;
|
||||||
|
struct cbfs_stage *stage;
|
||||||
|
|
||||||
|
vboot_handoff = cbmem_find(CBMEM_ID_VBOOT_HANDOFF);
|
||||||
|
fwc = &vboot_handoff->components[CONFIG_VBOOT_REFCODE_INDEX];
|
||||||
|
|
||||||
|
if (vboot_handoff == NULL ||
|
||||||
|
vboot_handoff->selected_firmware == VB_SELECT_FIRMWARE_READONLY ||
|
||||||
|
CONFIG_VBOOT_REFCODE_INDEX >= MAX_PARSED_FW_COMPONENTS ||
|
||||||
|
fwc->size == 0 || fwc->address == 0)
|
||||||
|
return -1;
|
||||||
|
|
||||||
printk(BIOS_DEBUG, "refcode loading from vboot rw area.\n");
|
printk(BIOS_DEBUG, "refcode loading from vboot rw area.\n");
|
||||||
|
stage = (void *)(uintptr_t)fwc->address;
|
||||||
|
|
||||||
if (rmodule_stage_load(refcode, stage) || refcode->entry == NULL) {
|
if (rmodule_stage_load(refcode, stage) || refcode->entry == NULL) {
|
||||||
printk(BIOS_DEBUG, "Error loading reference code.\n");
|
printk(BIOS_DEBUG, "Error loading reference code.\n");
|
||||||
|
@ -104,6 +121,12 @@ static int load_refcode_from_vboot(struct rmod_stage_load *refcode,
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static int load_refcode_from_vboot(struct rmod_stage_load *refcode)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
static int load_refcode_from_cbfs(struct rmod_stage_load *refcode)
|
static int load_refcode_from_cbfs(struct rmod_stage_load *refcode)
|
||||||
{
|
{
|
||||||
|
@ -119,34 +142,17 @@ static int load_refcode_from_cbfs(struct rmod_stage_load *refcode)
|
||||||
|
|
||||||
static pei_wrapper_entry_t load_reference_code(void)
|
static pei_wrapper_entry_t load_reference_code(void)
|
||||||
{
|
{
|
||||||
struct vboot_handoff *vboot_handoff;
|
|
||||||
const struct firmware_component *fwc;
|
|
||||||
struct rmod_stage_load refcode = {
|
struct rmod_stage_load refcode = {
|
||||||
.cbmem_id = CBMEM_ID_REFCODE,
|
.cbmem_id = CBMEM_ID_REFCODE,
|
||||||
.name = CONFIG_CBFS_PREFIX "/refcode",
|
.name = CONFIG_CBFS_PREFIX "/refcode",
|
||||||
};
|
};
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (acpi_is_wakeup_s3()) {
|
if (acpi_is_wakeup_s3()) {
|
||||||
return load_refcode_from_cache();
|
return load_refcode_from_cache();
|
||||||
}
|
}
|
||||||
|
|
||||||
vboot_handoff = cbmem_find(CBMEM_ID_VBOOT_HANDOFF);
|
if (load_refcode_from_vboot(&refcode) ||
|
||||||
fwc = &vboot_handoff->components[CONFIG_VBOOT_REFCODE_INDEX];
|
load_refcode_from_cbfs(&refcode))
|
||||||
|
|
||||||
if (vboot_handoff == NULL ||
|
|
||||||
vboot_handoff->selected_firmware == VB_SELECT_FIRMWARE_READONLY ||
|
|
||||||
CONFIG_VBOOT_REFCODE_INDEX >= MAX_PARSED_FW_COMPONENTS ||
|
|
||||||
fwc->size == 0 || fwc->address == 0) {
|
|
||||||
ret = load_refcode_from_cbfs(&refcode);
|
|
||||||
} else {
|
|
||||||
ret = load_refcode_from_vboot(&refcode, (void *)fwc->address);
|
|
||||||
|
|
||||||
if (ret < 0)
|
|
||||||
ret = load_refcode_from_cbfs(&refcode);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ret < 0)
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* Cache loaded reference code. */
|
/* Cache loaded reference code. */
|
||||||
|
|
Loading…
Reference in New Issue