cbmem: Add utility to get memory region occupied by cbmem
Change-Id: I8e57c23565f173afc0f4d450579b8bfb35aeb964 Signed-off-by: Alexandru Gagniuc <alexandrux.gagniuc@intel.com> Signed-off-by: Andrey Petrov <andrey.petrov@intel.com> Reviewed-on: https://review.coreboot.org/13363 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net> Reviewed-by: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
committed by
Aaron Durbin
parent
1e70cda320
commit
555d6c2161
@ -109,6 +109,8 @@ int cbmem_recovery(int s3resume);
|
|||||||
void *cbmem_add(u32 id, u64 size);
|
void *cbmem_add(u32 id, u64 size);
|
||||||
/* Find a cbmem entry of a given id. These return NULL on failure. */
|
/* Find a cbmem entry of a given id. These return NULL on failure. */
|
||||||
void *cbmem_find(u32 id);
|
void *cbmem_find(u32 id);
|
||||||
|
/* Get location and size of CBMEM region in memory */
|
||||||
|
void cbmem_region_used(uintptr_t *base, size_t *size);
|
||||||
|
|
||||||
/* Indicate to each hook if cbmem is being recovered or not. */
|
/* Indicate to each hook if cbmem is being recovered or not. */
|
||||||
typedef void (* const cbmem_init_hook_t)(int is_recovery);
|
typedef void (* const cbmem_init_hook_t)(int is_recovery);
|
||||||
|
@ -263,12 +263,19 @@ void *cbmem_entry_start(const struct cbmem_entry *entry)
|
|||||||
return imd_entry_at(imd, cbmem_to_imd(entry));
|
return imd_entry_at(imd, cbmem_to_imd(entry));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cbmem_region_used(uintptr_t *base, size_t *size)
|
||||||
|
{
|
||||||
|
void *baseptr;
|
||||||
|
imd_region_used(cbmem_get_imd(), &baseptr, size);
|
||||||
|
*base = (uintptr_t)baseptr;
|
||||||
|
}
|
||||||
|
|
||||||
void cbmem_add_bootmem(void)
|
void cbmem_add_bootmem(void)
|
||||||
{
|
{
|
||||||
void *base = NULL;
|
void *base = NULL;
|
||||||
size_t size = 0;
|
size_t size = 0;
|
||||||
|
|
||||||
imd_region_used(cbmem_get_imd(), &base, &size);
|
cbmem_region_used(base, &size);
|
||||||
bootmem_add_range((uintptr_t)base, size, LB_MEM_TABLE);
|
bootmem_add_range((uintptr_t)base, size, LB_MEM_TABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user