cbfs: switch to region_device for location APIs

Drop struct cbfs_props and replace with struct region_device object.
The goal of the cbfs locator APIs are to determine the correct region
device to find the cbfs files. Therefore, start directly using struct
region_device in the cbfs location paths. Update the users of the API
and leverage the default boot region device implementation for
apollolake.

Change-Id: I0158a095cc64c9900d8738f8ffd45ae4040575ea
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/36939
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Julius Werner <jwerner@chromium.org>
This commit is contained in:
Aaron Durbin
2019-11-18 12:35:21 -07:00
committed by Patrick Georgi
parent aeb652a4a0
commit fe338e2319
5 changed files with 32 additions and 59 deletions

View File

@@ -73,18 +73,22 @@ struct cbfs_props {
size_t size;
};
/* Default CBFS locator .locate() callback that locates "COREBOOT" region. */
int cbfs_default_props(struct cbfs_props *props);
/* Default CBFS locator .locate() callback that locates "COREBOOT" region. This
function is exposed to reduce code duplication in other parts of the code
base. To obtain the correct region device the selection process is required
by way of cbfs_boot_region_device(). */
int cbfs_default_region_device(struct region_device *rdev);
/* Return < 0 on error otherwise props are filled out accordingly. */
int cbfs_boot_region_properties(struct cbfs_props *props);
/* Select the boot region device from the cbfs locators.
Return < 0 on error, 0 on success. */
int cbfs_boot_region_device(struct region_device *rdev);
/* Object used to identify location of current cbfs to use for cbfs_boot_*
* operations. It's used by cbfs_boot_region_properties(). */
struct cbfs_locator {
const char *name;
/* Returns 0 on successful fill of cbfs properties. */
int (*locate)(struct cbfs_props *props);
int (*locate)(struct region_device *rdev);
};
#endif