u-boot git: add support for dm355-leopardboard
authorKoen Kooi <koen@openembedded.org>
Tue, 19 May 2009 13:53:22 +0000 (15:53 +0200)
committerKoen Kooi <koen@openembedded.org>
Tue, 19 May 2009 13:53:22 +0000 (15:53 +0200)
recipes/u-boot/u-boot-git/leopardboard-support.patch [new file with mode: 0644]
recipes/u-boot/u-boot_git.bb

diff --git a/recipes/u-boot/u-boot-git/leopardboard-support.patch b/recipes/u-boot/u-boot-git/leopardboard-support.patch
new file mode 100644 (file)
index 0000000..fced0c1
--- /dev/null
@@ -0,0 +1,365 @@
+From: s-paulraj at ti.com (s-paulraj at ti.com)
+Date: Wed, 13 May 2009 10:32:40 -0400
+Subject: [U-Boot] [PATCH] ARM DaVinci Leopard Board Support
+Message-ID: <1242225160-26706-1-git-send-email-s-paulraj@ti.com>
+
+The patch applies to arm/next. It was tested on a leopard board.
+After testing had to change the MACH TYPE as this board is not present
+in the list of mach types at the moment. So the patch itself is going
+to give a compilation failure.
+
+Further details on this board can be found at www.leopardboard.org
+
+This patch does not do the NAND initialization yet. Will send an update
+to this patch after David Brownell's NAND updates get merged
+
+Jean-Christophe can you please do a new sync for this board
+
+Signed-off-by: Sandeep Paulraj <s-paulraj at ti.com>
+---
+ Makefile                          |    3 +
+ board/davinci/leopard/Makefile    |   52 +++++++++++++++
+ board/davinci/leopard/config.mk   |   11 +++
+ board/davinci/leopard/leopard.c   |   36 ++++++++++
+ include/configs/davinci_leopard.h |  130 +++++++++++++++++++++++++++++++++++++
+ 5 files changed, 232 insertions(+), 0 deletions(-)
+ create mode 100644 board/davinci/leopard/Makefile
+ create mode 100644 board/davinci/leopard/config.mk
+ create mode 100644 board/davinci/leopard/leopard.c
+ create mode 100644 include/configs/davinci_leopard.h
+
+diff --git a/Makefile b/Makefile
+index b7d5bd9..5fb126a 100644
+--- a/Makefile
++++ b/Makefile
+@@ -2793,6 +2793,9 @@ davinci_sonata_config :  unconfig
+ davinci_dm355evm_config :     unconfig
+       @$(MKCONFIG) $(@:_config=) arm arm926ejs dm355evm davinci davinci
++davinci_leopard_config :      unconfig
++      @$(MKCONFIG) $(@:_config=) arm arm926ejs leopard davinci davinci
++
+ lpd7a400_config \
+ lpd7a404_config:      unconfig
+       @$(MKCONFIG) $(@:_config=) arm lh7a40x lpd7a40x
+diff --git a/board/davinci/leopard/Makefile b/board/davinci/leopard/Makefile
+new file mode 100644
+index 0000000..26b0705
+--- /dev/null
++++ b/board/davinci/leopard/Makefile
+@@ -0,0 +1,52 @@
++#
++# (C) Copyright 2000, 2001, 2002
++# Wolfgang Denk, DENX Software Engineering, wd at denx.de.
++#
++# Copyright (C) 2007 Sergey Kubushyn <ksi at 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 := $(BOARD).o
++SOBJS :=
++
++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 $(obj).depend
++
++#########################################################################
++# This is for $(obj).depend target
++include $(SRCTREE)/rules.mk
++
++sinclude $(obj).depend
++
++#########################################################################
+diff --git a/board/davinci/leopard/config.mk b/board/davinci/leopard/config.mk
+new file mode 100644
+index 0000000..c4e6e07
+--- /dev/null
++++ b/board/davinci/leopard/config.mk
+@@ -0,0 +1,11 @@
++#
++# Spectrum Digital DM355 EVM board
++#     dm355evm 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)
++#
++
++#Provide at least 16MB spacing between us and the Linux Kernel image
++TEXT_BASE = 0x81080000
+diff --git a/board/davinci/leopard/leopard.c b/board/davinci/leopard/leopard.c
+new file mode 100644
+index 0000000..282368d
+--- /dev/null
++++ b/board/davinci/leopard/leopard.c
+@@ -0,0 +1,36 @@
++/*
++ * Copyright (C) 2009 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 <nand.h>
++#include <asm/io.h>
++#include <asm/arch/hardware.h>
++#include <asm/arch/emif_defs.h>
++#include <asm/arch/nand_defs.h>
++#include "../common/misc.h"
++
++
++DECLARE_GLOBAL_DATA_PTR;
++
++int board_init(void)
++{
++      gd->bd->bi_arch_number = MACH_TYPE_DM355_LEOPARD;
++      gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100;
++
++      return 0;
++}
+diff --git a/include/configs/davinci_leopard.h b/include/configs/davinci_leopard.h
+new file mode 100644
+index 0000000..87160f1
+--- /dev/null
++++ b/include/configs/davinci_leopard.h
+@@ -0,0 +1,130 @@
++/*
++ * Copyright (C) 2009 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., 59 Temple Place, Suite 330, Boston,
++ * MA 02111-1307 USA
++ */
++
++#ifndef __CONFIG_H
++#define __CONFIG_H
++#include <asm/sizes.h>
++
++
++#define DAVINCI_LEOPARD
++
++#define CONFIG_SKIP_LOWLEVEL_INIT
++#define CONFIG_SKIP_RELOCATE_UBOOT
++#define CONFIG_SYS_NO_FLASH           /* no *NOR* flash */
++#define CONFIG_SYS_CONSOLE_INFO_QUIET
++#define CONFIG_DISPLAY_CPUINFO
++
++/* SoC Configuration */
++#define CONFIG_ARM926EJS                              /* arm926ejs CPU */
++#define CONFIG_SYS_TIMERBASE          0x01c21400      /* use timer 0 */
++#define CONFIG_SYS_HZ_CLOCK           24000000        /* TIMER 0 */
++#define CONFIG_SYS_HZ                 1000
++#define CONFIG_SOC_DM355
++
++/* Memory Info */
++#define CONFIG_NR_DRAM_BANKS          1
++#define PHYS_SDRAM_1                  0x80000000
++#define PHYS_SDRAM_1_SIZE             SZ_128M
++
++/* Serial Driver info: UART0 for console  */
++#define CONFIG_SYS_NS16550
++#define CONFIG_SYS_NS16550_SERIAL
++#define CONFIG_SYS_NS16550_REG_SIZE   -4
++#define CONFIG_SYS_NS16550_COM1               0x01c20000
++#define CONFIG_SYS_NS16550_CLK                CONFIG_SYS_HZ_CLOCK
++#define CONFIG_SYS_BAUDRATE_TABLE     { 9600, 19200, 38400, 57600, 115200 }
++#define CONFIG_CONS_INDEX             1
++#define CONFIG_BAUDRATE                       115200
++
++/* Ethernet:  external DM9000 just like DM355 EVM */
++#define CONFIG_DRIVER_DM9000          1
++#define CONFIG_DM9000_BASE            0x04000000
++#define DM9000_IO                     CONFIG_DM9000_BASE
++#define DM9000_DATA                   (CONFIG_DM9000_BASE + 16)
++
++/* I2C */
++#define CONFIG_HARD_I2C
++#define CONFIG_DRIVER_DAVINCI_I2C
++#define CONFIG_SYS_I2C_SPEED          400000
++#define CONFIG_SYS_I2C_SLAVE          0x10
++
++/* NYET -- #define CONFIG_NAND_DAVINCI */
++#define CONFIG_SYS_NAND_HW_ECC
++#define CONFIG_SYS_NAND_USE_FLASH_BBT
++
++#define CONFIG_SYS_NAND_SMALLPAGE
++#define CONFIG_SYS_NAND_BASE_LIST     { 0x02000000, }
++#define CONFIG_SYS_MAX_NAND_DEVICE    1
++#define CONFIG_SYS_NAND_MAX_CHIPS     1
++
++/* U-Boot command configuration */
++#include <config_cmd_default.h>
++
++#undef CONFIG_CMD_BDI
++#undef CONFIG_CMD_FLASH
++#undef CONFIG_CMD_FPGA
++#undef CONFIG_CMD_SETGETDCR
++#define CONFIG_CMD_ASKENV
++#define CONFIG_CMD_DHCP
++#define CONFIG_CMD_I2C
++#define CONFIG_CMD_PING
++#define CONFIG_CMD_SAVES
++
++/* TEMPORARY -- no safe place to save env, yet */
++#define CONFIG_ENV_IS_NOWHERE
++#undef CONFIG_CMD_SAVEENV
++
++#define CONFIG_CRC32_VERIFY
++#define CONFIG_MX_CYCLIC
++
++/* U-Boot general configuration */
++#undef CONFIG_USE_IRQ                         /* No IRQ/FIQ in U-Boot */
++#define CONFIG_BOOTFILE               "uImage"        /* Boot file name */
++#define CONFIG_SYS_PROMPT     "LEOPARD EVM # "
++#define CONFIG_SYS_CBSIZE     1024            /* Console I/O Buffer Size  */
++#define CONFIG_SYS_PBSIZE                     /* Print buffer size */ \
++              (CONFIG_SYS_CBSIZE + sizeof(CONFIG_SYS_PROMPT) + 16)
++#define CONFIG_SYS_MAXARGS    16              /* max number of command args */
++#define CONFIG_SYS_HUSH_PARSER
++#define CONFIG_SYS_PROMPT_HUSH_PS2    "> "
++#define CONFIG_SYS_LONGHELP
++
++#define CONFIG_ENV_SIZE               SZ_16K
++
++#define CONFIG_BOOTDELAY              3
++#define CONFIG_CMDLINE_EDITING
++#define CONFIG_VERSION_VARIABLE
++#define CONFIG_TIMESTAMP
++
++#define CONFIG_NET_RETRY_COUNT 10
++
++/* U-Boot memory configuration */
++#define CONFIG_STACKSIZE              SZ_256K         /* regular stack */
++#define CONFIG_SYS_MALLOC_LEN         SZ_512K         /* malloc() arena */
++#define CONFIG_SYS_GBL_DATA_SIZE      128             /* for initial data */
++#define CONFIG_SYS_MEMTEST_START      0x87000000      /* physical address */
++#define CONFIG_SYS_MEMTEST_END                0x88000000      /* test 16MB RAM */
++
++/* Linux interfacing */
++#define CONFIG_CMDLINE_TAG
++#define CONFIG_SETUP_MEMORY_TAGS
++#define CONFIG_SYS_BARGSIZE   1024                    /* bootarg Size */
++#define CONFIG_SYS_LOAD_ADDR  0x80700000              /* kernel address */
++
++#endif /* __CONFIG_H */
+--- /tmp/mach-types.h  2009-05-19 15:48:59.000000000 +0200
++++ git/include/asm-arm/mach-types.h   2009-05-19 15:51:03.000000000 +0200
+@@ -2120,6 +2120,10 @@
+ #define MACH_TYPE_FMZWEBMODUL          2134
+ #define MACH_TYPE_RD78X00_MASA         2135
+ #define MACH_TYPE_SMALLOGGER           2136
++#define MACH_TYPE_CCW9P9215            2137
++#define MACH_TYPE_DM355_LEOPARD        2138
++#define MACH_TYPE_TS219                2139
++#define MACH_TYPE_TNY_A9263            2140
+ #ifdef CONFIG_ARCH_EBSA110
+ # ifdef machine_arch_type
+@@ -27417,6 +27421,54 @@
+ # define machine_is_smallogger()      (0)
+ #endif
++#ifdef CONFIG_MACH_CCW9P9215
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_CCW9P9215
++# endif
++# define machine_is_ccw9p9215()       (machine_arch_type == MACH_TYPE_CCW9P9215)
++#else
++# define machine_is_ccw9p9215()       (0)
++#endif
++
++#ifdef CONFIG_MACH_DM355_LEOPARD
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_DM355_LEOPARD
++# endif
++# define machine_is_dm355_leopard()   (machine_arch_type == MACH_TYPE_DM355_LEOPARD)
++#else
++# define machine_is_dm355_leopard()   (0)
++#endif
++
++#ifdef CONFIG_MACH_TS219
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TS219
++# endif
++# define machine_is_ts219()   (machine_arch_type == MACH_TYPE_TS219)
++#else
++# define machine_is_ts219()   (0)
++#endif
++
++#ifdef CONFIG_MACH_TNY_A9263
++# ifdef machine_arch_type
++#  undef machine_arch_type
++#  define machine_arch_type   __machine_arch_type
++# else
++#  define machine_arch_type   MACH_TYPE_TNY_A9263
++# endif
++# define machine_is_tny_a9263()       (machine_arch_type == MACH_TYPE_TNY_A9263)
++#else
++# define machine_is_tny_a9263()       (0)
++#endif
++
+ /*
+  * These have not yet been registered
+  */
index 8e0eb2e..3bf2b34 100644 (file)
@@ -38,6 +38,12 @@ SRC_URI_overo = "git://gitorious.org/u-boot-omap3/mainline.git;branch=omap3-dev;
 SRCREV_overo = "2dea1db2a3b7c12ed70bbf8ee50755089c5e5170"
 PV_overo = "2009.03+${PR}+gitr${SRCREV}"
 
+SRC_URI_dm355-leopard = "git://www.denx.de/git/u-boot-arm.git;protocol=git;branch=next \
+                        file://leopardboard-support.patch;patch=1 \
+"
+SRCREV_dm355-leopard = "86d5c98d3d97d631b1d3a5f5e6a17e87c99b42cf"
+PV_dm355-leopard = "2009.05+2009.06-rc2+gitr${SRCREV}"
+
 SRC_URI_neuros-osd2 = "git://github.com/neuros/u-boot.git;protocol=git;branch=neuros"
 SRCREV_neuros-osd2 = "8de979d346624c0e4cfe2e5c0f08ce20ca4b5d14"