From: Simon Glass <s...@chromium.org>

The v0.9 spec provides for a 16-byte header with fewer fields. Update
the implementation to match this.

This also adds an alignment field.

Signed-off-by: Simon Glass <s...@chromium.org>
Signed-off-by: Raymond Mao <raymond....@linaro.org>
---
 include/bloblist.h | 26 +++++++++++++-------------
 test/bloblist.c    |  6 +++---
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/include/bloblist.h b/include/bloblist.h
index 745bcdd227..57625ea004 100644
--- a/include/bloblist.h
+++ b/include/bloblist.h
@@ -164,30 +164,30 @@ enum bloblist_tag_t {
  * from the last.
  *
  * @magic: BLOBLIST_MAGIC
+ * @chksum: checksum for the entire bloblist allocated area. Since any of the
+ *     blobs can be altered after being created, this checksum is only valid
+ *     when the bloblist is finalised before jumping to the next stage of boot.
+ *     This is the value needed to make all chechksummed bytes sum to 0
  * @version: BLOBLIST_VERSION
  * @hdr_size: Size of this header, normally sizeof(struct bloblist_hdr). The
  *     first bloblist_rec starts at this offset from the start of the header
- * @size: Total size of the bloblist (non-zero if valid) including this header.
- *     The bloblist extends for this many bytes from the start of this header.
- *     When adding new records, the bloblist can grow up to this size.
+ * @align_log2: Power of two of the maximum alignment required by this list
  * @alloced: Total size allocated so far for this bloblist. This starts out as
  *     sizeof(bloblist_hdr) since we need at least that much space to store a
  *     valid bloblist
- * @chksum: checksum for the entire bloblist allocated area. Since any of the
- *     blobs can be altered after being created, this checksum is only valid
- *     when the bloblist is finalised before jumping to the next stage of boot.
- *     This is the value needed to make all checksummed bytes sum to 0
+ * @size: Total size of the bloblist (non-zero if valid) including this header.
+ *     The bloblist extends for this many bytes from the start of this header.
+ *     When adding new records, the bloblist can grow up to this size.
  */
 struct bloblist_hdr {
        u32 magic;
-       u32 version;
-       u32 hdr_size;
-       u32 _flags;
+       u8 chksum;
+       u8 version;
+       u8 hdr_size;
+       u8 align_log2;
 
-       u32 size;
        u32 alloced;
-       u32 _spare;
-       u32 chksum;
+       u32 size;
 };
 
 /**
diff --git a/test/bloblist.c b/test/bloblist.c
index 7e65f30518..be237c6155 100644
--- a/test/bloblist.c
+++ b/test/bloblist.c
@@ -78,7 +78,7 @@ static int bloblist_test_init(struct unit_test_state *uts)
        ut_asserteq(-EPROTONOSUPPORT, bloblist_check(TEST_ADDR,
                                                     TEST_BLOBLIST_SIZE));
 
-       ut_asserteq(-ENOSPC, bloblist_new(TEST_ADDR, 0x10));
+       ut_asserteq(-ENOSPC, bloblist_new(TEST_ADDR, 0xc));
        ut_asserteq(-EFAULT, bloblist_new(1, TEST_BLOBLIST_SIZE));
        ut_assertok(bloblist_new(TEST_ADDR, TEST_BLOBLIST_SIZE));
 
@@ -261,8 +261,8 @@ static int bloblist_test_cmd_info(struct unit_test_state 
*uts)
        run_command("bloblist info", 0);
        ut_assert_nextline("base:     %lx", (ulong)map_to_sysmem(hdr));
        ut_assert_nextline("size:     400    1 KiB");
-       ut_assert_nextline("alloced:  58     88 Bytes");
-       ut_assert_nextline("free:     3a8    936 Bytes");
+       ut_assert_nextline("alloced:  48     72 Bytes");
+       ut_assert_nextline("free:     3b8    952 Bytes");
        ut_assert_console_end();
        ut_unsilence_console(uts);
 
-- 
2.25.1

Reply via email to