Second level bootloader for Atmel AT91SAM SoC
C C++ Makefile Assembly Yacc Perl Other
Latest commit ca86047 Mar 2, 2017 @wenyouyang wenyouyang committed on GitHub Merge pull request #50 from PA4WD/master
corewind cor9g25 support added
Permalink
Failed to load latest commit information.
board Create sama5d2_xplainedsd_secure_linux_image_dt_defconfig Jan 26, 2017
config Kconfig: remove incomprehensible warning Jan 22, 2015
contrib corewind cor9g25 support added Mar 1, 2017
driver board: sama5d4ek: fix incorrect MCI0 selection through menuconfig Dec 2, 2016
fs config: remove CONFIG_LONG_FILENAME config Aug 11, 2015
host-utilities Add SCM information when generate binary May 31, 2013
include board: sama5d4ek: fix incorrect MCI0 selection through menuconfig Dec 2, 2016
lib lib: string: Fix the wrong used < operator Sep 26, 2016
scripts corewind cor9g25 support added Mar 1, 2017
.gitignore .gitignore: Ignore *.pyc files Jun 17, 2016
Config.in driver: act8865: Add suspending ACT8945A charger Jun 24, 2016
Config.in.app-image Config.in: split all load strategies into dedicated Config.in files Jul 3, 2015
Config.in.kernel board: add SAMA5D2 PTC Engineering board support Feb 22, 2016
Config.in.secure Merge pull request #46 from baruchsiach/secure-endianness Oct 31, 2016
Config.in.u-boot Config.in: split all load strategies into dedicated Config.in files Jul 3, 2015
KNOWN_ISSUES KNOWN ISSUES: update the KNOWN_ISSUES Apr 11, 2013
Makefile Makefile: move to v3.8.7 Oct 10, 2016
README.txt README: move and renumber the Contributing section Oct 22, 2015
crt0_gnu.S crt0: initial clock through c code Dec 3, 2014
elf32-littlearm-tz.lds Makefile: improve the ChkFileSize operation Oct 15, 2014
elf32-littlearm.lds Makefile: improve the ChkFileSize operation Oct 15, 2014
main.c driver: at91_slowclk: sama5d4 and sama5d2 still need a delay Sep 9, 2016
toplevel_cpp.mk Config.in, load_kernel: allow boards to set their own command-line Jul 3, 2015

README.txt

AT91Bootstrap Project

AT91Bootstrap is the 2nd level bootloader for Atmel SMART microprocessors (aka AT91).
It providing a set of algorithms to manage the hardware initialization such as
clock speed configuration, PIO settings, DRAM initialization, to download your
main application from specified boot media: NAND FLASH, serial FLASH (both
AT25-compatible of DataFlash), serial EEPROM, SD Card, etc. to main memory and
to start it.

1 GNU ARM Toolchain
================================================================================

AT91Bootstrap has been compiled and tested under Linux using the following GNU
ARM Toolchain:
- gcc version 4.2.1 (CodeSourcery Sourcery G++ Lite 2007q3-51)
- gcc version 4.2.3 (Sourcery G++ Lite 2008q1-126)
- gcc version 4.3.5 (Buildroot 2011.05)
- gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67)
- gcc version 4.4.1 (Sourcery G++ Lite 2010q1-202)
- gcc version 4.5.2 (Sourcery G++ Lite 2011.03-41)
- gcc version 4.5.3 20110223 (prerelease) (GCC) (OE 2011.03)
- gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
- gcc version 4.7.2 (Sourcery CodeBench Lite 2012.09-64)
- gcc version 4.7.3 (Sourcery CodeBench Lite 2013.05-24)
- gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1)

2 Compile AT91Bootstrap
================================================================================

2.1 Compile DataFlashBoot

Let's use at91sam9x5ek as an example,

2.1.1 Compile booting u-boot image from DataFlash

$ cd <project directory>
$ make mrproper
$ make at91sam9x5ekdf_uboot_defconfig
$ make

If the building process is successful, the final .bin image can be found under
binaries/

2.1.2 Compile booting kernel image from DataFlash

$ cd <project directory>
$ make mrproper
$ make at91sam9x5ekdf_linux_defconfig
$ make

If the building process is successful, the final .bin image can be found under
binaries/

2.1.3 Compile booting kernel & dt image from DataFlash

$ cd <project directory>
$ make mrproper
$ make at91sam9x5ekdf_linux_dt_defconfig
$ make

If the building process is successful, the final .bin image can be found under
binaries/

2.2 Compile NandFlashBoot

Let's use at91sam9m10g45ek as an example,

2.2.1 Compile booting u-boot image from NandFlash

$ cd <project directory>
$ make mrproper
$ make at91sam9m10g45eknf_uboot_defconfig 
$ make

If the building process is successful, the final .bin image can be found under
binaries/

2.2.2 Compile booting kernel image from NandFlash

$ cd <project directory>
$ make mrproper
$ make at91sam9m10g45eknf_linux_defconfig
$ make

If the building process is successful, the final .bin image can be found under
binaries/

2.2.3 Compile booting kernel & dt image from NandFlash

$ cd <project directory>
$ make mrproper
$ make at91sam9m10g45eknf_linux_dt_defconfig
$ make

If the building process is successful, the final .bin image can be found under
binaries/

2.3 Compile SDCardBoot

Let's use at91sam9m10g45ek as an example,

2.3.1 Compile booting u-boot image from SDCard

$ cd <project directory>
$ make mrproper
$ make at91sam9m10g45eksd_uboot_defconfig
$ make

If the building process is successful, the final .bin image can be found under
binaries/

2.3.2 Compile booting linux image from SDCard

$ cd <project directory>
$ make mrproper
$ make at91sam9m10g45eksd_linux_defconfig
$ make

If the building process is successful, the final .bin image can be found under
binaries/

2.3.3 Compile booting linux & dt image from SDCard

$ cd <project directory>
$ make mrproper
$ make at91sam9m10g45eksd_linux_dt_defconfig
$ make

If the building process is successful, the final .bin image can be found under
binaries/

3 Release
================================================================================
If you plan to release the project, you can use the command as below

$ cd <project directory>
$ make tarball

If the command is successful, the .tar.gz tar package can be found under
the project top directory.

4. Others
================================================================================
4.1 About booting from NOR flash.
4.1.1 ROM Code version
    Booting from the external NOR flash is supported in ROM code v2.1
    for SAMA5D3x. Bootstrap relocates the binary to the internal SRAM and run.

4.1.2. SAM-BA
    Using SAM-BA to program the binary to the NOR flash has a little different
    from other booting mode. there is no 'Send Boot File' command for NOR flash.

    You should use 'Send File' command to send the binary file as same as
    the normal file, with 'Address' selected to 0.

5 Contributing your own board
================================================================================

If the system board that you have is not listed, then you will need
to port AT91Bootstrap to your hardware platform. To do this, follow these
steps:

1. Create a new directory to hold your board specific code under
   contrib/board/ directory. Add any files you need.
   In your board directory, you will need at least the "board.mk",
   a "<board>.c", "<board>.h", "Config.in.board", and "Config.in.boardname".
2. Create the necessary default configuration files such as
   "<board>df_uboot_defconfig" in your new board directory.
3. Add(source) your board's "Config.in.board" in "contrib/board/Config.in.board" file.
4. Add(source) your board's "Config.in.boardname" in the "contrib/board/Config.in.boardname" file.
5. Add your board's "<board>.h" in the "contrib/include/contrib_board.h" file.
6. Run "make <board>df_uboot_defconfig" with your new name.
7. Type "make", and you should get the final .bin image can be found under
   the binaries/ directory.

6 Contributing
================================================================================

To contribute to AT91Bootstrap you should submit the patches for review to:
the github pull-request facility directly or the forum. And don't forget to
Cc the maintainers.

AT91 Forum:
http://www.at91.com/discussions/

Maintainers:
Wenyou Yang <wenyou.yang@atmel.com>
Nicolas Ferre <nicolas.ferre@atmel.com>

When creating patches insert the [at91bootstrap] tag in the subject, for example
use something like:
git format-patch -s --subject-prefix='at91bootstrap][PATCH' <origin>

-End-