Shelley Chen has uploaded this change for review. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
region_file_update_data: Change API to accept array of structs
Updating region_file_update_data to accept mutliple data buffers. This is useful for when we have the mrc_metadata and data in non-contiguous addresses, which is the case when we bypass the storing of mrc_cache data into the cbmem.
BUG=b:150502246 BRANCH=None TEST=reboot from ec console. Make sure memory training happens. reboot from ec console. Make sure that we don't do training again.
Change-Id: Ia530f7d428b9b07ce3a73e348016038d9daf4c15 Signed-off-by: Shelley Chen shchen@google.com --- M src/drivers/mrc_cache/mrc_cache.c M src/include/region_file.h M src/lib/region_file.c 3 files changed, 47 insertions(+), 15 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/45407/1
diff --git a/src/drivers/mrc_cache/mrc_cache.c b/src/drivers/mrc_cache/mrc_cache.c index 0e42120..4cfd921 100644 --- a/src/drivers/mrc_cache/mrc_cache.c +++ b/src/drivers/mrc_cache/mrc_cache.c @@ -419,9 +419,13 @@
printk(BIOS_DEBUG, "MRC: cache data '%s' needs update.\n", cr->name);
- if (region_file_update_data(&cache_file, - cbmem_entry_start(to_be_updated), - cbmem_entry_size(to_be_updated)) < 0) { + struct update_region_file_entry entries[1]; + struct update_region_file_entry cbmem_entry = { + .size = cbmem_entry_size(to_be_updated), + .data = cbmem_entry_start(to_be_updated), + }; + entries[0] = cbmem_entry; + if (region_file_update_data(&cache_file, entries, 1) < 0) { printk(BIOS_DEBUG, "MRC: failed to update '%s'.\n", cr->name); log_event_cache_update(cr->elog_slot, UPDATE_FAILURE); } else { @@ -544,7 +548,13 @@
/* Push an update that consists of 4 bytes that is smaller than the * MRC metadata as well as an invalid signature. */ - if (region_file_update_data(&cache_file, &invalid, sizeof(invalid)) < 0) + struct update_region_file_entry entries[1]; + struct update_region_file_entry invalid_entry = { + .size = sizeof(invalid), + .data = &invalid, + }; + entries[0] = invalid_entry; + if (region_file_update_data(&cache_file, entries, 1) < 0) printk(BIOS_ERR, "MRC: invalidation failed for '%s'.\n", name); }
diff --git a/src/include/region_file.h b/src/include/region_file.h index 063e0e0..b5767d8 100644 --- a/src/include/region_file.h +++ b/src/include/region_file.h @@ -31,9 +31,21 @@ */ int region_file_data(const struct region_file *f, struct region_device *rdev);
+/** + * Creating region file entry struct to insert multiple data buffers + * into the same region_file. + */ +struct update_region_file_entry { + /* size of this entry */ + int size; + /* data pointer */ + const void *data; +}; + /* Update region file with latest data. Returns < 0 on error, 0 on success. */ -int region_file_update_data(struct region_file *f, const void *buf, - size_t size); +int region_file_update_data(struct region_file *f, + struct update_region_file_entry *entries, + size_t num_entries);
/* Declared here for easy object allocation. */ struct region_file { diff --git a/src/lib/region_file.c b/src/lib/region_file.c index ce2ed30..8fce3f9 100644 --- a/src/lib/region_file.c +++ b/src/lib/region_file.c @@ -365,12 +365,16 @@ return 0; }
-static int commit_data(const struct region_file *f, const void *buf, - size_t size) +static int commit_data(const struct region_file *f, + struct update_region_file_entry *entries, + size_t num_entries) { size_t offset = block_to_bytes(region_file_data_begin(f)); - if (rdev_writeat(&f->rdev, buf, offset, size) < 0) - return -1; + for (int i = 0; i < num_entries; i++) { + if (rdev_writeat(&f->rdev, entries[i].data, offset, entries[i].size) < 0) + return -1; + offset += entries[i].size; + } return 0; }
@@ -399,8 +403,9 @@ return 0; }
-static int handle_update(struct region_file *f, size_t blocks, const void *buf, - size_t size) +static int handle_update(struct region_file *f, size_t blocks, + struct update_region_file_entry *entries, + size_t num_entries) { if (!update_can_fit(f, blocks)) { printk(BIOS_INFO, "REGF update can't fit. Will empty.\n"); @@ -413,7 +418,7 @@ return -1; }
- if (commit_data(f, buf, size)) { + if (commit_data(f, entries, num_entries)) { printk(BIOS_ERR, "REGF failed to commit data.\n"); return -1; } @@ -421,11 +426,16 @@ return 0; }
-int region_file_update_data(struct region_file *f, const void *buf, size_t size) +int region_file_update_data(struct region_file *f, + struct update_region_file_entry *entries, + size_t num_entries) { int ret; size_t blocks; + size_t size = 0;
+ for (int i = 0; i < num_entries; i++) + size += entries[i].size; blocks = bytes_to_block(ALIGN_UP(size, REGF_BLOCK_GRANULARITY));
while (1) { @@ -442,7 +452,7 @@ ret = -1; break; default: - ret = handle_update(f, blocks, buf, size); + ret = handle_update(f, blocks, entries, num_entries); break; }
Paul Menzel has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 1:
(4 comments)
https://review.coreboot.org/c/coreboot/+/45407/1//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/45407/1//COMMIT_MSG@8 PS1, Line 8: It’d be great to have a problem description in the beginning.
https://review.coreboot.org/c/coreboot/+/45407/1//COMMIT_MSG@9 PS1, Line 9: Updating Update
https://review.coreboot.org/c/coreboot/+/45407/1/src/include/region_file.h File src/include/region_file.h:
https://review.coreboot.org/c/coreboot/+/45407/1/src/include/region_file.h@3... PS1, Line 34: /** /*
https://review.coreboot.org/c/coreboot/+/45407/1/src/include/region_file.h@3... PS1, Line 35: Creating Create
Hello build bot (Jenkins),
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/45407
to look at the new patch set (#2).
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
region_file_update_data: Change API to accept array of structs
Update region_file_update_data to accept mutliple data buffers. This is useful for when we have the mrc_metadata and data in non-contiguous addresses, which is the case when we bypass the storing of mrc_cache data into the cbmem.
BUG=b:150502246 BRANCH=None TEST=reboot from ec console. Make sure memory training happens. reboot from ec console. Make sure that we don't do training again.
Change-Id: Ia530f7d428b9b07ce3a73e348016038d9daf4c15 Signed-off-by: Shelley Chen shchen@google.com --- M src/drivers/mrc_cache/mrc_cache.c M src/include/region_file.h M src/lib/region_file.c 3 files changed, 47 insertions(+), 15 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/45407/2
Shelley Chen has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 2:
(4 comments)
https://review.coreboot.org/c/coreboot/+/45407/1//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/45407/1//COMMIT_MSG@8 PS1, Line 8:
It’d be great to have a problem description in the beginning.
The problem is that sometimes we have non-contiguous data buffers and would like region_file_update_data to accommodate that. I did write that below. Are you asking to change the title?
https://review.coreboot.org/c/coreboot/+/45407/1//COMMIT_MSG@9 PS1, Line 9: Updating
Update
Done
https://review.coreboot.org/c/coreboot/+/45407/1/src/include/region_file.h File src/include/region_file.h:
https://review.coreboot.org/c/coreboot/+/45407/1/src/include/region_file.h@3... PS1, Line 34: /**
/*
Done
https://review.coreboot.org/c/coreboot/+/45407/1/src/include/region_file.h@3... PS1, Line 35: Creating
Create
Done
Werner Zeh has removed Name of user not set #1003096 from this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Removed reviewer null with the following votes:
* Verified+1 by Name of user not set (1003096)
Tim Wawrzynczak has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 2:
(2 comments)
https://review.coreboot.org/c/coreboot/+/45407/2/src/drivers/mrc_cache/mrc_c... File src/drivers/mrc_cache/mrc_cache.c:
https://review.coreboot.org/c/coreboot/+/45407/2/src/drivers/mrc_cache/mrc_c... PS2, Line 422: struct update_region_file_entry entries[1]; You should be able to just declare this as `struct update_region_file_entry entry` (for example), and then just call `region_file_update_data(&cache_file, &entry, 1) < )...` instead.
https://review.coreboot.org/c/coreboot/+/45407/2/src/drivers/mrc_cache/mrc_c... PS2, Line 551: struct update_region_file_entry entries[1]; same here
Hello build bot (Jenkins), Furquan Shaikh, Julius Werner,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/45407
to look at the new patch set (#3).
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
region_file_update_data: Change API to accept array of structs
Update region_file_update_data to accept mutliple data buffers. This is useful for when we have the mrc_metadata and data in non-contiguous addresses, which is the case when we bypass the storing of mrc_cache data into the cbmem.
BUG=b:150502246 BRANCH=None TEST=reboot from ec console. Make sure memory training happens. reboot from ec console. Make sure that we don't do training again.
Change-Id: Ia530f7d428b9b07ce3a73e348016038d9daf4c15 Signed-off-by: Shelley Chen shchen@google.com --- M src/drivers/mrc_cache/mrc_cache.c M src/include/region_file.h M src/lib/region_file.c 3 files changed, 43 insertions(+), 15 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/45407/3
Shelley Chen has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 3:
(2 comments)
https://review.coreboot.org/c/coreboot/+/45407/2/src/drivers/mrc_cache/mrc_c... File src/drivers/mrc_cache/mrc_cache.c:
https://review.coreboot.org/c/coreboot/+/45407/2/src/drivers/mrc_cache/mrc_c... PS2, Line 422: struct update_region_file_entry entries[1];
You should be able to just declare this as `struct update_region_file_entry entry` (for example), an […]
Done
https://review.coreboot.org/c/coreboot/+/45407/2/src/drivers/mrc_cache/mrc_c... PS2, Line 551: struct update_region_file_entry entries[1];
same here
Done
Tim Wawrzynczak has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 3:
(1 comment)
https://review.coreboot.org/c/coreboot/+/45407/3/src/include/region_file.h File src/include/region_file.h:
https://review.coreboot.org/c/coreboot/+/45407/3/src/include/region_file.h@4... PS3, Line 40: int size_t ?
Furquan Shaikh has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 3:
(5 comments)
https://review.coreboot.org/c/coreboot/+/45407/3/src/drivers/mrc_cache/mrc_c... File src/drivers/mrc_cache/mrc_cache.c:
https://review.coreboot.org/c/coreboot/+/45407/3/src/drivers/mrc_cache/mrc_c... PS3, Line 426: 1 ARRAY_SIZE(cbmem_entry)
https://review.coreboot.org/c/coreboot/+/45407/3/src/drivers/mrc_cache/mrc_c... PS3, Line 553: 1 ARRAY_SIZE(invalid_entry)
https://review.coreboot.org/c/coreboot/+/45407/3/src/include/region_file.h File src/include/region_file.h:
https://review.coreboot.org/c/coreboot/+/45407/3/src/include/region_file.h@4... PS3, Line 47: struct const struct
https://review.coreboot.org/c/coreboot/+/45407/3/src/lib/region_file.c File src/lib/region_file.c:
https://review.coreboot.org/c/coreboot/+/45407/3/src/lib/region_file.c@369 PS3, Line 369: struct const struct
https://review.coreboot.org/c/coreboot/+/45407/3/src/lib/region_file.c@407 PS3, Line 407: struct const struct
Hello build bot (Jenkins), Furquan Shaikh, Julius Werner,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/45407
to look at the new patch set (#4).
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
region_file_update_data: Change API to accept array of structs
Update region_file_update_data to accept mutliple data buffers. This is useful for when we have the mrc_metadata and data in non-contiguous addresses, which is the case when we bypass the storing of mrc_cache data into the cbmem.
BUG=b:150502246 BRANCH=None TEST=reboot from ec console. Make sure memory training happens. reboot from ec console. Make sure that we don't do training again.
Change-Id: Ia530f7d428b9b07ce3a73e348016038d9daf4c15 Signed-off-by: Shelley Chen shchen@google.com --- M src/drivers/mrc_cache/mrc_cache.c M src/include/region_file.h M src/lib/region_file.c 3 files changed, 46 insertions(+), 13 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/45407/4
Shelley Chen has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 4:
(6 comments)
https://review.coreboot.org/c/coreboot/+/45407/3/src/drivers/mrc_cache/mrc_c... File src/drivers/mrc_cache/mrc_cache.c:
https://review.coreboot.org/c/coreboot/+/45407/3/src/drivers/mrc_cache/mrc_c... PS3, Line 426: 1
ARRAY_SIZE(cbmem_entry)
Made region_file_update_data a wrapper for region_file_update_data_arr(), which takes multiple arrays of data.
https://review.coreboot.org/c/coreboot/+/45407/3/src/drivers/mrc_cache/mrc_c... PS3, Line 553: 1
ARRAY_SIZE(invalid_entry)
Made this a wrapper for region_file_update_data_arr.
https://review.coreboot.org/c/coreboot/+/45407/3/src/include/region_file.h File src/include/region_file.h:
https://review.coreboot.org/c/coreboot/+/45407/3/src/include/region_file.h@4... PS3, Line 40: int
size_t ?
Done
https://review.coreboot.org/c/coreboot/+/45407/3/src/include/region_file.h@4... PS3, Line 47: struct
const struct
Done
https://review.coreboot.org/c/coreboot/+/45407/3/src/lib/region_file.c File src/lib/region_file.c:
https://review.coreboot.org/c/coreboot/+/45407/3/src/lib/region_file.c@369 PS3, Line 369: struct
const struct
Done
https://review.coreboot.org/c/coreboot/+/45407/3/src/lib/region_file.c@407 PS3, Line 407: struct
const struct
Done
Shelley Chen has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 4:
(1 comment)
https://review.coreboot.org/c/coreboot/+/45407/1//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/45407/1//COMMIT_MSG@8 PS1, Line 8:
The problem is that sometimes we have non-contiguous data buffers and would like region_file_update_ […]
Please reopen if you still have questions.
Furquan Shaikh has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data: Change API to accept array of structs ......................................................................
Patch Set 4:
(4 comments)
https://review.coreboot.org/c/coreboot/+/45407/4//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/45407/4//COMMIT_MSG@9 PS4, Line 9: Update region_file_update_data to accept mutliple data buffers. This will have to be updated since you have a new function now and region_file_update_data still accepts the same parameters.
https://review.coreboot.org/c/coreboot/+/45407/4/src/drivers/mrc_cache/mrc_c... File src/drivers/mrc_cache/mrc_cache.c:
https://review.coreboot.org/c/coreboot/+/45407/4/src/drivers/mrc_cache/mrc_c... PS4, Line 423: Unrelated change?
https://review.coreboot.org/c/coreboot/+/45407/4/src/lib/region_file.c File src/lib/region_file.c:
https://review.coreboot.org/c/coreboot/+/45407/4/src/lib/region_file.c@479 PS4, Line 479: return (region_file_update_data_arr(f, &entry, 1) < 0) This can just be: return region_file_update_data_arr(f, &entry, 1);
https://review.coreboot.org/c/coreboot/+/45407/4/src/lib/region_file.c@480 PS4, Line 480: nit: blank line not required.
Hello build bot (Jenkins), Furquan Shaikh, Julius Werner,
I'd like you to reexamine a change. Please visit
https://review.coreboot.org/c/coreboot/+/45407
to look at the new patch set (#5).
Change subject: region_file_update_data_arr: Modify region_file with array of buffers ......................................................................
region_file_update_data_arr: Modify region_file with array of buffers
Add region_file_update_data_arr, which has the same functionality as region_file_update_data, but accepts mutliple data buffers. This is useful for when we have the mrc_metadata and data in non-contiguous addresses, which is the case when we bypass the storing of mrc_cache data into the cbmem.
BUG=b:150502246 BRANCH=None TEST=reboot from ec console. Make sure memory training happens. reboot from ec console. Make sure that we don't do training again.
Change-Id: Ia530f7d428b9b07ce3a73e348016038d9daf4c15 Signed-off-by: Shelley Chen shchen@google.com --- M src/include/region_file.h M src/lib/region_file.c 2 files changed, 43 insertions(+), 11 deletions(-)
git pull ssh://review.coreboot.org:29418/coreboot refs/changes/07/45407/5
Shelley Chen has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data_arr: Modify region_file with array of buffers ......................................................................
Patch Set 5:
(4 comments)
https://review.coreboot.org/c/coreboot/+/45407/4//COMMIT_MSG Commit Message:
https://review.coreboot.org/c/coreboot/+/45407/4//COMMIT_MSG@9 PS4, Line 9: Update region_file_update_data to accept mutliple data buffers.
This will have to be updated since you have a new function now and region_file_update_data still acc […]
Done
https://review.coreboot.org/c/coreboot/+/45407/4/src/drivers/mrc_cache/mrc_c... File src/drivers/mrc_cache/mrc_cache.c:
https://review.coreboot.org/c/coreboot/+/45407/4/src/drivers/mrc_cache/mrc_c... PS4, Line 423:
Unrelated change?
Ack. Reverted.
https://review.coreboot.org/c/coreboot/+/45407/4/src/lib/region_file.c File src/lib/region_file.c:
https://review.coreboot.org/c/coreboot/+/45407/4/src/lib/region_file.c@479 PS4, Line 479: return (region_file_update_data_arr(f, &entry, 1) < 0)
This can just be: […]
Done
https://review.coreboot.org/c/coreboot/+/45407/4/src/lib/region_file.c@480 PS4, Line 480:
nit: blank line not required.
Ack. Reverted.
Furquan Shaikh has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data_arr: Modify region_file with array of buffers ......................................................................
Patch Set 5: Code-Review+2
Shelley Chen has submitted this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data_arr: Modify region_file with array of buffers ......................................................................
region_file_update_data_arr: Modify region_file with array of buffers
Add region_file_update_data_arr, which has the same functionality as region_file_update_data, but accepts mutliple data buffers. This is useful for when we have the mrc_metadata and data in non-contiguous addresses, which is the case when we bypass the storing of mrc_cache data into the cbmem.
BUG=b:150502246 BRANCH=None TEST=reboot from ec console. Make sure memory training happens. reboot from ec console. Make sure that we don't do training again.
Change-Id: Ia530f7d428b9b07ce3a73e348016038d9daf4c15 Signed-off-by: Shelley Chen shchen@google.com Reviewed-on: https://review.coreboot.org/c/coreboot/+/45407 Reviewed-by: Furquan Shaikh furquan@google.com Tested-by: build bot (Jenkins) no-reply@coreboot.org --- M src/include/region_file.h M src/lib/region_file.c 2 files changed, 43 insertions(+), 11 deletions(-)
Approvals: build bot (Jenkins): Verified Furquan Shaikh: Looks good to me, approved
diff --git a/src/include/region_file.h b/src/include/region_file.h index 063e0e0..a3cb79d 100644 --- a/src/include/region_file.h +++ b/src/include/region_file.h @@ -31,9 +31,22 @@ */ int region_file_data(const struct region_file *f, struct region_device *rdev);
+/* + * Create region file entry struct to insert multiple data buffers + * into the same region_file. + */ +struct update_region_file_entry { + /* size of this entry */ + size_t size; + /* data pointer */ + const void *data; +}; + /* Update region file with latest data. Returns < 0 on error, 0 on success. */ -int region_file_update_data(struct region_file *f, const void *buf, - size_t size); +int region_file_update_data_arr(struct region_file *f, + const struct update_region_file_entry *entries, + size_t num_entries); +int region_file_update_data(struct region_file *f, const void *buf, size_t size);
/* Declared here for easy object allocation. */ struct region_file { diff --git a/src/lib/region_file.c b/src/lib/region_file.c index ce2ed30..4fe91b6 100644 --- a/src/lib/region_file.c +++ b/src/lib/region_file.c @@ -365,12 +365,16 @@ return 0; }
-static int commit_data(const struct region_file *f, const void *buf, - size_t size) +static int commit_data(const struct region_file *f, + const struct update_region_file_entry *entries, + size_t num_entries) { size_t offset = block_to_bytes(region_file_data_begin(f)); - if (rdev_writeat(&f->rdev, buf, offset, size) < 0) - return -1; + for (int i = 0; i < num_entries; i++) { + if (rdev_writeat(&f->rdev, entries[i].data, offset, entries[i].size) < 0) + return -1; + offset += entries[i].size; + } return 0; }
@@ -399,8 +403,9 @@ return 0; }
-static int handle_update(struct region_file *f, size_t blocks, const void *buf, - size_t size) +static int handle_update(struct region_file *f, size_t blocks, + const struct update_region_file_entry *entries, + size_t num_entries) { if (!update_can_fit(f, blocks)) { printk(BIOS_INFO, "REGF update can't fit. Will empty.\n"); @@ -413,7 +418,7 @@ return -1; }
- if (commit_data(f, buf, size)) { + if (commit_data(f, entries, num_entries)) { printk(BIOS_ERR, "REGF failed to commit data.\n"); return -1; } @@ -421,11 +426,16 @@ return 0; }
-int region_file_update_data(struct region_file *f, const void *buf, size_t size) +int region_file_update_data_arr(struct region_file *f, + const struct update_region_file_entry *entries, + size_t num_entries) { int ret; size_t blocks; + size_t size = 0;
+ for (int i = 0; i < num_entries; i++) + size += entries[i].size; blocks = bytes_to_block(ALIGN_UP(size, REGF_BLOCK_GRANULARITY));
while (1) { @@ -442,7 +452,7 @@ ret = -1; break; default: - ret = handle_update(f, blocks, buf, size); + ret = handle_update(f, blocks, entries, num_entries); break; }
@@ -459,3 +469,12 @@
return ret; } + +int region_file_update_data(struct region_file *f, const void *buf, size_t size) +{ + struct update_region_file_entry entry = { + .size = size, + .data = buf, + }; + return region_file_update_data_arr(f, &entry, 1); +}
9elements QA has posted comments on this change. ( https://review.coreboot.org/c/coreboot/+/45407 )
Change subject: region_file_update_data_arr: Modify region_file with array of buffers ......................................................................
Patch Set 6:
Automatic boot test returned (PASS/FAIL/TOTAL): 8/1/9 "QEMU x86 q35/ich9" (x86_32) using payload TianoCore : SUCCESS : https://lava.9esec.io/r/19609 "QEMU x86 q35/ich9" (x86_32) using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/19608 "QEMU x86 i440fx/piix4" (x86_64) using payload SeaBIOS : FAIL : https://lava.9esec.io/r/19607 "QEMU x86 i440fx/piix4" (x86_32) using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/19606 "QEMU AArch64" using payload LinuxBoot_u-root_kexec : SUCCESS : https://lava.9esec.io/r/19605 "HP Z220 SFF Workstation" (x86_32) using payload LinuxBoot_BusyBox_kexec : SUCCESS : https://lava.9esec.io/r/19613 "HP Z220 SFF Workstation" (x86_32) using payload LinuxBoot_BusyBox_kexec : SUCCESS : https://lava.9esec.io/r/19612 "HP Compaq 8200 Elite SFF PC" (x86_32) using payload TianoCore : SUCCESS : https://lava.9esec.io/r/19611 "HP Compaq 8200 Elite SFF PC" (x86_32) using payload SeaBIOS : SUCCESS : https://lava.9esec.io/r/19610
Please note: This test is under development and might not be accurate at all!