Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The bootloader U-Boot

6,511 bytes removed, 13:21, 27 November 2018
Prepare your U-BOOT
__TOC__
==Overview==
<span style="color: #000000;">This page is meant to be a starting point for people to learn build a u-boot image and show to people the current status of different u-boot versions for IGEP Processor Boards.</span>
==Necessary package==
{| class="contenttable sortable"|In order to compile the u-!boot it is '''necessary''' to set up the Cross Compiler correctly. In this [[Set Up the Cross Compiler| post]] it is detailed how to set up correctly the Cross Compiler (and the desired version).!| {{Message/Information Message|message=The following steps has been tested using '''Ubuntu 16.04''' and the '''4.9 version''' of the '''arm-linux-|||||'''<span class="mw-|||||headline">'''gnueabihf''' compiler</span>}}
In order to install the Compiler we can use this command:
sudo apt install gcc-arm-linux-gnueabihf==Download & Prepare your U-BOOTBoot Source== will  First of all, will be a distintion between '''NXP '''-processors products ( IGEP SMARC iMX6) and Texas '''ARM'''-processors products. Because there are different kinds of U-Boot depending of each processor.
{| class="contenttable sortable" style="width: 888px887px;"|-! style="width: 513px;"|<span style="color: #999999;">'''Commercial Name'''</span>! style="width: 358px;"|<span style="color: #999999;">'''Technical name'''</span>|-| style="background-color: #f2f2f2; text-align: center; width: 871px;" colspan="2"|<span style="color: #999999;">'''Texas instruments'''</span>|-| style="width: 513px;"|<span style="color: #999999;">IGEPv2</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0020, DM3730</span>|-| style="width: 513px;"|<span style="color: #999999;">IGEP COM MODULE</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0030, DM3730</span>|-| style="width: 513px;"|<span style="color: #999999;">IGEP COM PROTON</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0032, OMAP3530</span>
|-
| ! style="width: 513px344px;"|<span style="color: #999999000000;">IGEP COM AQUILA'''Commercial Name'''</span>| ! style="width: 358px527px;"|<span style="color: #999999000000;">IGEP0033, AM335x'''U-Boot Series'''</span>
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEPv5IGEPv2 DM3730</span>| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0050, OMAP5U-boot-ARM</span>
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP SMARC AM335xCOM MODULE </span>DM3730/AM3703| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0034, AM335xU-boot-ARM</span> 
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP SMARC AM335x LiteCOM AQUILA AM335x</span>| style="width: 358px527px;"|<span style="color: #999999000000;">IGEP0034, Lite, AM335x<span dir="auto">U-boot-ARM</span> </span>
|-
| style="background-color: #f2f2f2; text-align: center; width: 871px344px;" colspan|<span style="2color: #000000;"|>IGEPv5 OMAP5432</span >| style="colorwidth: #999999527px;"|<span dir="auto">'''FreescaleU-boot-NXP'''ARM</span> 
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP SMARC iMX6 SoloAM335x</span>| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0046, IMX6XXU-boot-ARM</span> 
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP SMARC iMX6 Dual LiteiMX6 </span>| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0046, iMX6DL</span>|U-boot-| style="width: 513px;"|<span style="color: #999999;">IGEP SMARC iMX6 Dual</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0046, iMX6XX</span>|Freescale-| style="width: 513px;"|<span style="color: #999999;">IGEP SMARC iMX6 Quad</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0046, iMX6Q</span>NXP
|}
* Once we know which U-Boot have we will clone the corresponding git repository.
 ====<span dir="auto">U-Boot '''Texas InstrumentsARM''' Series</span>====<div class="clearfix">First : If we have an ARM series we will download the follow this table to get our source of U-Boot file for be able to make the configuration.</div><div class="clearfix"></div><div class="clearfix">{| class="contenttable sortable" style="width: 882px881px; height: 298px;"|- style="height: 2816.0313px5781px;"! style="width: 854px855px; height: 2816.0313px5781px; text-align: center; vertical-align: middle;" colspan="2"|===='''Downloading binary files====/U-Boot Source'''|- style="height: 31px44px;"! style="background-color: #ffffff; heightwidth: 31px225px; widthheight: 214px44px;"|'''<span id="Clone_the_u-boot_repo" class="mw-headline">Clone the u-boot reporepository</span>'''| style="width: 540px621px; height: 31px44px;"|
Clone the u-boot repository using git address:
<span style="color: #002d87000000;">$ <code>git clone git@git.isee.biz:arm-boot/u-boot-arm.git</code> </span> 
or
 <code><span style="color: #002d87000000;">$ </spancode> git clone [https://git.isee.biz/arm-boot/u-boot-arm.git https][https://git.isee.biz/arm-boot/u-boot-arm.git ://git.isee.biz/arm-boot/u-boot-arm.git]</code></span>
|- style="height: 110px;"
! style="background-color: #ffffff; width: 225px; height: 110px; width: 214px;"|'''<span id="Checkout_u-boot_repo" class="mw-headline">Checkout u-boot repo repository</span>'''| style="width: 640px621px; height: 110px;"|
Go to the u-boot-arm directory and checkout the isee_v2017.03 as:
<span style="color: #002d87;">$ <code><span style="color: #002d87;"><span style="color: #000000;">cd u-boot-arm<br/span></span></code></span> <span style="color: #000000;"><code>$ git checkout remotes/origin/isee_v2017.03 -b isee_v2017.0303 </code></span> 
|}
 ====<span dir="auto">U-Boot '''Freescale-NXP iMX6''' Series Serie</span>====<div class="clearfix">First : If we have an Freescale-NXP series we will download the follow this table to get our source of U-Boot file for be able to make the configuration.</div>{| class="contenttable sortable" style="font-sizewidth: 15.024px883px; widthheight: 885px263px;"
|- style="height: 22px;"
! style="width: 851px849px; height: 22px; text-align: center; vertical-align: middle;" colspan="2"|===='''Downloading binary files====/U-Boot Source'''
|- style="height: 44px;"
! style="background-color: #ffffff; width: 203px223px;"|'''<span id="Clone_the_u-boot_repo" class="mw-headline">Clone the u-boot reporepository</span>'''| style="width: 648px626px; height: 44px;"|Clone the u-boot repository using git address:<br /> <span style="color: #002d87000000;">$ git clone git@git.isee.biz:arm-boot/Clone the u-boot-imx.git repository using git address:</span>or
 <span style="color: #000000;"><code>$ git clone [https://clone git@git.isee.biz/arm-boot/u-boot-imx.git https://git.isee.biz/arm-boot/u-boot-imx.git]</code></span>
|- style="height: 89px;"! <span style="background-color: #ffffff; width: 203px000000;"|'''<span id="Checkout_u-boot_repo" class="mw-headline">Checkout u-boot repo or</span>'''| style="width: 648px; height: 89px;"|Go to the u-boot-imx directory and checkout the version 2015.04.y as:
<span style="color: #002d87000000;">$ cd  <code>git clone [https://git.isee.biz/arm-boot/u-boot-imx<br>$ .git checkout remoteshttps:/origin/isee_imx_v2017git.03_4isee.9.11_1.0.0_ga biz/arm-boot/u-boot-b isee_imx_v2017imx.03_4.9.11_1.0.0_gagit]</code></span>|}
Once we have downloaded we will execute the file called |- style="height: 89px;"! style="background-color: #ffffff; width: 223px;"|'''defconfig,<span id="Checkout_u-boot_repo" class="mw-headline">Checkout u-boot repository</span>''' that it variates in function of each module| style="width: 626px; height: 89px;"|<span style="color: #000000;">Go to the u-boot-imx directory and checkout the isee_imx_v2017.03.y as:</span>
<span style="color: #000000;"><code>cd u-boot-imx</code></span>
<span style="color: #000000;"><code>git checkout remotes/origin/isee_imx_v2017.03_4.9.11_1.0.0_ga -b isee_imx_v2017.03_4.9.11_1.0.0_ga </code></span>
{| class="contenttable sortable" style="width: 898px; height: 1296px;"
|-
! style="width: 872px; text-align: center; vertical-align: middle;" colspan="3"|
====<span id="Set_the_board_configuration" class="mw-headline">Set the board</span><span id="Set_the_board_configuration" class="mw-headline"> configuratio</span><span id="Set_the_board_configuration" class="mw-headline">n(Prepare your U-BOOT)</span>====
|-
! style="background-color: #f2f2f2;"|Model
! style="background-color: #f2f2f2;"|U-BOOT Version
! style="width: 528px; background-color: #f2f2f2;"|Example
|-
! style="background-color: #ffffff; width: 159px;"|IGEPv2
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"| u-boot-ARM
| style="width: 528px;"|
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0020_defconfig</span>
|-
! style="background-color: #ffffff; width: 159px;"|IGEP COM Module 
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|u-boot-ARM 
| style="width: 528px;"|
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0030_defconfig </span>
|-
! style="background-color: #ffffff; width: 159px;"|IGEP COM PROTON 
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|u-boot-ARM 
| style="width: 528px;"|
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0032_defconfig</span>
|-
! style="background-color: #ffffff; width: 159px;"|IGEP COM AQUILA 
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|u-boot-ARM 
| style="width: 528px;"|
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0033_defconfig</span>
|-
! style="background-color: #ffffff; width: 159px;"|IGEPv5
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|u-boot-ARM 
| style="width: 528px;"|
<span style="color: #002d87;">----</span>
|-
! style="background-color: #ffffff; width: 159px;"|IGEP SMARC AM335x 
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|u-boot-ARM 
| style="width: 528px;"|
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0034_defconfig</span>
|-
! style="background-color: #ffffff; width: 159px;"|IGEP SMARC AM335x Lite
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|u-boot-ARM 
| style="width: 528px;"|
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0034_lite_defconfig</span>
|-
! style="background-color: #ffffff; width: 159px;"|
'''IGEP0046 SMARC Solo'''
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|linux-imx 
| style="width: 528px;"|
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xxxxx </span>
|-
! style="background-color: #ffffff; width: 159px;"|'''IGEP0046 SMARC Dual lite'''
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|linux-imx 
| style="width: 528px;"|
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6dl_2G_defconfig</span><span style="color: #002d87;"> </span>
|-
! style="background-color: #ffffff; width: 159px;"| '''IGEP0046 SMARC Dual '''
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|linux-imx 
| style="width: 528px;"|<span style="color: #002d87;"> </span>
<span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xxxxx</span><span style="color: #002d87;"> </span>
|-
! style="background-color: #ffffff; width: 159px;"| '''IGEP0046 SMARC Quad'''
| style="background-color: #ffffff; width: 167px; text-align: center; vertical-align: middle;"|linux-imx 
| style="width: 528px;"|
<span style="color: #002d87;"> $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6q_2G_defconfig</span>
|}
The result for '''Texas Instruments''' processor based board ==Prepare your U-BOOT==Once we have downloaded the U-Boot source. We will be a '''MLOexecute''' and the file called '''u-boot.imgdefconfig''' (default configuration) that it variates in function of each model.
<span style="font-sizeIn order to load the default configuration of the target board, we have to write the following command: 15.024px;">The result for </span><strong style="font-size: 15.024px;">iMX6 </strong><span style="font-size: 15.024px;">processor based will be a </span><strong style="font-size: 15.024px;">u-boot.imx.</strong>
<span style="color: #000000;"> make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- [your_defconfig]</span>
* In the following table it can be found the name of each default configuration associated to each IGEP PROCESSORS BOARDS:
====<span id="Build_u-boot" class="mw-headline">Build u-boot</span>====
You can build u-boot executing this command: 
<span style="color: #002d87;"><code><span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-</span></code></span>   ==== ==== ===<span id="What_next..." class="mw-headline">What next...</span>===After build u-boot you can use it for boot the board, exist several options for boot, check the Hardware Reference Manual about the options available for your board. * [[How to boot from MicroSD Card|Boot from MicroSD Card.]]* Boot from NAND flash.* Boot from eMMC.* Boot from USB.* Boot from Network.  ==<span style="color: #999999;">Configurations files</span>==<span style="color: #999999;">The result for '''iMX6 '''processor based will be a '''u-boot.imx.'''</span> {| class="contenttable sortable" style="font-sizewidth: 15.024px872px; widthheight: 889px317px;"
|-
! style="width: 361px196px;"|<span Module! style="colorwidth: #99999910px;">Modules</span>|Defconfig! style="width: 361px644px;"|<span style="color: #999999;">Files</span>Example
|-
! | style="background-color: #ffffff; width: 361px; text-align: left196px;"|<span IGEPv2 DM3730| style="colorwidth: #99999910px;">IGEP0046 SMARC iMX6 Duallite 2GB</span>|igep0020_defconfig| style="background-color: #ffffff; width: 361px; text-align: left644px;"|<span style="color: #999999000000;">igep0046_imx6dl_2G_defconfig <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0020_defconfig</code></span>
|-
! | style="background-colorwidth: #ffffff196px; "|IGEP COM MODULE DM3730/AM3703| style="width: 361px10px; text-align"|igep0030_defconfig| style="width: left644px;"|<span style="color: #999999000000;">IGEP0046 SMARC iMX6 DUAL</spancode>| stylemake ARCH=arm CROSS_COMPILE="backgroundarm-linux-color: #ffffff; width: 361px; textgnueabihf-align: left;"|  igep0030_defconfig</code></span>
|-
! style="background-color: #ffffff; width: 361px; text-align: left;"|<span style="color: #999999;">IGEP0046 SMARC iMX6 QUAD</span>| style="background-color: #ffffff; width: 361px; text-align: left196px;"|<span style="color: #999999;">igep0046_imx6q_2G_defconfig''' '''</span>IGEP COM AQUILA AM335x|-! style="background-color: #ffffff; width: 361px; text-align: left10px;"|<span style="color: #999999;">'''IGEP0046 SMARC iMX6 SOLO'''</span>| style="background-color: #ffffff; width: 361px; text-align: left;"| |}am335x_igep0033_defconfig
<span style="color: #999999;">The result for '''Texas Instruments''' processor based board will be a '''MLO''' and '''u-boot.img'''. (COMPROVAR)</span> {| class="contenttable sortable" style="width: 889px644px;"|-! style="width: 358px;"|<span style="color: #999999000000;">Modules</spancode! stylemake ARCH="width: 513px;"|<span stylearm CROSS_COMPILE="color: #999999;">"Files"</span>|arm-! style="backgroundlinux-color: #ffffff; textgnueabihf-align: left;"|<span style="color: #999999;">IGEP0030 DM3730 Module am335x_igep0033_defconfig</span>| style="width: 513px;"|<span style="color: #999999;"code>igep0030_defconfig</span>
|-
! | style="background-color: #ffffff; text-alignwidth: left196px;"|<span IGEPv5 OMAP5432| style="colorwidth: #99999910px;">IGEP0020 DM3730 IGEPv2</span>| style="width: 513px644px;"|<span style="color: #999999000000;">igep0020_defconfig<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-</code></span>
|-
! | style="background-colorwidth: #ffffff; text-align: left196px;"|<span IGEP SMARC AM335x| style="colorwidth: #99999910px;">IGEP0033 AM335x AQUILA Module</span>|am335x_igep0034_defconfig| style="width: 513px644px;"|<span style="color: #999999000000;">am335x_igep0033_defconfig<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0034_defconfig</code></span>
|-
! | style="background-color: #ffffff; text-alignwidth: left196px;"|<span IGEP SMARC iMX6 Solo/Dual Lite| style="colorwidth: #99999910px;">IGEP0032 OMAP3530 PROTON Module</span>|igep0046_imx6dl_2G_defconfig| style="width: 513px644px;"|<span style="color: #999999000000;">igep0032_defconfig<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6dl_2G_defconfig</code></span>
|-
! | style="background-colorwidth: #ffffff; text-align: left196px;"|<span IGEP SMARC iMX6 Dual/ Quad| style="colorwidth: #99999910px;">IGEP0034 SMARC AM335x Module</span>|igep0046_imx6q_2G_defconfig| style="width: 513px644px;"|<span style="color: #999999000000;">am335x_igep0034_defconfig<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6q_2G_defconfig</code></span>
|-
! | style="background-colorwidth: #ffffff196px; text"|IGEP SMARC iMX6 Ultra-align: left;"Lite / Ultra Ultra-Lite|<span style="colorwidth: #99999910px;">IGEP0034 SMARC AM335x Module lite</span>|igep0146_imx6ul_512M_defconfig| style="width: 513px644px;"|<span style="color: #999999000000;"> am335x_igep0034_lite_defconfig</spancode>|make ARCH=arm CROSS_COMPILE=arm-! style="backgroundlinux-color: #ffffff; textgnueabihf-align: left;"|igep0146_imx6ul_512M_defconfig<br /><span style="color: #999999;"/code>IGEP0050 OMAP5 IGEPv5</span>| style="width: 513px;"| 
|}
<span style="font=Build your U-size: 28BOOT==After running the defconfig.2451px; color: #000000;">Stable You can build the U-Boot</span>by executing this command:
<span style="color: #000000;">The software git repository is located [https://git.isee.biz/ make ARCH=arm CROSS_COMPILE=arm-boot here].linux-gnueabihf-</span>Once the compile process has sucesfully finished, we will find the resulting files inside the u-boot root folder. Depending on the processor the generated files will be different:
* The result for '''ARM''' processor based board will be a '''MLO''' and '''u-boot.img'''.* The result for '''Freescale'''-'''NXP'''<span strong style="colorfont-size: #0000000.939em;">U </strong><span style="font-bootsize: OMAP3 boards, OMAP5 boards, AM335x boards is located [https://git0.isee.biz939em;">processor based will be a </armspan><strong style="font-boot/size: 0.939em;">u-boot-arm here].imx.</spanstrong>
<span style="color: #000000;">U-boot: iMX6 boards is located [https://git.isee.biz/arm-boot/u-boot-imx here].</span>
<span style="color: #000000;">u-Finally we can copy this files in a '''boot firmware binaries can be downloaded from heredevice''', for example, a microSD Memory Card. It is explained in the following [[How to prepare a bootable MicroSD Card|post]].</span>
{{Message/Information Message|title=TITLE|message= <span style="color: #000000;">[EOL] For OMAP3 based platformsIn case of the Freescale-NXP Porcessor Boards, ISEE do it is not support possible to copy directly the u-boot, instead .imx file. It is necessary to copy in the first blocks of, ISEE provides the boot device using the dd command. It is explained in the following post [[The IGEP X-loaderHow to prepare a bootable MicroSD Card|How to prepare a bootable MicroSD Card]].</span>}}
=<span style="color: #999999;">How to cross compile the U-Boot</span>=
<div style="font-size: 15.024px;"><span style="color: #999999;">In order to compile and build the U-Boot for IGEP PROCESSOR BOARDS you should set the CROSS_COMPILE variable. Set this to the prefix of your toolchain (including the trailing dash "-"). So if your toolchain is invoked as say '''arm-linux-gnueabi-gcc''', just chop off that trailing gcc and that's what you use: arm-linux-gnueabihf-.</span></div>
<div style="font-size: 15.024px;"><span style="color: #999999;">As example, once you've downloaded the u-boot source, you should follow these steps:</span></div>
<span style="color: #999999;">make CROSS_COMPILE=[cross compiler] [board config]
make CROSS_COMPILE=[cross compiler]</span><div style="font-size: 15.024px;"><span style="color: #999999;">The result will be a MLO and a u-boot.img file. You can install these files, for example, in the boot partition of a SD-card.</span></div>
==<span style="color: #999999;">u-boot Freescale-NXP iMX6 series</span>==
* <span style="color: #999999;">[[U-boot Freescale-NXP iMX6 Series|u-boot Freescale-NXP iMX6 Series]]</span>
==<span style="color: #999999;">u-boot Texas Instruments AM335x, OMAP3, DM3730, OMAP5432 series</span>==
* <span style="color: #999999;">[[u-boot_Texas_Instruments_Series|u-boot Texas Instruments Series]]</span>
===<span styleid="What_next..." class="color: #999999;mw-headline">What next...</span>===After build u-boot you have to download and compile [[Category:U-BootLinux Kernel 4.9.y|kernel]]</span>