sama5
product family:
By programming BSC_CR register, we can bypass some steps in above sequence.
Note need a reset to make BSC_CR effective. And BSC_CR will be restored to factory value if power is removed.
sudo apt-get install gcc-arm-linux-gnueabi export CROSS_COMPILE=arm-linux-gnueabi-
wget -c https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/arm-linux-gnueabi/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi.tar.xz tar xf gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi.tar.xz export CROSS_COMPILE=`pwd`/gcc-linaro-7.3.1-2018.05-x86_64_arm-linux-gnueabi/bin/arm-linux-gnueabi-
$ git clone https://github.com/linux4sam/at91bootstrap.git Cloning into 'at91bootstrap'... remote: Enumerating objects: 17621, done. remote: Counting objects: 100% (3324/3324), done. remote: Compressing objects: 100% (1029/1029), done. remote: Total 17621 (delta 2465), reused 3102 (delta 2285), pack-reused 14297 Receiving objects: 100% (17621/17621), 5.65 MiB | 4.65 MiB/s, done. Resolving deltas: 100% (13459/13459), done. $ cd at91bootstrap/
configs
folder which contains several default configuration files: sam9x60ekqspi_uboot_defconfig sam9x60eksd_uboot_defconfig sam9x60eknf_uboot_defconfigTips:
qspi
means to read quad-SPI serial flash, sd
means to read mmc card, nf
means to read nand flash$ make mrproper $ make sam9x60eksd_uboot_defconfigIf the configuring process is successful, the .config file can be found at AT91Bootstrap root directory.
$ make menuconfigNow, in the menuconfig dialog, you can easily add or remove some features to/from AT91Bootstrap as the same way as kernel configuration.
<Exit>
with arrows and press this button hitting the Enter
key to exit from this screen.
$ makeIf the building process is successful, the final .bin image is build/binaries/at91bootstrap.bin.
# at91sam9x5ek & at91sam9n12ek # 2 bit pmecc in 512 byte sector, one page has 4 sectors, spare size: 64, ecc offset: 48 setenv pmecc_header 0xc0c00405 # sama5d3xek & sama5d3_xplained # 4 bit pmecc in 512 byte sector, one page has 4 sectors, spare size: 64, ecc offset: 36 setenv pmecc_header 0xc0902405 # sama5d4ek & sama5d4 xplained # 8 bit pmecc in 512 byte sector, one page has 8 sectors, spare size: 224, ecc offset: 120 setenv pmecc_header 0xc1e04e07
setenv load_addr 22000000 # load_addr started by pmecc header setenv load_addr_bootstrap 220000d0 # load_addr + 0xd0 setenv load_addr_bootstrap_vector 220000e4 # load_addr + 0xd0 + 0x14 setenv erase_bootstrap 'nand erase 0 10000' # erase first 64k nand. setenv mmc_bootstrap_file 'boot.bin' # at91bootstrap file name in mmc card setenv load_mmc_bootstrap 'mw.b ${load_addr} 0xff 0x10000; mw.l ${load_addr} ${pmecc_header} 0x34; fatload mmc 0 ${load_addr_bootstrap} ${mmc_bootstrap_file};' setenv flash_bootstrap_from_mmc 'run erase_bootstrap; run load_mmc_bootstrap; mw.l ${load_addr_bootstrap_vector} ${filesize}; nand write ${load_addr} 0 0x10000;' setenv tftp_bootstrap_file 'u-boot/boot.bin' # at91bootstrap file name in tftp server folder setenv load_tftp_bootstrap 'mw.b ${load_addr} 0xff 0x10000; mw.l ${load_addr} ${pmecc_header} 0x34;tftp ${load_addr_bootstrap} ${tftp_bootstrap_file};' setenv flash_bootstrap_from_tftp 'run erase_bootstrap; run load_tftp_bootstrap; mw.l ${load_addr_bootstrap_vector} ${filesize}; nand write ${load_addr} 0 0x10000;'
run flash_bootstrap_from_tftp
or run flash_bootstrap_from_mmc
|
||||||||||||||||||||||
Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Linux® is the registered trademark of Linus Torvalds in the U.S. and other countries.
Microchip and others, are registered trademarks or trademarks of Microchip Technology Inc. and its subsidiaries.
Arm® and others are registered trademarks or trademarks of Arm Limited (or its affiliates). Other terms and product names may be trademarks of others.
Ideas, requests, contributions ? Connect to LinksToCommunities page.