cbfs: Hook up to new CBFS implementation

This patch hooks coreboot up to the new commonlib/bsd CBFS
implementation. This is intended as the "minimum viable patch" that
makes the new implementation useable with the smallest amount of changes
-- that is why some of this may look a bit roundabout (returning the
whole metadata for a file but then just using that to fill out the rdevs
of the existing struct cbfsf). Future changes will migrate the higher
level CBFS APIs one-by-one to use the new implementation directly
(rather than translated into the results of the old one), at which point
this will become more efficient.

Change-Id: I4d112d1239475920de2d872dac179c245275038d
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/38422
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Julius Werner
2019-12-11 16:50:02 -08:00
committed by Philipp Deppenwiese
parent 0655f78041
commit 1cd013bec5
5 changed files with 64 additions and 44 deletions

30
src/include/cbfs_glue.h Normal file
View File

@@ -0,0 +1,30 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef _CBFS_GLUE_H_
#define _CBFS_GLUE_H_
#include <commonlib/region.h>
#include <console/console.h>
#define CBFS_ENABLE_HASHING 0
#define ERROR(...) printk(BIOS_ERR, "CBFS ERROR: " __VA_ARGS__)
#define LOG(...) printk(BIOS_ERR, "CBFS: " __VA_ARGS__)
#define DEBUG(...) do { \
if (CONFIG(DEBUG_CBFS)) \
printk(BIOS_SPEW, "CBFS DEBUG: " __VA_ARGS__); \
} while (0)
typedef const struct region_device *cbfs_dev_t;
static inline ssize_t cbfs_dev_read(cbfs_dev_t dev, void *buffer, size_t offset, size_t size)
{
return rdev_readat(dev, buffer, offset, size);
}
static inline size_t cbfs_dev_size(cbfs_dev_t dev)
{
return region_device_sz(dev);
}
#endif /* _CBFS_GLUE_H_ */