summaryrefslogtreecommitdiff
path: root/include/environment.h
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-07-24 16:34:32 -0400
committerWolfgang Denk <wd@denx.de>2009-08-25 12:57:54 +0200
commit0a9e4e772123fe3e2bb499d7d2160c4cfd8a3a8d (patch)
treea752ffbef89c92cce902ce6c1de29884ef23598e /include/environment.h
parent02c9aa1d41f73fdcf8383a36cc0cbbfaf952855d (diff)
downloadu-boot-0a9e4e772123fe3e2bb499d7d2160c4cfd8a3a8d.tar.gz
u-boot-0a9e4e772123fe3e2bb499d7d2160c4cfd8a3a8d.tar.bz2
u-boot-0a9e4e772123fe3e2bb499d7d2160c4cfd8a3a8d.zip
unify {CONFIG_,}ENV_IS_EMBEDDED
Some boards have fallen out of sync by defining CONFIG_ENV_IS_EMBEDDED manually. While it is useful to have this available to the build system, let's do it automatically rather than forcing people to opt into it. Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Albin Tonnerre <albin.tonnerre@free-electrons.com> Signed-off-by: Wolfgang Denk <wd@denx.de>
Diffstat (limited to 'include/environment.h')
-rw-r--r--include/environment.h34
1 files changed, 28 insertions, 6 deletions
diff --git a/include/environment.h b/include/environment.h
index 5bed32fd47..b9924fd778 100644
--- a/include/environment.h
+++ b/include/environment.h
@@ -67,6 +67,10 @@
# if defined(CONFIG_ENV_ADDR_REDUND) || defined(CONFIG_ENV_OFFSET_REDUND)
# define CONFIG_SYS_REDUNDAND_ENVIRONMENT 1
# endif
+# ifdef CONFIG_ENV_IS_EMBEDDED
+# error "do not define CONFIG_ENV_IS_EMBEDDED in your board config"
+# error "it is calculated automatically for you"
+# endif
#endif /* CONFIG_ENV_IS_IN_FLASH */
#if defined(CONFIG_ENV_IS_IN_NAND)
@@ -79,9 +83,6 @@
# ifdef CONFIG_ENV_OFFSET_REDUND
# define CONFIG_SYS_REDUNDAND_ENVIRONMENT
# endif
-# ifdef CONFIG_ENV_IS_EMBEDDED
-# define ENV_IS_EMBEDDED 1
-# endif
#endif /* CONFIG_ENV_IS_IN_NAND */
#if defined(CONFIG_ENV_IS_IN_MG_DISK)
@@ -91,11 +92,32 @@
# ifndef CONFIG_ENV_SIZE
# error "Need to define CONFIG_ENV_SIZE when using CONFIG_ENV_IS_IN_MG_DISK"
# endif
-# ifdef CONFIG_ENV_IS_EMBEDDED
-# error "CONFIG_ENV_IS_EMBEDDED not supported when using CONFIG_ENV_IS_IN_MG_DISK"
-# endif
#endif /* CONFIG_ENV_IS_IN_MG_DISK */
+/* Embedded env is only supported for some flash types */
+#ifdef CONFIG_ENV_IS_EMBEDDED
+# if !defined(CONFIG_ENV_IS_IN_FLASH) && \
+ !defined(CONFIG_ENV_IS_IN_NAND) && \
+ !defined(CONFIG_ENV_IS_IN_ONENAND)
+# error "CONFIG_ENV_IS_EMBEDDED not supported for your flash type"
+# endif
+#endif
+
+/*
+ * For the flash types where embedded env is supported, but it cannot be
+ * calculated automatically (i.e. NAND), take the board opt-in.
+ */
+#if defined(CONFIG_ENV_IS_EMBEDDED) && !defined(ENV_IS_EMBEDDED)
+# define ENV_IS_EMBEDDED 1
+#endif
+
+/* The build system likes to know if the env is embedded */
+#ifdef DO_DEPS_ONLY
+# ifdef ENV_IS_EMBEDDED
+# define CONFIG_ENV_IS_EMBEDDED
+# endif
+#endif
+
#include "compiler.h"
#ifdef CONFIG_SYS_REDUNDAND_ENVIRONMENT