diff options
author | Jakub Czapiga <jacz@semihalf.com> | 2020-10-05 10:20:29 +0200 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2020-10-19 06:55:03 +0000 |
commit | a01138b7a4c5c4d6078d5995d81f5f3c31364db2 (patch) | |
tree | ef4d47cc739f288faeedc7992d76403622288a1d /src/include/imd_private.h | |
parent | 72cd6b0d01a8027f3b00d408c25db1ca6bb9d770 (diff) | |
download | coreboot-a01138b7a4c5c4d6078d5995d81f5f3c31364db2.tar.xz |
lib/imd: move struct definitions to a new header file
Make IMD private structures definitions accessible by other units.
To test IMD API correctness there is a need to access its internal
structure. It is only possible when private implementation is visible
in testing scope.
Signed-off-by: Jakub Czapiga <jacz@semihalf.com>
Change-Id: Iff87cc1990426bee6ac3cc1dfa6f85a787334976
Reviewed-on: https://review.coreboot.org/c/coreboot/+/46216
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
Diffstat (limited to 'src/include/imd_private.h')
-rw-r--r-- | src/include/imd_private.h | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/include/imd_private.h b/src/include/imd_private.h new file mode 100644 index 0000000000..43c3b7d50b --- /dev/null +++ b/src/include/imd_private.h @@ -0,0 +1,38 @@ +#ifndef _IMD_PRIVATE_H_ +#define _IMD_PRIVATE_H_ + +#include <commonlib/bsd/helpers.h> + +/* In-memory data structures. */ +struct imd_root_pointer { + uint32_t magic; + /* Relative to upper limit/offset. */ + int32_t root_offset; +} __packed; + +struct imd_entry { + uint32_t magic; + /* start is located relative to imd_root */ + int32_t start_offset; + uint32_t size; + uint32_t id; +} __packed; + +struct imd_root { + uint32_t max_entries; + uint32_t num_entries; + uint32_t flags; + uint32_t entry_align; + /* Used for fixing the size of an imd. Relative to the root. */ + int32_t max_offset; + struct imd_entry entries[0]; +} __packed; + +#define IMD_ROOT_PTR_MAGIC 0xc0389481 +#define IMD_ENTRY_MAGIC (~0xc0389481) +#define SMALL_REGION_ID CBMEM_ID_IMD_SMALL +#define LIMIT_ALIGN 4096 + +#define IMD_FLAG_LOCKED 1 + +#endif /* _IMD_PRIVATE_H */ |