diff options
author | Edward O'Callaghan <eocallaghan@alterapraxis.com> | 2014-11-11 12:22:04 +1100 |
---|---|---|
committer | Edward O'Callaghan <eocallaghan@alterapraxis.com> | 2014-11-19 00:13:26 +0100 |
commit | cdabc880e1273076ff0786fbbe0ffdc2ea87eca4 (patch) | |
tree | 0c947afdfa92e009dcb59fce1a217593dfe97478 /src/lib/cbfs_core.h | |
parent | 129462da1b6b5c3b2649c99cc6c75fb275bff21d (diff) | |
download | coreboot-cdabc880e1273076ff0786fbbe0ffdc2ea87eca4.tar.xz |
lib/cbfs: Use linker symbols over .c include in cbfs.c
Change-Id: Ieb7f383c84401aab87adc833deebf289cd0c9a0f
Signed-off-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Reviewed-on: http://review.coreboot.org/7426
Tested-by: build bot (Jenkins)
Reviewed-by: Marc Jones <marc.jones@se-eng.com>
Diffstat (limited to 'src/lib/cbfs_core.h')
-rw-r--r-- | src/lib/cbfs_core.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/lib/cbfs_core.h b/src/lib/cbfs_core.h new file mode 100644 index 0000000000..c1eecd25a3 --- /dev/null +++ b/src/lib/cbfs_core.h @@ -0,0 +1,52 @@ +#ifndef __LIB_CBFS_CORE +#define __LIB_CBFS_CORE + +#include <cbfs.h> +#include <string.h> + +#ifdef LIBPAYLOAD +# include <libpayload-config.h> +# ifdef CONFIG_LZMA +# include <lzma.h> +# define CBFS_CORE_WITH_LZMA +# endif +# define CBFS_MINI_BUILD +#elif defined(__SMM__) +# define CBFS_MINI_BUILD +#elif defined(__BOOT_BLOCK__) + /* No LZMA in boot block. */ +#elif defined(__PRE_RAM__) && !CONFIG_COMPRESS_RAMSTAGE + /* No LZMA in romstage if ramstage is not compressed. */ +#else +# define CBFS_CORE_WITH_LZMA +# include <lib.h> +#endif + +#include <cbfs.h> +#include <string.h> +#include <cbmem.h> + +#ifdef LIBPAYLOAD +# include <stdio.h> +# define DEBUG(x...) +# define LOG(x...) printf(x) +# define ERROR(x...) printf(x) +#else +# include <console/console.h> +# define ERROR(x...) printk(BIOS_ERR, "CBFS: " x) +# define LOG(x...) printk(BIOS_INFO, "CBFS: " x) +# if CONFIG_DEBUG_CBFS +# define DEBUG(x...) printk(BIOS_SPEW, "CBFS: " x) +# else +# define DEBUG(x...) +# endif +#endif + +#if defined(CONFIG_CBFS_HEADER_ROM_OFFSET) && (CONFIG_CBFS_HEADER_ROM_OFFSET) +# define CBFS_HEADER_ROM_ADDRESS (CONFIG_CBFS_HEADER_ROM_OFFSET) +#else +// Indirect address: only works on 32bit top-aligned systems. +# define CBFS_HEADER_ROM_ADDRESS (*(uint32_t *)0xfffffffc) +#endif + +#endif /* __LIB_CBFS_CORE */ |