When we talk about Linux running on the ADSP-SC5xx we are generally talking about more than Linux. Linux itself refers to the Operating System. The software that is installed on to the processor consists of several components; a second-stage bootloader (U-Boot), a package file (uImage, or zImage if it is compressed) which contains the Linux kernel and a filesystem, and a .dtb file (device tree blob) which defines the system hardware.
There are several ways for Linux to boot on the ADSP-SC5xx development boards, but all of them follow the same overall sequence of operations:
The U-Boot Bootloader is a sophisticated second stage bootloader that comes with the ability to boot applications from a series of sources (flash, network, SD Card, USB). It even has it's own shell for debugging and development.
During the boot process U-Boot will be extracted from flash and executed where its purpose will be to:
The uImage file may be located on different types of storage. For the ADSP-SC5xx processor we support the following boot options where hardware permits:
It is recommended that for development purposes you begin with a system as described in the Getting Started Guide where you boot from a network image. This makes it easier to rebuild and deploy changes to the system. As you further develop your application you will need to consider where you image will be stored in your final product.
Analog Devices provides the Linux kernel and system boot pre-configured for the SC5xx hardware. If the system is configured to build the full image, all supported drivers will be built into the kernel and the corresponding software stacks will be initialized during system bring-up. Later you can configure your system to include only the features required for your system.
During boot the kernel will initialize, parse the DTB file to determine what hardware peripherals are available, then begin to initialize the system.