summaryrefslogtreecommitdiff
path: root/src/lib/cbfs_core.h
diff options
context:
space:
mode:
authorEdward O'Callaghan <eocallaghan@alterapraxis.com>2014-11-11 12:22:04 +1100
committerEdward O'Callaghan <eocallaghan@alterapraxis.com>2014-11-19 00:13:26 +0100
commitcdabc880e1273076ff0786fbbe0ffdc2ea87eca4 (patch)
tree0c947afdfa92e009dcb59fce1a217593dfe97478 /src/lib/cbfs_core.h
parent129462da1b6b5c3b2649c99cc6c75fb275bff21d (diff)
downloadcoreboot-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.h52
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 */