drivers/smmstore: Expose region device
Allow other drivers to use the SMMSTORE region device. Change-Id: I6316b703829590bd6f41c3d4013b4a4660b9cbab Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/62014 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
This commit is contained in:
parent
21975e4a49
commit
4e00f15592
|
@ -1,4 +1,4 @@
|
||||||
ramstage-$(CONFIG_SMMSTORE) += store.c
|
all-$(CONFIG_SMMSTORE) += store.c
|
||||||
|
|
||||||
ifeq ($(CONFIG_SMMSTORE),y)
|
ifeq ($(CONFIG_SMMSTORE),y)
|
||||||
$(call src-to-obj,ramstage,$(dir)/store.c) : $(obj)/fmap_config.h
|
$(call src-to-obj,ramstage,$(dir)/store.c) : $(obj)/fmap_config.h
|
||||||
|
|
|
@ -88,6 +88,30 @@ static int lookup_store(struct region_device *rstore)
|
||||||
return rdev_chain(rstore, rdev, 0, region_device_sz(rdev));
|
return rdev_chain(rstore, rdev, 0, region_device_sz(rdev));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* this function is non reentrant */
|
||||||
|
int smmstore_lookup_region(struct region_device *rstore)
|
||||||
|
{
|
||||||
|
static int done;
|
||||||
|
static int ret;
|
||||||
|
static struct region_device rdev;
|
||||||
|
|
||||||
|
if (!done) {
|
||||||
|
|
||||||
|
done = 1;
|
||||||
|
|
||||||
|
if (fmap_locate_area_as_rdev_rw(SMMSTORE_REGION, &rdev)) {
|
||||||
|
printk(BIOS_WARNING,
|
||||||
|
"smm store: Unable to find SMM store FMAP region '%s'\n",
|
||||||
|
SMMSTORE_REGION);
|
||||||
|
ret = -1;
|
||||||
|
} else {
|
||||||
|
ret = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*rstore = rdev;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Read entire store into user provided buffer
|
* Read entire store into user provided buffer
|
||||||
*
|
*
|
||||||
|
|
|
@ -115,6 +115,8 @@ int smmstore_rawclear_region(uint32_t block_id);
|
||||||
#if ENV_RAMSTAGE
|
#if ENV_RAMSTAGE
|
||||||
int smmstore_get_info(struct smmstore_params_info *info);
|
int smmstore_get_info(struct smmstore_params_info *info);
|
||||||
#endif
|
#endif
|
||||||
|
struct region_device;
|
||||||
|
int smmstore_lookup_region(struct region_device *rstore);
|
||||||
|
|
||||||
/* Advertise SMMSTORE v2 support */
|
/* Advertise SMMSTORE v2 support */
|
||||||
struct lb_header;
|
struct lb_header;
|
||||||
|
|
Loading…
Reference in New Issue