From 71327fbad86bfb2d6ef343d465d0ce071bb6be0d Mon Sep 17 00:00:00 2001 From: Patrick Rudolph Date: Thu, 3 May 2018 10:35:26 +0200 Subject: lib/prog_loaders: Store CBFS type in struct prog Store the type of the loaded program after locating the file and add a method to retrieve the type. Will be used to distinguish between SELF and FIT payloads. Change-Id: Ic226e7e028d722ab9e3c6f7f1c22bde2a1cd8a85 Signed-off-by: Patrick Rudolph Reviewed-on: https://review.coreboot.org/26028 Reviewed-by: Ronald G. Minnich Reviewed-by: Aaron Durbin Reviewed-by: Julius Werner Tested-by: build bot (Jenkins) --- src/include/program_loading.h | 6 ++++++ src/lib/prog_loaders.c | 2 ++ 2 files changed, 8 insertions(+) (limited to 'src') diff --git a/src/include/program_loading.h b/src/include/program_loading.h index 7aba30214c..2e8364604a 100644 --- a/src/include/program_loading.h +++ b/src/include/program_loading.h @@ -65,6 +65,7 @@ struct prog { * payload. For architectures that use a bounce buffer * then it would represent the bounce buffer. */ enum prog_type type; + uint32_t cbfs_type; const char *name; struct region_device rdev; /* Entry to program with optional argument. It's up to the architecture @@ -89,6 +90,11 @@ static inline enum prog_type prog_type(const struct prog *prog) return prog->type; } +static inline uint32_t prog_cbfs_type(const struct prog *prog) +{ + return prog->cbfs_type; +} + static inline struct region_device *prog_rdev(struct prog *prog) { return &prog->rdev; diff --git a/src/lib/prog_loaders.c b/src/lib/prog_loaders.c index 8a6d6afafa..04b573e5ee 100644 --- a/src/lib/prog_loaders.c +++ b/src/lib/prog_loaders.c @@ -44,6 +44,8 @@ int prog_locate(struct prog *prog) if (cbfs_boot_locate(&file, prog_name(prog), NULL)) return -1; + cbfsf_file_type(&file, &prog->cbfs_type); + cbfs_file_data(prog_rdev(prog), &file); return 0; -- cgit v1.2.3