What is SPL in U-Boot?

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. between the SPL and the main U-Boot. – SPL also relies heavily on toolchain garbage collection.

What is U-Boot IMX?

NXP Employee. Hi, tom. The difference between u-boot.bin and u-boot.imx is the IVT header. That means after u-boot.bin is build, we will also add a IVT header and put it in front of u-boot.bin. This IVT header is for our boot ROM to identify the u-boot’s location & function etc…

Where is U-Boot stored?

SD Card memory
The U-Boot environment is stored in the SD Card memory and is persistent across power or reset cycles. Parameters defined by the U-boot environment variables include: target IP address, target MAC address, location in RAM where a Linux bootable image will be loaded, and many others.

What is SPL Linux?

The Solaris Porting Layer, SPL, is a Linux kernel module which provides a compatibility layer used by the ZFS on Linux project.

What is SPL MLO?

“MLO” is the second-stage bootloader. The second-stage bootloader can apparently be one of either the X-loader or SPL. This bootloader apparently also just reads the first partition of the SD card, and loads a file called “u-boot. bin”, and executes it.

How do I check my U-boot version?

Try to read uboot version this way:

  1. Find uboot partition, eg. for MTD device: cat /proc/mtd.
  2. For /dev/mtd5: cat /dev/mtd5 | hexdump -C -n 64.

How do I boot from Uboot?

BOOTING USING NOR FLASH:

  1. Download uImage and copy it to NOR flash partition. NOTE: The size and offset values given below are to be considered representative only.
  2. Download ramdisk and copy it to NOR flash partition.
  3. Setup the bootargs and bootcmd environment variables to boot from SPI flash.

What does U-Boot stand for?

Unterseeboot
U-boat, German U-boot, abbreviation of Unterseeboot, (“undersea boat”), a German submarine. The destruction of enemy shipping by German U-boats was a spectacular feature of both World Wars I and II.

Why do we need U-Boot?

If it is U-Boot, great, if not, it knows where to load the main operating system or where to load U-Boot (or some other bootloader). U-Boot (speaking of bootloaders in general) then configures a minimal set of devices, memory, chip settings, etc., to enable the main OS to be loaded and started.

What does the SPL do in U-Boot?

The SPL has very limited configuration or user interaction, and mainly serves to initialize the external DDR memory and set-up the boot process for the next bootloader stage: U-Boot. U-Boot allows for powerful command-based control over the kernel boot environment via a serial terminal.

Which is the second stage of U-Boot?

For more information on the SYSBOOT pins and associated boot parameters see the device TRM. The second stage bootloader is known as the SPL (Secondary Program Loader), but is sometimes referred to as the MLO (MMC Card Loader). The SPL is the first stage of U-Boot, and must be loaded from one of the boot sources into internal RAM.

How big is a U-Boot Elf preloader?

For example, the ARM processor’s hardware boot loader in Altera’s SoC FPGAs can only handle a 60 kB image. A typical U-Boot ELF easily reaches 300 kB (after stripping). The point with an SPL is to create a very small preloader, which loads the “full” U-Boot image. It’s built from U-Boot’s sources, but with a minimal set of code.

How many times does U-Boot need to be built?

So when U-Boot is built for a platform that requires SPL, it’s typically done twice: Once for generating the SPL, and a second time for the full U-Boot. The SPL build is done with the CONFIG_SPL_BUILD is defined. Only the pre-location phase runs on SPL builds.

Share this post