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)
diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc
index ebb3076..557cd66 100644
--- a/src/lib/Makefile.inc
+++ b/src/lib/Makefile.inc
@@ -18,6 +18,7 @@
 #
 subdirs-y += loaders
 
+bootblock-y += assets.c
 bootblock-y += prog_loaders.c
 bootblock-y += prog_ops.c
 bootblock-y += cbfs.c
@@ -36,6 +37,7 @@
 bootblock-y += boot_device.c
 bootblock-y += fmap.c
 
+verstage-y += assets.c
 verstage-y += prog_loaders.c
 verstage-y += prog_ops.c
 verstage-y += delay.c
@@ -60,6 +62,7 @@
 verstage-$(CONFIG_GENERIC_GPIO_LIB) += gpio.c
 verstage-y += mem_pool.c
 
+romstage-y += assets.c
 romstage-y += prog_loaders.c
 romstage-y += prog_ops.c
 romstage-y += memchr.c
@@ -92,6 +95,7 @@
 
 romstage-$(CONFIG_GENERIC_UDELAY) += timer.c
 
+ramstage-y += assets.c
 ramstage-y += prog_loaders.c
 ramstage-y += prog_ops.c
 ramstage-y += hardwaremain.c