lib/fmap: provide RW region device support
Explicitly provide a RW view of an FMAP region. This is required for platforms which have separate implementations of a RO boot device and a RW boot device. BUG=chrome-os-partner:56151 Change-Id: Ibafa3dc534f53a3d90487f3190c0f8a2e82858c2 Signed-off-by: Aaron Durbin <adurbin@chromium.org> Reviewed-on: https://review.coreboot.org/16203 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh <furquan@google.com>
This commit is contained in:
parent
e4cc8cd00b
commit
bccaab8658
|
@ -27,6 +27,10 @@ int find_fmap_directory(struct region_device *fmrd);
|
||||||
* 0 on success, < 0 on error. */
|
* 0 on success, < 0 on error. */
|
||||||
int fmap_locate_area_as_rdev(const char *name, struct region_device *area);
|
int fmap_locate_area_as_rdev(const char *name, struct region_device *area);
|
||||||
|
|
||||||
|
/* Just like fmap_locate_area_as_rdev(), however the region device is
|
||||||
|
* created from the RW boot device. */
|
||||||
|
int fmap_locate_area_as_rdev_rw(const char *name, struct region_device *area);
|
||||||
|
|
||||||
/* Locate the named area in the fmap and fill in a region with the
|
/* Locate the named area in the fmap and fill in a region with the
|
||||||
* offset and size of that area within the boot media. Return 0 on success,
|
* offset and size of that area within the boot media. Return 0 on success,
|
||||||
* < 0 on error. */
|
* < 0 on error. */
|
||||||
|
|
|
@ -80,6 +80,16 @@ int fmap_locate_area_as_rdev(const char *name, struct region_device *area)
|
||||||
return boot_device_ro_subregion(&ar, area);
|
return boot_device_ro_subregion(&ar, area);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int fmap_locate_area_as_rdev_rw(const char *name, struct region_device *area)
|
||||||
|
{
|
||||||
|
struct region ar;
|
||||||
|
|
||||||
|
if (fmap_locate_area(name, &ar))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return boot_device_rw_subregion(&ar, area);
|
||||||
|
}
|
||||||
|
|
||||||
int fmap_locate_area(const char *name, struct region *ar)
|
int fmap_locate_area(const char *name, struct region *ar)
|
||||||
{
|
{
|
||||||
struct region_device fmrd;
|
struct region_device fmrd;
|
||||||
|
|
Loading…
Reference in New Issue