public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] [PATCH 0/8] Updates for "socrates" board
@ 2008-06-06 13:42 Wolfgang Denk
  2008-06-06 13:42 ` [U-Boot-Users] [PATCH 01/08] Socrates: Fixed PCI bus frequency report Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot


The following series of patches contain updates for the "socrates"
board.

Note: most patches are 85xx stuff, but there are also some NAND
patches.

0001-Socrates-Fixed-PCI-bus-frequency-report.patch
0002-Socrates-config-file-cleanup.patch
0003-Added-the-upmconfig-function-for-85xx.patch
0004-Socrates-Added-FPGA-mapping.-LAWs-and-TLBs-cleanup.patch
0005-Socrates-added-missed-file-with-UPMA-configuration.patch
0006-NAND-Added-support-for-128-bit-OOB-adapted.patch
0007-Socrates-NAND-support-added.-Changed-the-U-Boot-bas.patch
0008-Socrates-Added-FPGA-base-address-update-in-FDT.patch

Best regards,

Wolfgang Denk

-- 
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
A meeting is an event at which the minutes are kept and the hours are
lost.

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

* [U-Boot-Users] [PATCH 01/08] Socrates: Fixed PCI bus frequency report.
  2008-06-06 13:42 [U-Boot-Users] [PATCH 0/8] Updates for "socrates" board Wolfgang Denk
@ 2008-06-06 13:42 ` Wolfgang Denk
  2008-06-06 13:42   ` [U-Boot-Users] [PATCH 02/08] Socrates: config file cleanup Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot

From: Sergei Poselenov <sposelenov@emcraft.com>

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
---
 board/socrates/socrates.c  |   15 +++++++++++++--
 include/configs/socrates.h |    3 ++-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/board/socrates/socrates.c b/board/socrates/socrates.c
index cb58994..0c61311 100644
--- a/board/socrates/socrates.c
+++ b/board/socrates/socrates.c
@@ -35,6 +35,7 @@
 #include <flash.h>
 #include <libfdt.h>
 #include <fdt_support.h>
+#include <asm/io.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -45,6 +46,9 @@ ulong flash_get_size (ulong base, int banknum);
 
 int checkboard (void)
 {
+	volatile ccsr_gur_t *gur = (void *)(CFG_MPC85xx_GUTS_ADDR);
+	char *src;
+	int f;
 	char *s = getenv("serial#");
 
 	puts("Board: Socrates");
@@ -55,8 +59,15 @@ int checkboard (void)
 	putc('\n');
 
 #ifdef CONFIG_PCI
-	printf ("PCI1:  32 bit, %d MHz (compiled)\n",
-		CONFIG_SYS_CLK_FREQ / 1000000);
+	/* Check the PCI_clk_sel bit */
+	if (in_be32(&gur->porpllsr) & (1<<15)) {
+		src = "SYSCLK";
+		f = CONFIG_SYS_CLK_FREQ;
+	} else {
+		src = "PCI_CLK";
+		f = CONFIG_PCI_CLK_FREQ;
+	}
+	printf ("PCI1:  32 bit, %d MHz (%s)\n",	f/1000000, src);
 #else
 	printf ("PCI1:  disabled\n");
 #endif
diff --git a/include/configs/socrates.h b/include/configs/socrates.h
index 23ed87f..6dc9eff 100644
--- a/include/configs/socrates.h
+++ b/include/configs/socrates.h
@@ -227,7 +227,8 @@
  */
 #define CFG_PCI_PHYS		0x80000000	/* 1G PCI TLB */
 
-
+/* PCI is clocked by the external source@33 MHz */
+#define CONFIG_PCI_CLK_FREQ	33000000
 #define CFG_PCI1_MEM_BASE	0x80000000
 #define CFG_PCI1_MEM_PHYS	CFG_PCI1_MEM_BASE
 #define CFG_PCI1_MEM_SIZE	0x20000000	/* 512M			*/
-- 
1.5.4.2

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

* [U-Boot-Users] [PATCH 02/08] Socrates: config file cleanup.
  2008-06-06 13:42 ` [U-Boot-Users] [PATCH 01/08] Socrates: Fixed PCI bus frequency report Wolfgang Denk
@ 2008-06-06 13:42   ` Wolfgang Denk
  2008-06-06 13:42     ` [U-Boot-Users] [PATCH 03/08] Added the upmconfig() function for 85xx Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot

From: Sergei Poselenov <sposelenov@emcraft.com>

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
---
 include/configs/socrates.h |   12 +++---------
 1 files changed, 3 insertions(+), 9 deletions(-)

diff --git a/include/configs/socrates.h b/include/configs/socrates.h
index 6dc9eff..6012a99 100644
--- a/include/configs/socrates.h
+++ b/include/configs/socrates.h
@@ -238,13 +238,7 @@
 
 #if defined(CONFIG_PCI)
 #define CONFIG_PCI_PNP			/* do pci plug-and-play		*/
-
-#define CONFIG_EEPRO100
-#undef CONFIG_TULIP
-
-#define CONFIG_PCI_SCAN_SHOW		/* show pci devices on startup	*/
-#define CFG_PCI_SUBSYS_VENDORID 0x1057	/* Motorola			*/
-
+#undef CONFIG_PCI_SCAN_SHOW		/* show pci devices on startup	*/
 #endif	/* CONFIG_PCI */
 
 
@@ -390,10 +384,10 @@
 		"tftp ${fdt_addr_r} ${fdt_file}; "			\
 		"run nfsargs addip addcons;"				\
 		"bootm ${kernel_addr_r} - ${fdt_addr_r}\0"		\
-	"fdt_file=$hostname/socrates.dtb\0"					\
+	"fdt_file=$hostname/socrates.dtb\0"				\
 	"fdt_addr_r=B00000\0"						\
 	"fdt_addr=FC1E0000\0"						\
-	"rootpath=/opt/eldk/ppc_85xx\0"					\
+	"rootpath=/opt/eldk/ppc_85xxDP\0"				\
 	"kernel_addr=FC000000\0"					\
 	"kernel_addr_r=200000\0"					\
 	"ramdisk_addr=FC200000\0"					\
-- 
1.5.4.2

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

* [U-Boot-Users] [PATCH 03/08] Added the upmconfig() function for 85xx.
  2008-06-06 13:42   ` [U-Boot-Users] [PATCH 02/08] Socrates: config file cleanup Wolfgang Denk
@ 2008-06-06 13:42     ` Wolfgang Denk
  2008-06-06 13:42       ` [U-Boot-Users] [PATCH 04/08] Socrates: Added FPGA mapping. LAWs and TLBs cleanup Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot

From: Sergei Poselenov <sposelenov@emcraft.com>

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
---
 cpu/mpc85xx/cpu.c |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 include/mpc85xx.h |    4 +++
 2 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/cpu/mpc85xx/cpu.c b/cpu/mpc85xx/cpu.c
index 9873383..e9fdd2a 100644
--- a/cpu/mpc85xx/cpu.c
+++ b/cpu/mpc85xx/cpu.c
@@ -29,6 +29,7 @@
 #include <watchdog.h>
 #include <command.h>
 #include <asm/cache.h>
+#include <asm/io.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -279,3 +280,69 @@ int dma_xfer(void *dest, uint count, void *src) {
 	return dma_check();
 }
 #endif
+
+/*
+ * Configures a UPM. Currently, the loop fields in MxMR (RLF, WLF and TLF)
+ * are hardcoded as "1"."size" is the number or entries, not a sizeof.
+ */
+void upmconfig (uint upm, uint * table, uint size)
+{
+	int i, mdr, mad, old_mad = 0;
+	volatile u32 *mxmr;
+	volatile ccsr_lbc_t *lbc = (void *)(CFG_MPC85xx_LBC_ADDR);
+	int loopval = 0x00004440;
+	volatile u32 *brp,*orp;
+	volatile u8* dummy;
+	int upmmask;
+
+	switch (upm) {
+	case UPMA:
+		mxmr = &lbc->mamr;
+		upmmask = BRx_MS_UPMA;
+		break;
+	case UPMB:
+		mxmr = &lbc->mbmr;
+		upmmask = BRx_MS_UPMB;
+		break;
+	case UPMC:
+		mxmr = &lbc->mcmr;
+		upmmask = BRx_MS_UPMC;
+		break;
+	default:
+		printf("%s: Bad UPM index %d to configure\n", __FUNCTION__, upm);
+		hang();
+	}
+
+	/* Find the address for the dummy write transaction */
+	for (brp = &lbc->br0, orp = &lbc->or0, i = 0; i < 8;
+		 i++, brp += 2, orp += 2) {
+		
+		/* Look for a valid BR with selected UPM */
+		if ((in_be32(brp) & (BRx_V | upmmask)) == (BRx_V | upmmask)) {
+			dummy = (volatile u8*)(in_be32(brp) & BRx_BA_MSK);
+			break;
+		}
+	}
+
+	if (i == 8) {
+		printf("Error: %s() could not find matching BR\n", __FUNCTION__);
+		hang();
+	}
+
+	for (i = 0; i < size; i++) {
+		/* 1 */
+		out_be32(mxmr, loopval | 0x10000000 | i); /* OP_WRITE */
+		/* 2 */
+		out_be32(&lbc->mdr, table[i]);
+		/* 3 */
+		mdr = in_be32(&lbc->mdr);
+		/* 4 */
+		*(volatile u8 *)dummy = 0;
+		/* 5 */
+		do {
+			mad = in_be32(mxmr) & 0x3f;
+		} while (mad <= old_mad && !(!mad && i == (size-1)));
+		old_mad = mad;
+	}
+	out_be32(mxmr, loopval); /* OP_NORMAL */
+}
diff --git a/include/mpc85xx.h b/include/mpc85xx.h
index 321b24f..9610184 100644
--- a/include/mpc85xx.h
+++ b/include/mpc85xx.h
@@ -29,6 +29,10 @@
 /*
  * Local Bus Controller - memory controller registers
  */
+#define UPMA			0
+#define UPMB			1
+#define UPMC			2
+
 #define BRx_V		0x00000001	/* Bank Valid			*/
 #define BRx_MS_GPCM	0x00000000	/* G.P.C.M. Machine Select	*/
 #define BRx_MS_SDRAM	0x00000000	/* SDRAM Machine Select		*/
-- 
1.5.4.2

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

* [U-Boot-Users] [PATCH 04/08] Socrates: Added FPGA mapping. LAWs and TLBs cleanup.
  2008-06-06 13:42     ` [U-Boot-Users] [PATCH 03/08] Added the upmconfig() function for 85xx Wolfgang Denk
@ 2008-06-06 13:42       ` Wolfgang Denk
  2008-06-06 13:42         ` [U-Boot-Users] [PATCH 05/08] Socrates: added missed file with UPMA configuration data Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot

From: Sergei Poselenov <sposelenov@emcraft.com>

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
---
 board/socrates/law.c       |   15 ++++++++-------
 board/socrates/socrates.c  |    8 +++++++-
 board/socrates/tlb.c       |   25 ++++++++-----------------
 include/configs/socrates.h |    9 ++++-----
 4 files changed, 27 insertions(+), 30 deletions(-)

diff --git a/board/socrates/law.c b/board/socrates/law.c
index 5f4b8ca..ab9a994 100644
--- a/board/socrates/law.c
+++ b/board/socrates/law.c
@@ -33,13 +33,12 @@
 /*
  * LAW(Local Access Window) configuration:
  *
- * 0x0000_0000	   0x7fff_ffff	   DDR			   2G
+ * 0x0000_0000	   0x2fff_ffff	   DDR			   512M
  * 0x8000_0000	   0x9fff_ffff	   PCI1 MEM		   512M
- * 0xc000_0000	   0xdfff_ffff	   RapidIO		   512M
- * 0xe000_0000	   0xe000_ffff	   CCSR			   1M
+ * 0xc000_0000	   0xc00f_ffff	   FPGA			   1M
+ * 0xe000_0000	   0xe00f_ffff	   CCSR			   1M (mapped by CCSRBAR)
  * 0xe200_0000	   0xe2ff_ffff	   PCI1 IO		   16M
- * 0xf800_0000	   0xf80f_ffff	   BCSR			   1M
- * 0xfe00_0000	   0xffff_ffff	   FLASH (boot bank)	   32M
+ * 0xfc00_0000	   0xffff_ffff	   FLASH		   64M
  *
  * Notes:
  *    CCSRBAR and L2-as-SRAM don't need a configured Local Access Window.
@@ -49,9 +48,11 @@
 struct law_entry law_table[] = {
 	SET_LAW_ENTRY(1, CFG_DDR_SDRAM_BASE, LAW_SIZE_512M, LAW_TRGT_IF_DDR),
 	SET_LAW_ENTRY(2, CFG_PCI1_MEM_PHYS, LAW_SIZE_512M, LAW_TRGT_IF_PCI),
-	SET_LAW_ENTRY(3, CFG_LBC_FLASH_BASE, LAW_SIZE_128M, LAW_TRGT_IF_LBC),
+	SET_LAW_ENTRY(3, CFG_LBC_FLASH_BASE, LAW_SIZE_64M, LAW_TRGT_IF_LBC),
 	SET_LAW_ENTRY(4, CFG_PCI1_IO_PHYS, LAW_SIZE_16M, LAW_TRGT_IF_PCI),
-	SET_LAW_ENTRY(5, CFG_RIO_MEM_BASE, LAWAR_SIZE_512M, LAW_TRGT_IF_RIO),
+#if defined(CFG_FPGA_BASE)
+	SET_LAW_ENTRY(5, CFG_FPGA_BASE, LAWAR_SIZE_1M, LAW_TRGT_IF_LBC),
+#endif
 };
 
 int num_law_entries = ARRAY_SIZE(law_table);
diff --git a/board/socrates/socrates.c b/board/socrates/socrates.c
index 0c61311..59e8865 100644
--- a/board/socrates/socrates.c
+++ b/board/socrates/socrates.c
@@ -37,6 +37,9 @@
 #include <fdt_support.h>
 #include <asm/io.h>
 
+#if defined(CFG_FPGA_BASE)
+#include "upm_table.h"
+#endif
 DECLARE_GLOBAL_DATA_PTR;
 
 extern flash_info_t flash_info[];	/* FLASH chips info */
@@ -76,7 +79,10 @@ int checkboard (void)
 	 * Initialize local bus.
 	 */
 	local_bus_init ();
-
+#if defined(CFG_FPGA_BASE)
+	/* Init UPMA for FPGA access */
+	upmconfig(UPMA, (uint *)UPMTableA, sizeof(UPMTableA)/sizeof(int));
+#endif
 	return 0;
 }
 
diff --git a/board/socrates/tlb.c b/board/socrates/tlb.c
index b80caea..aea99ad 100644
--- a/board/socrates/tlb.c
+++ b/board/socrates/tlb.c
@@ -46,16 +46,13 @@ struct fsl_e_tlb_entry tlb_table[] = {
 
 
 	/*
-	 * TLB 0, 1:	128M	Non-cacheable, guarded
-	 * 0xf8000000	128M	FLASH
+	 * TLB 0:	64M	Non-cacheable, guarded
+	 * 0xfc000000	64M	FLASH
 	 * Out of reset this entry is only 4K.
 	 */
 	SET_TLB_ENTRY(1, CFG_FLASH_BASE, CFG_FLASH_BASE,
 		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
 		      0, 1, BOOKE_PAGESZ_64M, 1),
-	SET_TLB_ENTRY(1, CFG_FLASH_BASE + 0x4000000, CFG_FLASH_BASE + 0x4000000,
-		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
-		      0, 0, BOOKE_PAGESZ_64M, 1),
 
 	/*
 	 * TLB 2:	256M	Non-cacheable, guarded
@@ -73,21 +70,15 @@ struct fsl_e_tlb_entry tlb_table[] = {
 		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
 		      0, 3, BOOKE_PAGESZ_256M, 1),
 
+#if defined(CFG_FPGA_BASE)
 	/*
-	 * TLB 4:	256M	Non-cacheable, guarded
-	 * 0xc0000000	256M	Rapid IO MEM First half
-	 */
-	SET_TLB_ENTRY(1, CFG_RIO_MEM_BASE, CFG_RIO_MEM_BASE,
-		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
-		      0, 4, BOOKE_PAGESZ_256M, 1),
-
-	/*
-	 * TLB 5:	256M	Non-cacheable, guarded
-	 * 0xd0000000	256M	Rapid IO MEM Second half
+	 * TLB 4:	1M	Non-cacheable, guarded
+	 * 0xc0000000	1M	FPGA and NAND
 	 */
-	SET_TLB_ENTRY(1, CFG_RIO_MEM_BASE + 0x10000000, CFG_RIO_MEM_BASE + 0x10000000,
+	SET_TLB_ENTRY(1, CFG_FPGA_BASE, CFG_FPGA_BASE,
 		      MAS3_SX|MAS3_SW|MAS3_SR, MAS2_I|MAS2_G,
-		      0, 5, BOOKE_PAGESZ_256M, 1),
+		      0, 4, BOOKE_PAGESZ_1M, 1),
+#endif
 
 	/*
 	 * TLB 6:	64M	Non-cacheable, guarded
diff --git a/include/configs/socrates.h b/include/configs/socrates.h
index 6012a99..499f41c 100644
--- a/include/configs/socrates.h
+++ b/include/configs/socrates.h
@@ -216,11 +216,6 @@
 #define CFG_EEPROM_PAGE_WRITE_ENABLE	/* necessary for the LM75 chip */
 #define CFG_EEPROM_PAGE_WRITE_BITS	4
 
-/* RapidIO MMU */
-#define CFG_RIO_MEM_BASE	0xc0000000	/* base address		*/
-#define CFG_RIO_MEM_PHYS	CFG_RIO_MEM_BASE
-#define CFG_RIO_MEM_SIZE	0x20000000	/* 128M			*/
-
 /*
  * General PCI
  * Memory space is mapped 1-1.
@@ -414,4 +409,8 @@
 #define CONFIG_DOS_PARTITION		1
 #define CONFIG_USB_STORAGE		1
 
+/* FPGA and NAND */
+#define CFG_FPGA_BASE			0xc0000000
+#define CFG_BR3_PRELIM			0xc0001881 /* UPMA, 32-bit */
+#define CFG_OR3_PRELIM			0xfff00000  /* 1 MB */
 #endif	/* __CONFIG_H */
-- 
1.5.4.2

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

* [U-Boot-Users] [PATCH 05/08] Socrates: added missed file with UPMA configuration data.
  2008-06-06 13:42       ` [U-Boot-Users] [PATCH 04/08] Socrates: Added FPGA mapping. LAWs and TLBs cleanup Wolfgang Denk
@ 2008-06-06 13:42         ` Wolfgang Denk
  2008-06-06 13:42           ` [U-Boot-Users] [PATCH 06/08] NAND: Added support for 128-bit OOB, adapted Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot

From: Sergei Poselenov <sposelenov@emcraft.com>

Signed-of-by: Sergei Poselenov <sposelenov@emcraft.com>
---
 board/socrates/upm_table.h |   55 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)
 create mode 100644 board/socrates/upm_table.h

diff --git a/board/socrates/upm_table.h b/board/socrates/upm_table.h
new file mode 100644
index 0000000..f26d8a7
--- /dev/null
+++ b/board/socrates/upm_table.h
@@ -0,0 +1,55 @@
+/*
+ * (C) Copyright 2008
+ * Sergei Poselenov, Emcraft Systems, sposelenov at emcraft.com.
+ *
+ * Copyright 2004, 2007 Freescale Semiconductor, Inc.
+ * (C) Copyright 2003 Motorola Inc.
+ * Xianghua Xiao, (X.Xiao at motorola.com)
+ *
+ * (C) Copyright 2000
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * 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 __UPM_TABLE_H
+#define __UPM_TABLE_H
+
+/* UPM Table Configuration Code for FPGA access */
+static const unsigned int UPMTableA[] =
+{
+	0x00fcfc00,  0x00fcfc00,  0x00fcfc00,  0x00fcfc00, //Words 0 to 3
+	0x00fcfc00,  0x00fcfc00,  0x00fcfc00,  0x00fcfc05, //Words 4 to 7
+	0x00fcfc00,  0x00fcfc00,  0x00fcfc04,  0x00fcfc04, //Words 8 to 11
+	0x00fcfc04,  0x00fcfc04,  0x00fcfc04,  0x00fcfc04, //Words 12 to 15
+	0x00fcfc04,  0x00fcfc04,  0x00fcfc00,  0xfffffc00, //Words 16 to 19
+	0xfffffc00,  0xfffffc00,  0xfffffc00,  0xfffffc01, //Words 20 to 23
+	0x0ffffc00,  0x0ffffc00,  0x0ffffc00,  0x00f3fc04, //Words 24 to 27
+	0x0ffffc00,  0xfffffc01,  0xfffffc00,  0xfffffc01, //Words 28 to 31
+	0x0ffffc00,  0x00f3fc04,  0x00f3fc04,  0x00f3fc04, //Words 32 to 35
+	0x00f3fc04,  0x00f3fc04,  0x00f3fc04,  0x00f3fc04, //Words 36 to 39
+	0x00f3fc04,  0x0ffffc00,  0xfffffc00,  0xfffffc00, //Words 40 to 43
+	0xfffffc01,  0xfffffc00,  0xfffffc00,  0xfffffc01, //Words 44 to 47
+	0xfffffc00,  0xfffffc00,  0xfffffc00,  0xfffffc00, //Words 48 to 51
+	0xfffffc00,  0xfffffc00,  0xfffffc00,  0xfffffc00, //Words 52 to 55
+	0xfffffc00,  0xfffffc00,  0xfffffc00,  0xfffffc01, //Words 56 to 59
+	0xfffffc00,  0xfffffc00,  0xfffffc00,  0xfffffc01  //Words 60 to 63
+};
+
+#endif
-- 
1.5.4.2

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

* [U-Boot-Users] [PATCH 06/08] NAND: Added support for 128-bit OOB, adapted
  2008-06-06 13:42         ` [U-Boot-Users] [PATCH 05/08] Socrates: added missed file with UPMA configuration data Wolfgang Denk
@ 2008-06-06 13:42           ` Wolfgang Denk
  2008-06-06 13:42             ` [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and Wolfgang Denk
  0 siblings, 1 reply; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot

From: Sergei Poselenov <sposelenov@emcraft.com>

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
---
 drivers/mtd/nand/nand_base.c |   46 ++++++++++++++++++++++++++++++-----------
 include/linux/mtd/mtd-abi.h  |    2 +-
 2 files changed, 34 insertions(+), 14 deletions(-)

diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 5aef31c..740d3fc 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -113,18 +113,22 @@ static struct nand_oobinfo nand_oob_64 = {
 	.oobfree = { {2, 38} }
 };
 
-/* This is used for padding purposes in nand_write_oob */
-static u_char ffchars[] = {
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
-	0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+static struct nand_oobinfo nand_oob_128 = {
+	.useecc = MTD_NANDECC_AUTOPLACE,
+	.eccbytes = 48,
+	.eccpos = {
+		80,  81,  82,  83,  84,  85,  86,  87,
+		88,  89,  90,  91,  92,  93,  94,  95,
+		96,  97,  98,  99, 100, 101, 102, 103,
+		104, 105, 106, 107, 108, 109, 110, 111,
+		112, 113, 114, 115, 116, 117, 118, 119,
+		120, 121, 122, 123, 124, 125, 126, 127},
+	.oobfree = { {2, 78} }
 };
 
+/* This is used for padding purposes in nand_write_oob */
+static u_char *ffchars;
+
 /*
  * NAND low-level MTD interface functions
  */
@@ -193,6 +197,10 @@ static void nand_release_device (struct mtd_info *mtd)
 {
 	struct nand_chip *this = mtd->priv;
 	this->select_chip(mtd, -1);	/* De-select the NAND device */
+	if (ffchars) {
+		kfree(ffchars);
+		ffchars = NULL;
+	}
 }
 #endif
 
@@ -891,7 +899,7 @@ static int nand_write_page (struct mtd_info *mtd, struct nand_chip *this, int pa
 	u_char *oob_buf,  struct nand_oobinfo *oobsel, int cached)
 {
 	int	i, status;
-	u_char	ecc_code[32];
+	u_char	ecc_code[NAND_MAX_OOBSIZE];
 	int	eccmode = oobsel->useecc ? this->eccmode : NAND_ECC_NONE;
 	uint	*oob_config = oobsel->eccpos;
 	int	datidx = 0, eccidx = 0, eccsteps = this->eccsteps;
@@ -1112,8 +1120,8 @@ static int nand_read_ecc (struct mtd_info *mtd, loff_t from, size_t len,
 	int read = 0, oob = 0, ecc_status = 0, ecc_failed = 0;
 	struct nand_chip *this = mtd->priv;
 	u_char *data_poi, *oob_data = oob_buf;
-	u_char ecc_calc[32];
-	u_char ecc_code[32];
+	u_char ecc_calc[NAND_MAX_OOBSIZE];
+	u_char ecc_code[NAND_MAX_OOBSIZE];
 	int eccmode, eccsteps;
 	unsigned *oob_config;
 	int	datidx;
@@ -1811,6 +1819,15 @@ static int nand_write_oob (struct mtd_info *mtd, loff_t to, size_t len, size_t *
 	if (NAND_MUST_PAD(this)) {
 		/* Write out desired data */
 		this->cmdfunc (mtd, NAND_CMD_SEQIN, mtd->oobblock, page & this->pagemask);
+		if (!ffchars) {
+			if (!(ffchars = kmalloc (mtd->oobsize, GFP_KERNEL))) {
+				DEBUG (MTD_DEBUG_LEVEL0, "nand_write_oob: "
+					   "No memory for padding array, need %d bytes", mtd->oobsize);
+				ret = -ENOMEM;
+				goto out;
+			}
+			memset(ffchars, 0xff, mtd->oobsize);
+		}
 		/* prepad 0xff for partial programming */
 		this->write_buf(mtd, ffchars, column);
 		/* write data */
@@ -2479,6 +2496,9 @@ int nand_scan (struct mtd_info *mtd, int maxchips)
 		case 64:
 			this->autooob = &nand_oob_64;
 			break;
+		case 128:
+			this->autooob = &nand_oob_128;
+			break;
 		default:
 			printk (KERN_WARNING "No oob scheme defined for oobsize %d\n",
 				mtd->oobsize);
diff --git a/include/linux/mtd/mtd-abi.h b/include/linux/mtd/mtd-abi.h
index 72d7341..4cebea9 100644
--- a/include/linux/mtd/mtd-abi.h
+++ b/include/linux/mtd/mtd-abi.h
@@ -93,7 +93,7 @@ struct nand_oobinfo {
 	uint32_t useecc;
 	uint32_t eccbytes;
 	uint32_t oobfree[8][2];
-	uint32_t eccpos[32];
+	uint32_t eccpos[48];
 };
 
 #endif /* __MTD_ABI_H__ */
-- 
1.5.4.2

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

* [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and
  2008-06-06 13:42           ` [U-Boot-Users] [PATCH 06/08] NAND: Added support for 128-bit OOB, adapted Wolfgang Denk
@ 2008-06-06 13:42             ` Wolfgang Denk
  2008-06-06 13:42               ` [U-Boot-Users] [PATCH 08/08] Socrates: Added FPGA base address update in FDT Wolfgang Denk
  2008-06-07 12:14               ` [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and Magnus Lilja
  0 siblings, 2 replies; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot

From: Sergei Poselenov <sposelenov@emcraft.com>

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
---
 board/socrates/Makefile    |    2 +-
 board/socrates/config.mk   |    3 +-
 board/socrates/nand.c      |  218 ++++++++++++++++++++++++++++++++++++++++++++
 include/configs/socrates.h |    8 ++-
 4 files changed, 227 insertions(+), 4 deletions(-)
 create mode 100644 board/socrates/nand.c

diff --git a/board/socrates/Makefile b/board/socrates/Makefile
index 6453f24..11503eb 100644
--- a/board/socrates/Makefile
+++ b/board/socrates/Makefile
@@ -28,7 +28,7 @@ include $(TOPDIR)/config.mk
 LIB	= $(obj)lib$(BOARD).a
 #
 
-COBJS	:= $(BOARD).o law.o tlb.o sdram.o
+COBJS	:= $(BOARD).o law.o tlb.o sdram.o nand.o
 
 SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
 OBJS	:= $(addprefix $(obj),$(COBJS))
diff --git a/board/socrates/config.mk b/board/socrates/config.mk
index 1cf5d38..4f17294 100644
--- a/board/socrates/config.mk
+++ b/board/socrates/config.mk
@@ -25,6 +25,5 @@
 #
 # socrates board
 # default CCARBAR is at 0xff700000
-# assume U-Boot is less than 256k
 #
-TEXT_BASE = 0xfffc0000
+TEXT_BASE = 0xfffa0000
diff --git a/board/socrates/nand.c b/board/socrates/nand.c
new file mode 100644
index 0000000..960f847
--- /dev/null
+++ b/board/socrates/nand.c
@@ -0,0 +1,218 @@
+/*
+ * (C) Copyright 2008
+ * Sergei Poselenov, Emcraft Systems, sposelenov at emcraft.com.
+ *
+ * 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
+ */
+
+#include <common.h>
+
+#if defined(CFG_NAND_BASE)
+#include <nand.h>
+#include <asm/errno.h>
+#include <asm/io.h>
+
+int state;
+static void nand_write_byte(struct mtd_info *mtd, u_char byte);
+static void nand_write_buf(struct mtd_info *mtd, const u_char *buf, int len);
+static void nand_write_word(struct mtd_info *mtd, u16 word);
+static u_char nand_read_byte(struct mtd_info *mtd);
+static u16 nand_read_word(struct mtd_info *mtd);
+static void nand_read_buf(struct mtd_info *mtd, u_char *buf, int len);
+static int nand_verify_buf(struct mtd_info *mtd, const u_char *buf, int len);
+static int nand_device_ready(struct mtd_info *mtdinfo);
+static void nand_hwcontrol(struct mtd_info *mtdinfo, int cmd);
+
+#define FPGA_NAND_CMD_MASK		(0x7 << 28)
+#define FPGA_NAND_CMD_COMMAND	(0x0 << 28)
+#define FPGA_NAND_CMD_ADDR		(0x1 << 28)
+#define FPGA_NAND_CMD_READ		(0x2 << 28)
+#define FPGA_NAND_CMD_WRITE		(0x3 << 28)
+#define FPGA_NAND_BUSY			(0x1 << 15)
+#define FPGA_NAND_ENABLE		(0x1 << 31)
+#define FPGA_NAND_DATA_SHIFT	16
+
+/**
+ * nand_write_byte -  write one byte to the chip
+ * @mtd:	MTD device structure
+ * @byte:	pointer to data byte to write
+ */
+static void nand_write_byte(struct mtd_info *mtd, u_char byte)
+{
+	nand_write_buf(mtd, (const uchar *)&byte, sizeof(byte));
+}
+
+/**
+ * nand_write_word -  write one word to the chip
+ * @mtd:	MTD device structure
+ * @word:	data word to write
+ */
+static void nand_write_word(struct mtd_info *mtd, u16 word)
+{
+	nand_write_buf(mtd, (const uchar *)&word, sizeof(word));
+}
+
+/**
+ * nand_write_buf -  write buffer to chip
+ * @mtd:	MTD device structure
+ * @buf:	data buffer
+ * @len:	number of bytes to write
+ */
+static void nand_write_buf(struct mtd_info *mtd, const u_char *buf, int len)
+{
+	int i;
+	struct nand_chip *this = mtd->priv;
+	long val;
+
+	if ((state & FPGA_NAND_CMD_MASK) == FPGA_NAND_CMD_MASK) {
+		/* Write data */
+		val = (state & FPGA_NAND_ENABLE) | FPGA_NAND_CMD_WRITE;
+	} else {
+		/* Write address or command */
+		val = state;
+	}
+
+	for (i = 0; i < len; i++) {
+		out_be32(this->IO_ADDR_W, val | (buf[i] << FPGA_NAND_DATA_SHIFT));
+	}
+}
+
+
+/**
+ * nand_read_byte -  read one byte from the chip
+ * @mtd:	MTD device structure
+ */
+static u_char nand_read_byte(struct mtd_info *mtd)
+{
+	u8 byte;
+	nand_read_buf(mtd, (uchar *)&byte, sizeof(byte));
+	return byte;
+}
+
+/**
+ * nand_read_word -  read one word from the chip
+ * @mtd:	MTD device structure
+ */
+static u16 nand_read_word(struct mtd_info *mtd)
+{
+	u16 word;
+	nand_read_buf(mtd, (uchar *)&word, sizeof(word));
+	return word;
+}
+
+/**
+ * nand_read_buf -  read chip data into buffer
+ * @mtd:	MTD device structure
+ * @buf:	buffer to store date
+ * @len:	number of bytes to read
+ */
+static void nand_read_buf(struct mtd_info *mtd, u_char *buf, int len)
+{
+	int i;
+	struct nand_chip *this = mtd->priv;
+	int val;
+
+	val = (state & FPGA_NAND_ENABLE) | FPGA_NAND_CMD_READ;
+
+	out_be32(this->IO_ADDR_W, val);
+	for (i = 0; i < len; i++) {
+		buf[i] = (in_be32(this->IO_ADDR_R) >> FPGA_NAND_DATA_SHIFT) & 0xff;
+	}
+}
+
+/**
+ * nand_verify_buf -  Verify chip data against buffer
+ * @mtd:	MTD device structure
+ * @buf:	buffer containing the data to compare
+ * @len:	number of bytes to compare
+ */
+static int nand_verify_buf(struct mtd_info *mtd, const u_char *buf, int len)
+{
+	int i;
+
+	for (i = 0; i < len; i++) {
+		if (buf[i] != nand_read_byte(mtd));
+		return -EFAULT;
+	}
+	return 0;
+}
+
+/**
+ * nand_device_ready - Check the NAND device is ready for next command.
+ * @mtd:	MTD device structure
+ */
+static int nand_device_ready(struct mtd_info *mtdinfo)
+{
+	struct nand_chip *this = mtdinfo->priv;
+
+	if (in_be32(this->IO_ADDR_W) & FPGA_NAND_BUSY)
+		return 0; /* busy */
+	return 1;
+}
+
+/**
+ * nand_hwcontrol - NAND control functions wrapper.
+ * @mtd:	MTD device structure
+ * @cmd:	Command
+ */
+static void nand_hwcontrol(struct mtd_info *mtdinfo, int cmd)
+{
+
+	switch(cmd) {
+	case NAND_CTL_CLRALE:
+		state |= FPGA_NAND_CMD_MASK; /* use all 1s to mark */
+		break;
+	case NAND_CTL_CLRCLE:
+		state |= FPGA_NAND_CMD_MASK; /* use all 1s to mark */
+		break;
+	case NAND_CTL_SETCLE:
+		state = (state & ~FPGA_NAND_CMD_MASK) | FPGA_NAND_CMD_COMMAND;
+		break;
+	case NAND_CTL_SETALE:
+		state = (state & ~FPGA_NAND_CMD_MASK) | FPGA_NAND_CMD_ADDR;
+		break;
+	case NAND_CTL_SETNCE:
+		state |= FPGA_NAND_ENABLE;
+		break;
+	case NAND_CTL_CLRNCE:
+		state &= ~FPGA_NAND_ENABLE;
+		break;
+	default:
+		printf("%s: unknown cmd %#x\n", __FUNCTION__, cmd);
+		break;
+	}
+}
+
+int board_nand_init(struct nand_chip *nand)
+{
+	nand->hwcontrol = nand_hwcontrol;
+	nand->eccmode = NAND_ECC_SOFT;
+	nand->dev_ready = nand_device_ready;
+	nand->write_byte = nand_write_byte;
+	nand->read_byte = nand_read_byte;
+	nand->write_word = nand_write_word;
+	nand->read_word = nand_read_word;
+	nand->write_buf = nand_write_buf;
+	nand->read_buf = nand_read_buf;
+	nand->verify_buf = nand_verify_buf;
+
+	return 0;
+}
+
+#endif
diff --git a/include/configs/socrates.h b/include/configs/socrates.h
index 499f41c..1627413 100644
--- a/include/configs/socrates.h
+++ b/include/configs/socrates.h
@@ -165,7 +165,7 @@
 #define CFG_INIT_SP_OFFSET	CFG_GBL_DATA_OFFSET
 
 #define CFG_MONITOR_LEN		(256 * 1024)	/* Reserve 256kB for Mon*/
-#define CFG_MALLOC_LEN		(128 * 1024)	/* Reserved for malloc	*/
+#define CFG_MALLOC_LEN		(256 * 1024)	/* Reserved for malloc	*/
 
 /* Serial Port */
 
@@ -413,4 +413,10 @@
 #define CFG_FPGA_BASE			0xc0000000
 #define CFG_BR3_PRELIM			0xc0001881 /* UPMA, 32-bit */
 #define CFG_OR3_PRELIM			0xfff00000  /* 1 MB */
+
+#define CFG_NAND_BASE			(CFG_FPGA_BASE + 0x70)
+#define CFG_MAX_NAND_DEVICE		1
+#define NAND_MAX_CHIPS			1
+#define CONFIG_CMD_NAND
+
 #endif	/* __CONFIG_H */
-- 
1.5.4.2

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

* [U-Boot-Users] [PATCH 08/08] Socrates: Added FPGA base address update in FDT.
  2008-06-06 13:42             ` [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and Wolfgang Denk
@ 2008-06-06 13:42               ` Wolfgang Denk
  2008-06-07 12:14               ` [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and Magnus Lilja
  1 sibling, 0 replies; 12+ messages in thread
From: Wolfgang Denk @ 2008-06-06 13:42 UTC (permalink / raw)
  To: u-boot

From: Sergei Poselenov <sposelenov@emcraft.com>

Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
---
 board/socrates/socrates.c |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/board/socrates/socrates.c b/board/socrates/socrates.c
index 59e8865..76047c5 100644
--- a/board/socrates/socrates.c
+++ b/board/socrates/socrates.c
@@ -224,5 +224,15 @@ ft_board_setup(void *blob, bd_t *bd)
 	if (rc)
 		printf("Unable to update property NOR mapping, err=%s\n",
 		       fdt_strerror(rc));
+
+#if defined (CFG_FPGA_BASE)
+	memset(val, 0, sizeof(val));
+	val[0] = CFG_FPGA_BASE;
+	rc = fdt_find_and_setprop(blob, "/localbus/fpga", "virtual-reg",
+				  val, sizeof(val), 1);
+	if (rc)
+		printf("Unable to update property \"fpga\", err=%s\n",
+		       fdt_strerror(rc));
+#endif
 }
 #endif /* defined(CONFIG_OF_LIBFDT) && defined(CONFIG_OF_BOARD_SETUP) */
-- 
1.5.4.2

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

* [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and
  2008-06-06 13:42             ` [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and Wolfgang Denk
  2008-06-06 13:42               ` [U-Boot-Users] [PATCH 08/08] Socrates: Added FPGA base address update in FDT Wolfgang Denk
@ 2008-06-07 12:14               ` Magnus Lilja
  2008-06-07 15:02                 ` Sergei Poselenov
  1 sibling, 1 reply; 12+ messages in thread
From: Magnus Lilja @ 2008-06-07 12:14 UTC (permalink / raw)
  To: u-boot

Hi

On Fri, Jun 6, 2008 at 3:42 PM, Wolfgang Denk <wd@denx.de> wrote:
> From: Sergei Poselenov <sposelenov@emcraft.com>
>
> Signed-off-by: Sergei Poselenov <sposelenov@emcraft.com>
> ---
>  board/socrates/Makefile    |    2 +-
>  board/socrates/config.mk   |    3 +-
>  board/socrates/nand.c      |  218 ++++++++++++++++++++++++++++++++++++++++++++
>  include/configs/socrates.h |    8 ++-
>  4 files changed, 227 insertions(+), 4 deletions(-)
>  create mode 100644 board/socrates/nand.c
>
> diff --git a/board/socrates/Makefile b/board/socrates/Makefile
> index 6453f24..11503eb 100644
> --- a/board/socrates/Makefile
> +++ b/board/socrates/Makefile
> @@ -28,7 +28,7 @@ include $(TOPDIR)/config.mk
>  LIB    = $(obj)lib$(BOARD).a
>  #
>
> -COBJS  := $(BOARD).o law.o tlb.o sdram.o
> +COBJS  := $(BOARD).o law.o tlb.o sdram.o nand.o
>
>  SRCS   := $(SOBJS:.o=.S) $(COBJS:.o=.c)
>  OBJS   := $(addprefix $(obj),$(COBJS))
> diff --git a/board/socrates/config.mk b/board/socrates/config.mk
> index 1cf5d38..4f17294 100644
> --- a/board/socrates/config.mk
> +++ b/board/socrates/config.mk
> @@ -25,6 +25,5 @@
>  #
>  # socrates board
>  # default CCARBAR is at 0xff700000
> -# assume U-Boot is less than 256k
>  #
> -TEXT_BASE = 0xfffc0000
> +TEXT_BASE = 0xfffa0000
> diff --git a/board/socrates/nand.c b/board/socrates/nand.c
> new file mode 100644
> index 0000000..960f847
> --- /dev/null
> +++ b/board/socrates/nand.c
> @@ -0,0 +1,218 @@
> +/*
> + * (C) Copyright 2008
> + * Sergei Poselenov, Emcraft Systems, sposelenov at emcraft.com.
> + *
> + * 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
> + */
> +
> +#include <common.h>
> +
> +#if defined(CFG_NAND_BASE)
> +#include <nand.h>
> +#include <asm/errno.h>
> +#include <asm/io.h>
> +
> +int state;

Can that variable be made static?

Regards, Magnus

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

* [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and
  2008-06-07 12:14               ` [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and Magnus Lilja
@ 2008-06-07 15:02                 ` Sergei Poselenov
  2008-06-10 23:45                   ` Andy Fleming
  0 siblings, 1 reply; 12+ messages in thread
From: Sergei Poselenov @ 2008-06-07 15:02 UTC (permalink / raw)
  To: u-boot

Hello,

>> +#include <asm/io.h>
>> +
>> +int state;
> 
> Can that variable be made static?
> 
> Regards, Magnus
> 

Yes, it can.

Wolfgang, what is the best way to handle this? Should I re-do the
patch?

Regards,
Sergei

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

* [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and
  2008-06-07 15:02                 ` Sergei Poselenov
@ 2008-06-10 23:45                   ` Andy Fleming
  0 siblings, 0 replies; 12+ messages in thread
From: Andy Fleming @ 2008-06-10 23:45 UTC (permalink / raw)
  To: u-boot

On Sat, Jun 7, 2008 at 10:02 AM, Sergei Poselenov
<sposelenov@emcraft.com> wrote:
> Hello,
>
>>> +#include <asm/io.h>
>>> +
>>> +int state;
>>
>> Can that variable be made static?
>>
>> Regards, Magnus
>>
>
> Yes, it can.
>
> Wolfgang, what is the best way to handle this? Should I re-do the
> patch?


I have made the change in my tree.

Andy

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

end of thread, other threads:[~2008-06-10 23:45 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-06 13:42 [U-Boot-Users] [PATCH 0/8] Updates for "socrates" board Wolfgang Denk
2008-06-06 13:42 ` [U-Boot-Users] [PATCH 01/08] Socrates: Fixed PCI bus frequency report Wolfgang Denk
2008-06-06 13:42   ` [U-Boot-Users] [PATCH 02/08] Socrates: config file cleanup Wolfgang Denk
2008-06-06 13:42     ` [U-Boot-Users] [PATCH 03/08] Added the upmconfig() function for 85xx Wolfgang Denk
2008-06-06 13:42       ` [U-Boot-Users] [PATCH 04/08] Socrates: Added FPGA mapping. LAWs and TLBs cleanup Wolfgang Denk
2008-06-06 13:42         ` [U-Boot-Users] [PATCH 05/08] Socrates: added missed file with UPMA configuration data Wolfgang Denk
2008-06-06 13:42           ` [U-Boot-Users] [PATCH 06/08] NAND: Added support for 128-bit OOB, adapted Wolfgang Denk
2008-06-06 13:42             ` [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and Wolfgang Denk
2008-06-06 13:42               ` [U-Boot-Users] [PATCH 08/08] Socrates: Added FPGA base address update in FDT Wolfgang Denk
2008-06-07 12:14               ` [U-Boot-Users] [PATCH 07/08] Socrates: NAND support added. Changed the U-Boot base address and Magnus Lilja
2008-06-07 15:02                 ` Sergei Poselenov
2008-06-10 23:45                   ` Andy Fleming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox