All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ladislav Michl <ladis@linux-mips.org>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] Update board NetStar
Date: Fri, 13 Mar 2009 14:31:39 +0100	[thread overview]
Message-ID: <20090313133139.GA6797@localhost.localdomain> (raw)

Hi,

following patch brings board NetStar back into shape.

CHANGELOG
* Make NAND work again (broken after new NAND code merge)
* Move conditional compilation to Makefile
* Enable I2C driver and RTC clock

Signed-off-by: Ladislav Michl <ladis@linux-mips.org>

diff --git a/board/netstar/Makefile b/board/netstar/Makefile
index 8d911b8..7d42227 100644
--- a/board/netstar/Makefile
+++ b/board/netstar/Makefile
@@ -26,15 +26,17 @@
 
 include $(TOPDIR)/config.mk
 
-LIB	= $(obj)lib$(BOARD).a
+LIB := $(obj)lib$(BOARD).a
 
-COBJS	:= netstar.o flash.o nand.o
-SOBJS	:= setup.o crcek.o
+SOBJS-y                   := setup.o crcek.o
+COBJS-y                   := netstar.o
+COBJS-$(CONFIG_CMD_FLASH) += flash.o
+COBJS-$(CONFIG_CMD_NAND)  += nand.o
 
-SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c) eeprom.c \
+SRCS	:= $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c) eeprom.c \
 		eeprom_start.S
-OBJS	:= $(addprefix $(obj),$(COBJS))
-SOBJS	:= $(addprefix $(obj),$(SOBJS))
+OBJS	:= $(addprefix $(obj),$(COBJS-y))
+SOBJS	:= $(addprefix $(obj),$(SOBJS-y))
 
 gcclibdir := $(shell dirname `$(CC) -print-libgcc-file-name`)
 
diff --git a/board/netstar/crcit.c b/board/netstar/crcit.c
index ce98e20..e0cea9b 100644
--- a/board/netstar/crcit.c
+++ b/board/netstar/crcit.c
@@ -31,11 +31,11 @@
 #include <sys/stat.h>
 #include "crcek.h"
 
-extern unsigned long crc32(unsigned long, const unsigned char *, unsigned int);
+extern uint32_t crc32(uint32_t, const unsigned char *, uint);
 
-uint32_t data[LOADER_SIZE/4 + 3];
+static uint32_t data[LOADER_SIZE/4 + 3];
 
-int doit(char *path, unsigned version)
+static int do_crc(char *path, unsigned version)
 {
 	uint32_t *p;
 	ssize_t size;
@@ -56,10 +56,10 @@ int doit(char *path, unsigned version)
 		fprintf(stderr, "File too large\n");
 		return EXIT_FAILURE;
 	}
-	size = (((size - 1) >> 2) + 1) << 2;
+	size = (size + 3) & ~3;	/* round up to 4 bytes */
 	data[0] = size + 4;	/* add size of version field */
 	data[1] = version;
-	data[(size >> 2) + 2] = crc32(0, (unsigned char *)(data + 1), data[0]);
+	data[2 + (size >> 2)] = crc32(0, (unsigned char *)(data + 1), data[0]);
 	close(fd);
 
 	if (write(STDOUT_FILENO, data, size + 3*4) == -1) {
@@ -73,12 +73,12 @@ int doit(char *path, unsigned version)
 int main(int argc, char **argv)
 {
 	if (argc == 2) {
-		return doit(argv[1], 0);
+		return do_crc(argv[1], 0);
 	} else if ((argc == 4) && (strcmp(argv[1], "-v") == 0)) {
 		char *endptr, *nptr = argv[2];
 		unsigned ver = strtoul(nptr, &endptr, 0);
 		if (*nptr != '\0' && *endptr == '\0')
-			return doit(argv[3], ver);
+			return do_crc(argv[3], ver);
 	}
 	fprintf(stderr, "Usage: crcit [-v version] <image>\n");
 
diff --git a/board/netstar/flash.c b/board/netstar/flash.c
index e9eca35..e417e29 100644
--- a/board/netstar/flash.c
+++ b/board/netstar/flash.c
@@ -27,10 +27,6 @@
  */
 
 #include <common.h>
-
-/*#if 0 */
-#if (PHYS_SDRAM_1_SIZE != SZ_32M)
-
 #include "crcek.h"
 
 #if (CONFIG_SYS_MAX_FLASH_BANKS > 1)
@@ -339,5 +335,3 @@ int write_buff(flash_info_t *info, uchar *src, ulong addr, ulong cnt)
 
 	return write_hword(info, wp, data);
 }
-
-#endif
diff --git a/board/netstar/nand.c b/board/netstar/nand.c
index e3ab66f..fb319fa 100644
--- a/board/netstar/nand.c
+++ b/board/netstar/nand.c
@@ -22,33 +22,27 @@
 
 #include <common.h>
 #include <asm/io.h>
-
-#if defined(CONFIG_CMD_NAND)
-
 #include <nand.h>
 
 /*
  *	hardware specific access to control-lines
+ *
+ *	NAND_NCE: bit 0 - don't care
+ *	NAND_CLE: bit 1 -> bit 1  (0x0002)
+ *	NAND_ALE: bit 2 -> bit 2  (0x0004)
  */
-#define	MASK_CLE	0x02
-#define	MASK_ALE	0x04
-
 static void netstar_nand_hwcontrol(struct mtd_info *mtd, int cmd, unsigned int ctrl)
 {
-	struct nand_chip *this = mtd->priv;
-	ulong IO_ADDR_W = (ulong) this->IO_ADDR_W;
+	struct nand_chip *chip = mtd->priv;
+	unsigned long mask;
 
-	IO_ADDR_W &= ~(MASK_ALE|MASK_CLE);
-	if (ctrl & NAND_CTRL_CHANGE) {
-		if ( ctrl & NAND_CLE )
-			IO_ADDR_W |= MASK_CLE;
-		if ( ctrl & NAND_ALE )
-			IO_ADDR_W |= MASK_ALE;
-	}
-	this->IO_ADDR_W = (void __iomem *) IO_ADDR_W;
+	if (cmd == NAND_CMD_NONE)
+		return;
 
-	if (cmd != NAND_CMD_NONE)
-		writeb(cmd, this->IO_ADDR_W);
+	mask = (ctrl & NAND_CLE) ? 0x02 : 0;
+	if (ctrl & NAND_ALE)
+		mask |= 0x04;
+	writeb(cmd, (unsigned long)chip->IO_ADDR_W | mask);
 }
 
 int board_nand_init(struct nand_chip *nand)
@@ -59,4 +53,3 @@ int board_nand_init(struct nand_chip *nand)
 	nand->chip_delay = 400;
 	return 0;
 }
-#endif
diff --git a/board/netstar/netstar.c b/board/netstar/netstar.c
index f52afe5..b68959f 100644
--- a/board/netstar/netstar.c
+++ b/board/netstar/netstar.c
@@ -21,6 +21,7 @@
  */
 
 #include <common.h>
+#include <i2c.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -52,6 +53,9 @@ int dram_init(void)
 
 int misc_init_r(void)
 {
+	/* enable trickle charge */
+	i2c_reg_write(CONFIG_SYS_I2C_RTC_ADDR, 0x10, 0xaa);
+
 	return 0;
 }
 
diff --git a/include/configs/netstar.h b/include/configs/netstar.h
index 2c90265..6d35210 100644
--- a/include/configs/netstar.h
+++ b/include/configs/netstar.h
@@ -64,12 +64,11 @@
  */
 #define CONFIG_SYS_FLASH_BASE		PHYS_FLASH_1
 #define CONFIG_SYS_MAX_FLASH_BANKS	1
-#define PHYS_FLASH_1_SIZE	(1 * 1024 * 1024)
+#define PHYS_FLASH_1_SIZE		(1 * 1024 * 1024)
 #define CONFIG_SYS_MAX_FLASH_SECT	19
 #define CONFIG_SYS_FLASH_ERASE_TOUT	(5*CONFIG_SYS_HZ) /* in ticks */
 #define CONFIG_SYS_FLASH_WRITE_TOUT	(5*CONFIG_SYS_HZ)
-
-#define CONFIG_SYS_MONITOR_BASE	PHYS_FLASH_1
+#define CONFIG_SYS_MONITOR_BASE		PHYS_FLASH_1
 #define CONFIG_SYS_MONITOR_LEN		(256 * 1024)
 
 /*
@@ -100,28 +99,30 @@
 #define CONFIG_DRIVER_SMC91111
 #define CONFIG_SMC91111_BASE	0x04000300
 
-/*
- * NS16550 Configuration
- */
+#define CONFIG_HARD_I2C
+#define CONFIG_SYS_I2C_SPEED	100000
+#define CONFIG_SYS_I2C_SLAVE	1
+#define CONFIG_DRIVER_OMAP1510_I2C
+
+#define CONFIG_RTC_DS1307
+#define CONFIG_SYS_I2C_RTC_ADDR	0x68
+
 #define CONFIG_SYS_NS16550
 #define CONFIG_SYS_NS16550_SERIAL
 #define CONFIG_SYS_NS16550_REG_SIZE	(-4)
 #define CONFIG_SYS_NS16550_CLK		(CONFIG_XTAL_FREQ)	/* can be 12M/32Khz or 48Mhz  */
-#define CONFIG_SYS_NS16550_COM1	OMAP1510_UART1_BASE	/* uart1 */
+#define CONFIG_SYS_NS16550_COM1		OMAP1510_UART1_BASE	/* uart1 */
 
-#define CONFIG_CONS_INDEX	1
-#define CONFIG_BAUDRATE		115200
+#define CONFIG_CONS_INDEX		1
+#define CONFIG_BAUDRATE			115200
 #define CONFIG_SYS_BAUDRATE_TABLE	{ 9600, 19200, 38400, 57600, 115200 }
 
 /*#define CONFIG_SKIP_RELOCATE_UBOOT*/
 /*#define CONFIG_SKIP_LOWLEVEL_INIT */
 
-/*
- * NAND flash
- */
 #define CONFIG_SYS_MAX_NAND_DEVICE	1
-#define CONFIG_SYS_NAND_BASE	0x04000000 + (2 << 23)
-#define NAND_ALLOW_ERASE_ALL	1
+#define CONFIG_SYS_NAND_BASE		0x04000000 + (2 << 23)
+#define NAND_ALLOW_ERASE_ALL		1
 
 /*
  * partitions (mtdparts command line support)
@@ -136,9 +137,9 @@
 /*
  * Command line configuration.
  */
-
 #define CONFIG_CMD_BDI
 #define CONFIG_CMD_BOOTD
+#define CONFIG_CMD_DATE
 #define CONFIG_CMD_DHCP
 #define CONFIG_CMD_SAVEENV
 #define CONFIG_CMD_FLASH

             reply	other threads:[~2009-03-13 13:31 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-03-13 13:31 Ladislav Michl [this message]
2009-03-16 22:26 ` [U-Boot] [PATCH] Update board NetStar Ladislav Michl
2009-03-16 22:27   ` [U-Boot] [PATCH 1/5] NetStar: config reindentation Ladislav Michl
2009-03-18 19:42     ` Wolfgang Denk
2009-03-16 22:28   ` [U-Boot] [PATCH 2/5] NetStar: Fix NAND Ladislav Michl
2009-03-17 17:17     ` Scott Wood
2009-03-17 19:50       ` Ladislav Michl
2009-03-17 19:10         ` Scott Wood
2009-03-16 22:29   ` [U-Boot] [PATCH 3/5] NetStar: use generic flash driver Ladislav Michl
2009-03-18 19:44     ` Wolfgang Denk
2009-03-25  0:14       ` Ladislav Michl
2009-03-16 22:30   ` [U-Boot] [PATCH 4/5] NetStar: add RTC support Ladislav Michl
2009-03-16 22:31   ` [U-Boot] [PATCH 5/5] NetStar: update crcit utility Ladislav Michl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090313133139.GA6797@localhost.localdomain \
    --to=ladis@linux-mips.org \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.