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 <la...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot