Configured by a parallel set of makefile config symbols – CONFIG_SPL_I2C_SUPPORT, CONFIG_SPL_NAND_SUPPORT, etc. SPL (Secondary Program Loader) is a small binary, generated from U-Boot source, that fits in the SRAM and loads the main U-Boot into system RAM. It even supports FPGA based nios platforms. It supports a wide range of microprocessors like MIPS, ARM, PPC, Blackfin, AVR32 and x86. It is released as open source under the GNU GPLv2 license. U-Boot is the most popular boot loader in linux based embedded devices. This bootloader apparently also just reads the first partition of the SD card, and loads a file called “u-boot. The second-stage bootloader can apparently be one of either the X-loader or SPL. This was historically needed to synchronize critical sections of kernel code that shouldn’t be interrupted. Spl (short for set priority level, after the PDP-11 assembler instruction of the same name) is the name for a collection of Unix kernel routines or macros used to change the interrupt priority level. What is U-Boot used for?ĭas U-Boot (“the Universal Boot Loader” or U-Boot) is an open-source bootloader that can be used on ST boards to initialize the platform and load the Linux® kernel. Which means that ROM code is the first thing that loads (and executes) other program, and SPL is the second thing that loads (and executes) other program. To be clear: SPL stands for Secondary Program Loader. If you wanted to make a change to the overall U-boot configuration, you can use the configuration menu.So this first-stage bootloader is U-Boot SPL and second-stage bootloader is regular U-Boot (or U-Boot proper). This file is combined with a number of other binary firmware files and is stored into raw block space in the EMMC or microSD card. On the 64-bit SOCs, the resulting u-boot binary is named u-boot.bin. (NOTE: this is likely going to change because we want to use the method to load U-boot from all of our SOC types). This file is loaded by the SPL from the boot partition, which is a FAT filesystem in the first partition. On the 32-bit SOCs, the resulting u-boot binary (the main u-boot image) is a file named "u-boot.img". The SOC expects to find the SPL located at that specific location in the boot media. i.MX8M, i.MX8M-MINI), this is 33KB into the boot media. On 32-bit processors, this starts at 1KB into the storage device (or 2 512-byte blocks) in). The SPL is loaded into the boot media (in our case, this is always EMMC or microSD card) at a specific location. There is an SPL (which means Secondary Program Loader) and a U-boot binary image. The resulting binary images are placed in the project directory. If you have 4 CPUs available, then you can do the following: $ make -j 4 If you have multiple CPU cores available, you can use the "-j" switch to increase the number of parallel threads used and speed up the build. U-boot is not a very large project to build, so this usually doesn't take very long on most computers. This depends on the board, based on the following table: BoardĮDM1-IMX6 Solo, EDM1-IMX6 Dual Lite, EDM1-IMX6 Quadįor example, if you were using PICO-IMX8M-MINI: $ make pico-imx8mm_defconfig Now configure u-boot for the target platform you are using. (Or whichever branch you wish to use) Configure U-boot for your target platform $ git clone Ĭheckout the stable branch: $ git checkout tn-imx_v2018.03_4.14.98_2.0.0_ga-stable If you want to work with the latest code, some of which might not be completely tested, you can use the branch ending in -next. Here we are checking out the latest stable branch. Warranty not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. This is free software see the source for copying conditions. Once you have the toolchain installed, make sure that the ARCH and CROSS_COMPILE environment variables are set correctly so that these are used to build U-boot.įor 32-bit ARM targets (i.MX6UL/ULL, i.MX6, i.MX7): $ echo $gcc -versionĪrm-linux-gnueabihf-gcc (Linaro GCC 6.4-2018.05) 6.4.1 20180425 Ĭopyright (C) 2017 Free Software Foundation, Inc. For this, please refer to the following article. We use different toolchains depending on the processor architecture (32-bit or 64-bit ARM). You need to set up a toolchain to use to build U-boot. This article assumes that you are building U-boot from the TechNexion u-boot repository. This article takes you through the process of downloading and building U-boot yourself for your target platform. Customizing U-boot for your platform is sometimes necessary in order to add features, change the boot splash screen, and enable new hardware.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |