drivers/intel/fsp2_0: add TODOs to fix deficiencies

The FSP 2.0 implementation doesn't handle FSP modules for
SoCs that are required to be XIP. There is no notion of
"loading" in that situation where one should be copying
anything anywhere.

Additionally, the loading code does not handle overlaps within
the current running program which is doing the loading.

Change-Id: Ide145581f1dd84efb73a28ae51b3313183fa127a
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/13959
Tested-by: build bot (Jenkins)
Reviewed-by: Martin Roth <martinroth@google.com>
Reviewed-by: Andrey Petrov <andrey.petrov@intel.com>
This commit is contained in:
Aaron Durbin
2016-03-08 11:20:53 -06:00
parent 40672becaa
commit 9b28f0023c

View File

@ -78,6 +78,7 @@ void fsp_print_header_info(const struct fsp_header *hdr)
} }
/* TODO: this won't work for SoC's that need to XIP certain modules. */
enum cb_err fsp_load_binary(struct fsp_header *hdr, enum cb_err fsp_load_binary(struct fsp_header *hdr,
const char *name, const char *name,
struct range_entry *range) struct range_entry *range)
@ -118,6 +119,7 @@ enum cb_err fsp_load_binary(struct fsp_header *hdr,
} }
/* Check if the binary load address is within expected range */ /* Check if the binary load address is within expected range */
/* TODO: this doesn't check the current running program footprint. */
if (range_entry_base(range) > hdr->image_base || if (range_entry_base(range) > hdr->image_base ||
range_entry_end(range) <= hdr->image_base + hdr->image_size) { range_entry_end(range) <= hdr->image_base + hdr->image_size) {
printk(BIOS_ERR, "%s is outside of allowed range\n", name); printk(BIOS_ERR, "%s is outside of allowed range\n", name);