assets: abstract away the firmware assets used for booting

As there can be more than one source of firmware assets this
patch generalizes the notion of locating a particular asset.
struct asset is added along with some helper functions for
working on assets as a first class citizen.

Change-Id: I2ce575d1e5259aed4c34c3dcfd438abe9db1d7b9
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/10264
Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Tested-by: build bot (Jenkins)
This commit is contained in:
Aaron Durbin
2015-05-20 12:08:55 -05:00
committed by Patrick Georgi
parent 6a452eff90
commit ac12c66cf9
14 changed files with 272 additions and 155 deletions

View File

@ -454,7 +454,7 @@ void *selfload(struct prog *payload)
struct segment head;
void *data;
data = rdev_mmap_full(&payload->rdev);
data = rdev_mmap_full(prog_rdev(payload));
if (data == NULL)
return NULL;
@ -469,7 +469,10 @@ void *selfload(struct prog *payload)
printk(BIOS_SPEW, "Loaded segments\n");
rdev_munmap(&payload->rdev, data);
rdev_munmap(prog_rdev(payload), data);
/* Update the payload's area with the bounce buffer information. */
prog_set_area(payload, (void *)(uintptr_t)bounce_buffer, bounce_size);
/* Update the payload's area with the bounce buffer information. */
prog_set_area(payload, (void *)(uintptr_t)bounce_buffer, bounce_size);
@ -477,6 +480,6 @@ void *selfload(struct prog *payload)
return (void *)entry;
out:
rdev_munmap(&payload->rdev, data);
rdev_munmap(prog_rdev(payload), data);
return NULL;
}