All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] Booting from NAND on MX51
@ 2010-02-10 11:08 Andreas Orfanos
  2010-02-10 11:43 ` Stefano Babic
  0 siblings, 1 reply; 12+ messages in thread
From: Andreas Orfanos @ 2010-02-10 11:08 UTC (permalink / raw)
  To: u-boot

Hi,

I am using mx51 3stack Freescale dev board, and I would like to make it
boot u-boot from NAND.
Does anyone have any local changes that enable that feature?

The u-boot works when is downloaded into RAM from Jtag, but can't get it
boot from NAND when I write it there. 
Do I have to develop nand_spl, early stage0 loader?

I have also tried to change the following setting on the standard
mx51_3stack config but still cannot get it boot from NAND.

#undef  CONFIG_SKIP_RELOCATE_UBOOT  
#define CONFIG_SYS_NAND_BOOT   1

Does anyone have u-boot booting from NAND on mx51? Any repository, or a
patch that might be available? 

Regards,
Andreas 


------------------------------------------------------------------------
-

/*
 * Copyright (C) 2007, Guennadi Liakhovetski <lg@denx.de>
 *
 * (C) Copyright 2009 Freescale Semiconductor, Inc.
 *
 * Configuration settings for the MX51-3Stack Freescale board.
 *
 * 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/mx51.h>

 /* High Level Configuration Options */
#define CONFIG_ARMV7		1	/* This is armv7 Cortex-A8 CPU
core */
#define CONFIG_SYS_APCS_GNU
#define CONFIG_L2_OFF

#define CONFIG_MXC		1
#define CONFIG_MX51_3DS		1	/* in a mx51 */
#define CONFIG_FLASH_HEADER	1
#define CONFIG_FLASH_HEADER_OFFSET 0x400
#define CONFIG_FLASH_HEADER_BARKER 0xB1

#undef  CONFIG_SKIP_RELOCATE_UBOOT  
#define CONFIG_SYS_NAND_BOOT   1

#define CONFIG_MX51_HCLK_FREQ	24000000	/* RedBoot says 26MHz */

#define CONFIG_ARCH_CPU_INIT
#define CONFIG_ARCH_MMU

#define CONFIG_DISPLAY_CPUINFO
#define CONFIG_DISPLAY_BOARDINFO

#define BOARD_LATE_INIT
/*
 * Disabled for now due to build problems under Debian and a significant
 * increase in the final file size: 144260 vs. 109536 Bytes.
 */

#define CONFIG_CMDLINE_TAG		1	/* enable passing of
ATAGs */
#define CONFIG_REVISION_TAG		1
#define CONFIG_SETUP_MEMORY_TAGS	1
#define CONFIG_INITRD_TAG		1

/*
 * Size of malloc() pool
 */
#define CONFIG_SYS_MALLOC_LEN		(CONFIG_ENV_SIZE + 2 * 1024 *
1024)
/* size in bytes reserved for initial data */
#define CONFIG_SYS_GBL_DATA_SIZE	128

/*
 * Hardware drivers
 */
#define CONFIG_MX51_UART	1
#define CONFIG_MX51_UART1	1

/* allow to overwrite serial and ethaddr */
#define CONFIG_ENV_OVERWRITE
#define CONFIG_CONS_INDEX	1
#define CONFIG_BAUDRATE		115200
#define CONFIG_SYS_BAUDRATE_TABLE	{9600, 19200, 38400, 57600,
115200}

/***********************************************************
 * Command definition
 ***********************************************************/

#include <config_cmd_default.h>

#define CONFIG_CMD_PING
#define CONFIG_CMD_DHCP
/* Enable below configure when supporting nand */
#define CONFIG_CMD_NAND
#define CONFIG_MXC_NAND
#define CONFIG_CMD_ENV
#define CMD_SAVEENV
#undef CONFIG_CMD_IMLS
#define CONFIG_CMD_MII
#define CONFIG_CMD_NET
#define CONFIG_NET_RETRY_COUNT	100
#define CONFIG_NET_MULTI
#define CONFIG_CMD_MMC

/*
 * MMC Configs
 */
#ifdef CONFIG_CMD_MMC
	#define CONFIG_MMC				1
	#define CONFIG_GENERIC_MMC
	#define CONFIG_IMX_MMC
	#define CONFIG_DOS_PARTITION	1
	#define CONFIG_CMD_FAT		1
#endif

/*
 * I2C Configs
 */
#define CONFIG_CMD_I2C          1
#define CONFIG_HARD_I2C         1
#define CONFIG_I2C_MXC          1
#define CONFIG_SYS_I2C_PORT             I2C2_BASE_ADDR
#define CONFIG_SYS_I2C_SPEED            400000
#define CONFIG_SYS_I2C_SLAVE            0xfe

#define CONFIG_BOOTDELAY	3

#define CONFIG_LOADADDR		0x90800000	/* loadaddr env var */

#define	CONFIG_EXTRA_ENV_SETTINGS
\
		"netdev=eth0\0"
\
		"ethprime=smc911x\0"
\
		"uboot_addr=0xa0000000\0"
\
		"uboot=u-boot.bin\0"			\
		"kernel=uImage\0"				\
		"nfsroot=/opt/eldk/arm\0"
\
		"bootargs_base=setenv bootargs
console=ttymxc0,115200\0"\
		"bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs
"\
			"ip=dhcp
nfsroot=${serverip}:${nfsroot},v3,tcp\0"\
		"bootcmd=run bootcmd_net\0"
\
		"bootcmd_net=run bootargs_base bootargs_nfs; "
\
			"tftpboot ${loadaddr} ${kernel}; bootm\0"
\
		"prg_uboot=tftpboot ${loadaddr} ${uboot}; "
\
			"protect off ${uboot_addr} 0xa003ffff; "
\
			"erase ${uboot_addr} 0xa003ffff; "
\
			"cp.b ${loadaddr} ${uboot_addr} ${filesize}; "
\
			"setenv filesize; saveenv\0"

/*Support LAN9217*/
#define CONFIG_SMC911X	1
#define CONFIG_SMC911X_16_BIT 1
#define CONFIG_SMC911X_BASE mx51_io_base_addr

/*
 * The MX51 3stack board seems to have a hardware "peculiarity"
confirmed under
 * U-Boot, RedBoot and Linux: the ethernet Rx signal is reaching the
CS8900A
 * controller inverted. The controller is capable of detecting and
correcting
 * this, but it needs 4 network packets for that. Which means, at
startup, you
 * will not receive answers to the first 4 packest, unless there have
been some
 * broadcasts on the network, or your board is on a hub. Reducing the
ARP
 * timeout from default 5 seconds to 200ms we speed up the initial TFTP
 * transfer, should the user wish one, significantly.
 */
#define CONFIG_ARP_TIMEOUT	200UL

/*
 * Miscellaneous configurable options
 */
#define CONFIG_SYS_LONGHELP		/* undef to save memory */
#define CONFIG_SYS_PROMPT		"MX51 U-Boot > "
#define CONFIG_AUTO_COMPLETE
#define CONFIG_SYS_CBSIZE		256	/* Console I/O Buffer
Size */
/* Print Buffer Size */
#define CONFIG_SYS_PBSIZE (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT)
+ 16)
#define CONFIG_SYS_MAXARGS	16	/* max number of command args */
#define CONFIG_SYS_BARGSIZE CONFIG_SYS_CBSIZE /* Boot Argument Buffer
Size */

#define CONFIG_SYS_MEMTEST_START	0	/* memtest works on */
#define CONFIG_SYS_MEMTEST_END		0x10000

#undef	CONFIG_SYS_CLKS_IN_HZ		/* everything, incl board info,
in Hz */

#define CONFIG_SYS_LOAD_ADDR		CONFIG_LOADADDR

#define CONFIG_SYS_HZ				1000

#define CONFIG_CMDLINE_EDITING	1

/*----------------------------------------------------------------------
-
 * 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_ADDR
/* TO1 boards */
/* #define PHYS_SDRAM_1_SIZE	(128 * 1024 * 1024) */
#define PHYS_SDRAM_1_SIZE	(512 * 1024 * 1024)

/*----------------------------------------------------------------------
-
 * FLASH and environment organization
 */
#define CONFIG_SYS_NO_FLASH

/*----------------------------------------------------------------------
-
 * NAND FLASH driver setup
 */
#define NAND_MAX_CHIPS         8
#define CONFIG_SYS_MAX_NAND_DEVICE    1
#define CONFIG_SYS_NAND_BASE          0x40000000
#define CONFIG_NAND_FW_16BIT	0 /* 1: 16bit 0: 8bit */

/* Monitor at beginning of flash */
#define CONFIG_FSL_ENV_IN_NAND
/* #define CONFIG_FSL_ENV_IN_NAND */

#define CONFIG_ENV_SECT_SIZE    (128 * 1024)
#define CONFIG_ENV_SIZE		CONFIG_ENV_SECT_SIZE
#if defined(CONFIG_FSL_ENV_IN_NAND)
	#define CONFIG_ENV_IS_IN_NAND 1
	#define CONFIG_ENV_OFFSET	0x100000
#elif defined(CONFIG_FSL_ENV_IN_MMC)
	#define CONFIG_ENV_IS_IN_MMC	1
	#define CONFIG_ENV_OFFSET	(768 * 1024)
#else
	#define CONFIG_ENV_IS_NOWHERE	1
#endif
/*
 * JFFS2 partitions
 */
#undef CONFIG_JFFS2_CMDLINE
#define CONFIG_JFFS2_DEV	"nand0"

#endif				/* __CONFIG_H */  

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-10 11:08 [U-Boot] Booting from NAND on MX51 Andreas Orfanos
@ 2010-02-10 11:43 ` Stefano Babic
  2010-02-10 12:23   ` Andreas Orfanos
  0 siblings, 1 reply; 12+ messages in thread
From: Stefano Babic @ 2010-02-10 11:43 UTC (permalink / raw)
  To: u-boot

Andreas Orfanos wrote:
> Hi,
> 

Hi Andreas,

> I am using mx51 3stack Freescale dev board, and I would like to make it
> boot u-boot from NAND.

I sent patches for the mx51evk (babbage board), but NAND is not (yet)
supported. This is the first MX51 board that should go into mainline.
The mx51_3stack is not supported in u-boot. How do you derive your
u-boot ? From my patches or from another source ?

> Does anyone have any local changes that enable that feature?
> 
> The u-boot works when is downloaded into RAM from Jtag, but can't get it
> boot from NAND when I write it there. 
> Do I have to develop nand_spl, early stage0 loader?

Well, I think the MX51 can boot without an early loader. The processor
can boot directly from NAND, if the correct boot pins are set and no
internal fuses are blown to avoid it, as stated in the user manual. The
processor reads an image in the IMX format - you see documentation in
doc/README.imximage. At the beginning of the image there must be a
suitable for your board DCD table, that enables the IOMUX for the NAND
controller and does the required setup. The image length is part of the
IMX header and the processor copies automatically from NAND to the RAM
address you set in the header and then jumps to the starting address.

As I said, I have not tried (the mx51evk has no NAND). However, booting
from other sources (SD card, SPI Flash) works in this way.

Regards,
Stefano

-- 
=====================================================================
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
=====================================================================

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-10 11:43 ` Stefano Babic
@ 2010-02-10 12:23   ` Andreas Orfanos
  2010-02-10 13:54     ` Eric Bénard
  0 siblings, 1 reply; 12+ messages in thread
From: Andreas Orfanos @ 2010-02-10 12:23 UTC (permalink / raw)
  To: u-boot

Hi Stefano,

Thank you for your reply. MX51 for u-boot can be found in launchpad.net
Here is the link:

https://launchpad.net/ubuntu/+source/uboot-imx/

It has MX51_3stack too. You need to download the source code, including
the diffs, and patch them appropriately.

I didn't know how the ROM MX51 boot loader works. Thanks for writing
that README document. 

I have set up the right switches on the board, and I can boot RedBoot
from nand without problem. 
Therefore it should be easy to do it on u-boot.

I can't find that imximage on 2009-08 u-boot you mention in your
document. 
But I found it on the latest git u-boot repository. I will check out the
latest u-boot and give it a go.

Regards,
Andreas


-----Original Message-----
From: Stefano Babic [mailto:sbabic at denx.de] 
Sent: 10 February 2010 11:44
To: Andreas Orfanos
Cc: u-boot at lists.denx.de
Subject: Re: [U-Boot] Booting from NAND on MX51

Andreas Orfanos wrote:
> Hi,
> 

Hi Andreas,

> I am using mx51 3stack Freescale dev board, and I would like to make
it
> boot u-boot from NAND.

I sent patches for the mx51evk (babbage board), but NAND is not (yet)
supported. This is the first MX51 board that should go into mainline.
The mx51_3stack is not supported in u-boot. How do you derive your
u-boot ? From my patches or from another source ?

> Does anyone have any local changes that enable that feature?
> 
> The u-boot works when is downloaded into RAM from Jtag, but can't get
it
> boot from NAND when I write it there. 
> Do I have to develop nand_spl, early stage0 loader?

Well, I think the MX51 can boot without an early loader. The processor
can boot directly from NAND, if the correct boot pins are set and no
internal fuses are blown to avoid it, as stated in the user manual. The
processor reads an image in the IMX format - you see documentation in
doc/README.imximage. At the beginning of the image there must be a
suitable for your board DCD table, that enables the IOMUX for the NAND
controller and does the required setup. The image length is part of the
IMX header and the processor copies automatically from NAND to the RAM
address you set in the header and then jumps to the starting address.

As I said, I have not tried (the mx51evk has no NAND). However, booting
from other sources (SD card, SPI Flash) works in this way.

Regards,
Stefano

-- 
=====================================================================
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
=====================================================================

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-10 12:23   ` Andreas Orfanos
@ 2010-02-10 13:54     ` Eric Bénard
  2010-02-10 14:55       ` Andreas Orfanos
  0 siblings, 1 reply; 12+ messages in thread
From: Eric Bénard @ 2010-02-10 13:54 UTC (permalink / raw)
  To: u-boot

Hi,

Le 10/02/2010 13:23, Andreas Orfanos a ?crit :
> I have set up the right switches on the board, and I can boot RedBoot
> from nand without problem.
> Therefore it should be easy to do it on u-boot.
>
we are booting u-boot from NAND on a custom iMX51 board (using mDDR and 
not DDR2), we started from Freescale's u-boot for 3 Stack board (it's in 
their BSP which can be downloaded from their website) and customized it 
to our hardware as we have many changes vs the reference design. We are 
using a customized DCD table to configure the CPU and it works fine.

Eric

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-10 13:54     ` Eric Bénard
@ 2010-02-10 14:55       ` Andreas Orfanos
  2010-02-10 15:16         ` Eric Bénard
  0 siblings, 1 reply; 12+ messages in thread
From: Andreas Orfanos @ 2010-02-10 14:55 UTC (permalink / raw)
  To: u-boot

Hi


Did you have to make changes in cpu/arm_cortex8/start.S file?
I don't have to make any changes on DCD table anyway, as it has already produced by freescale for mx51_3stack board

Regards
Andreas





-----Original Message-----
From: Eric B?nard [mailto:eric at eukrea.com] 
Sent: 10 February 2010 13:55
To: Andreas Orfanos
Cc: U-Boot user list; sbabic at denx.de
Subject: Re: [U-Boot] Booting from NAND on MX51

Hi,

Le 10/02/2010 13:23, Andreas Orfanos a ?crit :
> I have set up the right switches on the board, and I can boot RedBoot
> from nand without problem.
> Therefore it should be easy to do it on u-boot.
>
we are booting u-boot from NAND on a custom iMX51 board (using mDDR and 
not DDR2), we started from Freescale's u-boot for 3 Stack board (it's in 
their BSP which can be downloaded from their website) and customized it 
to our hardware as we have many changes vs the reference design. We are 
using a customized DCD table to configure the CPU and it works fine.

Eric

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-10 14:55       ` Andreas Orfanos
@ 2010-02-10 15:16         ` Eric Bénard
  2010-02-11 10:25           ` Andreas Orfanos
  0 siblings, 1 reply; 12+ messages in thread
From: Eric Bénard @ 2010-02-10 15:16 UTC (permalink / raw)
  To: u-boot

Hi Andreas,

Le 10/02/2010 15:55, Andreas Orfanos a ?crit :
> Did you have to make changes in cpu/arm_cortex8/start.S file?
we are using u-boot-2009.01 + freescale patches.
No change to start.S (except a small hack to turn on a led to check 
u-boot is properly loaded and run).

> I don't have to make any changes on DCD table anyway, as it has already produced by freescale for mx51_3stack board
>
I started with the DCD of Redboot for 3Stack as the one for the 3Stack 
in u-boot never worked here.
If you don't manage to get it running using RedBoot DCD, come back to me 
on next thursday where I should be able to extract some patches as I'm 
actually busy on an other subject.

Eric

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-10 15:16         ` Eric Bénard
@ 2010-02-11 10:25           ` Andreas Orfanos
  2010-02-11 11:45             ` Detlev Zundel
  2010-02-15 18:15             ` Andreas Orfanos
  0 siblings, 2 replies; 12+ messages in thread
From: Andreas Orfanos @ 2010-02-11 10:25 UTC (permalink / raw)
  To: u-boot

Hi Eric,

Thank you for the information. Yes, I have found 2 DCD errors when comparing RedBood DCDs with u-boot DCDs,
I fixed those error and now the MX51 ROM boot loader copies the u-boot code into RAM. 
Someone will need to double check those in Redboot with those in u-boot and update the u-boot code. 
See below the flash_header.S file that I am using.

Now the system copies code from NAND but crashes somewhere at the early stage.
Are any more switches that might need to be turned "on", or "off" in the mx51_3stack config file?

Regards,
Andreas


/*
 * Copyright 2009 Freescale Semiconductor, Inc.
 *
 * 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
 */

#include <config.h>
#include <asm/arch/mx51.h>
#include "board-mx51_3stack.h"

#ifdef	CONFIG_FLASH_HEADER
#ifndef CONFIG_FLASH_HEADER_OFFSET
# error "Must define the offset of flash header"
#endif
#define MXC_DCD_ITEM(i, type, addr, val)	\
dcd_node_##i:					\
	.word type			;	\
	.word addr			;	\
	.word val			;	\

.section ".text.flasheader", "x"
	b	_start
	.org	CONFIG_FLASH_HEADER_OFFSET
app_code_jump_v:	.word	_start
app_code_code_barker:	.word	CONFIG_FLASH_HEADER_BARKER
app_code_csf:		.word	(TEXT_BASE + 0x40000 - 0x1000)       //0
dcd_ptr_ptr:		.word	dcd_ptr
super_root_key:		.word	0
dcd_ptr:		.word	dcd_array_start
app_dest_ptr:		.word	TEXT_BASE
dcd_array_start:
magic:			.word	0xB17219E9
dcd_array_size:		.word	dcd_data_end - dcd_array_start - 8
/* DCD */
/* DDR2 IOMUX configuration */
MXC_DCD_ITEM(1, 4, IOMUXC_BASE_ADDR + 0x8a0, 0x200)
MXC_DCD_ITEM(2, 4, IOMUXC_BASE_ADDR + 0x50c, 0x20c5)
MXC_DCD_ITEM(3, 4, IOMUXC_BASE_ADDR + 0x510, 0x20c5)
MXC_DCD_ITEM(4, 4, IOMUXC_BASE_ADDR + 0x83c, 0x2)
MXC_DCD_ITEM(5, 4, IOMUXC_BASE_ADDR + 0x848, 0x2)
MXC_DCD_ITEM(6, 4, IOMUXC_BASE_ADDR + 0x4b8, 0xe7)
MXC_DCD_ITEM(7, 4, IOMUXC_BASE_ADDR + 0x4bc, 0x45)
MXC_DCD_ITEM(8, 4, IOMUXC_BASE_ADDR + 0x4c0, 0x45)
MXC_DCD_ITEM(9, 4, IOMUXC_BASE_ADDR + 0x4c4, 0x45)
MXC_DCD_ITEM(10, 4, IOMUXC_BASE_ADDR + 0x4c8, 0x45)
MXC_DCD_ITEM(11, 4, IOMUXC_BASE_ADDR + 0x820, 0x0)
MXC_DCD_ITEM(12, 4, IOMUXC_BASE_ADDR + 0x4a4, 0x3)
MXC_DCD_ITEM(13, 4, IOMUXC_BASE_ADDR + 0x4a8, 0x3)
MXC_DCD_ITEM(14, 4, IOMUXC_BASE_ADDR + 0x4ac, 0xe3)
MXC_DCD_ITEM(15, 4, IOMUXC_BASE_ADDR + 0x4b0, 0xe3)
MXC_DCD_ITEM(16, 4, IOMUXC_BASE_ADDR + 0x4b4, 0xe3)
MXC_DCD_ITEM(17, 4, IOMUXC_BASE_ADDR + 0x4cc, 0xe3)
MXC_DCD_ITEM(18, 4, IOMUXC_BASE_ADDR + 0x4d0, 0xe2)
/* Set drive strength to MAX */
#if 0
MXC_DCD_ITEM(19, 4, IOMUXC_BASE_ADDR + 0x82c, 0x6)
MXC_DCD_ITEM(20, 4, IOMUXC_BASE_ADDR + 0x8a4, 0x6)
MXC_DCD_ITEM(21, 4, IOMUXC_BASE_ADDR + 0x8ac, 0x6)
MXC_DCD_ITEM(22, 4, IOMUXC_BASE_ADDR + 0x8b8, 0x6)
#endif
/* 13 ROW, 10 COL, 32Bit, SREF=4 Micron Model */
/* CAS=3,  BL=4 */
MXC_DCD_ITEM(19, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL0, 0x82a20000)
MXC_DCD_ITEM(20, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL1, 0x82a20000)
MXC_DCD_ITEM(21, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDMISC, 0x000ad0d0)
MXC_DCD_ITEM(22, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCFG0, 0x333574aa)
MXC_DCD_ITEM(23, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCFG1, 0x333574aa)
/* Init DRAM on CS0 */
MXC_DCD_ITEM(24, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x04008008)
MXC_DCD_ITEM(25, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801a)
MXC_DCD_ITEM(26, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801b)
MXC_DCD_ITEM(27, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008019)  /* error*/
MXC_DCD_ITEM(28, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x07328018)
MXC_DCD_ITEM(29, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x04008008)
MXC_DCD_ITEM(30, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008010)
MXC_DCD_ITEM(31, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008010)
MXC_DCD_ITEM(32, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x06328018)
MXC_DCD_ITEM(33, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x03808019)
MXC_DCD_ITEM(34, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00428019) /* error */
MXC_DCD_ITEM(35, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008000)
/* Init DRAM on CS1 */
MXC_DCD_ITEM(36, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0400800c)
MXC_DCD_ITEM(37, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801e)
MXC_DCD_ITEM(38, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801f)
MXC_DCD_ITEM(39, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801d)
MXC_DCD_ITEM(40, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0732801c)
MXC_DCD_ITEM(41, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0400800c)
MXC_DCD_ITEM(42, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008014)
MXC_DCD_ITEM(43, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008014)
MXC_DCD_ITEM(44, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0632801c)
MXC_DCD_ITEM(45, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0380801d)
MXC_DCD_ITEM(46, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0042801d) 
MXC_DCD_ITEM(47, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008004)
MXC_DCD_ITEM(48, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL0, 0xb2a20000)
MXC_DCD_ITEM(49, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL1, 0xb2a20000)
MXC_DCD_ITEM(50, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDMISC, 0x000ad6d0)
MXC_DCD_ITEM(51, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLYGD, 0x90000000)
MXC_DCD_ITEM(52, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00000000)

MXC_DCD_ITEM(53, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY1, 0x00048000)
MXC_DCD_ITEM(54, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY2, 0x000e8000)
MXC_DCD_ITEM(55, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY3, 0x00ff8000)
MXC_DCD_ITEM(56, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY4, 0x00fa8000)
MXC_DCD_ITEM(57, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY5, 0x00ed8000)

dcd_data_end:
//image_len:		.word	0x80000
image_len:		.word	__u_boot_cmd_end - TEXT_BASE
#endif




-----Original Message-----
From: Eric B?nard [mailto:eric at eukrea.com] 
Sent: 10 February 2010 15:16
To: Andreas Orfanos
Cc: U-Boot user list
Subject: Re: [U-Boot] Booting from NAND on MX51

Hi Andreas,

Le 10/02/2010 15:55, Andreas Orfanos a ?crit :
> Did you have to make changes in cpu/arm_cortex8/start.S file?
we are using u-boot-2009.01 + freescale patches.
No change to start.S (except a small hack to turn on a led to check 
u-boot is properly loaded and run).

> I don't have to make any changes on DCD table anyway, as it has already produced by freescale for mx51_3stack board
>
I started with the DCD of Redboot for 3Stack as the one for the 3Stack 
in u-boot never worked here.
If you don't manage to get it running using RedBoot DCD, come back to me 
on next thursday where I should be able to extract some patches as I'm 
actually busy on an other subject.

Eric

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-11 10:25           ` Andreas Orfanos
@ 2010-02-11 11:45             ` Detlev Zundel
  2010-02-11 12:20               ` Stefano Babic
  2010-02-15 18:15             ` Andreas Orfanos
  1 sibling, 1 reply; 12+ messages in thread
From: Detlev Zundel @ 2010-02-11 11:45 UTC (permalink / raw)
  To: u-boot

Hi Andreas,

> Thank you for the information. Yes, I have found 2 DCD errors when comparing RedBood DCDs with u-boot DCDs,
> I fixed those error and now the MX51 ROM boot loader copies the u-boot code into RAM. 

Would you please be so kind and point those errors out explicitely so
that not every reader has to find the differences by himself?  Posting a
patch which does the updates would be an easy way to accompish this...

Thanks
  Detlev

-- 
Man is a fool, and woman, for tolerating him, is a damned fool
                       -- Mark Twain
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-11 11:45             ` Detlev Zundel
@ 2010-02-11 12:20               ` Stefano Babic
  0 siblings, 0 replies; 12+ messages in thread
From: Stefano Babic @ 2010-02-11 12:20 UTC (permalink / raw)
  To: u-boot

Detlev Zundel wrote:

> Would you please be so kind and point those errors out explicitely so
> that not every reader has to find the differences by himself?  Posting a
> patch which does the updates would be an easy way to accompish this...

And why not to send a patch to try to get the 3stack board supported in
the u-boot mainline ?

The differences reported are related to the Freescale's delivery, that
is at the end a u-boot fork (2009.01 or 2009.08), not part of mainline.

Regards,
Stefano

-- 
=====================================================================
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
=====================================================================

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-11 10:25           ` Andreas Orfanos
  2010-02-11 11:45             ` Detlev Zundel
@ 2010-02-15 18:15             ` Andreas Orfanos
  2010-02-15 21:49               ` John Rigby
  1 sibling, 1 reply; 12+ messages in thread
From: Andreas Orfanos @ 2010-02-15 18:15 UTC (permalink / raw)
  To: u-boot

Hi,

Finally managed to boot uboot from NAND. MX51_3STACK u-boot was crashing somewhere in the beginning. There, board_init() was calling setup_core_voltages() and there a write to clock registers was making u-boot to crash.
I removed that write and thing booted fine. I will make a patch with all the changes and post it here.

However, JFFS2 it seems quite slow, very slow... I have setup some mtdparts, one of them "mnt",  and then make a "chpart nand.mnt". When I try a list command "ls", the whole listing is incredibly slow.  

Does anyone ever seen issues NAND and Jff2 on MX51? Any u-boot version that you have seen it working?

Any advice will be very much appreciated.

Regards,
Andreas


-----Original Message-----
From: u-boot-bounces@lists.denx.de [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Andreas Orfanos
Sent: 11 February 2010 10:25
To: Eric B?nard
Cc: U-Boot user list
Subject: Re: [U-Boot] Booting from NAND on MX51

Hi Eric,

Thank you for the information. Yes, I have found 2 DCD errors when comparing RedBood DCDs with u-boot DCDs,
I fixed those error and now the MX51 ROM boot loader copies the u-boot code into RAM. 
Someone will need to double check those in Redboot with those in u-boot and update the u-boot code. 
See below the flash_header.S file that I am using.

Now the system copies code from NAND but crashes somewhere at the early stage.
Are any more switches that might need to be turned "on", or "off" in the mx51_3stack config file?

Regards,
Andreas


/*
 * Copyright 2009 Freescale Semiconductor, Inc.
 *
 * 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
 */

#include <config.h>
#include <asm/arch/mx51.h>
#include "board-mx51_3stack.h"

#ifdef	CONFIG_FLASH_HEADER
#ifndef CONFIG_FLASH_HEADER_OFFSET
# error "Must define the offset of flash header"
#endif
#define MXC_DCD_ITEM(i, type, addr, val)	\
dcd_node_##i:					\
	.word type			;	\
	.word addr			;	\
	.word val			;	\

.section ".text.flasheader", "x"
	b	_start
	.org	CONFIG_FLASH_HEADER_OFFSET
app_code_jump_v:	.word	_start
app_code_code_barker:	.word	CONFIG_FLASH_HEADER_BARKER
app_code_csf:		.word	(TEXT_BASE + 0x40000 - 0x1000)       //0
dcd_ptr_ptr:		.word	dcd_ptr
super_root_key:		.word	0
dcd_ptr:		.word	dcd_array_start
app_dest_ptr:		.word	TEXT_BASE
dcd_array_start:
magic:			.word	0xB17219E9
dcd_array_size:		.word	dcd_data_end - dcd_array_start - 8
/* DCD */
/* DDR2 IOMUX configuration */
MXC_DCD_ITEM(1, 4, IOMUXC_BASE_ADDR + 0x8a0, 0x200)
MXC_DCD_ITEM(2, 4, IOMUXC_BASE_ADDR + 0x50c, 0x20c5)
MXC_DCD_ITEM(3, 4, IOMUXC_BASE_ADDR + 0x510, 0x20c5)
MXC_DCD_ITEM(4, 4, IOMUXC_BASE_ADDR + 0x83c, 0x2)
MXC_DCD_ITEM(5, 4, IOMUXC_BASE_ADDR + 0x848, 0x2)
MXC_DCD_ITEM(6, 4, IOMUXC_BASE_ADDR + 0x4b8, 0xe7)
MXC_DCD_ITEM(7, 4, IOMUXC_BASE_ADDR + 0x4bc, 0x45)
MXC_DCD_ITEM(8, 4, IOMUXC_BASE_ADDR + 0x4c0, 0x45)
MXC_DCD_ITEM(9, 4, IOMUXC_BASE_ADDR + 0x4c4, 0x45)
MXC_DCD_ITEM(10, 4, IOMUXC_BASE_ADDR + 0x4c8, 0x45)
MXC_DCD_ITEM(11, 4, IOMUXC_BASE_ADDR + 0x820, 0x0)
MXC_DCD_ITEM(12, 4, IOMUXC_BASE_ADDR + 0x4a4, 0x3)
MXC_DCD_ITEM(13, 4, IOMUXC_BASE_ADDR + 0x4a8, 0x3)
MXC_DCD_ITEM(14, 4, IOMUXC_BASE_ADDR + 0x4ac, 0xe3)
MXC_DCD_ITEM(15, 4, IOMUXC_BASE_ADDR + 0x4b0, 0xe3)
MXC_DCD_ITEM(16, 4, IOMUXC_BASE_ADDR + 0x4b4, 0xe3)
MXC_DCD_ITEM(17, 4, IOMUXC_BASE_ADDR + 0x4cc, 0xe3)
MXC_DCD_ITEM(18, 4, IOMUXC_BASE_ADDR + 0x4d0, 0xe2)
/* Set drive strength to MAX */
#if 0
MXC_DCD_ITEM(19, 4, IOMUXC_BASE_ADDR + 0x82c, 0x6)
MXC_DCD_ITEM(20, 4, IOMUXC_BASE_ADDR + 0x8a4, 0x6)
MXC_DCD_ITEM(21, 4, IOMUXC_BASE_ADDR + 0x8ac, 0x6)
MXC_DCD_ITEM(22, 4, IOMUXC_BASE_ADDR + 0x8b8, 0x6)
#endif
/* 13 ROW, 10 COL, 32Bit, SREF=4 Micron Model */
/* CAS=3,  BL=4 */
MXC_DCD_ITEM(19, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL0, 0x82a20000)
MXC_DCD_ITEM(20, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL1, 0x82a20000)
MXC_DCD_ITEM(21, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDMISC, 0x000ad0d0)
MXC_DCD_ITEM(22, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCFG0, 0x333574aa)
MXC_DCD_ITEM(23, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCFG1, 0x333574aa)
/* Init DRAM on CS0 */
MXC_DCD_ITEM(24, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x04008008)
MXC_DCD_ITEM(25, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801a)
MXC_DCD_ITEM(26, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801b)
MXC_DCD_ITEM(27, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008019)  /* error*/
MXC_DCD_ITEM(28, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x07328018)
MXC_DCD_ITEM(29, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x04008008)
MXC_DCD_ITEM(30, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008010)
MXC_DCD_ITEM(31, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008010)
MXC_DCD_ITEM(32, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x06328018)
MXC_DCD_ITEM(33, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x03808019)
MXC_DCD_ITEM(34, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00428019) /* error */
MXC_DCD_ITEM(35, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008000)
/* Init DRAM on CS1 */
MXC_DCD_ITEM(36, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0400800c)
MXC_DCD_ITEM(37, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801e)
MXC_DCD_ITEM(38, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801f)
MXC_DCD_ITEM(39, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801d)
MXC_DCD_ITEM(40, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0732801c)
MXC_DCD_ITEM(41, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0400800c)
MXC_DCD_ITEM(42, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008014)
MXC_DCD_ITEM(43, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008014)
MXC_DCD_ITEM(44, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0632801c)
MXC_DCD_ITEM(45, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0380801d)
MXC_DCD_ITEM(46, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0042801d) 
MXC_DCD_ITEM(47, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008004)
MXC_DCD_ITEM(48, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL0, 0xb2a20000)
MXC_DCD_ITEM(49, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL1, 0xb2a20000)
MXC_DCD_ITEM(50, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDMISC, 0x000ad6d0)
MXC_DCD_ITEM(51, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLYGD, 0x90000000)
MXC_DCD_ITEM(52, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00000000)

MXC_DCD_ITEM(53, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY1, 0x00048000)
MXC_DCD_ITEM(54, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY2, 0x000e8000)
MXC_DCD_ITEM(55, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY3, 0x00ff8000)
MXC_DCD_ITEM(56, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY4, 0x00fa8000)
MXC_DCD_ITEM(57, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY5, 0x00ed8000)

dcd_data_end:
//image_len:		.word	0x80000
image_len:		.word	__u_boot_cmd_end - TEXT_BASE
#endif




-----Original Message-----
From: Eric B?nard [mailto:eric at eukrea.com] 
Sent: 10 February 2010 15:16
To: Andreas Orfanos
Cc: U-Boot user list
Subject: Re: [U-Boot] Booting from NAND on MX51

Hi Andreas,

Le 10/02/2010 15:55, Andreas Orfanos a ?crit :
> Did you have to make changes in cpu/arm_cortex8/start.S file?
we are using u-boot-2009.01 + freescale patches.
No change to start.S (except a small hack to turn on a led to check 
u-boot is properly loaded and run).

> I don't have to make any changes on DCD table anyway, as it has already produced by freescale for mx51_3stack board
>
I started with the DCD of Redboot for 3Stack as the one for the 3Stack 
in u-boot never worked here.
If you don't manage to get it running using RedBoot DCD, come back to me 
on next thursday where I should be able to extract some patches as I'm 
actually busy on an other subject.

Eric
_______________________________________________
U-Boot mailing list
U-Boot at lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-15 18:15             ` Andreas Orfanos
@ 2010-02-15 21:49               ` John Rigby
  2010-02-16 16:03                 ` Detlev Zundel
  0 siblings, 1 reply; 12+ messages in thread
From: John Rigby @ 2010-02-15 21:49 UTC (permalink / raw)
  To: u-boot

I would not be surprised to see JFFS2 problems with most i.MX
platforms.  The nand ecc includes the spare area so you can not write
a JFFS2 free marker to spare and then later write to the main area.
There are patches for JFFS2 in the kernel for this.  I don't know
about u-boot.

John

On Mon, Feb 15, 2010 at 11:15 AM, Andreas Orfanos <aorfanos@airvana.com> wrote:
> Hi,
>
> Finally managed to boot uboot from NAND. MX51_3STACK u-boot was crashing somewhere in the beginning. There, board_init() was calling setup_core_voltages() and there a write to clock registers was making u-boot to crash.
> I removed that write and thing booted fine. I will make a patch with all the changes and post it here.
>
> However, JFFS2 it seems quite slow, very slow... I have setup some mtdparts, one of them "mnt", ?and then make a "chpart nand.mnt". When I try a list command "ls", the whole listing is incredibly slow.
>
> Does anyone ever seen issues NAND and Jff2 on MX51? Any u-boot version that you have seen it working?
>
> Any advice will be very much appreciated.
>
> Regards,
> Andreas
>
>
> -----Original Message-----
> From: u-boot-bounces at lists.denx.de [mailto:u-boot-bounces at lists.denx.de] On Behalf Of Andreas Orfanos
> Sent: 11 February 2010 10:25
> To: Eric B?nard
> Cc: U-Boot user list
> Subject: Re: [U-Boot] Booting from NAND on MX51
>
> Hi Eric,
>
> Thank you for the information. Yes, I have found 2 DCD errors when comparing RedBood DCDs with u-boot DCDs,
> I fixed those error and now the MX51 ROM boot loader copies the u-boot code into RAM.
> Someone will need to double check those in Redboot with those in u-boot and update the u-boot code.
> See below the flash_header.S file that I am using.
>
> Now the system copies code from NAND but crashes somewhere at the early stage.
> Are any more switches that might need to be turned "on", or "off" in the mx51_3stack config file?
>
> Regards,
> Andreas
>
>
> /*
> ?* Copyright 2009 Freescale Semiconductor, Inc.
> ?*
> ?* 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
> ?*/
>
> #include <config.h>
> #include <asm/arch/mx51.h>
> #include "board-mx51_3stack.h"
>
> #ifdef ?CONFIG_FLASH_HEADER
> #ifndef CONFIG_FLASH_HEADER_OFFSET
> # error "Must define the offset of flash header"
> #endif
> #define MXC_DCD_ITEM(i, type, addr, val) ? ? ? ?\
> dcd_node_##i: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \
> ? ? ? ?.word type ? ? ? ? ? ? ? ? ? ? ?; ? ? ? \
> ? ? ? ?.word addr ? ? ? ? ? ? ? ? ? ? ?; ? ? ? \
> ? ? ? ?.word val ? ? ? ? ? ? ? ? ? ? ? ; ? ? ? \
>
> .section ".text.flasheader", "x"
> ? ? ? ?b ? ? ? _start
> ? ? ? ?.org ? ?CONFIG_FLASH_HEADER_OFFSET
> app_code_jump_v: ? ? ? ?.word ? _start
> app_code_code_barker: ? .word ? CONFIG_FLASH_HEADER_BARKER
> app_code_csf: ? ? ? ? ? .word ? (TEXT_BASE + 0x40000 - 0x1000) ? ? ? //0
> dcd_ptr_ptr: ? ? ? ? ? ?.word ? dcd_ptr
> super_root_key: ? ? ? ? .word ? 0
> dcd_ptr: ? ? ? ? ? ? ? ?.word ? dcd_array_start
> app_dest_ptr: ? ? ? ? ? .word ? TEXT_BASE
> dcd_array_start:
> magic: ? ? ? ? ? ? ? ? ?.word ? 0xB17219E9
> dcd_array_size: ? ? ? ? .word ? dcd_data_end - dcd_array_start - 8
> /* DCD */
> /* DDR2 IOMUX configuration */
> MXC_DCD_ITEM(1, 4, IOMUXC_BASE_ADDR + 0x8a0, 0x200)
> MXC_DCD_ITEM(2, 4, IOMUXC_BASE_ADDR + 0x50c, 0x20c5)
> MXC_DCD_ITEM(3, 4, IOMUXC_BASE_ADDR + 0x510, 0x20c5)
> MXC_DCD_ITEM(4, 4, IOMUXC_BASE_ADDR + 0x83c, 0x2)
> MXC_DCD_ITEM(5, 4, IOMUXC_BASE_ADDR + 0x848, 0x2)
> MXC_DCD_ITEM(6, 4, IOMUXC_BASE_ADDR + 0x4b8, 0xe7)
> MXC_DCD_ITEM(7, 4, IOMUXC_BASE_ADDR + 0x4bc, 0x45)
> MXC_DCD_ITEM(8, 4, IOMUXC_BASE_ADDR + 0x4c0, 0x45)
> MXC_DCD_ITEM(9, 4, IOMUXC_BASE_ADDR + 0x4c4, 0x45)
> MXC_DCD_ITEM(10, 4, IOMUXC_BASE_ADDR + 0x4c8, 0x45)
> MXC_DCD_ITEM(11, 4, IOMUXC_BASE_ADDR + 0x820, 0x0)
> MXC_DCD_ITEM(12, 4, IOMUXC_BASE_ADDR + 0x4a4, 0x3)
> MXC_DCD_ITEM(13, 4, IOMUXC_BASE_ADDR + 0x4a8, 0x3)
> MXC_DCD_ITEM(14, 4, IOMUXC_BASE_ADDR + 0x4ac, 0xe3)
> MXC_DCD_ITEM(15, 4, IOMUXC_BASE_ADDR + 0x4b0, 0xe3)
> MXC_DCD_ITEM(16, 4, IOMUXC_BASE_ADDR + 0x4b4, 0xe3)
> MXC_DCD_ITEM(17, 4, IOMUXC_BASE_ADDR + 0x4cc, 0xe3)
> MXC_DCD_ITEM(18, 4, IOMUXC_BASE_ADDR + 0x4d0, 0xe2)
> /* Set drive strength to MAX */
> #if 0
> MXC_DCD_ITEM(19, 4, IOMUXC_BASE_ADDR + 0x82c, 0x6)
> MXC_DCD_ITEM(20, 4, IOMUXC_BASE_ADDR + 0x8a4, 0x6)
> MXC_DCD_ITEM(21, 4, IOMUXC_BASE_ADDR + 0x8ac, 0x6)
> MXC_DCD_ITEM(22, 4, IOMUXC_BASE_ADDR + 0x8b8, 0x6)
> #endif
> /* 13 ROW, 10 COL, 32Bit, SREF=4 Micron Model */
> /* CAS=3, ?BL=4 */
> MXC_DCD_ITEM(19, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL0, 0x82a20000)
> MXC_DCD_ITEM(20, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL1, 0x82a20000)
> MXC_DCD_ITEM(21, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDMISC, 0x000ad0d0)
> MXC_DCD_ITEM(22, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCFG0, 0x333574aa)
> MXC_DCD_ITEM(23, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCFG1, 0x333574aa)
> /* Init DRAM on CS0 */
> MXC_DCD_ITEM(24, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x04008008)
> MXC_DCD_ITEM(25, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801a)
> MXC_DCD_ITEM(26, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801b)
> MXC_DCD_ITEM(27, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008019) ?/* error*/
> MXC_DCD_ITEM(28, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x07328018)
> MXC_DCD_ITEM(29, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x04008008)
> MXC_DCD_ITEM(30, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008010)
> MXC_DCD_ITEM(31, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008010)
> MXC_DCD_ITEM(32, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x06328018)
> MXC_DCD_ITEM(33, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x03808019)
> MXC_DCD_ITEM(34, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00428019) /* error */
> MXC_DCD_ITEM(35, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008000)
> /* Init DRAM on CS1 */
> MXC_DCD_ITEM(36, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0400800c)
> MXC_DCD_ITEM(37, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801e)
> MXC_DCD_ITEM(38, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801f)
> MXC_DCD_ITEM(39, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0000801d)
> MXC_DCD_ITEM(40, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0732801c)
> MXC_DCD_ITEM(41, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0400800c)
> MXC_DCD_ITEM(42, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008014)
> MXC_DCD_ITEM(43, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008014)
> MXC_DCD_ITEM(44, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0632801c)
> MXC_DCD_ITEM(45, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0380801d)
> MXC_DCD_ITEM(46, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x0042801d)
> MXC_DCD_ITEM(47, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00008004)
> MXC_DCD_ITEM(48, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL0, 0xb2a20000)
> MXC_DCD_ITEM(49, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCTL1, 0xb2a20000)
> MXC_DCD_ITEM(50, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDMISC, 0x000ad6d0)
> MXC_DCD_ITEM(51, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLYGD, 0x90000000)
> MXC_DCD_ITEM(52, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDSCR, 0x00000000)
>
> MXC_DCD_ITEM(53, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY1, 0x00048000)
> MXC_DCD_ITEM(54, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY2, 0x000e8000)
> MXC_DCD_ITEM(55, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY3, 0x00ff8000)
> MXC_DCD_ITEM(56, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY4, 0x00fa8000)
> MXC_DCD_ITEM(57, 4, ESDCTL_BASE_ADDR + ESDCTL_ESDCDLY5, 0x00ed8000)
>
> dcd_data_end:
> //image_len: ? ? ? ? ? ?.word ? 0x80000
> image_len: ? ? ? ? ? ? ?.word ? __u_boot_cmd_end - TEXT_BASE
> #endif
>
>
>
>
> -----Original Message-----
> From: Eric B?nard [mailto:eric at eukrea.com]
> Sent: 10 February 2010 15:16
> To: Andreas Orfanos
> Cc: U-Boot user list
> Subject: Re: [U-Boot] Booting from NAND on MX51
>
> Hi Andreas,
>
> Le 10/02/2010 15:55, Andreas Orfanos a ?crit :
>> Did you have to make changes in cpu/arm_cortex8/start.S file?
> we are using u-boot-2009.01 + freescale patches.
> No change to start.S (except a small hack to turn on a led to check
> u-boot is properly loaded and run).
>
>> I don't have to make any changes on DCD table anyway, as it has already produced by freescale for mx51_3stack board
>>
> I started with the DCD of Redboot for 3Stack as the one for the 3Stack
> in u-boot never worked here.
> If you don't manage to get it running using RedBoot DCD, come back to me
> on next thursday where I should be able to extract some patches as I'm
> actually busy on an other subject.
>
> Eric
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* [U-Boot] Booting from NAND on MX51
  2010-02-15 21:49               ` John Rigby
@ 2010-02-16 16:03                 ` Detlev Zundel
  0 siblings, 0 replies; 12+ messages in thread
From: Detlev Zundel @ 2010-02-16 16:03 UTC (permalink / raw)
  To: u-boot

Hi,

> I would not be surprised to see JFFS2 problems with most i.MX
> platforms.  The nand ecc includes the spare area so you can not write
> a JFFS2 free marker to spare and then later write to the main area.
> There are patches for JFFS2 in the kernel for this.  I don't know
> about u-boot.

Also as a general remark, JFFS2 on larger devices _is_ really slow.
Because of this _and_ the handling on blocks going bad on reads, we
therefore suggest to our customers to use UBI + UBIFS on NAND.

Best wishes
  Detlev

-- 
Man gelangt nicht dazu, gluecklich zu sein, aber man macht Feststellungen
ueber die Gruende, die uns daran hindern es zu sein.
                                                -- Marcel Proust
--
DENX Software Engineering GmbH,      MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich,  Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.de

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2010-02-16 16:03 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-10 11:08 [U-Boot] Booting from NAND on MX51 Andreas Orfanos
2010-02-10 11:43 ` Stefano Babic
2010-02-10 12:23   ` Andreas Orfanos
2010-02-10 13:54     ` Eric Bénard
2010-02-10 14:55       ` Andreas Orfanos
2010-02-10 15:16         ` Eric Bénard
2010-02-11 10:25           ` Andreas Orfanos
2010-02-11 11:45             ` Detlev Zundel
2010-02-11 12:20               ` Stefano Babic
2010-02-15 18:15             ` Andreas Orfanos
2010-02-15 21:49               ` John Rigby
2010-02-16 16:03                 ` Detlev Zundel

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.