lib: Add FIT payload support
* Add support for parsing and booting FIT payloads. * Build fit loader code from depthcharge. * Fix coding style. * Add Kconfig option to add compiletime support for FIT. * Add support for initrd. * Add default compat strings * Apply optional devicetree fixups using dt_apply_fixups Starting at this point the CBFS payload/ can be either SELF or FIT. Tested on Cavium SoC: Parses and loads a Linux kernel 4.16.3. Tested on Cavium SoC: Parses and loads a Linux kernel 4.15.0. Tested on Cavium SoC: Parses and loads a Linux kernel 4.1.52. Change-Id: I0f27b92a5e074966f893399eb401eb97d784850d Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/25019 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Philipp Deppenwiese <zaolin.daisuki@gmail.com>
This commit is contained in:
committed by
Philipp Deppenwiese
parent
8c986ab263
commit
a892cde653
@ -31,6 +31,7 @@
|
||||
#include <symbols.h>
|
||||
#include <timestamp.h>
|
||||
#include <cbfs.h>
|
||||
#include <fit_payload.h>
|
||||
|
||||
/* Only can represent up to 1 byte less than size_t. */
|
||||
const struct mem_region_device addrspace_32bit =
|
||||
@ -183,7 +184,19 @@ void payload_load(void)
|
||||
|
||||
mirror_payload(payload);
|
||||
|
||||
selfload(payload, true);
|
||||
switch (prog_cbfs_type(payload)) {
|
||||
case CBFS_TYPE_SELF: /* Simple ELF */
|
||||
selfload(payload, true);
|
||||
break;
|
||||
case CBFS_TYPE_FIT: /* Flattened image tree */
|
||||
if (IS_ENABLED(CONFIG_PAYLOAD_FIT_SUPPORT)) {
|
||||
fit_payload(payload);
|
||||
break;
|
||||
} /* else fall-through */
|
||||
default:
|
||||
die("Unsupported payload type.\n");
|
||||
break;
|
||||
}
|
||||
|
||||
out:
|
||||
if (prog_entry(payload) == NULL)
|
||||
|
Reference in New Issue
Block a user