summaryrefslogtreecommitdiff
path: root/boot/image.c
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2022-10-31 14:43:04 -0400
committerTom Rini <trini@konsulko.com>2022-10-31 14:43:04 -0400
commita90afc6730e6c67ad37f4c98a02891a93b4ff971 (patch)
tree724c085433631e142a56c052d667139cba29b4a6 /boot/image.c
parent6f38d91158e7e4199753b79e0a25c1a65175aba4 (diff)
parent77bec9e3d8bd2dc307447b92a3d5cefd693a62ad (diff)
Merge branch '2022-10-31-vbe-implement-the-full-firmware-flow'
To quote Simon: This series provides an implementation of VBE from TPL through to U-Boot proper, using VBE to load the relevant firmware stages. It buils a single image.bin file containing all the phases: TPL - initial phase, loads VPL using binman symbols VPL - main firmware phase, loads SPL using VBE parameters SPL - loads U-Boot proper using VBE parameters U-Boot - final firmware phase, where OS booting is processed This series does not include the OS-booting phase. That will be the subject of a future series. The implementation is entirely handled by sandbox. It should be possible to enable this on a real board without much effort, but that is also the subject of a future series.
Diffstat (limited to 'boot/image.c')
-rw-r--r--boot/image.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/boot/image.c b/boot/image.c
index 9f95b3260a8..b33d1dfc6b3 100644
--- a/boot/image.c
+++ b/boot/image.c
@@ -194,6 +194,13 @@ static const table_entry_t uimage_comp[] = {
{ -1, "", "", },
};
+static const table_entry_t uimage_phase[] = {
+ { IH_PHASE_NONE, "none", "any", },
+ { IH_PHASE_U_BOOT, "u-boot", "U-Boot phase", },
+ { IH_PHASE_SPL, "spl", "SPL Phase", },
+ { -1, "", "", },
+};
+
struct table_info {
const char *desc;
int count;
@@ -215,6 +222,7 @@ static const struct table_info table_info[IH_COUNT] = {
{ "compression", IH_COMP_COUNT, uimage_comp },
{ "operating system", IH_OS_COUNT, uimage_os },
{ "image type", IH_TYPE_COUNT, uimage_type },
+ { "phase", IH_PHASE_COUNT, uimage_phase },
};
/*****************************************************************************/
@@ -656,6 +664,11 @@ const char *genimg_get_comp_name(uint8_t comp)
comp));
}
+const char *genimg_get_phase_name(enum image_phase_t phase)
+{
+ return get_table_entry_name(uimage_phase, "Unknown Phase", phase);
+}
+
static const char *genimg_get_short_name(const table_entry_t *table, int val)
{
table = get_table_entry(table, val);
@@ -731,3 +744,8 @@ int genimg_get_comp_id(const char *name)
{
return (get_table_entry_id(uimage_comp, "Compression", name));
}
+
+int genimg_get_phase_id(const char *name)
+{
+ return get_table_entry_id(uimage_phase, "Phase", name);
+}