summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Waters <justin.waters@timesys.com>2009-10-16 16:28:49 -0400
committerJustin Waters <justin.waters@timesys.com>2009-10-16 16:28:49 -0400
commitd3edb1fd150d6d656d18ebacc3b57e5aabd8c7a3 (patch)
treeac5055793bae278864ce7ddad667793e1d10091b
parenteea473d268548ffb8524bd41d0acce2acc2b2ec7 (diff)
Fix configuration so that multiple flash chips can be enabled2009.01-omapl138-200910162028
The original port only allowed you to enable the chip that contains the environment. This enables everything possible. It also adds configuration options to build for different environment locations by specifying the flash type during the configure step.
-rw-r--r--Makefile22
-rw-r--r--board/da8xx/da8xx-evm/Makefile1
-rw-r--r--board/da8xx/da8xx-evm/da850.c4
-rwxr-xr-xcpu/arm926ejs/da8xx/nand.c4
-rw-r--r--include/configs/da850_evm.h148
5 files changed, 104 insertions, 75 deletions
diff --git a/Makefile b/Makefile
index 38dbdb2cae..c483a88e0d 100644
--- a/Makefile
+++ b/Makefile
@@ -2715,10 +2715,28 @@ davinci_sffsdr_config : unconfig
davinci_sonata_config : unconfig
@$(MKCONFIG) $(@:_config=) arm arm926ejs sonata davinci davinci
+da850_omapl138_exp_spiflash_config \
+da850_omapl138_exp_config \
+da850_omapl138_evm_nand_config \
+da850_omapl138_evm_nor_config \
+da850_omapl138_evm_spiflash_config \
da850_omapl138_evm_config : unconfig
@mkdir -p $(obj)include
- echo "#define CONFIG_DA850_EVM" >> $(obj)include/config.h
- $(XECHO) "... configured for DA850/OMAP-L138 boot"
+ @if [ "$(findstring _exp,$@)" ] ; then \
+ echo "#define CONFIG_DA850_EXP" >> $(obj)include/config.h ; \
+ else \
+ echo "#define CONFIG_DA850_EVM" >> $(obj)include/config.h ; \
+ fi;
+ @if [ "$(findstring _nand,$@)" ] ; then \
+ echo "#define CONFIG_SYS_USE_NAND 1" >>$(obj)include/config.h ; \
+ $(XECHO) "... with environment variables in NAND FLASH" ; \
+ elif [ "$(findstring _nor,$@)" ] ; then \
+ echo "#define CONFIG_SYS_USE_NOR 1" >>$(obj)include/config.h ; \
+ $(XECHO) "... with environment variables in NOR FLASH" ; \
+ else \
+ echo "#define CONFIG_SYS_SPIFLASH 1" >>$(obj)include/config.h ; \
+ $(XECHO) "... with environment variables in SPI FLASH" ; \
+ fi;
@$(MKCONFIG) -a da850_evm arm arm926ejs da8xx-evm da8xx da8xx
da830_omapl137_evm_config : unconfig
diff --git a/board/da8xx/da8xx-evm/Makefile b/board/da8xx/da8xx-evm/Makefile
index 5d5c37a619..8c524d6c9c 100644
--- a/board/da8xx/da8xx-evm/Makefile
+++ b/board/da8xx/da8xx-evm/Makefile
@@ -29,6 +29,7 @@ LIB = $(obj)lib$(BOARD).a
COBJS-$(CONFIG_DA830_EVM) += da830.o
COBJS-$(CONFIG_DA850_EVM) += da850.o
+COBJS-$(CONFIG_DA850_EXP) += da850.o
COBJS := $(sort $(COBJS-y))
SOBJS := board_init.o
diff --git a/board/da8xx/da8xx-evm/da850.c b/board/da8xx/da8xx-evm/da850.c
index ccc464d124..94520d4f22 100644
--- a/board/da8xx/da8xx-evm/da850.c
+++ b/board/da8xx/da8xx-evm/da850.c
@@ -165,7 +165,7 @@ int board_init(void)
#endif
/* Async EMIF */
-#if defined(CONFIG_SYS_USE_NOR)
+#if defined(CONFIG_CMD_FLASH)
REG(PINMUX6) = 0x11111111;
REG(PINMUX7) = 0x11111111;
REG(PINMUX8) = 0x11111111;
@@ -175,7 +175,7 @@ int board_init(void)
REG(PINMUX12) = 0x11111111;
REG(PINMUX5) &= 0x00FFFFFF;
REG(PINMUX5) |= 0x11000000;
-#elif defined(CONFIG_SYS_USE_NAND)
+#else
REG(PINMUX7) &= 0xFF00F00F;
REG(PINMUX7) |= 0x00110110;
REG(PINMUX9) = 0x11111111;
diff --git a/cpu/arm926ejs/da8xx/nand.c b/cpu/arm926ejs/da8xx/nand.c
index 4e2d0c29e7..e1e56c435e 100755
--- a/cpu/arm926ejs/da8xx/nand.c
+++ b/cpu/arm926ejs/da8xx/nand.c
@@ -44,7 +44,7 @@
#include <common.h>
#include <asm/io.h>
-#ifdef CONFIG_SYS_USE_NAND
+#ifdef CONFIG_CMD_NAND
#if !defined(CONFIG_NAND_LEGACY)
#include <nand.h>
@@ -1029,4 +1029,4 @@ int board_nand_init(struct nand_chip *nand)
#else
#error "U-Boot legacy NAND support not available for DaVinci chips"
#endif
-#endif /* CONFIG_SYS_USE_NAND */
+#endif /* CONFIG_CMD_NAND */
diff --git a/include/configs/da850_evm.h b/include/configs/da850_evm.h
index 4de2e139f4..39429357a3 100644
--- a/include/configs/da850_evm.h
+++ b/include/configs/da850_evm.h
@@ -26,13 +26,6 @@
#include <asm/sizes.h>
#include <asm/arch/hardware.h>
-/*=======*/
-/* Board */
-/*=======*/
-#define CONFIG_USE_SPIFLASH
-#undef CONFIG_SYS_USE_NAND
-#undef CONFIG_SYS_USE_NOR
-
/*===================*/
/* SoC Configuration */
/*===================*/
@@ -110,14 +103,56 @@
#define CONFIG_BOOTP_SEND_HOSTNAME
#define CONFIG_NET_RETRY_COUNT 10
-/*=====================*/
-/* Flash & Environment */
-/*=====================*/
-#ifdef CONFIG_SYS_USE_NAND
-#undef CONFIG_ENV_IS_IN_FLASH
+/*=================*/
+/* U-Boot commands */
+/*=================*/
+#include <config_cmd_default.h>
+#define CONFIG_CMD_ENV
+#define CONFIG_CMD_ASKENV
+#define CONFIG_CMD_DHCP
+#define CONFIG_CMD_DIAG
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_SAVES
+#define CONFIG_CMD_MEMORY
+#undef CONFIG_CMD_BDI
+#undef CONFIG_CMD_FPGA
+#undef CONFIG_CMD_SETGETDCR
+#define CONFIG_CMD_EEPROM
+#define CONFIG_CMD_SF
+#define CONFIG_CMD_NAND
+#undef CONFIG_CMD_FLASH
+#undef CONFIG_CMD_IMLS
+
+/* Only enable NOR support if using it for environment */
+#ifdef CONFIG_SYS_USE_NOR
+#define CONFIG_CMD_FLASH
+#define CONFIG_CMD_IMLS
+#undef CONFIG_CMD_NAND
+#endif
+
+/* eXperimenter does not contain NAND or NOR*/
+#if defined(CONFIG_DA850_EXP)
+#undef CONFIG_CMD_FLASH
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_NAND
+#undef CONFIG_SYS_USE_NAND
+#undef CONFIG_SYS_USE_NOR
+#endif
+
+#ifdef CONFIG_USB_DA8XX
+#define CONFIG_CMD_USB /* inclue support for usb */
+#define CONFIG_CMD_STORAGE /* inclue support for usb */
+#define CONFIG_CMD_FAT /* inclue support for FAT/storage*/
+#define CONFIG_DOS_PARTITION /* inclue support for FAT/storage*/
+#endif
+
+/*=======*/
+/* Flash */
+/*=======*/
#define CONFIG_SYS_NO_FLASH
-#define CONFIG_ENV_IS_IN_NAND
-#define CONFIG_ENV_SIZE SZ_128K
+
+#if defined(CONFIG_CMD_NAND)
#define CONFIG_NAND_CS 2
#define CONFIG_SYS_NAND_BASE DAVINCI_ASYNC_EMIF_DATA_CE3_BASE
#define CONFIG_CLE_MASK 0x10
@@ -129,35 +164,55 @@
/* Max number of NAND devices */
#define CONFIG_SYS_MAX_NAND_DEVICE 1
#define NAND_MAX_CHIPS 1
-/* Block 0--not used by bootcode */
-#define CONFIG_ENV_OFFSET 0x0
-#endif
-#ifdef CONFIG_SYS_USE_NOR
-#define CONFIG_ENV_IS_IN_FLASH
+#elif defined(CONFIG_CMD_FLASH)
#undef CONFIG_SYS_NO_FLASH
#define CONFIG_FLASH_CFI_DRIVER
#define CONFIG_SYS_FLASH_CFI
#define CONFIG_SYS_MAX_FLASH_BANKS 1
#define CONFIG_SYS_FLASH_SECT_SZ 0x20000
-#define CONFIG_ENV_OFFSET (CONFIG_SYS_FLASH_SECT_SZ * 2)
#define CONFIG_SYS_FLASH_BASE DAVINCI_ASYNC_EMIF_DATA_CE2_BASE
#define PHYS_FLASH_SIZE 0x800000
#define CONFIG_SYS_MAX_FLASH_SECT (PHYS_FLASH_SIZE/CONFIG_SYS_FLASH_SECT_SZ)
-#define CONFIG_ENV_SECT_SIZE CONFIG_SYS_FLASH_SECT_SZ
#endif
-#ifdef CONFIG_USE_SPIFLASH
+#if defined(CONFIG_CMD_SF)
+#define CONFIG_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED
+#endif
+
+/*=============*/
+/* Environment */
+/*=============*/
+
+#if defined(CONFIG_SYS_SPIFLASH)
#undef CONFIG_ENV_IS_IN_FLASH
#undef CONFIG_ENV_IS_IN_NAND
#define CONFIG_ENV_IS_IN_SPI_FLASH
#define CONFIG_ENV_SIZE SZ_64K
#define CONFIG_ENV_OFFSET SZ_256K
#define CONFIG_ENV_SECT_SIZE SZ_64K
+
+#elif defined(CONFIG_SYS_USE_NAND)
+#undef CONFIG_ENV_IS_IN_FLASH
+#define CONFIG_ENV_SIZE SZ_128K
#define CONFIG_SYS_NO_FLASH
-#define CONFIG_ENV_SPI_MAX_HZ CONFIG_SF_DEFAULT_SPEED
-#endif
+#define CONFIG_ENV_IS_IN_NAND
+/* Block 0--not used by bootcode */
+#define CONFIG_ENV_OFFSET 0x0
+#elif defined(CONFIG_SYS_USE_NOR)
+#define CONFIG_ENV_IS_IN_FLASH
+#define CONFIG_ENV_OFFSET (CONFIG_SYS_FLASH_SECT_SZ * 2)
+#define CONFIG_ENV_SECT_SIZE CONFIG_SYS_FLASH_SECT_SZ
+
+#else
+#define CONFIG_ENV_IS_NOWHERE
+#define CONFIG_SYS_NO_FLASH
+#define CONFIG_ENV_SIZE SZ_16K
+#undef CONFIG_CMD_IMLS
+#undef CONFIG_CMD_FLASH
+#undef CONFIG_CMD_ENV
+#endif
/*==============================*/
/* USB configuration */
@@ -207,50 +262,5 @@
#define CONFIG_BOOTARGS "mem=32M console=ttyS2,115200n8 root=/dev/ram0 rw initrd=0xc1180000,4M ip=dhcp"
#define CONFIG_BOOTDELAY 3
-/*=================*/
-/* U-Boot commands */
-/*=================*/
-#include <config_cmd_default.h>
-#define CONFIG_CMD_ENV
-#define CONFIG_CMD_ASKENV
-#define CONFIG_CMD_DHCP
-#define CONFIG_CMD_DIAG
-#define CONFIG_CMD_MII
-#define CONFIG_CMD_PING
-#define CONFIG_CMD_SAVES
-#define CONFIG_CMD_MEMORY
-#undef CONFIG_CMD_BDI
-#undef CONFIG_CMD_FPGA
-#undef CONFIG_CMD_SETGETDCR
-#define CONFIG_CMD_EEPROM
-
-#ifdef CONFIG_SYS_USE_NAND
-#undef CONFIG_CMD_FLASH
-#undef CONFIG_CMD_IMLS
-#define CONFIG_CMD_NAND
-#endif
-
-#ifdef CONFIG_USE_SPIFLASH
-#undef CONFIG_CMD_IMLS
-#undef CONFIG_CMD_FLASH
-#define CONFIG_CMD_SF
-#endif
-
-#if !defined(CONFIG_SYS_USE_NAND) && !defined(CONFIG_SYS_USE_NOR) && !defined(CONFIG_USE_SPIFLASH)
-#define CONFIG_ENV_IS_NOWHERE
-#define CONFIG_SYS_NO_FLASH
-#define CONFIG_ENV_SIZE SZ_16K
-#undef CONFIG_CMD_IMLS
-#undef CONFIG_CMD_FLASH
-#undef CONFIG_CMD_ENV
-#endif
-
-#ifdef CONFIG_USB_DA8XX
-#define CONFIG_CMD_USB /* inclue support for usb */
-#define CONFIG_CMD_STORAGE /* inclue support for usb */
-#define CONFIG_CMD_FAT /* inclue support for FAT/storage*/
-#define CONFIG_DOS_PARTITION /* inclue support for FAT/storage*/
-#endif
-
#endif /* __CONFIG_H */