[U-Boot] [PATCH v5 4/6] arm, da850evm: Add an SPL for SPI boot

2011-12-05 Thread Christian Riesch
Signed-off-by: Christian Riesch 
Cc: Heiko Schocher 
Cc: Sandeep Paulraj 
Cc: Tom Rini 
Cc: Sudhakar Rajashekhara 
---
 board/davinci/da8xxevm/da850evm.c |4 +-
 board/davinci/da8xxevm/u-boot-spl.lds |   73 +++
 doc/README.davinci|9 +++
 include/configs/da850evm.h|   87 +
 4 files changed, 172 insertions(+), 1 deletions(-)
 create mode 100644 board/davinci/da8xxevm/u-boot-spl.lds

diff --git a/board/davinci/da8xxevm/da850evm.c 
b/board/davinci/da8xxevm/da850evm.c
index e827256..8e66c35 100644
--- a/board/davinci/da8xxevm/da850evm.c
+++ b/board/davinci/da8xxevm/da850evm.c
@@ -108,7 +108,7 @@ static const struct pinmux_config gpio_pins[] = {
 #endif
 };
 
-static const struct pinmux_resource pinmuxes[] = {
+const struct pinmux_resource pinmuxes[] = {
 #ifdef CONFIG_DRIVER_TI_EMAC
PINMUX_ITEM(emac_pins_mdio),
 #ifdef CONFIG_DRIVER_TI_EMAC_USE_RMII
@@ -135,6 +135,8 @@ static const struct pinmux_resource pinmuxes[] = {
PINMUX_ITEM(gpio_pins),
 };
 
+const int pinmuxes_size = ARRAY_SIZE(pinmuxes);
+
 static const struct lpsc_resource lpsc[] = {
{ DAVINCI_LPSC_AEMIF }, /* NAND, NOR */
{ DAVINCI_LPSC_SPI1 },  /* Serial Flash */
diff --git a/board/davinci/da8xxevm/u-boot-spl.lds 
b/board/davinci/da8xxevm/u-boot-spl.lds
new file mode 100644
index 000..6f6e065
--- /dev/null
+++ b/board/davinci/da8xxevm/u-boot-spl.lds
@@ -0,0 +1,73 @@
+/*
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, 
+ *
+ * (C) Copyright 2008
+ * Guennadi Liakhovetki, DENX Software Engineering, 
+ *
+ * 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
+ */
+
+MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\
+   LENGTH = CONFIG_SPL_MAX_SIZE }
+
+OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+OUTPUT_ARCH(arm)
+ENTRY(_start)
+SECTIONS
+{
+   . = 0x;
+
+   . = ALIGN(4);
+   .text  :
+   {
+   __start = .;
+ arch/arm/cpu/arm926ejs/start.o(.text)
+ *(.text*)
+   } >.sram
+
+   . = ALIGN(4);
+   .rodata : { *(SORT_BY_ALIGNMENT(.rodata*)) } >.sram
+
+   . = ALIGN(4);
+   .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+   . = ALIGN(4);
+   .rel.dyn : {
+   __rel_dyn_start = .;
+   *(.rel*)
+   __rel_dyn_end = .;
+   } >.sram
+
+   .dynsym : {
+   __dynsym_start = .;
+   *(.dynsym)
+   } >.sram
+
+   .bss :
+   {
+   . = ALIGN(4);
+   __bss_start = .;
+   *(.bss*)
+   . = ALIGN(4);
+   __bss_end__ = .;
+   } >.sram
+
+   __image_copy_end = .;
+   _end = .;
+}
diff --git a/doc/README.davinci b/doc/README.davinci
index 5f1bdc8..aa7c850 100644
--- a/doc/README.davinci
+++ b/doc/README.davinci
@@ -95,6 +95,15 @@ into the RAM.
 The programmers and UBL are always released as part of any standard TI
 software release associated with an SOC.
 
+Alternative boot method (DA850 EVM only):
+For the DA850 EVM an SPL (secondary program loader, see doc/README.SPL)
+is provided to load U-Boot directly from SPI flash. In this case, the
+SPL does the low level initialization that is otherwise done by the SPL.
+To build U-Boot with this SPL, do
+make da850evm_config
+make u-boot.ais
+and program the resulting u-boot.ais file to the SPI flash of the DA850 EVM.
+
 Environment Variables
 =
 
diff --git a/include/configs/da850evm.h b/include/configs/da850evm.h
index 2e2aa19..b30696a 100644
--- a/include/configs/da850evm.h
+++ b/include/configs/da850evm.h
@@ -65,6 +65,75 @@
 #define CONFIG_NR_DRAM_BANKS   1 /* we have 1 bank of DRAM */
 #define CONFIG_STACKSIZE   (256*1024) /* regular stack */
 
+#define CONFIG_SYS_DA850_SYSCFG_SUSPSRC (  \
+   DAVINCI_SYSCFG_SUSPSRC_TIMER0 | \
+   DAVINCI_SYSCFG_SUSPSRC_SPI1 |   \
+   DAVINCI_SYSCFG_SUSPSRC_UART2 |  \
+   DAVINCI_SYSCFG_SUSPSRC_EMAC |   \
+   DAVINCI_SYSCFG_SUSPSRC_I2C)
+
+/*
+ * PLL configuration
+ */
+#define CONFIG_SYS_DV_CLKMODE  0
+#define CONFIG_SYS_DA850_PLL0_POSTDIV  1
+#

Re: [U-Boot] [PATCH v5 4/6] arm, da850evm: Add an SPL for SPI boot

2011-12-05 Thread Tom Rini
On 12/05/2011 03:58 AM, Christian Riesch wrote:

[snip]
>  include/configs/da850evm.h|   87 
> +
[snip]
> +#define CONFIG_SYS_DA850_DDR2_SDTIMR2 (  \
> + (7 << DV_DDR_SDTMR2_RASMAX_SHIFT) | \
> + (0 << DV_DDR_SDTMR2_XP_SHIFT) | \
> + (0 << DV_DDR_SDTMR2_ODT_SHIFT) |\
> + (17 << DV_DDR_SDTMR2_XSNR_SHIFT) |  \
> + (199 << DV_DDR_SDTMR2_XSRD_SHIFT) | \
> + (0 << DV_DDR_SDTMR2_RTP_SHIFT) |\
> + (0 << DV_DDR_SDTMR2_CKE_SHIFT))

Last time I guess I wasn't clear enough, sorry, there's 0 shifts other
places I disagree with two.  I really think in some cases we're best off
just saying "Please look at the ... section of the TRM for this part for
an explanation of all bit fields." and not calculate or'ing in 0 here or
there.

-- 
Tom
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot