Porting Guide/BSP Customization

From Tizen Wiki
Jump to: navigation, search

This section covers the basic configuration, setup, and build procedure required for building the boot loader and the kernel image for ARM.

Boot Loader Fundamentals

Boot loader is a small piece of software that is required to perform the basic hardware and peripheral initialization and load the kernel and proper device tree binary for the device to RAM. For the Tizen platform, the boot loader comes in 2 parts. The first part is the primary boot loader and the second part is the secondary boot loader. The primary boot loader is the proprietary boot loader. The secondary boot loader is the open source boot loader u-boot, which is customized further for the Tizen platform.

If your platform is already loaded with the compatible boot loader software, you can skip this section and move directly to the kernel section.

Boot Loader Setup and Build

To build the Tizen TM1 boot loader:

  1. Install and setup cross compile tools on your system if the target and your host are different (such as x86).
    You can use the Linaro toolchain binaries or Ubuntu package of them and have your environment setup for the cross tools (such as export CROSS_COMPILE=....).
  2. Start with cleaning up the u-boot-tm1 source. (Download the source from the u-boot-tm1 repository.)
    $ make distclean
  3. Set up the configration for TM1.
    $ make ARCH=arm tizen_tm1_defconfig
  4. Build u-boot.
    $ make ARCH=arm
  5. Once the build is successful, the u-boot.bin file is created. (This step is for preventing from flashing the other u-boot.bin file.)
    $ tools/mkimage_signed.sh u-boot.bin "tizen_tm1"
  6. After the scrip is run, the u-boot-mmc.bin file is created.
  7. Create a boot loader tarball to download the u-boot binary onto the target.
    $ tar cvf bootloader.tar u-boot-mmc.bin

Be careful when you modify the boot loader, as there is a risk of breaking the device for good.

Boot Loader Kernel Parameters

The command line parameters can be passed from boot loader to Linux kernel. Here are some example command line parameters: