public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5]
@ 2007-08-07  2:13 ksi at koi8.net
       [not found] ` <5CBE65F7D9232C47861CB09B0954861C2FD8F8@MAIL.infinitychannel.local>
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: ksi at koi8.net @ 2007-08-07  2:13 UTC (permalink / raw)
  To: u-boot

Signed-off-by: Sergey Kubushyn <ksi@koi8.net>

=== Cut ===
diff -purN u-boot.git.orig/board/davinci/dv-evm/board_init.S u-boot.git/board/davinci/dv-evm/board_init.S
--- u-boot.git.orig/board/davinci/dv-evm/board_init.S	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/dv-evm/board_init.S	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+ *
+ * Board-specific low level initialization code. Called at the very end
+ * of cpu/arm926ejs/davinci/lowlevel_init.S. Just returns if there is no
+ * initialization required.
+ *
+ * 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>
+
+.globl	dv_board_init
+dv_board_init:
+
+	mov	pc, lr
diff -purN u-boot.git.orig/board/davinci/dv-evm/config.mk u-boot.git/board/davinci/dv-evm/config.mk
--- u-boot.git.orig/board/davinci/dv-evm/config.mk	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/dv-evm/config.mk	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,39 @@
+#
+# (C) Copyright 2002
+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
+#
+# (C) Copyright 2003
+# Texas Instruments, <www.ti.com>
+# Swaminathan <swami.iyer@ti.com>
+#
+# Davinci EVM board (ARM925EJS) cpu
+# see http://www.ti.com/ for more information on Texas Instruments
+#
+# Davinci EVM has 1 bank of 256 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 9000'0000
+#
+# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+#
+# Visioneering Corp. Sonata board (ARM926EJS) cpu
+#
+# Sonata board has 1 bank of 128 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 8800'0000
+#
+# Razorstream, LLC. SCHMOOGIE board (ARM926EJS) cpu
+#
+# Schmoogie board has 1 bank of 128 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 8800'0000
+#
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
+# (mem base + reserved)
+#
+# we load ourself to 8108 '0000
+#
+#
+
+#Provide at least 16MB spacing between us and the Linux Kernel image
+TEXT_BASE = 0x81080000
diff -purN u-boot.git.orig/board/davinci/dv-evm/dv_board.c u-boot.git/board/davinci/dv-evm/dv_board.c
--- u-boot.git.orig/board/davinci/dv-evm/dv_board.c	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/dv-evm/dv_board.c	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+ *
+ * Parts are shamelessly stolen from various TI sources, original copyright
+ * follows:
+ * -----------------------------------------------------------------
+ *
+ * Copyright (C) 2004 Texas Instruments.
+ *
+ * ----------------------------------------------------------------------------
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * ----------------------------------------------------------------------------
+ */
+
+#include <common.h>
+#include <i2c.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/emac_defs.h>
+
+#define MACH_TYPE_DAVINCI_EVM		901
+
+extern void	i2c_init(int speed, int slaveaddr);
+extern void	timer_init(void);
+extern int	eth_hw_init(void);
+extern phy_t	phy;
+
+
+/* Works on Always On power domain only (no PD argument) */
+void lpsc_on(unsigned int id)
+{
+	dv_reg_p	mdstat, mdctl;
+
+	if (id >= DAVINCI_LPSC_GEM)
+		return;			/* Don't work on DSP Power Domain */
+
+	mdstat = REG_P(PSC_MDSTAT_BASE + (id * 4));
+	mdctl = REG_P(PSC_MDCTL_BASE + (id * 4));
+
+	while (REG(PSC_PTSTAT) & 0x01) {;}
+
+	if ((*mdstat & 0x1f) == 0x03)
+		return;			/* Already on and enabled */
+
+	*mdctl |= 0x03;
+
+	/* Special treatment for some modules as for sprue14 p.7.4.2 */
+	if (	(id == DAVINCI_LPSC_VPSSSLV) ||
+		(id == DAVINCI_LPSC_EMAC) ||
+		(id == DAVINCI_LPSC_EMAC_WRAPPER) ||
+		(id == DAVINCI_LPSC_MDIO) ||
+		(id == DAVINCI_LPSC_USB) ||
+		(id == DAVINCI_LPSC_ATA) ||
+		(id == DAVINCI_LPSC_VLYNQ) ||
+		(id == DAVINCI_LPSC_UHPI) ||
+		(id == DAVINCI_LPSC_DDR_EMIF) ||
+		(id == DAVINCI_LPSC_AEMIF) ||
+		(id == DAVINCI_LPSC_MMC_SD) ||
+		(id == DAVINCI_LPSC_MEMSTICK) ||
+		(id == DAVINCI_LPSC_McBSP) ||
+		(id == DAVINCI_LPSC_GPIO)
+	   )
+	   	*mdctl |= 0x200;
+
+	REG(PSC_PTCMD) = 0x01;
+
+	while (REG(PSC_PTSTAT) & 0x03) {;}
+	while ((*mdstat & 0x1f) != 0x03) {;}	/* Probably an overkill... */
+}
+
+void dsp_on(void)
+{
+	int	i;
+
+	if (REG(PSC_PDSTAT1) & 0x1f)
+		return;			/* Already on */
+
+	REG(PSC_GBLCTL) |= 0x01;
+	REG(PSC_PDCTL1) |= 0x01;
+	REG(PSC_PDCTL1) &= ~0x100;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) |= 0x03;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) &= 0xfffffeff;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) |= 0x03;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) &= 0xfffffeff;
+	REG(PSC_PTCMD) = 0x02;
+
+	for (i = 0; i < 100; i++) {
+		if (REG(PSC_EPCPR) & 0x02)
+			break;
+	}
+
+	REG(PSC_CHP_SHRTSW) = 0x01;
+	REG(PSC_PDCTL1) |= 0x100;
+	REG(PSC_EPCCR) = 0x02;
+
+	for (i = 0; i < 100; i++) {
+		if (!(REG(PSC_PTSTAT) & 0x02))
+			break;
+	}
+
+	REG(PSC_GBLCTL) &= ~0x1f;
+}
+
+
+int board_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	/* arch number of the board */
+	gd->bd->bi_arch_number = MACH_TYPE_DAVINCI_EVM;
+
+	/* address of boot parameters */
+	gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR;
+
+	/* Workaround for TMS320DM6446 errata 1.3.22 */
+	REG(PSC_SILVER_BULLET) = 0;
+
+	/* Power on required peripherals */
+	lpsc_on(DAVINCI_LPSC_EMAC);
+	lpsc_on(DAVINCI_LPSC_EMAC_WRAPPER);
+	lpsc_on(DAVINCI_LPSC_MDIO);
+	lpsc_on(DAVINCI_LPSC_I2C);
+	lpsc_on(DAVINCI_LPSC_UART0);
+	lpsc_on(DAVINCI_LPSC_TIMER1);
+	lpsc_on(DAVINCI_LPSC_GPIO);
+
+	/* Powerup the DSP */
+	dsp_on();
+
+	/* Bringup UART0 out of reset */
+	REG(UART0_PWREMU_MGMT) = 0x0000e003;
+
+	/* Enable GIO3.3V cells used for EMAC */
+	REG(VDD3P3V_PWDN) = 0;
+
+	/* Enable UART0 MUX lines */
+	REG(PINMUX1) |= 1;
+
+	/* Enable EMAC and AEMIF pins */
+	REG(PINMUX0) = 0x80000c1f;
+
+	/* Enable I2C pin Mux */
+	REG(PINMUX1) |= (1 << 7);
+
+	/* Set the Bus Priority Register to appropriate value */
+	REG(VBPR) = 0x20;
+
+	timer_init();
+
+	return(0);
+}
+
+int misc_init_r (void)
+{
+	u_int8_t	tmp[20], buf[10];
+	int		i = 0;
+	int		clk = 0;
+
+	clk = ((REG(PLL2_PLLM) + 1) * 27) / ((REG(PLL2_DIV2) & 0x1f) + 1);
+
+	printf ("ARM Clock : %dMHz\n", ((REG(PLL1_PLLM) + 1) * 27 ) / 2);
+	printf ("DDR Clock : %dMHz\n", (clk / 2));
+
+	/* Set Ethernet MAC address from EEPROM */
+	if (i2c_read(CFG_I2C_EEPROM_ADDR, 0x7f00, CFG_I2C_EEPROM_ADDR_LEN, buf, 6)) {
+		printf("\nEEPROM @ 0x%02x read FAILED!!!\n", CFG_I2C_EEPROM_ADDR);
+	} else {
+		tmp[0] = 0xff;
+		for (i = 0; i < 6; i++)
+			tmp[0] &= buf[i];
+
+		if ((tmp[0] != 0xff) && (getenv("ethaddr") == NULL)) {
+			sprintf((char *)&tmp[0], "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
+				buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]);
+			setenv("ethaddr", (char *)&tmp[0]);
+		}
+	}
+
+	if (!eth_hw_init()) {
+		printf("ethernet init failed!\n");
+	} else {
+		printf("ETH PHY   : %s\n", phy.name);
+	}
+
+	i2c_read (0x39, 0x00, 1, (u_int8_t *)&i, 1);
+
+	setenv ("videostd", ((i  & 0x80) ? "pal" : "ntsc"));
+
+	return(0);
+}
+
+int dram_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
+
+	return(0);
+}
diff -purN u-boot.git.orig/board/davinci/dv-evm/Makefile u-boot.git/board/davinci/dv-evm/Makefile
--- u-boot.git.orig/board/davinci/dv-evm/Makefile	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/dv-evm/Makefile	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,52 @@
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+#
+# 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 $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS	:= dv_board.o
+SOBJS	:= board_init.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+	rm -f $(SOBJS) $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak *~ .depend
+
+#########################################################################
+# This is for $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff -purN u-boot.git.orig/board/davinci/dv-evm/u-boot.lds u-boot.git/board/davinci/dv-evm/u-boot.lds
--- u-boot.git.orig/board/davinci/dv-evm/u-boot.lds	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/dv-evm/u-boot.lds	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,52 @@
+/*
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, <gj@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
+ */
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+	. = 0x00000000;
+	. = ALIGN(4);
+	.text	:
+	{
+	  cpu/arm926ejs/start.o	(.text)
+	  *(.text)
+	}
+	. = ALIGN(4);
+	.rodata : { *(.rodata) }
+	. = ALIGN(4);
+	.data : { *(.data) }
+	. = ALIGN(4);
+	.got : { *(.got) }
+
+	. = .;
+	__u_boot_cmd_start = .;
+	.u_boot_cmd : { *(.u_boot_cmd) }
+	__u_boot_cmd_end = .;
+
+	. = ALIGN(4);
+	__bss_start = .;
+	.bss : { *(.bss) }
+	_end = .;
+}
diff -purN u-boot.git.orig/board/davinci/schmoogie/board_init.S u-boot.git/board/davinci/schmoogie/board_init.S
--- u-boot.git.orig/board/davinci/schmoogie/board_init.S	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/schmoogie/board_init.S	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+ *
+ * Board-specific low level initialization code. Called at the very end
+ * of cpu/arm926ejs/davinci/lowlevel_init.S. Just returns if there is no
+ * initialization required.
+ *
+ * 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>
+
+.globl	dv_board_init
+dv_board_init:
+
+	mov	pc, lr
diff -purN u-boot.git.orig/board/davinci/schmoogie/config.mk u-boot.git/board/davinci/schmoogie/config.mk
--- u-boot.git.orig/board/davinci/schmoogie/config.mk	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/schmoogie/config.mk	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,39 @@
+#
+# (C) Copyright 2002
+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
+#
+# (C) Copyright 2003
+# Texas Instruments, <www.ti.com>
+# Swaminathan <swami.iyer@ti.com>
+#
+# Davinci EVM board (ARM925EJS) cpu
+# see http://www.ti.com/ for more information on Texas Instruments
+#
+# Davinci EVM has 1 bank of 256 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 9000'0000
+#
+# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+#
+# Visioneering Corp. Sonata board (ARM926EJS) cpu
+#
+# Sonata board has 1 bank of 128 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 8800'0000
+#
+# Razorstream, LLC. SCHMOOGIE board (ARM926EJS) cpu
+#
+# Schmoogie board has 1 bank of 128 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 8800'0000
+#
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
+# (mem base + reserved)
+#
+# we load ourself to 8108 '0000
+#
+#
+
+#Provide at least 16MB spacing between us and the Linux Kernel image
+TEXT_BASE = 0x81080000
diff -purN u-boot.git.orig/board/davinci/schmoogie/dv_board.c u-boot.git/board/davinci/schmoogie/dv_board.c
--- u-boot.git.orig/board/davinci/schmoogie/dv_board.c	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/schmoogie/dv_board.c	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,253 @@
+/*
+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+ *
+ * Parts are shamelessly stolen from various TI sources, original copyright
+ * follows:
+ * -----------------------------------------------------------------
+ *
+ * Copyright (C) 2004 Texas Instruments.
+ *
+ * ----------------------------------------------------------------------------
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * ----------------------------------------------------------------------------
+ */
+
+#include <common.h>
+#include <i2c.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/emac_defs.h>
+
+#define MACH_TYPE_SCHMOOGIE		1255
+
+extern void	i2c_init(int speed, int slaveaddr);
+extern void	timer_init(void);
+extern int	eth_hw_init(void);
+extern phy_t	phy;
+
+
+/* Works on Always On power domain only (no PD argument) */
+void lpsc_on(unsigned int id)
+{
+	dv_reg_p	mdstat, mdctl;
+
+	if (id >= DAVINCI_LPSC_GEM)
+		return;			/* Don't work on DSP Power Domain */
+
+	mdstat = REG_P(PSC_MDSTAT_BASE + (id * 4));
+	mdctl = REG_P(PSC_MDCTL_BASE + (id * 4));
+
+	while (REG(PSC_PTSTAT) & 0x01) {;}
+
+	if ((*mdstat & 0x1f) == 0x03)
+		return;			/* Already on and enabled */
+
+	*mdctl |= 0x03;
+
+	/* Special treatment for some modules as for sprue14 p.7.4.2 */
+	if (	(id == DAVINCI_LPSC_VPSSSLV) ||
+		(id == DAVINCI_LPSC_EMAC) ||
+		(id == DAVINCI_LPSC_EMAC_WRAPPER) ||
+		(id == DAVINCI_LPSC_MDIO) ||
+		(id == DAVINCI_LPSC_USB) ||
+		(id == DAVINCI_LPSC_ATA) ||
+		(id == DAVINCI_LPSC_VLYNQ) ||
+		(id == DAVINCI_LPSC_UHPI) ||
+		(id == DAVINCI_LPSC_DDR_EMIF) ||
+		(id == DAVINCI_LPSC_AEMIF) ||
+		(id == DAVINCI_LPSC_MMC_SD) ||
+		(id == DAVINCI_LPSC_MEMSTICK) ||
+		(id == DAVINCI_LPSC_McBSP) ||
+		(id == DAVINCI_LPSC_GPIO)
+	   )
+	   	*mdctl |= 0x200;
+
+	REG(PSC_PTCMD) = 0x01;
+
+	while (REG(PSC_PTSTAT) & 0x03) {;}
+	while ((*mdstat & 0x1f) != 0x03) {;}	/* Probably an overkill... */
+}
+
+void dsp_on(void)
+{
+	int	i;
+
+	if (REG(PSC_PDSTAT1) & 0x1f)
+		return;			/* Already on */
+
+	REG(PSC_GBLCTL) |= 0x01;
+	REG(PSC_PDCTL1) |= 0x01;
+	REG(PSC_PDCTL1) &= ~0x100;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) |= 0x03;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) &= 0xfffffeff;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) |= 0x03;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) &= 0xfffffeff;
+	REG(PSC_PTCMD) = 0x02;
+
+	for (i = 0; i < 100; i++) {
+		if (REG(PSC_EPCPR) & 0x02)
+			break;
+	}
+
+	REG(PSC_CHP_SHRTSW) = 0x01;
+	REG(PSC_PDCTL1) |= 0x100;
+	REG(PSC_EPCCR) = 0x02;
+
+	for (i = 0; i < 100; i++) {
+		if (!(REG(PSC_PTSTAT) & 0x02))
+			break;
+	}
+
+	REG(PSC_GBLCTL) &= ~0x1f;
+}
+
+
+int board_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	/* arch number of the board */
+	gd->bd->bi_arch_number = MACH_TYPE_SCHMOOGIE;
+
+	/* address of boot parameters */
+	gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR;
+
+	/* Workaround for TMS320DM6446 errata 1.3.22 */
+	REG(PSC_SILVER_BULLET) = 0;
+
+	/* Power on required peripherals */
+	lpsc_on(DAVINCI_LPSC_EMAC);
+	lpsc_on(DAVINCI_LPSC_EMAC_WRAPPER);
+	lpsc_on(DAVINCI_LPSC_MDIO);
+	lpsc_on(DAVINCI_LPSC_I2C);
+	lpsc_on(DAVINCI_LPSC_UART0);
+	lpsc_on(DAVINCI_LPSC_TIMER1);
+	lpsc_on(DAVINCI_LPSC_GPIO);
+
+	/* Powerup the DSP */
+	dsp_on();
+
+	/* Bringup UART0 out of reset */
+	REG(UART0_PWREMU_MGMT) = 0x0000e003;
+
+	/* Enable GIO3.3V cells used for EMAC */
+	REG(VDD3P3V_PWDN) = 0;
+
+	/* Enable UART0 MUX lines */
+	REG(PINMUX1) |= 1;
+
+	/* Enable EMAC and AEMIF pins */
+	REG(PINMUX0) = 0x80000c1f;
+
+	/* Enable I2C pin Mux */
+	REG(PINMUX1) |= (1 << 7);
+
+	/* Set the Bus Priority Register to appropriate value */
+	REG(VBPR) = 0x20;
+
+	timer_init();
+
+	return(0);
+}
+
+int misc_init_r (void)
+{
+	u_int8_t	tmp[20], buf[10];
+	int		i = 0;
+	int		clk = 0;
+
+	/* Set serial number from UID chip */
+	u_int8_t	crc_tbl[256] = {
+			0x00, 0x5e, 0xbc, 0xe2, 0x61, 0x3f, 0xdd, 0x83,
+			0xc2, 0x9c, 0x7e, 0x20, 0xa3, 0xfd, 0x1f, 0x41,
+			0x9d, 0xc3, 0x21, 0x7f, 0xfc, 0xa2, 0x40, 0x1e,
+			0x5f, 0x01, 0xe3, 0xbd, 0x3e, 0x60, 0x82, 0xdc,
+			0x23, 0x7d, 0x9f, 0xc1, 0x42, 0x1c, 0xfe, 0xa0,
+			0xe1, 0xbf, 0x5d, 0x03, 0x80, 0xde, 0x3c, 0x62,
+			0xbe, 0xe0, 0x02, 0x5c, 0xdf, 0x81, 0x63, 0x3d,
+			0x7c, 0x22, 0xc0, 0x9e, 0x1d, 0x43, 0xa1, 0xff,
+			0x46, 0x18, 0xfa, 0xa4, 0x27, 0x79, 0x9b, 0xc5,
+			0x84, 0xda, 0x38, 0x66, 0xe5, 0xbb, 0x59, 0x07,
+			0xdb, 0x85, 0x67, 0x39, 0xba, 0xe4, 0x06, 0x58,
+			0x19, 0x47, 0xa5, 0xfb, 0x78, 0x26, 0xc4, 0x9a,
+			0x65, 0x3b, 0xd9, 0x87, 0x04, 0x5a, 0xb8, 0xe6,
+			0xa7, 0xf9, 0x1b, 0x45, 0xc6, 0x98, 0x7a, 0x24,
+			0xf8, 0xa6, 0x44, 0x1a, 0x99, 0xc7, 0x25, 0x7b,
+			0x3a, 0x64, 0x86, 0xd8, 0x5b, 0x05, 0xe7, 0xb9,
+			0x8c, 0xd2, 0x30, 0x6e, 0xed, 0xb3, 0x51, 0x0f,
+			0x4e, 0x10, 0xf2, 0xac, 0x2f, 0x71, 0x93, 0xcd,
+			0x11, 0x4f, 0xad, 0xf3, 0x70, 0x2e, 0xcc, 0x92,
+			0xd3, 0x8d, 0x6f, 0x31, 0xb2, 0xec, 0x0e, 0x50,
+			0xaf, 0xf1, 0x13, 0x4d, 0xce, 0x90, 0x72, 0x2c,
+			0x6d, 0x33, 0xd1, 0x8f, 0x0c, 0x52, 0xb0, 0xee,
+			0x32, 0x6c, 0x8e, 0xd0, 0x53, 0x0d, 0xef, 0xb1,
+			0xf0, 0xae, 0x4c, 0x12, 0x91, 0xcf, 0x2d, 0x73,
+			0xca, 0x94, 0x76, 0x28, 0xab, 0xf5, 0x17, 0x49,
+			0x08, 0x56, 0xb4, 0xea, 0x69, 0x37, 0xd5, 0x8b,
+			0x57, 0x09, 0xeb, 0xb5, 0x36, 0x68, 0x8a, 0xd4,
+			0x95, 0xcb, 0x29, 0x77, 0xf4, 0xaa, 0x48, 0x16,
+			0xe9, 0xb7, 0x55, 0x0b, 0x88, 0xd6, 0x34, 0x6a,
+			0x2b, 0x75, 0x97, 0xc9, 0x4a, 0x14, 0xf6, 0xa8,
+			0x74, 0x2a, 0xc8, 0x96, 0x15, 0x4b, 0xa9, 0xf7,
+			0xb6, 0xe8, 0x0a, 0x54, 0xd7, 0x89, 0x6b, 0x35
+		};
+
+	clk = ((REG(PLL2_PLLM) + 1) * 27) / ((REG(PLL2_DIV2) & 0x1f) + 1);
+
+	printf ("ARM Clock : %dMHz\n", ((REG(PLL1_PLLM) + 1) * 27 ) / 2);
+	printf ("DDR Clock : %dMHz\n", (clk / 2));
+
+	/* Set serial number from UID chip */
+	if (i2c_read(CFG_UID_ADDR, 0, 1, buf, 8)) {
+		printf("\nUID @ 0x%02x read FAILED!!!\n", CFG_UID_ADDR);
+		forceenv("serial#", "FAILED");
+	} else {
+		if (buf[0] != 0x70) {	/* Device Family Code */
+			printf("\nUID @ 0x%02x read FAILED!!!\n", CFG_UID_ADDR);
+			forceenv("serial#", "FAILED");
+		}
+	}
+	/* Now check CRC */
+	tmp[0] = 0;
+	for (i = 0; i < 8; i++)
+		tmp[0] = crc_tbl[tmp[0] ^ buf[i]];
+
+	if (tmp[0] != 0) {
+		printf("\nUID @ 0x%02x - BAD CRC!!!\n", CFG_UID_ADDR);
+		forceenv("serial#", "FAILED");
+	} else {
+		/* CRC OK, set "serial" env variable */
+		sprintf((char *)&tmp[0], "%02hhx%02hhx%02hhx%02hhx%02hhx%02hhx",
+			buf[6], buf[5], buf[4], buf[3], buf[2], buf[1]);
+		forceenv("serial#", (char *)&tmp[0]);
+	}
+
+	if (!eth_hw_init()) {
+		printf("ethernet init failed!\n");
+	} else {
+		printf("ETH PHY   : %s\n", phy.name);
+	}
+
+	return(0);
+}
+
+int dram_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
+
+	return(0);
+}
diff -purN u-boot.git.orig/board/davinci/schmoogie/Makefile u-boot.git/board/davinci/schmoogie/Makefile
--- u-boot.git.orig/board/davinci/schmoogie/Makefile	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/schmoogie/Makefile	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,52 @@
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+#
+# 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 $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS	:= dv_board.o
+SOBJS	:= board_init.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+	rm -f $(SOBJS) $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak *~ .depend
+
+#########################################################################
+# This is for $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff -purN u-boot.git.orig/board/davinci/schmoogie/u-boot.lds u-boot.git/board/davinci/schmoogie/u-boot.lds
--- u-boot.git.orig/board/davinci/schmoogie/u-boot.lds	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/schmoogie/u-boot.lds	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,52 @@
+/*
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, <gj@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
+ */
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+	. = 0x00000000;
+	. = ALIGN(4);
+	.text	:
+	{
+	  cpu/arm926ejs/start.o	(.text)
+	  *(.text)
+	}
+	. = ALIGN(4);
+	.rodata : { *(.rodata) }
+	. = ALIGN(4);
+	.data : { *(.data) }
+	. = ALIGN(4);
+	.got : { *(.got) }
+
+	. = .;
+	__u_boot_cmd_start = .;
+	.u_boot_cmd : { *(.u_boot_cmd) }
+	__u_boot_cmd_end = .;
+
+	. = ALIGN(4);
+	__bss_start = .;
+	.bss : { *(.bss) }
+	_end = .;
+}
diff -purN u-boot.git.orig/board/davinci/sonata/board_init.S u-boot.git/board/davinci/sonata/board_init.S
--- u-boot.git.orig/board/davinci/sonata/board_init.S	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/sonata/board_init.S	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,100 @@
+/*
+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+ *
+ * Board-specific low level initialization code. Called at the very end
+ * of cpu/arm926ejs/davinci/lowlevel_init.S. Just returns if there is no
+ * initialization required.
+ *
+ * For _OLDER_ Sonata boards sets up GPIO4 to control NAND WP line. Newer
+ * Sonata boards, AFAIK, don't use this so it's just return by default. Ask
+ * Visioneering if they reinvented the wheel once again to make sure :)
+ *
+ * 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>
+
+.globl	dv_board_init
+dv_board_init:
+#ifdef SONATA_BOARD_GPIOWP
+	/* Set PINMUX0 to enable GPIO4 */
+	ldr	r0, _PINMUX0
+	ldr	r1, GPIO4_EN_MASK
+	ldr	r2, [r0]
+	and	r2, r2, r1
+	str	r2, [r0]
+
+	/* Enable GPIO LPSC module */
+	ldr	r0, PTSTAT
+
+gpio_ptstat_loop1:
+	ldr	r2, [r0]
+	tst	r2, $0x00000001
+	bne	gpio_ptstat_loop1
+
+	ldr	r1, MDCTL_GPIO
+	ldr	r2, [r1]
+	and	r2, r2, $0xfffffff8
+	orr	r2, r2, $0x00000003
+	str	r2, [r1]
+
+	orr	r2, r2, $0x00000200
+	str	r2, [r1]
+
+	ldr	r1, PTCMD
+	mov	r2, $0x00000001
+	str	r2, [r1]
+
+gpio_ptstat_loop2:
+	ldr	r2, [r0]
+	tst	r2, $0x00000001
+	bne	gpio_ptstat_loop2
+
+	ldr	r0, MDSTAT_GPIO
+gpio_mdstat_loop:
+	ldr	r2, [r0]
+	and	r2, r2, $0x0000001f
+	teq	r2, $0x00000003
+	bne	gpio_mdstat_loop
+
+	/* GPIO4 -> output */
+	ldr	r0, GPIO_DIR01
+	mov	r1, $0x10
+	ldr	r2, [r0]
+	bic	r2, r2, r0
+	str	r2, [r0]
+
+	/* Set it to 0 (Write Protect) */
+	ldr	r0, GPIO_CLR_DATA01
+	str	r1, [r0]
+#endif
+
+	mov	pc, lr
+
+#ifdef SONATA_BOARD_GPIOWP
+.ltorg
+
+GPIO4_EN_MASK:
+	.word	0xf77fffff
+MDCTL_GPIO:
+	.word	0x01c41a68
+MDSTAT_GPIO:
+	.word	0x01c41868
+GPIO_DIR01:
+	.word	0x01c67010
+GPIO_CLR_DATA01:
+	.word	0x01c6701c
+#endif
diff -purN u-boot.git.orig/board/davinci/sonata/config.mk u-boot.git/board/davinci/sonata/config.mk
--- u-boot.git.orig/board/davinci/sonata/config.mk	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/sonata/config.mk	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,39 @@
+#
+# (C) Copyright 2002
+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
+# David Mueller, ELSOFT AG, <d.mueller@elsoft.ch>
+#
+# (C) Copyright 2003
+# Texas Instruments, <www.ti.com>
+# Swaminathan <swami.iyer@ti.com>
+#
+# Davinci EVM board (ARM925EJS) cpu
+# see http://www.ti.com/ for more information on Texas Instruments
+#
+# Davinci EVM has 1 bank of 256 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 9000'0000
+#
+# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+#
+# Visioneering Corp. Sonata board (ARM926EJS) cpu
+#
+# Sonata board has 1 bank of 128 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 8800'0000
+#
+# Razorstream, LLC. SCHMOOGIE board (ARM926EJS) cpu
+#
+# Schmoogie board has 1 bank of 128 MB DDR RAM
+# Physical Address:
+# 8000'0000 to 8800'0000
+#
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000
+# (mem base + reserved)
+#
+# we load ourself to 8108 '0000
+#
+#
+
+#Provide at least 16MB spacing between us and the Linux Kernel image
+TEXT_BASE = 0x81080000
diff -purN u-boot.git.orig/board/davinci/sonata/dv_board.c u-boot.git/board/davinci/sonata/dv_board.c
--- u-boot.git.orig/board/davinci/sonata/dv_board.c	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/sonata/dv_board.c	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,208 @@
+/*
+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+ *
+ * Parts are shamelessly stolen from various TI sources, original copyright
+ * follows:
+ * -----------------------------------------------------------------
+ *
+ * Copyright (C) 2004 Texas Instruments.
+ *
+ * ----------------------------------------------------------------------------
+ * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * ----------------------------------------------------------------------------
+ */
+
+#include <common.h>
+#include <i2c.h>
+#include <asm/arch/hardware.h>
+#include <asm/arch/emac_defs.h>
+
+#define MACH_TYPE_SONATA		1254
+
+extern void	i2c_init(int speed, int slaveaddr);
+extern void	timer_init(void);
+extern int	eth_hw_init(void);
+extern phy_t	phy;
+
+
+/* Works on Always On power domain only (no PD argument) */
+void lpsc_on(unsigned int id)
+{
+	dv_reg_p	mdstat, mdctl;
+
+	if (id >= DAVINCI_LPSC_GEM)
+		return;			/* Don't work on DSP Power Domain */
+
+	mdstat = REG_P(PSC_MDSTAT_BASE + (id * 4));
+	mdctl = REG_P(PSC_MDCTL_BASE + (id * 4));
+
+	while (REG(PSC_PTSTAT) & 0x01) {;}
+
+	if ((*mdstat & 0x1f) == 0x03)
+		return;			/* Already on and enabled */
+
+	*mdctl |= 0x03;
+
+	/* Special treatment for some modules as for sprue14 p.7.4.2 */
+	if (	(id == DAVINCI_LPSC_VPSSSLV) ||
+		(id == DAVINCI_LPSC_EMAC) ||
+		(id == DAVINCI_LPSC_EMAC_WRAPPER) ||
+		(id == DAVINCI_LPSC_MDIO) ||
+		(id == DAVINCI_LPSC_USB) ||
+		(id == DAVINCI_LPSC_ATA) ||
+		(id == DAVINCI_LPSC_VLYNQ) ||
+		(id == DAVINCI_LPSC_UHPI) ||
+		(id == DAVINCI_LPSC_DDR_EMIF) ||
+		(id == DAVINCI_LPSC_AEMIF) ||
+		(id == DAVINCI_LPSC_MMC_SD) ||
+		(id == DAVINCI_LPSC_MEMSTICK) ||
+		(id == DAVINCI_LPSC_McBSP) ||
+		(id == DAVINCI_LPSC_GPIO)
+	   )
+	   	*mdctl |= 0x200;
+
+	REG(PSC_PTCMD) = 0x01;
+
+	while (REG(PSC_PTSTAT) & 0x03) {;}
+	while ((*mdstat & 0x1f) != 0x03) {;}	/* Probably an overkill... */
+}
+
+void dsp_on(void)
+{
+	int	i;
+
+	if (REG(PSC_PDSTAT1) & 0x1f)
+		return;			/* Already on */
+
+	REG(PSC_GBLCTL) |= 0x01;
+	REG(PSC_PDCTL1) |= 0x01;
+	REG(PSC_PDCTL1) &= ~0x100;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) |= 0x03;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_GEM * 4)) &= 0xfffffeff;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) |= 0x03;
+	REG(PSC_MDCTL_BASE + (DAVINCI_LPSC_IMCOP * 4)) &= 0xfffffeff;
+	REG(PSC_PTCMD) = 0x02;
+
+	for (i = 0; i < 100; i++) {
+		if (REG(PSC_EPCPR) & 0x02)
+			break;
+	}
+
+	REG(PSC_CHP_SHRTSW) = 0x01;
+	REG(PSC_PDCTL1) |= 0x100;
+	REG(PSC_EPCCR) = 0x02;
+
+	for (i = 0; i < 100; i++) {
+		if (!(REG(PSC_PTSTAT) & 0x02))
+			break;
+	}
+
+	REG(PSC_GBLCTL) &= ~0x1f;
+}
+
+
+int board_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	/* arch number of the board */
+	gd->bd->bi_arch_number = MACH_TYPE_SONATA;
+
+	/* address of boot parameters */
+	gd->bd->bi_boot_params = LINUX_BOOT_PARAM_ADDR;
+
+	/* Workaround for TMS320DM6446 errata 1.3.22 */
+	REG(PSC_SILVER_BULLET) = 0;
+
+	/* Power on required peripherals */
+	lpsc_on(DAVINCI_LPSC_EMAC);
+	lpsc_on(DAVINCI_LPSC_EMAC_WRAPPER);
+	lpsc_on(DAVINCI_LPSC_MDIO);
+	lpsc_on(DAVINCI_LPSC_I2C);
+	lpsc_on(DAVINCI_LPSC_UART0);
+	lpsc_on(DAVINCI_LPSC_TIMER1);
+	lpsc_on(DAVINCI_LPSC_GPIO);
+
+	/* Powerup the DSP */
+	dsp_on();
+
+	/* Bringup UART0 out of reset */
+	REG(UART0_PWREMU_MGMT) = 0x0000e003;
+
+	/* Enable GIO3.3V cells used for EMAC */
+	REG(VDD3P3V_PWDN) = 0;
+
+	/* Enable UART0 MUX lines */
+	REG(PINMUX1) |= 1;
+
+	/* Enable EMAC and AEMIF pins */
+	REG(PINMUX0) = 0x80000c1f;
+
+	/* Enable I2C pin Mux */
+	REG(PINMUX1) |= (1 << 7);
+
+	/* Set the Bus Priority Register to appropriate value */
+	REG(VBPR) = 0x20;
+
+	timer_init();
+
+	return(0);
+}
+
+int misc_init_r (void)
+{
+	u_int8_t	tmp[20], buf[10];
+	int		i = 0;
+	int		clk = 0;
+
+
+	clk = ((REG(PLL2_PLLM) + 1) * 27) / ((REG(PLL2_DIV2) & 0x1f) + 1);
+
+	printf ("ARM Clock : %dMHz\n", ((REG(PLL1_PLLM) + 1) * 27 ) / 2);
+	printf ("DDR Clock : %dMHz\n", (clk / 2));
+
+	/* Set Ethernet MAC address from EEPROM */
+	if (i2c_read(CFG_I2C_EEPROM_ADDR, 0x7f00, CFG_I2C_EEPROM_ADDR_LEN, buf, 6)) {
+		printf("\nEEPROM @ 0x%02x read FAILED!!!\n", CFG_I2C_EEPROM_ADDR);
+	} else {
+		tmp[0] = 0xff;
+		for (i = 0; i < 6; i++)
+			tmp[0] &= buf[i];
+
+		if ((tmp[0] != 0xff) && (getenv("ethaddr") == NULL)) {
+			sprintf((char *)&tmp[0], "%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx",
+				buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]);
+			setenv("ethaddr", (char *)&tmp[0]);
+		}
+	}
+
+	if (!eth_hw_init()) {
+		printf("ethernet init failed!\n");
+	} else {
+		printf("ETH PHY   : %s\n", phy.name);
+	}
+
+	return(0);
+}
+
+int dram_init(void)
+{
+	DECLARE_GLOBAL_DATA_PTR;
+
+	gd->bd->bi_dram[0].start = PHYS_SDRAM_1;
+	gd->bd->bi_dram[0].size = PHYS_SDRAM_1_SIZE;
+
+	return(0);
+}
diff -purN u-boot.git.orig/board/davinci/sonata/Makefile u-boot.git/board/davinci/sonata/Makefile
--- u-boot.git.orig/board/davinci/sonata/Makefile	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/sonata/Makefile	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,52 @@
+#
+# (C) Copyright 2000, 2001, 2002
+# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+#
+# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+#
+# 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 $(TOPDIR)/config.mk
+
+LIB	= $(obj)lib$(BOARD).a
+
+COBJS	:= dv_board.o
+SOBJS	:= board_init.o
+
+SRCS	:= $(SOBJS:.o=.S) $(COBJS:.o=.c)
+OBJS	:= $(addprefix $(obj),$(COBJS))
+SOBJS	:= $(addprefix $(obj),$(SOBJS))
+
+$(LIB):	$(obj).depend $(OBJS) $(SOBJS)
+	$(AR) $(ARFLAGS) $@ $(OBJS) $(SOBJS)
+
+clean:
+	rm -f $(SOBJS) $(OBJS)
+
+distclean:	clean
+	rm -f $(LIB) core *.bak *~ .depend
+
+#########################################################################
+# This is for $(obj).depend target
+include $(SRCTREE)/rules.mk
+
+sinclude $(obj).depend
+
+#########################################################################
diff -purN u-boot.git.orig/board/davinci/sonata/u-boot.lds u-boot.git/board/davinci/sonata/u-boot.lds
--- u-boot.git.orig/board/davinci/sonata/u-boot.lds	1969-12-31 16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/sonata/u-boot.lds	2007-08-06 18:06:42.000000000 -0700
@@ -0,0 +1,52 @@
+/*
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, <gj@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
+ */
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+	. = 0x00000000;
+	. = ALIGN(4);
+	.text	:
+	{
+	  cpu/arm926ejs/start.o	(.text)
+	  *(.text)
+	}
+	. = ALIGN(4);
+	.rodata : { *(.rodata) }
+	. = ALIGN(4);
+	.data : { *(.data) }
+	. = ALIGN(4);
+	.got : { *(.got) }
+
+	. = .;
+	__u_boot_cmd_start = .;
+	.u_boot_cmd : { *(.u_boot_cmd) }
+	__u_boot_cmd_end = .;
+
+	. = ALIGN(4);
+	__bss_start = .;
+	.bss : { *(.bss) }
+	_end = .;
+}
=== Cut ===

---
******************************************************************
*  KSI at home    KOI8 Net  < >  The impossible we do immediately.  *
*  Las Vegas   NV, USA   < >  Miracles require 24-hour notice.   *
******************************************************************

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

* [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [0/5]
       [not found] ` <5CBE65F7D9232C47861CB09B0954861C2FD8F8@MAIL.infinitychannel.local>
@ 2007-08-07  2:22   ` Zach Sadecki
  2007-08-07  4:43     ` ksi at koi8.net
  0 siblings, 1 reply; 8+ messages in thread
From: Zach Sadecki @ 2007-08-07  2:22 UTC (permalink / raw)
  To: u-boot

 
Sergey,
  You mentioned in a previous post that you had a serial boot utility you wrote to get away from the C# one that TI has...  Did you write that in C?  Could you share it with the list, since it would be most helpful to those of us who work with Davinci boards.

Thanks for all your efforts with this port of u-boot.  It will be great to be able to move up to a clean, well written version.  I look forward to the NAND support especially, since the stuff in the TI supplied u-boot is almost 3 years old...

Zach

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20070806/79e4d2b2/attachment.htm 

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

* [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [0/5]
  2007-08-07  2:22   ` [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [0/5] Zach Sadecki
@ 2007-08-07  4:43     ` ksi at koi8.net
  2007-08-07 12:52       ` Zach Sadecki
  2007-08-08  4:32       ` [U-Boot-Users] DaVinci serial boot utility, was: " Dirk Behme
  0 siblings, 2 replies; 8+ messages in thread
From: ksi at koi8.net @ 2007-08-07  4:43 UTC (permalink / raw)
  To: u-boot

On Mon, 6 Aug 2007, Zach Sadecki wrote:

>
> Sergey,
>  You mentioned in a previous post that you had a serial boot utility
> you wrote to get away from the C# one that TI has...  Did you write that
> in C?  Could you share it with the list, since it would be most helpful
> to those of us who work with Davinci boards.

It is partially in C and partially in Assembly. I would like to share it but
it is quite messy right now, code requires a good cleanup. Unfortunately I
don't have time right now, I'm extremely busy with bringing up prototype
boards that just came in... We're very short in time so I have to get them
up and running asap and give out a list of required changes and fixes for
the final prototypes and then go into production...

So I will do it later, when that pressure is somehow lessened...

Another thing is I don't know where it belongs. Just posting it to the list
will do little good, it must go into some repository or a product. I think
it would be OK to add various bootloaders to the U-Boot tree so people would
have all the means for bringing up their hardware from totally virgin state
but that requires cooperation, willinness to add yet another tree to the
U-Boot and decision on where it should go...

> Thanks for all your efforts with this port of u-boot.  It will be great
> to be able to move up to a clean, well written version.  I look forward
> to the NAND support especially, since the stuff in the TI supplied
> u-boot is almost 3 years old...

It is not just old, it is crappy and non-working :) And their I2C stuff is
absolutely bogus...

---
******************************************************************
*  KSI at home    KOI8 Net  < >  The impossible we do immediately.  *
*  Las Vegas   NV, USA   < >  Miracles require 24-hour notice.   *
******************************************************************

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

* [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [0/5]
  2007-08-07  4:43     ` ksi at koi8.net
@ 2007-08-07 12:52       ` Zach Sadecki
  2007-08-08  4:32       ` [U-Boot-Users] DaVinci serial boot utility, was: " Dirk Behme
  1 sibling, 0 replies; 8+ messages in thread
From: Zach Sadecki @ 2007-08-07 12:52 UTC (permalink / raw)
  To: u-boot

It is crappy and broken...  I was just being nice :)  I'm tired of fighting problems that we would have never seen if we were using a somewhat more modern u-boot...

Thanks,
  Zach


-----Original Message-----
From: ksi@koi8.net [mailto:ksi at koi8.net]
Sent: Mon 8/6/2007 11:43 PM
To: Zach Sadecki
Cc: U-Boot list
Subject: Re: [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [0/5]
 
On Mon, 6 Aug 2007, Zach Sadecki wrote:

>
> Sergey,
>  You mentioned in a previous post that you had a serial boot utility
> you wrote to get away from the C# one that TI has...  Did you write that
> in C?  Could you share it with the list, since it would be most helpful
> to those of us who work with Davinci boards.

It is partially in C and partially in Assembly. I would like to share it but
it is quite messy right now, code requires a good cleanup. Unfortunately I
don't have time right now, I'm extremely busy with bringing up prototype
boards that just came in... We're very short in time so I have to get them
up and running asap and give out a list of required changes and fixes for
the final prototypes and then go into production...

So I will do it later, when that pressure is somehow lessened...

Another thing is I don't know where it belongs. Just posting it to the list
will do little good, it must go into some repository or a product. I think
it would be OK to add various bootloaders to the U-Boot tree so people would
have all the means for bringing up their hardware from totally virgin state
but that requires cooperation, willinness to add yet another tree to the
U-Boot and decision on where it should go...

> Thanks for all your efforts with this port of u-boot.  It will be great
> to be able to move up to a clean, well written version.  I look forward
> to the NAND support especially, since the stuff in the TI supplied
> u-boot is almost 3 years old...

It is not just old, it is crappy and non-working :) And their I2C stuff is
absolutely bogus...

---
******************************************************************
*  KSI at home    KOI8 Net  < >  The impossible we do immediately.  *
*  Las Vegas   NV, USA   < >  Miracles require 24-hour notice.   *
******************************************************************

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.denx.de/pipermail/u-boot/attachments/20070807/94acf65d/attachment.htm 

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

* [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5]
  2007-08-07  2:13 [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5] ksi at koi8.net
       [not found] ` <5CBE65F7D9232C47861CB09B0954861C2FD8F8@MAIL.infinitychannel.local>
@ 2007-08-07 17:08 ` Dirk Behme
  2007-08-07 17:31 ` Zach Sadecki
       [not found] ` <5CBE65F7D9232C47861CB09B0954861C66A400@MAIL.infinitychannel.local>
  3 siblings, 0 replies; 8+ messages in thread
From: Dirk Behme @ 2007-08-07 17:08 UTC (permalink / raw)
  To: u-boot

ksi at koi8.net wrote:
> Signed-off-by: Sergey Kubushyn <ksi@koi8.net>

My updated version below. Feel free to resend with your Signed-off-by, 
update or ignore.

Hth

Dirk
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 01_davinci_kis_patch.txt
Url: http://lists.denx.de/pipermail/u-boot/attachments/20070807/12c6391b/attachment.txt 

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

* [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5]
  2007-08-07  2:13 [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5] ksi at koi8.net
       [not found] ` <5CBE65F7D9232C47861CB09B0954861C2FD8F8@MAIL.infinitychannel.local>
  2007-08-07 17:08 ` [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5] Dirk Behme
@ 2007-08-07 17:31 ` Zach Sadecki
       [not found] ` <5CBE65F7D9232C47861CB09B0954861C66A400@MAIL.infinitychannel.local>
  3 siblings, 0 replies; 8+ messages in thread
From: Zach Sadecki @ 2007-08-07 17:31 UTC (permalink / raw)
  To: u-boot


I can't get this patch to apply...

Look at the second section (config.mk), it claims to be adding 39 lines
"@@ -0,0 +1,39 @@", but the section is much shorter than that...  Also
the all the comments seem messed up with the #'s not appearing at the
start of every line (which is where I suspect the line numbering
discrepancy comes from)...

Zach

-----Original Message-----
From: u-boot-users-bounces@lists.sourceforge.net
[mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf Of
ksi at koi8.net
Sent: Monday, August 06, 2007 9:14 PM
To: U-Boot list
Subject: [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5]

Signed-off-by: Sergey Kubushyn <ksi@koi8.net>

=== Cut ===
diff -purN u-boot.git.orig/board/davinci/dv-evm/board_init.S
u-boot.git/board/davinci/dv-evm/board_init.S
--- u-boot.git.orig/board/davinci/dv-evm/board_init.S	1969-12-31
16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/dv-evm/board_init.S	2007-08-06
18:06:42.000000000 -0700
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+ *
+ * Board-specific low level initialization code. Called at the very end
+ * of cpu/arm926ejs/davinci/lowlevel_init.S. Just returns if there is 
+no
+ * initialization required.
+ *
+ * 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>
+
+.globl	dv_board_init
+dv_board_init:
+
+	mov	pc, lr
diff -purN u-boot.git.orig/board/davinci/dv-evm/config.mk
u-boot.git/board/davinci/dv-evm/config.mk
--- u-boot.git.orig/board/davinci/dv-evm/config.mk	1969-12-31
16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/dv-evm/config.mk	2007-08-06
18:06:42.000000000 -0700
@@ -0,0 +1,39 @@
+#
+# (C) Copyright 2002
+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> # David 
+Mueller, ELSOFT AG, <d.mueller@elsoft.ch> # # (C) Copyright 2003 # 
+Texas Instruments, <www.ti.com> # Swaminathan <swami.iyer@ti.com> # # 
+Davinci EVM board (ARM925EJS) cpu # see http://www.ti.com/ for more 
+information on Texas Instruments # # Davinci EVM has 1 bank of 256 MB 
+DDR RAM # Physical Address:
+# 8000'0000 to 9000'0000
+#
+# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> # # Visioneering 
+Corp. Sonata board (ARM926EJS) cpu # # Sonata board has 1 bank of 128 
+MB DDR RAM # Physical Address:
+# 8000'0000 to 8800'0000
+#
+# Razorstream, LLC. SCHMOOGIE board (ARM926EJS) cpu # # Schmoogie board

+has 1 bank of 128 MB DDR RAM # Physical Address:
+# 8000'0000 to 8800'0000
+#
+# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000 # (mem 
+base + reserved) # # we load ourself to 8108 '0000 # #
+
+#Provide at least 16MB spacing between us and the Linux Kernel image 
+TEXT_BASE = 0x81080000
diff -purN u-boot.git.orig/board/davinci/dv-evm/dv_board.c
u-boot.git/board/davinci/dv-evm/dv_board.c
--- u-boot.git.orig/board/davinci/dv-evm/dv_board.c	1969-12-31
16:00:00.000000000 -0800
+++ u-boot.git/board/davinci/dv-evm/dv_board.c	2007-08-06
18:06:42.000000000 -0700
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
+ *
+ * Parts are shamelessly stolen from various TI sources, original 
+copyright

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

* [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5]
       [not found]   ` <Pine.LNX.4.64ksi.0708071002390.4806@home-gw.koi8.net>
@ 2007-08-07 17:39     ` Zach Sadecki
  0 siblings, 0 replies; 8+ messages in thread
From: Zach Sadecki @ 2007-08-07 17:39 UTC (permalink / raw)
  To: u-boot

It doesn't appear to be the MUA...  The lines all start with "+" which
indicates to me that diff did that.   The following is a section cut out
of it..  Notice the "#"s in the middle of lines, some lines start with
no #, and each one has a "+" as the first character indicating that diff
created it that way...  Maybe it's a problem with the EOLs?

+# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> # David 
+Mueller, ELSOFT AG, <d.mueller@elsoft.ch> # # (C) Copyright 2003 # 
+Texas Instruments, <www.ti.com> # Swaminathan <swami.iyer@ti.com> # # 
+Davinci EVM board (ARM925EJS) cpu # see http://www.ti.com/ for more 
+information on Texas Instruments # # Davinci EVM has 1 bank of 256 MB 
+DDR RAM # Physical Address:

I understand your dislike for inline patches...  I'd personally prefer
them as attachments, then users can configure their MUAs to display text
attachments inline, but that's not the practice on this list...

Zach


-----Original Message-----
From: ksi@koi8.net [mailto:ksi at koi8.net] 
Sent: Tuesday, August 07, 2007 12:05 PM
To: Zach Sadecki
Cc: U-Boot list
Subject: RE: [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5]

On Tue, 7 Aug 2007, Zach Sadecki wrote:

That's exactly the reason why I didn't want to send inline patches.
Every MUA is different and screws up the text in its unique way.

Patch itself is fine and it adds exactly 39 lines.

> I can't get this patch to apply...
>
> Look at the second section (config.mk), it claims to be adding 39 
> lines "@@ -0,0 +1,39 @@", but the section is much shorter than that...

> Also the all the comments seem messed up with the #'s not appearing at

> the start of every line (which is where I suspect the line numbering 
> discrepancy comes from)...
>
> Zach
>
> -----Original Message-----
> From: u-boot-users-bounces at lists.sourceforge.net
> [mailto:u-boot-users-bounces at lists.sourceforge.net] On Behalf Of 
> ksi at koi8.net
> Sent: Monday, August 06, 2007 9:14 PM
> To: U-Boot list
> Subject: [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5]
>
> Signed-off-by: Sergey Kubushyn <ksi@koi8.net>
>
> === Cut ===
> diff -purN u-boot.git.orig/board/davinci/dv-evm/board_init.S
> u-boot.git/board/davinci/dv-evm/board_init.S
> --- u-boot.git.orig/board/davinci/dv-evm/board_init.S	1969-12-31
> 16:00:00.000000000 -0800
> +++ u-boot.git/board/davinci/dv-evm/board_init.S	2007-08-06
> 18:06:42.000000000 -0700
> @@ -0,0 +1,29 @@
> +/*
> + * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
> + *
> + * Board-specific low level initialization code. Called at the very 
> +end
> + * of cpu/arm926ejs/davinci/lowlevel_init.S. Just returns if there is

> +no
> + * initialization required.
> + *
> + * 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>
> +
> +.globl	dv_board_init
> +dv_board_init:
> +
> +	mov	pc, lr
> diff -purN u-boot.git.orig/board/davinci/dv-evm/config.mk
> u-boot.git/board/davinci/dv-evm/config.mk
> --- u-boot.git.orig/board/davinci/dv-evm/config.mk	1969-12-31
> 16:00:00.000000000 -0800
> +++ u-boot.git/board/davinci/dv-evm/config.mk	2007-08-06
> 18:06:42.000000000 -0700
> @@ -0,0 +1,39 @@
> +#
> +# (C) Copyright 2002
> +# Gary Jennejohn, DENX Software Engineering, <gj@denx.de> # David 
> +Mueller, ELSOFT AG, <d.mueller@elsoft.ch> # # (C) Copyright 2003 # 
> +Texas Instruments, <www.ti.com> # Swaminathan <swami.iyer@ti.com> # #

> +Davinci EVM board (ARM925EJS) cpu # see http://www.ti.com/ for more 
> +information on Texas Instruments # # Davinci EVM has 1 bank of 256 MB

> +DDR RAM # Physical Address:
> +# 8000'0000 to 9000'0000
> +#
> +# Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net> # # Visioneering 
> +Corp. Sonata board (ARM926EJS) cpu # # Sonata board has 1 bank of 128

> +MB DDR RAM # Physical Address:
> +# 8000'0000 to 8800'0000
> +#
> +# Razorstream, LLC. SCHMOOGIE board (ARM926EJS) cpu # # Schmoogie 
> +board
>
> +has 1 bank of 128 MB DDR RAM # Physical Address:
> +# 8000'0000 to 8800'0000
> +#
> +# Linux-Kernel is expected to be at 8000'8000, entry 8000'8000 # (mem

> +base + reserved) # # we load ourself to 8108 '0000 # #
> +
> +#Provide at least 16MB spacing between us and the Linux Kernel image 
> +TEXT_BASE = 0x81080000
> diff -purN u-boot.git.orig/board/davinci/dv-evm/dv_board.c
> u-boot.git/board/davinci/dv-evm/dv_board.c
> --- u-boot.git.orig/board/davinci/dv-evm/dv_board.c	1969-12-31
> 16:00:00.000000000 -0800
> +++ u-boot.git/board/davinci/dv-evm/dv_board.c	2007-08-06
> 18:06:42.000000000 -0700
> @@ -0,0 +1,211 @@
> +/*
> + * Copyright (C) 2007 Sergey Kubushyn <ksi@koi8.net>
> + *
> + * Parts are shamelessly stolen from various TI sources, original 
> +copyright
> + * follows:
> + * -----------------------------------------------------------------
> + *
> + * Copyright (C) 2004 Texas Instruments.
> + *
> + *
> +---------------------------------------------------------------------
> +--
> +-----
> + * 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., 675 Mass Ave, Cambridge, MA 02139, USA.
> + *
> +---------------------------------------------------------------------

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

* [U-Boot-Users] DaVinci serial boot utility, was: TI DaVinci support, 2nd attempt [0/5]
  2007-08-07  4:43     ` ksi at koi8.net
  2007-08-07 12:52       ` Zach Sadecki
@ 2007-08-08  4:32       ` Dirk Behme
  1 sibling, 0 replies; 8+ messages in thread
From: Dirk Behme @ 2007-08-08  4:32 UTC (permalink / raw)
  To: u-boot

ksi at koi8.net wrote:
> On Mon, 6 Aug 2007, Zach Sadecki wrote:
> 
>>Sergey,
>> You mentioned in a previous post that you had a serial boot utility
>>you wrote to get away from the C# one that TI has...  Did you write that
>>in C?  Could you share it with the list, since it would be most helpful
>>to those of us who work with Davinci boards.
> 
> 
> It is partially in C and partially in Assembly. I would like to share it but
> it is quite messy right now, code requires a good cleanup. Unfortunately I
> don't have time right now, I'm extremely busy with bringing up prototype
> boards that just came in... We're very short in time so I have to get them
> up and running asap and give out a list of required changes and fixes for
> the final prototypes and then go into production...
> 
> So I will do it later, when that pressure is somehow lessened...

Maybe you can consider to send it as it is to 
davinci-linux-open-source list, probably marked as 'experimental'? If 
you like, then people can test, use and help to improve it. You know 
this "release early, release often"? ;)

I could imagine to create a page in DaVinci wiki with howto use, list 
of shortcomings and things to fix, then.

Best regards

Dirk

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

end of thread, other threads:[~2007-08-08  4:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-07  2:13 [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5] ksi at koi8.net
     [not found] ` <5CBE65F7D9232C47861CB09B0954861C2FD8F8@MAIL.infinitychannel.local>
2007-08-07  2:22   ` [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [0/5] Zach Sadecki
2007-08-07  4:43     ` ksi at koi8.net
2007-08-07 12:52       ` Zach Sadecki
2007-08-08  4:32       ` [U-Boot-Users] DaVinci serial boot utility, was: " Dirk Behme
2007-08-07 17:08 ` [U-Boot-Users] [ARM] TI DaVinci support, 2nd attempt [1/5] Dirk Behme
2007-08-07 17:31 ` Zach Sadecki
     [not found] ` <5CBE65F7D9232C47861CB09B0954861C66A400@MAIL.infinitychannel.local>
     [not found]   ` <Pine.LNX.4.64ksi.0708071002390.4806@home-gw.koi8.net>
2007-08-07 17:39     ` Zach Sadecki

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