Hi Remy,

On Tue, Aug 05, 2008 at 11:07:43PM +0200, Remy Bohmer wrote:
> 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.

Can you elaborate, how exactly does this work?

>  platforms/Kconfig     |    1 
>  platforms/at91bootstrap.in |   43 +++++++++++++++++++
>  rules/at91bootstrap.make   |  111 
> ++++++++++++++++++++++++++++++++++++++++++++++++++

Note that this mechanism is still a little bit broken; we currently
discuss a patch by Sascha Hauer which makes it possible to generate the
platforms/ and rules/ files from a per-packet source; this patch would
make it possible to eliminate the inconsistencies we currently have
between platforms/ and rules.

>  3 files changed, 155 insertions(+)
> 
> Index: ptxdist-1.99.4/platforms/at91bootstrap.in
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ ptxdist-1.99.4/platforms/at91bootstrap.in 2008-08-05 11:45:26.000000000 
> +0200
> @@ -0,0 +1,43 @@
> +menuconfig AT91BOOTSTRAP
> +     bool
> +     depends on ARCH_ARM_AT91SAM926X
> +     prompt "Build dataflash bootstrap for AT91SAM926*"
> +     help
> +       The AT91Bootstrap application is a first level bootloader
> +       for Atmel AT91SAM9 ARM Thumb-based microcontrollers.
> +          It is a modular application and thus can be used to customize
> +          the framework for a particular deployment strategy. AT91Bootstrap
> +          also provides clear examples, for a particular device, on
> +          how to perform basic static configurations, such as PMC and
> +          PIOs. AT91Bootstrap can be easily configured using a higher
> +          level protocol.
> +          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, Parallel 
> Flash, etc.
> +          - File System drivers such as JFFS2, FAT, etc.
> +          - Compression and Cipher algorithms
> +          - Application Launcher for ELF, Linux, 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.

Why do we need this when there is U-Boot? Could this be integrated into
U-Boot? If not, why?

Great to see some documentation :-) Nevertheless, the help text does
probably need some whitespace cleanup.

> +config AT91BOOTSTRAP_VERSION
> +     string
> +     depends on AT91BOOTSTRAP

Please get rid of the "depends" statements; I'd prefer the

if AT91BOOTSTRAP

        config AT91BOOTSTRAP_VERSION
                string
                ...

        config AT91BOOTSTRAP_FOOBAR
                bool
                ...

endif

variant which does the same, but in a cleaner way.

> +     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
> +     depends on AT91BOOTSTRAP
> +     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.
> +
> Index: ptxdist-1.99.4/rules/at91bootstrap.make
> ===================================================================
> --- /dev/null 1970-01-01 00:00:00.000000000 +0000
> +++ ptxdist-1.99.4/rules/at91bootstrap.make   2008-08-05 11:45:26.000000000 
> +0200
> @@ -0,0 +1,111 @@
> +# -*-makefile-*-
> +# $Id: template 6655 2007-01-02 12:55:21Z rsc $
> +#
> +# 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)
> +
> +# 
> ----------------------------------------------------------------------------
> +# Get
> +# 
> ----------------------------------------------------------------------------
> +
> +at91bootstrap_get: $(STATEDIR)/at91bootstrap.get
> +
> +$(STATEDIR)/at91bootstrap.get: $(at91bootstrap_get_deps_default)
> +     @$(call targetinfo, $@)
> +     @$(call touch, $@)
> +
> +$(AT91BOOTSTRAP_SOURCE):
> +     @$(call targetinfo, $@)
> +     @$(call get, AT91BOOTSTRAP)
> +
> +# 
> ----------------------------------------------------------------------------
> +# Extract
> +# 
> ----------------------------------------------------------------------------
> +
> +at91bootstrap_extract: $(STATEDIR)/at91bootstrap.extract
> +
> +$(STATEDIR)/at91bootstrap.extract: $(at91bootstrap_extract_deps_default)
> +     @$(call targetinfo, $@)
> +     @$(call clean, $(AT91BOOTSTRAP_DIR))
> +     @$(call extract, AT91BOOTSTRAP)
> +     @$(call patchin, AT91BOOTSTRAP_EXTRACT)
> +     @$(call touch, $@)
> +
> +# 
> ----------------------------------------------------------------------------
> +# Prepare
> +# 
> ----------------------------------------------------------------------------
> +
> +at91bootstrap_prepare: $(STATEDIR)/at91bootstrap.prepare
> +
> +$(STATEDIR)/at91bootstrap.prepare: $(at91bootstrap_prepare_deps_default)
> +     @$(call targetinfo, $@)
> +     @$(call touch, $@)
> +
> +# 
> ----------------------------------------------------------------------------
> +# Compile
> +# 
> ----------------------------------------------------------------------------
> +
> +at91bootstrap_compile: $(STATEDIR)/at91bootstrap.compile
> +
> +AT91BOOTSTRAP_PATH   := PATH=$(CROSS_PATH)
> +AT91BOOTSTRAP_ENV    := CROSS_COMPILE=$(COMPILER_PREFIX)
> +
> +$(STATEDIR)/at91bootstrap.compile: $(at91bootstrap_compile_deps_default)
> +     @$(call targetinfo, $@)
> +     @cd 
> $(AT91BOOTSTRAP_DIR)/board/${PTXCONF_AT91BOOTSTRAP_CONFIG}/dataflash/ && 
> $(AT91BOOTSTRAP_PATH) $(AT91BOOTSTRAP_ENV) $(MAKE) $(PARALLELMFLAGS_BROKEN)
> +     @$(call touch, $@)
> +
> +# 
> ----------------------------------------------------------------------------
> +# Install
> +# 
> ----------------------------------------------------------------------------
> +
> +at91bootstrap_install: $(STATEDIR)/at91bootstrap.install
> +
> +$(STATEDIR)/at91bootstrap.install: $(at91bootstrap_install_deps_default)
> +     @$(call targetinfo, $@)
> +     @$(call touch, $@)
> +
> +# 
> ----------------------------------------------------------------------------
> +# Target-Install
> +# 
> ----------------------------------------------------------------------------
> +
> +at91bootstrap_targetinstall: $(STATEDIR)/at91bootstrap.targetinstall
> +
> +$(STATEDIR)/at91bootstrap.targetinstall: 
> $(at91bootstrap_targetinstall_deps_default)
> +     @$(call targetinfo, $@)
> +
> +     @cp 
> $(AT91BOOTSTRAP_DIR)/board/${PTXCONF_AT91BOOTSTRAP_CONFIG}/dataflash/dataflash_${PTXCONF_AT91BOOTSTRAP_CONFIG}.bin
>  $(IMAGEDIR)/at91bootstrap.bin

Could need some \ line breaks.

> +
> +     @$(call touch, $@)
> +
> +# 
> ----------------------------------------------------------------------------
> +# Clean
> +# 
> ----------------------------------------------------------------------------
> +
> +at91bootstrap_clean:
> +     @rm -rf $(STATEDIR)/at91bootstrap.*
> +     @rm -rf $(IMAGEDIR)/at91bootstrap_*
> +     @rm -rf $(AT91BOOTSTRAP_DIR)
> +
> +# vim: syntax=make
> Index: ptxdist-1.99.4/platforms/Kconfig
> ===================================================================
> --- ptxdist-1.99.4.orig/platforms/Kconfig     2008-07-08 16:49:50.000000000 
> +0200
> +++ ptxdist-1.99.4/platforms/Kconfig  2008-08-05 11:48:23.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"

Please change the addressed topics and resubmit.

rsc
-- 
 Dipl.-Ing. Robert Schwebel | http://www.pengutronix.de
 Pengutronix - Linux Solutions for Science and Industry
   Handelsregister:  Amtsgericht Hildesheim, HRA 2686
     Hannoversche Str. 2, 31134 Hildesheim, Germany
   Phone: +49-5121-206917-0 |  Fax: +49-5121-206917-9


--
ptxdist mailing list
[email protected]

Reply via email to