This bootstrap package is required on at91sam* boards where dataflash/nandflash
is used to boot from. In these cases the internal bootROM of the AT91 core is
used to boot the board with.

Patch Version 2: 
* Cleanup of Kconfig files
* Added patch to align U-boot load addr to dataflash sector boundaries
  This is what mainline U-boot demands, and what clearly is a bug in the
  original Atmel's Bootstrap code.
* Added Kconfig option for selection between dataflash and nandflash
* Upgraded template of Makefile.

Signed-off-by: Remy Bohmer <[EMAIL PROTECTED]>
---
 
patches/Bootstrap-v1.9/generic/align-u-boot-start-address-to-dataflash-sectors.patch
 |  108 +++++++++
 patches/Bootstrap-v1.9/generic/series                                          
      |    1 
 platforms/Kconfig                                                              
      |    1 
 platforms/at91bootstrap.in                                                     
      |   55 ++++
 rules/at91bootstrap.make                                                       
      |  111 ++++++++++
 5 files changed, 276 insertions(+)

Index: ptxdist-trunk/platforms/at91bootstrap.in
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ ptxdist-trunk/platforms/at91bootstrap.in    2008-08-09 00:14:17.000000000 
+0200
@@ -0,0 +1,55 @@
+menuconfig AT91BOOTSTRAP
+       bool
+       depends on ARCH_ARM_AT91SAM926X
+       prompt "Build AT91 bootstrap for AT91SAM926*"
+       help
+         The AT91Bootstrap application is a first level bootloader
+         for Atmel AT91SAM9 ARM Thumb-based microcontrollers.
+         AT91Bootstrap also provides examples, for a particular device, on
+         how to perform basic static configurations, such as PMC and
+         PIOs.
+         AT91Bootstrap integrates several sets of algorithms:
+         - Device initialization such as clock speed configuration,
+           PIO settings, etc.
+         - Peripheral drivers such as PIO, PMC, SDRAMC, etc.
+         - Physical media algorithms such as DataFlash, NANDFlash, etc.
+         For example, using this set of algorithms, it is possible to
+         obtain a basic bootloader that is located in DataFlash and is
+         copied to internal SRAM by SAM-BA Boot. The bootloader performs
+         the processor initialization (PLLs, PIOs, SDRAMC, SPI), loads UBoot
+         from DataFlash sectors to SDRAM and then jumps to it.
+         http://www.atmel.com/dyn/resources/prod_documents/doc6277.pdf
+
+if AT91BOOTSTRAP
+
+config AT91BOOTSTRAP_VERSION
+       string
+       default 1.9
+       prompt "AT91 Bootstrap version"
+       help
+         Enter the AT91 Bootstrap version you want to build.
+         Usally something like "1.9"
+
+config AT91BOOTSTRAP_CONFIG
+       string
+       prompt "AT91 Bootstrap config target"
+       help
+         The AT91 Bootstrap make config target. Usually something like
+         "at91sam9261ek". See AT91 Bootstrap's 'board' directory for possible
+         configuration targets.
+
+choice
+       prompt "AT91 Bootstrap boot media"
+       help
+         The Bootstrap code can be build for several types of flash.
+         Please choose one.
+
+       config AT91BOOTSTRAP_DATAFLASH
+               bool "AT45 Dataflash"
+
+       config AT91BOOTSTRAP_NANDFLASH
+               bool "NAND-flash    "
+
+endchoice
+
+endif
Index: ptxdist-trunk/rules/at91bootstrap.make
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ ptxdist-trunk/rules/at91bootstrap.make      2008-08-09 00:14:17.000000000 
+0200
@@ -0,0 +1,111 @@
+# -*-makefile-*-
+# $Id: template-make 8509 2008-06-12 12:45:40Z mkl $
+#
+# Copyright (C) 2008 by Remy Bohmer <[EMAIL PROTECTED]>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_AT91BOOTSTRAP) += at91bootstrap
+
+#
+# Paths and names
+#
+AT91BOOTSTRAP_VERSION  := $(call 
remove_quotes,$(PTXCONF_AT91BOOTSTRAP_VERSION))
+AT91BOOTSTRAP          := AT91Bootstrap$(AT91BOOTSTRAP_VERSION)
+AT91BOOTSTRAP_EXTRACT  := Bootstrap-v$(AT91BOOTSTRAP_VERSION)
+AT91BOOTSTRAP_SUFFIX   := zip
+AT91BOOTSTRAP_URL      := 
http://www.atmel.com/dyn/resources/prod_documents/$(AT91BOOTSTRAP).$(AT91BOOTSTRAP_SUFFIX)
+AT91BOOTSTRAP_SOURCE   := $(SRCDIR)/$(AT91BOOTSTRAP).$(AT91BOOTSTRAP_SUFFIX)
+AT91BOOTSTRAP_DIR      := $(BUILDDIR)/$(AT91BOOTSTRAP_EXTRACT)
+
+ifdef PTXCONF_AT91BOOTSTRAP_DATAFLASH
+AT91BOOTSTRAP_TYPE      := dataflash
+endif
+
+ifdef PTXCONF_AT91BOOTSTRAP_NANDFLASH
+AT91BOOTSTRAP_TYPE      := nandflash
+endif
+
+AT91BOOTSTRAP_BUILDDIR  := 
${AT91BOOTSTRAP_DIR}/board/${PTXCONF_AT91BOOTSTRAP_CONFIG}/${AT91BOOTSTRAP_TYPE}
+AT91BOOTSTRAP_IMAGE     := 
${AT91BOOTSTRAP_TYPE}_${PTXCONF_AT91BOOTSTRAP_CONFIG}.bin
+
+# ----------------------------------------------------------------------------
+# Get
+# ----------------------------------------------------------------------------
+
+$(AT91BOOTSTRAP_SOURCE):
+       @$(call targetinfo)
+       @$(call get, AT91BOOTSTRAP)
+
+# ----------------------------------------------------------------------------
+# Extract
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/at91bootstrap.extract:
+       @$(call targetinfo)
+       @$(call clean, $(AT91BOOTSTRAP_DIR))
+       @$(call extract, AT91BOOTSTRAP)
+       @$(call patchin, AT91BOOTSTRAP_EXTRACT)
+       @$(call touch)
+
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+AT91BOOTSTRAP_PATH     := PATH=$(CROSS_PATH)
+AT91BOOTSTRAP_ENV      := $(CROSS_ENV) CROSS_COMPILE=$(COMPILER_PREFIX)
+
+#
+# autoconf
+#
+AT91BOOTSTRAP_AUTOCONF := $(CROSS_AUTOCONF_USR)
+
+$(STATEDIR)/at91bootstrap.prepare:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Compile
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/at91bootstrap.compile:
+       @$(call targetinfo)
+       @cd $(AT91BOOTSTRAP_BUILDDIR) && \
+               $(AT91BOOTSTRAP_PATH) $(AT91BOOTSTRAP_ENV) $(MAKE) 
$(PARALLELMFLAGS_BROKEN)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/at91bootstrap.install:
+       @$(call targetinfo)
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/at91bootstrap.targetinstall:
+       @$(call targetinfo)
+       @cp $(AT91BOOTSTRAP_BUILDDIR)/$(AT91BOOTSTRAP_IMAGE) 
$(IMAGEDIR)/at91bootstrap.bin
+       @$(call touch)
+
+# ----------------------------------------------------------------------------
+# Clean
+# ----------------------------------------------------------------------------
+
+at91bootstrap_clean:
+       rm -rf $(STATEDIR)/at91bootstrap.*
+       rm -rf $(PKGDIR)/at91bootstrap_*
+       rm -rf $(AT91BOOTSTRAP_DIR)
+
+# vim: syntax=make
Index: ptxdist-trunk/platforms/Kconfig
===================================================================
--- ptxdist-trunk.orig/platforms/Kconfig        2008-08-09 00:13:13.000000000 
+0200
+++ ptxdist-trunk/platforms/Kconfig     2008-08-09 00:14:17.000000000 +0200
@@ -31,6 +31,7 @@ menu "bootloaders                   "
 source "platforms/grub.in"
 source "platforms/u-boot.in"
 source "platforms/u-boot-v2.in"
+source "platforms/at91bootstrap.in"
 endmenu
 
 source "platforms/images.in"
Index: 
ptxdist-trunk/patches/Bootstrap-v1.9/generic/align-u-boot-start-address-to-dataflash-sectors.patch
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ 
ptxdist-trunk/patches/Bootstrap-v1.9/generic/align-u-boot-start-address-to-dataflash-sectors.patch
  2008-08-09 00:14:17.000000000 +0200
@@ -0,0 +1,108 @@
+Align image address to sector boundaries in dataflash
+
+U-boot (since version 1.3.4) expects that the bootstrap code
+puts U-boot at sector boundaries. (at address 0x8400 in
+dataflash)
+
+Signed-off-by: Remy Bohmer <[EMAIL PROTECTED]>
+---
+ board/at91cap9adk/norflash/at91cap9adk.h      |    2 +-
+ board/at91sam9260ek/dataflash/at91sam9260ek.h |    2 +-
+ board/at91sam9261ek/dataflash/at91sam9261ek.h |    2 +-
+ board/at91sam9263ek/dataflash/at91sam9263ek.h |    2 +-
+ board/at91sam9g20ek/dataflash/at91sam9g20ek.h |    2 +-
+ board/at91sam9rlek/dataflash/at91sam9rlek.h   |    2 +-
+ board/at91sam9xeek/dataflash/at91sam9xeek.h   |    2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+
+Index: Bootstrap-v1.9/board/at91cap9adk/norflash/at91cap9adk.h
+===================================================================
+--- Bootstrap-v1.9.orig/board/at91cap9adk/norflash/at91cap9adk.h       
2008-04-09 18:01:31.000000000 +0200
++++ Bootstrap-v1.9/board/at91cap9adk/norflash/at91cap9adk.h    2008-08-08 
23:47:50.000000000 +0200
+@@ -72,7 +72,7 @@
+ /*                                                                     */
+ /* ******************************************************************* */
+
+-#define IMG_ADDRESS                   0x8000                  /* Image 
Address in DataFlash */
++#define IMG_ADDRESS                   0x8400                  /* Image 
Address in DataFlash */
+ #define       IMG_SIZE                        0x38000                 /* 
Image Size in NorFlash    */
+
+ #define MACH_TYPE                     1442                    /* AT91CAP9ADK 
*/
+Index: Bootstrap-v1.9/board/at91sam9260ek/dataflash/at91sam9260ek.h
+===================================================================
+--- Bootstrap-v1.9.orig/board/at91sam9260ek/dataflash/at91sam9260ek.h  
2007-10-30 12:38:40.000000000 +0100
++++ Bootstrap-v1.9/board/at91sam9260ek/dataflash/at91sam9260ek.h       
2008-08-08 23:47:57.000000000 +0200
+@@ -76,7 +76,7 @@
+ /* ******************************************************************* */
+ #define AT91C_SPI_PCS_DATAFLASH               AT91C_SPI_PCS1_DATAFLASH        
/* Boot on SPI NCS0 */
+
+-#define IMG_ADDRESS           0x8000                  /* Image Address in 
DataFlash */
++#define IMG_ADDRESS           0x8400                  /* Image Address in 
DataFlash */
+ #define       IMG_SIZE                0x30000                 /* Image Size 
in DataFlash    */
+
+ #define MACH_TYPE       0x44B       /* AT91SAM9260-EK */
+Index: Bootstrap-v1.9/board/at91sam9261ek/dataflash/at91sam9261ek.h
+===================================================================
+--- Bootstrap-v1.9.orig/board/at91sam9261ek/dataflash/at91sam9261ek.h  
2006-11-13 14:14:04.000000000 +0100
++++ Bootstrap-v1.9/board/at91sam9261ek/dataflash/at91sam9261ek.h       
2008-08-08 23:47:55.000000000 +0200
+@@ -99,7 +99,7 @@
+ /* ******************************************************************* */
+ #define AT91C_SPI_PCS_DATAFLASH               AT91C_SPI_PCS0_DATAFLASH        
/* Boot on SPI NCS0 */
+
+-#define IMG_ADDRESS           0x8000                  /* Image Address in 
DataFlash */
++#define IMG_ADDRESS           0x8400                  /* Image Address in 
DataFlash */
+ #define       IMG_SIZE                0x32000                 /* Image Size 
in DataFlash    */
+
+ #define MACH_TYPE       0x350       /* AT91SAM9261-EK */
+Index: Bootstrap-v1.9/board/at91sam9263ek/dataflash/at91sam9263ek.h
+===================================================================
+--- Bootstrap-v1.9.orig/board/at91sam9263ek/dataflash/at91sam9263ek.h  
2006-11-30 14:57:53.000000000 +0100
++++ Bootstrap-v1.9/board/at91sam9263ek/dataflash/at91sam9263ek.h       
2008-08-08 23:47:53.000000000 +0200
+@@ -98,7 +98,7 @@
+ /* ******************************************************************* */
+ #define AT91C_SPI_PCS_DATAFLASH               AT91C_SPI_PCS0_DATAFLASH        
/* Boot on SPI NCS0 */
+
+-#define IMG_ADDRESS                   0x8000                  /* Image 
Address in DataFlash */
++#define IMG_ADDRESS                   0x8400                  /* Image 
Address in DataFlash */
+ #define       IMG_SIZE                        0x32000                 /* 
Image Size in DataFlash    */
+
+ #define MACH_TYPE                     0x4B2                   /* 
AT91SAM9263-EK */
+Index: Bootstrap-v1.9/board/at91sam9g20ek/dataflash/at91sam9g20ek.h
+===================================================================
+--- Bootstrap-v1.9.orig/board/at91sam9g20ek/dataflash/at91sam9g20ek.h  
2008-02-27 09:45:25.000000000 +0100
++++ Bootstrap-v1.9/board/at91sam9g20ek/dataflash/at91sam9g20ek.h       
2008-08-08 23:47:47.000000000 +0200
+@@ -77,7 +77,7 @@
+ /* ******************************************************************* */
+ #define AT91C_SPI_PCS_DATAFLASH               AT91C_SPI_PCS1_DATAFLASH        
/* Boot on SPI NCS1 */
+
+-#define IMG_ADDRESS           0x8000                  /* Image Address in 
DataFlash */
++#define IMG_ADDRESS           0x8400                  /* Image Address in 
DataFlash */
+ #define       IMG_SIZE                0x30000                 /* Image Size 
in DataFlash */
+
+ #define MACH_TYPE             0x658                   /* AT91SAM9G20-EK */
+Index: Bootstrap-v1.9/board/at91sam9rlek/dataflash/at91sam9rlek.h
+===================================================================
+--- Bootstrap-v1.9.orig/board/at91sam9rlek/dataflash/at91sam9rlek.h    
2007-12-10 16:03:54.000000000 +0100
++++ Bootstrap-v1.9/board/at91sam9rlek/dataflash/at91sam9rlek.h 2008-08-08 
23:47:59.000000000 +0200
+@@ -91,7 +91,7 @@
+ /* ******************************************************************* */
+ #define AT91C_SPI_PCS_DATAFLASH               AT91C_SPI_PCS0_DATAFLASH        
/* Boot on SPI NCS0 */
+
+-#define IMG_ADDRESS   0x8000          /* Image Address in DataFlash */
++#define IMG_ADDRESS   0x8400          /* Image Address in DataFlash */
+ #define       IMG_SIZE        0x32000         /* Image Size in DataFlash    */
+
+ #define MACH_TYPE       1326          /* AT91SAM9RL-EK */
+Index: Bootstrap-v1.9/board/at91sam9xeek/dataflash/at91sam9xeek.h
+===================================================================
+--- Bootstrap-v1.9.orig/board/at91sam9xeek/dataflash/at91sam9xeek.h    
2008-04-17 12:02:03.000000000 +0200
++++ Bootstrap-v1.9/board/at91sam9xeek/dataflash/at91sam9xeek.h 2008-08-08 
23:47:52.000000000 +0200
+@@ -76,7 +76,7 @@
+ /* ******************************************************************* */
+ #define AT91C_SPI_PCS_DATAFLASH               AT91C_SPI_PCS1_DATAFLASH        
/* Boot on SPI NCS1 */
+
+-#define IMG_ADDRESS           0x8000                  /* Image Address in 
DataFlash */
++#define IMG_ADDRESS           0x8400                  /* Image Address in 
DataFlash */
+ #define       IMG_SIZE                0x30000                 /* Image Size 
in DataFlash    */
+
+ #define MACH_TYPE             0x44B                   /* AT91SAM9XE-EK same 
id as AT91SAM9260-EK*/
Index: ptxdist-trunk/patches/Bootstrap-v1.9/generic/series
===================================================================
--- /dev/null   1970-01-01 00:00:00.000000000 +0000
+++ ptxdist-trunk/patches/Bootstrap-v1.9/generic/series 2008-08-09 
00:14:17.000000000 +0200
@@ -0,0 +1 @@
+align-u-boot-start-address-to-dataflash-sectors.patch

-- 


--
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to