Skip to contentSkip to conversation

i.MX31: Add NAND support and new PDK board.

RFC PATCH Superseded Magnus Lilja 5 participants 17 messages Aug 6, 2008 – Aug 13, 2008

Subsystems (3)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover i.MX31: Add NAND support and new PDK board.

Hi all

This series of patches adds support for the NAND flash controller in the i.MX31 device and also introduces the Freescale i.MX31 PDK board.

The patches are based on Scott Wood's testing branch of the NAND git tree.

At the moment, the patch series does not add support for booting from NAND. This means that the PDK board support assumes that some other entity configures the SDRAM and loads U-boot into RAM (e.g. another bootloader or a JTAG debugger). Support for NAND boot is in progress and will be submitted later.

The NAND driver is based on Freescale's Linux driver from their BSP. I've cleaned it up a bit and made the (minor) modifications necessary for U-boot. Perhaps the driver should be cleaned up even more, there are some CONFIG_MTD_MXC_* leftovers in the driver.

I have tested the driver on the Litekit (small page NAND) and on the PDK (large page NAND) by having the U-boot environment placed in NAND.

Comments are welcome!

Regards, Magnus

#1 lore raw

RFC PATCH 1/5 i.MX31: Add NFC_BASE_ADDR definition.

---
 include/asm-arm/arch-mx31/mx31-regs.h |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)
include/asm-arm/arch-mx31/mx31-regs.h +11 -0
index 02b7dcb..6fc7606 100644
@@ -153,4 +153,15 @@
 #define CS5_BASE	0xB6000000
 #define PCMCIA_MEM_BASE	0xC0000000
 
+/*
+ * NAND controller
+ */
+#define NFC_BASE_ADDR	0xB8000000
+
+/*
+ * NFMS bit in RCSR register for pagesize of nandflash
+ */
+#define NFMS (*((volatile u32 *)CCM_RCSR))
+#define NFMS_BIT 30
+
 #endif /* __ASM_ARCH_MX31_REGS_H */
Signature · 1 line
1.5.2.4
#2 lore raw

RFC PATCH 2/5 i.MX31: Add reset_timer() and modify get_timer_masked().

This patch adds the reset_timer() function (needed by nand_base.c) and modifies the get_timer_masked() to work in the same way as the omap24xx function.

---
 cpu/arm1136/mx31/interrupts.c |   22 ++++++++++++++++++----
 1 files changed, 18 insertions(+), 4 deletions(-)
cpu/arm1136/mx31/interrupts.c +18 -4
index 21b77a5..b173919 100644
@@ -38,6 +38,9 @@
 #define GPTCR_CLKSOURCE_32 (4<<6)  /* Clock source */
 #define GPTCR_TEN       (1)     /* Timer enable */
 
+static ulong timestamp;
+static ulong lastinc;
+
 /* nothing really to do with interrupts, just starts up a counter. */
 int interrupt_init (void)
 {
@@ -54,14 +57,25 @@ int interrupt_init (void)
 
 void reset_timer_masked (void)
 {
-	GPTCR = 0;
-	GPTCR = GPTCR_CLKSOURCE_32 | GPTCR_TEN; /* Freerun Mode, PERCLK1 input */
+	lastinc = GPTCNT;
+	timestamp = 0;
+}
+
+void reset_timer(void)
+{
+	reset_timer_masked();
 }
 
 ulong get_timer_masked (void)
 {
-	ulong val = GPTCNT;
-	return val;
+	ulong now = GPTCNT;
+
+	if (now >= lastinc)
+		timestamp += (now - lastinc);
+	else
+		timestamp += (0xFFFFFFFF - lastinc) + now;
+	lastinc = now;
+	return timestamp;
 }
 
 ulong get_timer (ulong base)
Signature · 1 line
1.5.2.4
#3 lore raw

RFC PATCH 3/5 i.MX31: Add i.MX31 NAND Flash Controller driver.

Imported from Freescale's Linux NFC driver from the i.MX31 BSP release 5 (Linux 2.6.22.5) and the i.MX31 PDK BSP (Linux 2.6.24).

The code has been changed to conform (better) with the coding style in Linux/U-boot. Sections not used by U-boot have been removed.

The driver has been tested on i.MX31 Litekit (small page NAND) and i.MX31 PDK (large page NAND). Both boards have 8 bit wide NAND devices.
16 bit NAND devices have not been tested and probably requires a minor code change.

---
 cpu/arm1136/mx31/Makefile |    4 +-
 cpu/arm1136/mx31/mxc_nd.c | 1172 +++++++++++++++++++++++++++++++++++++++++++++
 cpu/arm1136/mx31/mxc_nd.h |  106 ++++
 3 files changed, 1281 insertions(+), 1 deletions(-)
cpu/arm1136/mx31/Makefile +3 -1
index b648ffd..bd654ee 100644
@@ -25,8 +25,10 @@ include $(TOPDIR)/config.mk
 
 LIB	= $(obj)lib$(SOC).a
 
-COBJS	= interrupts.o serial.o generic.o
+COBJS-y	= interrupts.o serial.o generic.o 
+COBJS-$(CONFIG_MX31_NAND) += mxc_nd.o
 
+COBJS	:= $(COBJS-y)
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(SOBJS) $(COBJS))
 
cpu/arm1136/mx31/mxc_nd.c new file +1172 -0

1,172 lines not on this page · raw message

cpu/arm1136/mx31/mxc_nd.h new file +106 -0

106 lines not on this page · raw message

Signature · 1 line
1.5.2.4
#4 lore raw

RFC PATCH 3/5 i.MX31: Add i.MX31 NAND Flash Controller driver.

Hi

Quoted 12 lines · Magnus Lilja

Imported from Freescale's Linux NFC driver from the i.MX31 BSP release 5 (Linux 2.6.22.5) and the i.MX31 PDK BSP (Linux 2.6.24).

The code has been changed to conform (better) with the coding style in Linux/U-boot. Sections not used by U-boot have been removed.

The driver has been tested on i.MX31 Litekit (small page NAND) and i.MX31 PDK (large page NAND). Both boards have 8 bit wide NAND devices.
16 bit NAND devices have not been tested and probably requires a minor code change.

Quoted 5 lines
---
 cpu/arm1136/mx31/Makefile |    4 +-
 cpu/arm1136/mx31/mxc_nd.c | 1172
 cpu/arm1136/mx31/mxc_nd.h |  106 ++++

A question regarding the placement of the mxc_nd.c file: Shall SoC NAND drivers be placed in drivers/mtd/nand or in cpu/<cputype>/<soc>/ ? I noticed that Guennadi Liakhovetski's patch placed a NAND driver in the mtd/nand directory (drivers/mtd/nand/s3c64xx.c).

Thanks, Magnus

#5 lore raw

RFC PATCH 3/5 i.MX31: Add i.MX31 NAND Flash Controller driver.

Hi Magnus,

Quoted 8 lines · Magnus Lilja
Quoted 3 lines
 cpu/arm1136/mx31/Makefile |    4 +-
 cpu/arm1136/mx31/mxc_nd.c | 1172
 cpu/arm1136/mx31/mxc_nd.h |  106 ++++

A question regarding the placement of the mxc_nd.c file: Shall SoC NAND drivers be placed in drivers/mtd/nand or in cpu/<cputype>/<soc>/ ? I noticed that Guennadi Liakhovetski's patch placed a NAND driver in the mtd/nand directory (drivers/mtd/nand/s3c64xx.c).

They should be placed in the drivers/mtd/nand directory. I will move the PPC4xx NAND driver to this directory soon too.

Best regards,
Stefan

=====================================================================
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80 Email: office at denx.de
=====================================================================

#6 lore raw

RFC PATCH 3/5 i.MX31: Add i.MX31 NAND Flash Controller driver.

Hi Stefan,

Quoted 7 lines · Stefan Roese

Hi Magnus,

Quoted 4 lines · Magnus Lilja
Quoted 3 lines
 cpu/arm1136/mx31/Makefile |    4 +-
 cpu/arm1136/mx31/mxc_nd.c | 1172
 cpu/arm1136/mx31/mxc_nd.h |  106 ++++
Quoted 7 lines
Quoted 4 lines

A question regarding the placement of the mxc_nd.c file: Shall SoC NAND drivers be placed in drivers/mtd/nand or in cpu/<cputype>/<soc>/ ? I noticed that Guennadi Liakhovetski's patch placed a NAND driver in the mtd/nand directory (drivers/mtd/nand/s3c64xx.c).

They should be placed in the drivers/mtd/nand directory. I will move the PPC4xx NAND driver to this directory soon too.

I'll move the i.MX31 driver into drivers/mtd/nand in the next version of the patch-set then.

Thanks, Magnus

#7 lore raw

RFC PATCH 4/5 i.MX31: Add NAND support in the i.MX31 Litekit config file.

In reply to Magnus Lilja
---
 include/configs/imx31_litekit.h |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
include/configs/imx31_litekit.h +12 -0
index ec4ed1e..a402007 100644
@@ -36,6 +36,8 @@
 #define CONFIG_MX31_HCLK_FREQ	26000000
 #define CONFIG_MX31_CLK32	32000
 
+#define CONFIG_MX31_NAND	1
+
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
 
@@ -87,6 +89,8 @@
 #define CONFIG_CMD_SPI
 #define CONFIG_CMD_DATE
 
+#define CONFIG_CMD_NAND
+
 #define CONFIG_BOOTDELAY	3
 
 #define CONFIG_NETMASK		255.255.255.0
@@ -172,4 +176,12 @@
 #undef CONFIG_JFFS2_CMDLINE
 #define CONFIG_JFFS2_DEV	"nor0"
 
+/*
+ * NAND flash
+ */
+
+#define NAND_MAX_CHIPS		1
+#define CFG_MAX_NAND_DEVICE	1
+#define CFG_NAND_BASE		0x40000000
+
 #endif /* __CONFIG_H */
Signature · 1 line
1.5.2.4
#8 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

Add support for NAND and ethernet on the Freescale i.MX31 PDK (a.k.a. 3DS) board.

Booting from NAND is not supported yet so U-boot relies on some other initial boot loader to set up SDRAM and clocks and copying U-boot to SDRAM.

---
 MAKEALL                       |    1 +
 Makefile                      |    3 +
 board/mx31pdk/Makefile        |   53 ++++++++++++
 board/mx31pdk/config.mk       |    1 +
 board/mx31pdk/lowlevel_init.S |   30 +++++++
 board/mx31pdk/mx31pdk.c       |   76 +++++++++++++++++
 board/mx31pdk/u-boot.lds      |   59 +++++++++++++
 include/configs/mx31pdk.h     |  186 +++++++++++++++++++++++++++++++++++++++++
 8 files changed, 409 insertions(+), 0 deletions(-)
MAKEALL +1 -0
index ee83cca..ac2d3a8 100755
@@ -515,6 +515,7 @@ LIST_ARM11="		\
 	imx31_litekit	\
 	imx31_phycore	\
 	mx31ads		\
+	mx31pdk		\
 "
 
 #########################################################################
Makefile +3 -0
index cb8c0f5..40bd9e1 100644
@@ -2683,6 +2683,9 @@ imx31_phycore_config	: unconfig
 mx31ads_config		: unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm1136 mx31ads NULL mx31
 
+mx31pdk_config		: unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm1136 mx31pdk NULL mx31
+
 omap2420h4_config	: unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4 NULL omap24xx
 
board/mx31pdk/Makefile new file +53 -0

53 lines not on this page · raw message

board/mx31pdk/config.mk new file +1 -0
new file mode 100644
index 0000000..d34dc02
@@ -0,0 +1 @@
+TEXT_BASE = 0x87f00000
board/mx31pdk/lowlevel_init.S new file +30 -0
new file mode 100644
index 0000000..a94ea7f
@@ -0,0 +1,30 @@
+/*
+ * (C) Copyright 2008 Magnus Lilja <[email protected]>
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * This is just to keep the linker happy.
+ */
+
+.globl lowlevel_init
+lowlevel_init:
+	mov	pc, lr
+
board/mx31pdk/mx31pdk.c new file +76 -0

76 lines not on this page · raw message

board/mx31pdk/u-boot.lds new file +59 -0

59 lines not on this page · raw message

include/configs/mx31pdk.h new file +186 -0

186 lines not on this page · raw message

Signature · 1 line
1.5.2.4
#9 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

Hi Magnus,

Quoted 8 lines · Magnus Lilja

Add support for NAND and ethernet on the Freescale i.MX31 PDK (a.k.a. 3DS) board.

Booting from NAND is not supported yet so U-boot relies on some other initial boot loader to set up SDRAM and clocks and copying U-boot to SDRAM.

---

<snip>

include/configs/mx31pdk.h line 105

Quoted 3 lines
include/configs/mx31pdk.h new file +3 -0
+#define CONFIG_NETMASK         255.255.255.0
+#define CONFIG_IPADDR          192.168.23.168
+#define CONFIG_SERVERIP                192.168.23.2

Please remove default network parms

Quoted 82 lines
include/configs/mx31pdk.h new file +81 -1
+
+#define        CONFIG_EXTRA_ENV_SETTINGS                                       \
+       "bootargs_base=setenv bootargs console=ttymxc0,115200\0"        \
+       "bootargs_nfs=setenv bootargs $(bootargs) root=/dev/nfs "       \
+               "ip=dhcp nfsroot=$(serverip):$(nfsrootfs),v3,tcp\0"     \
+       "bootcmd=run bootcmd_net\0"                                     \
+       "bootcmd_net=run bootargs_base bootargs_mtd bootargs_nfs; "     \
+               "tftpboot 0x80000000 uImage-mx31; bootm\0"
+
+#define CONFIG_DRIVER_SMC911X          1
+#define CONFIG_DRIVER_SMC911X_BASE     CS5_BASE
+#define CONFIG_DRIVER_SMC911X_32_BIT   1
+
+/*
+ * Miscellaneous configurable options
+ */
+#define CFG_LONGHELP           /* undef to save memory */
+#define CFG_PROMPT             "uboot> "
+#define CFG_CBSIZE             256  /* Console I/O Buffer Size */
+/* Print Buffer Size */
+#define CFG_PBSIZE             (CFG_CBSIZE+sizeof(CFG_PROMPT)+16)
+#define CFG_MAXARGS            16          /* max number of command args */
+#define CFG_BARGSIZE           CFG_CBSIZE  /* Boot Argument Buffer Size */
+
+#define CFG_MEMTEST_START      PHYS_SDRAM_1  /* memtest works on */
+#define CFG_MEMTEST_END                0x10000
+
+#undef CFG_CLKS_IN_HZ          /* everything, incl board info, in Hz */
+
+#define CFG_LOAD_ADDR          0x81000000 /* default load address */
+
+#define CFG_HZ                 CONFIG_MX31_CLK32
+
+#define CONFIG_CMDLINE_EDITING 1
+
+#undef CONFIG_CMD_IMLS
+
+/*-----------------------------------------------------------------------
+ * Stack sizes
+ *
+ * The stack sizes are set up in start.S using the settings below
+ */
+#define CONFIG_STACKSIZE       (128 * 1024) /* regular stack */
+
+/*-----------------------------------------------------------------------
+ * Physical Memory Map
+ */
+#define CONFIG_NR_DRAM_BANKS   1
+#define PHYS_SDRAM_1           CSD0_BASE
+#define PHYS_SDRAM_1_SIZE      (128 * 1024 * 1024)
+
+/*-----------------------------------------------------------------------
+ * FLASH and environment organization
+ */
+/* No NOR flash present */
+#define CFG_NO_FLASH           1
+
+/*
+ * NAND flash
+ */
+
+#define NAND_MAX_CHIPS         1
+#define CFG_MAX_NAND_DEVICE    1
+#define CFG_NAND_BASE          0x40000000
+
+/*
+ * Place U-boot environment right after the U-boot code.
+ */
+#define CFG_ENV_IS_IN_NAND     1
+#define CFG_ENV_OFFSET         0x40000
+/* CFG_ENV_SIZE has to be a multiple of the NAND block size */
+#define CFG_ENV_SIZE           (128 * 1024)
+
+/*
+ * JFFS2 partitions
+ */
+#undef CONFIG_JFFS2_CMDLINE
+#define CONFIG_JFFS2_DEV       "nand0"
+
+#endif /* __CONFIG_H */
+
--
Quoted 2 lines

1.5.2.4

regards,
Ben

#10 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

Hi Ben,

Quoted 9 lines · Ben Warren

Hi Magnus,

Quoted 6 lines · Magnus Lilja

Add support for NAND and ethernet on the Freescale i.MX31 PDK (a.k.a. 3DS) board.

Booting from NAND is not supported yet so U-boot relies on some other initial boot loader to set up SDRAM and clocks and copying U-boot to SDRAM.

Quoted 7 lines
Quoted 2 lines

---

<snip>

include/configs/mx31pdk.h line 105

Quoted 3 lines
include/configs/mx31pdk.h new file +3 -0
+#define CONFIG_NETMASK         255.255.255.0
+#define CONFIG_IPADDR          192.168.23.168
+#define CONFIG_SERVERIP                192.168.23.2

Please remove default network parms

Will do!

Thanks, Magnus

#11 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

In reply to Magnus Lilja
Quoted 35 lines · Magnus Lilja

Add support for NAND and ethernet on the Freescale i.MX31 PDK (a.k.a. 3DS) board.

Booting from NAND is not supported yet so U-boot relies on some other initial boot loader to set up SDRAM and clocks and copying U-boot to SDRAM.

---
 MAKEALL                       |    1 +
 Makefile                      |    3 +
 board/mx31pdk/Makefile        |   53 ++++++++++++
 board/mx31pdk/config.mk       |    1 +
 board/mx31pdk/lowlevel_init.S |   30 +++++++
 board/mx31pdk/mx31pdk.c       |   76 +++++++++++++++++
 board/mx31pdk/u-boot.lds      |   59 +++++++++++++
 include/configs/mx31pdk.h     |  186 +++++++++++++++++++++++++++++++++++++++++
 8 files changed, 409 insertions(+), 0 deletions(-)
MAKEALL +1 -0
index ee83cca..ac2d3a8 100755
@@ -515,6 +515,7 @@ LIST_ARM11="		\
 	imx31_litekit	\
 	imx31_phycore	\
 	mx31ads		\
+	mx31pdk		\
 "
 
 #########################################################################
Makefile +0 -0
index cb8c0f5..40bd9e1 100644

Makefile imx31_phycore_config : unconfig · line 2688

Quoted 6 lines
Makefile +3 -0
@@ -2683,6 +2683,9 @@ imx31_phycore_config	: unconfig
 mx31ads_config		: unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm1136 mx31ads NULL mx31
 
+mx31pdk_config		: unconfig
+	@$(MKCONFIG) $(@:_config=) arm arm1136 mx31pdk NULL mx31
+

I've just send a patch to move all freescale's mx31 board to vendor dir

so please replace with
+mx31pdk_config : unconfig
+ @$(MKCONFIG) $(@:_config=) arm arm1136 mx31pdk freescale mx31
+

board/mx31pdk/Makefile

Quoted 4 lines
Makefile +0 -0
 omap2420h4_config	: unconfig
 	@$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4 NULL omap24xx
 
board/mx31pdk/Makefile +0 -0

and move your board to
board/freescale/mx31pdk/

Quoted 47 lines
include/configs/mx31pdk.h new file +41 -0
new file mode 100644
index 0000000..d1f44ab
@@ -0,0 +1,186 @@
+/*
+ * (C) Copyright 2008 Magnus Lilja <[email protected]>
+ *
+ * (C) Copyright 2004
+ * Texas Instruments.
+ * Richard Woodruff <[email protected]>
+ * Kshitij Gupta <[email protected]>
+ *
+ * Configuration settings for the Freescale i.MX31 PDK board.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_H
+#define __CONFIG_H
+
+#include <asm/arch/mx31-regs.h>
+
+ /* High Level Configuration Options */
+#define CONFIG_ARM1136		1    /* This is an arm1136 CPU core */
+#define CONFIG_MX31		1    /* in a mx31 */
+#define CONFIG_MX31_HCLK_FREQ	26000000
+#define CONFIG_MX31_CLK32	32768
+
+#define CONFIG_MX31_NAND		1

include/configs/mx31pdk.h line 51

Quoted 10 lines
include/configs/mx31pdk.h new file +10 -0
+
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DISPLAY_BOARDINFO
+
+/* Temporarily disabled */
+#if 0
+#define CONFIG_OF_LIBFDT		1
+#define CONFIG_FIT			1
+#define CONFIG_FIT_VERBOSE		1
+#endif

so please remove

Quoted 38 lines
include/configs/mx31pdk.h new file +38 -0
+
+#define CONFIG_CMDLINE_TAG		1    /* enable passing of ATAGs */
+#define CONFIG_SETUP_MEMORY_TAGS	1
+#define CONFIG_INITRD_TAG		1
+
+/*
+ * Size of malloc() pool
+ * An extra 128kbyte is needed for the NAND Bad Block table.
+ */
+#define CFG_MALLOC_LEN		(CFG_ENV_SIZE + 128 * 1024 + 128 * 1024)
+#define CFG_GBL_DATA_SIZE	128  /* bytes reserved for initial data */
+
+/*
+ * Hardware drivers
+ */
+
+#define CONFIG_MX31_UART	1
+#define CFG_MX31_UART1		1
+
+#define CONFIG_HARD_SPI		1
+#define CONFIG_MXC_SPI		1
+#define CONFIG_MXC_SPI_IFACE	1
+
+#define CONFIG_RTC_MC13783	1
+
+/* allow to overwrite serial and ethaddr */
+#define CONFIG_ENV_OVERWRITE
+#define CONFIG_CONS_INDEX	1
+#define CONFIG_BAUDRATE		115200
+#define CFG_BAUDRATE_TABLE	{9600, 19200, 38400, 57600, 115200}
+
+/***********************************************************
+ * Command definition
+ ***********************************************************/
+
+#include <config_cmd_default.h>
+
+/* No support for NAND boot for i.MX31 PDK yet, so we rely on some other

include/configs/mx31pdk.h line 99

Quoted 10 lines
include/configs/mx31pdk.h new file +10 -0
+ * program to initialize the SDRAM.
+ */
+#define CONFIG_SKIP_LOWLEVEL_INIT
+
+#define CONFIG_CMD_MII
+#define CONFIG_CMD_PING
+#define CONFIG_CMD_SPI
+#define CONFIG_CMD_DATE
+
+#define CONFIG_CMD_NAND 1

why not
#define CONFIG_CMD_NAND

the check is ifdef

include/configs/mx31pdk.h line 141

Quoted 5 lines
include/configs/mx31pdk.h new file +5 -0
+#define CFG_HZ			CONFIG_MX31_CLK32
+
+#define CONFIG_CMDLINE_EDITING	1
+
+#undef CONFIG_CMD_IMLS

please regroup CONFIG_CMD_*

Best Regards,
J.

#12 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

Hi,

Quoted 26 lines · Jean-Christophe PLAGNIOL-VILLARD
Quoted 10 lines · Magnus Lilja

Add support for NAND and ethernet on the Freescale i.MX31 PDK (a.k.a. 3DS) board.

Booting from NAND is not supported yet so U-boot relies on some other initial boot loader to set up SDRAM and clocks and copying U-boot to SDRAM.

Makefile imx31_phycore_config : unconfig · line 2688

Quoted 6 lines
Makefile +3 -0
@@ -2683,6 +2683,9 @@ imx31_phycore_config    : unconfig
 mx31ads_config               : unconfig
      @$(MKCONFIG) $(@:_config=) arm arm1136 mx31ads NULL mx31
 
+mx31pdk_config               : unconfig
+     @$(MKCONFIG) $(@:_config=) arm arm1136 mx31pdk NULL mx31
+

I've just send a patch to move all freescale's mx31 board to vendor dir

so please replace with

Makefile +3 -0
+mx31pdk_config         : unconfig
+       @$(MKCONFIG) $(@:_config=) arm arm1136 mx31pdk freescale mx31
+
Quoted 3 lines
Makefile +0 -0
 omap2420h4_config    : unconfig
      @$(MKCONFIG) $(@:_config=) arm arm1136 omap2420h4 NULL omap24xx
 
Quoted 3 lines

board/mx31pdk/Makefile

Quoted 1 line
board/mx31pdk/Makefile +0 -0

and move your board to
board/freescale/mx31pdk/

Ok.

<snip>

Quoted 10 lines

board/mx31pdk/Makefile

Quoted 9 lines
board/mx31pdk/Makefile +9 -0
+#define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_DISPLAY_BOARDINFO
+
+/* Temporarily disabled */
+#if 0
+#define CONFIG_OF_LIBFDT             1
+#define CONFIG_FIT                   1
+#define CONFIG_FIT_VERBOSE           1
+#endif

so please remove

Ok.

Quoted 8 lines

board/mx31pdk/Makefile

Quoted 4 lines
board/mx31pdk/Makefile +4 -0
+#define CONFIG_CMD_SPI
+#define CONFIG_CMD_DATE
+
+#define CONFIG_CMD_NAND 1

why not
#define CONFIG_CMD_NAND

the check is ifdef

Ok.

Quoted 6 lines

board/mx31pdk/Makefile

Quoted 5 lines
board/mx31pdk/Makefile +5 -0
+#define CFG_HZ                       CONFIG_MX31_CLK32
+
+#define CONFIG_CMDLINE_EDITING       1
+
+#undef CONFIG_CMD_IMLS

please regroup CONFIG_CMD_*

Ok.

Thanks, Magnus

#13 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

In reply to Magnus Lilja
Quoted 7 lines · In message <[email protected]> you wrote:

Add support for NAND and ethernet on the Freescale i.MX31 PDK (a.k.a. 3DS) board.

Booting from NAND is not supported yet so U-boot relies on some other initial boot loader to set up SDRAM and clocks and copying U-boot to SDRAM.

...

Quoted 3 lines
include/configs/mx31pdk.h new file +0 -0
@@ -0,0 +1,186 @@

...

include/configs/mx31pdk.h line 133

Quoted 2 lines
include/configs/mx31pdk.h new file +2 -0
+
+#undef	CFG_CLKS_IN_HZ		/* everything, incl board info, in Hz */

Please remove that line. Makes no sense to undef what doesn't exist.

include/configs/mx31pdk.h line 141

Quoted 7 lines
include/configs/mx31pdk.h new file +7 -0
+#define CFG_LOAD_ADDR		0x81000000 /* default load address */
+
+#define CFG_HZ			CONFIG_MX31_CLK32
+
+#define CONFIG_CMDLINE_EDITING	1
+
+#undef CONFIG_CMD_IMLS

Why do you want to disable the "imls" command?

...

Quoted 1 line

+#undef CONFIG_JFFS2_CMDLINE

Why do you disable this?

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
The first thing we do is kill all the lawyers.
(Shakespeare. II Henry VI, Act IV, scene ii)
#14 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

Hi

Quoted 9 lines · Wolfgang Denk
Quoted 7 lines · In message <[email protected]> you wrote:

Add support for NAND and ethernet on the Freescale i.MX31 PDK (a.k.a. 3DS) board.

Booting from NAND is not supported yet so U-boot relies on some other initial boot loader to set up SDRAM and clocks and copying U-boot to SDRAM.

...

Quoted 8 lines
Quoted 3 lines
include/configs/mx31pdk.h new file +0 -0
@@ -0,0 +1,186 @@

...

include/configs/mx31pdk.h line 133

Quoted 2 lines
include/configs/mx31pdk.h new file +2 -0
+
+#undef       CFG_CLKS_IN_HZ          /* everything, incl board info, in Hz */

Please remove that line. Makes no sense to undef what doesn't exist.

Ok (quite a number of board configs have this #undef and some have a #define CFG_CLKS_IN_HZ).

Quoted 9 lines

include/configs/mx31pdk.h line 141

Quoted 7 lines
include/configs/mx31pdk.h new file +7 -0
+#define CFG_LOAD_ADDR                0x81000000 /* default load address */
+
+#define CFG_HZ                       CONFIG_MX31_CLK32
+
+#define CONFIG_CMDLINE_EDITING       1
+
+#undef CONFIG_CMD_IMLS

Why do you want to disable the "imls" command?

Because I get compilation errors from cmd_bootm.c if it's enabled. I haven't checked the details but perhaps it's because there is no NOR flash defined in this config (no NOR present on the PDK board).

Quoted 4 lines

...

Quoted 1 line

+#undef CONFIG_JFFS2_CMDLINE

Why do you disable this?

Probably a leftover from either a compilation problem or copy&pasted from the config file I started with (some other i.MX31 board). I'll remove the line if I don't run into problems, it seems to compile OK if I remove the line.

Thanks, Magnus

#15 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

Quoted 7 lines · In message <[email protected]> you…
Quoted 4 lines
Quoted 2 lines

+#undef CFG_CLKS_IN_HZ /* everything, incl board info, in Hz */

Please remove that line. Makes no sense to undef what doesn't exist.

Ok (quite a number of board configs have this #undef and some have a #define CFG_CLKS_IN_HZ).

I know, but it makes no sense to copy bad style.

Quoted 7 lines
Quoted 3 lines
Quoted 1 line

+#undef CONFIG_CMD_IMLS

Why do you want to disable the "imls" command?

Because I get compilation errors from cmd_bootm.c if it's enabled. I haven't checked the details but perhaps it's because there is no NOR flash defined in this config (no NOR present on the PDK board).

Ah! This is an indication of a problem with your board. You rather fix this. "imls" is a standard command, and if you have to disablke it to compile U-Boot, then something is broken.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"The POP3 server service depends on the SMTP  server  service,  which
failed to start because of the following error: The operation comple-
ted successfully."                         -- Windows NT Server v3.51
#16 lore raw

RFC PATCH 5/5 i.MX31: Add basic support for Freescale's i.MX31 PDK board.

Quoted 5 lines · Wolfgang Denk
Quoted 4 lines · In message <[email protected]> you…
Quoted 3 lines
Quoted 1 line

+#undef CONFIG_CMD_IMLS

Why do you want to disable the "imls" command?

Quoted 7 lines
Quoted 3 lines

Because I get compilation errors from cmd_bootm.c if it's enabled. I haven't checked the details but perhaps it's because there is no NOR flash defined in this config (no NOR present on the PDK board).

Ah! This is an indication of a problem with your board. You rather fix this. "imls" is a standard command, and if you have to disablke it to compile U-Boot, then something is broken.

Well, I wonder if that's the case here. cmd_bootm.c needs the flash_info_t datatype (amongst other things) when CONFIG_CMD_IMLS is enabled. flash_info_t is found in include/flash.h but within a #ifndef CFG_NO_FLASH. CFG_NO_FLASH is, as far as I can see, defined for boards that don't have any NOR flash.

I haven't looked at all the config files for the boards that undef CONFIG_CMD_IMLS but at least a couple of AT91SAM926x and Davinci boards with only NAND flash present do this.

Regards, Magnus