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]