Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The bootloader U-Boot

7,289 bytes removed, 16:27, 12 October 2023
Download Binary package
__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: 513px344px;"|<span style="color: #999999000000;">IGEPv2'''Commercial Name'''</span>| ! style="width: 358px527px;"|<span style="color: #999999000000;">IGEP0020, DM3730'''U-Boot Series'''</span>
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP COM MODULEIGEPv2 DM3730</span>| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0030, DM3730U-boot-ARM</span>
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP COM PROTONMODULE </span>DM3730/AM3703| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0032, OMAP3530U-boot-ARM</span> 
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP COM AQUILAAQUILA AM335x</span>| style="width: 358px527px;"|<span style="color: #999999000000;">IGEP0033, AM335x<span dir="auto">U-boot-ARM</span> </span>
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEPv5IGEPv5 OMAP5432</span>| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0050, OMAP5U-boot-ARM</span> 
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP SMARC AM335x</span>| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0034, AM335xU-boot-ARM</span> 
|-
| style="width: 513px344px;"|<span style="color: #999999000000;">IGEP SMARC AM335x LiteiMX6 </span>| style="width: 358px527px;"|<span styledir="color: #999999;auto">IGEP0034, Lite, AM335x</span>|U-| style="backgroundboot-color: #f2f2f2; text-align: center; width: 871px;" colspan="2"|</span style="color: #999999;">'''Freescale-NXP'''</span>|-| style="width: 513px;"|<span style="color: #999999;">IGEP SMARC iMX6 Solo</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0046, IMX6XX</span>|-| style="width: 513px;"|<span style="color: #999999;">IGEP SMARC iMX6 Dual Lite</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0046, iMX6DL</span>|-| style="width: 513px;"|<span style="color: #999999;">IGEP SMARC iMX6 Dual</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0046, iMX6XX</span>|-| style="width: 513px;"|<span style="color: #999999;">IGEP SMARC iMX6 Quad</span>| style="width: 358px;"|<span style="color: #999999;">IGEP0046, iMX6Q</span>
|}
* 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;">$ git clone @git.isee.biz:arm-boot/u-boot-arm.git</span>or  <code><span style="color: #002d87;">$ git clone</span> [httpsgit clone https://git.isee.biz/arm-boot/u-boot-arm.git https://git.isee.bizcgit/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/-b isee_v2017.03 -b 03 origin/isee_v2017.03</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
 <code><span style="color: #002d87000000;">$ <code>git clone</span> [https://git.isee.biz/arm-boot/u-boot-imx.git https://git.isee.bizcgit/arm-boot/u-boot-imx.git]</code></span>
|- style="height: 89px;"
! style="background-color: #ffffff; width: 203px223px;"|'''<span id="Checkout_u-boot_repo" class="mw-headline">Checkout u-boot repo repository</span>'''| style="width: 648px626px; height: 89px;"|Go to the u-boot-imx directory and checkout the version 2015.04.y as:  <span style="color: #002d87000000;">$ cd Go to the u-boot-imx<br>$ git directory and checkout remotes/origin/the isee_imx_v2017.03_403.9.11_1.0.0_ga -b isee_imx_v2017.03_4.9.11_1.0.0_gay as:</span>|} Once we have downloaded we will execute the file called '''defconfig,''' that it variates in function of each model.
<span style="color: #000000;"><code>cd u-boot-imx</code></span>
<span style="color: #000000;"><code>git checkout 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;"|u-boot-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;"|u-boot-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;"|u-boot-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;"|u-boot-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 will be a '''MLO''' and '''u-boot.img'''. <span style="font-size: 15.024px;">The result for </span><strong style="fontPrepare your U-size: 15.024px;">iMX6 </strong><span styleBOOT="font-size: 15.024px;">processor based will be a </span><strong style="font-size: 15.024px;">u-boot.imx.</strong>   ====<span id="Build_u-boot" class="mw-headline">Build u-boot</span>====You can build u-boot executing this command:  In order to compile and build Once we have downloaded the U-Boot for IGEP PROCESSOR BOARDS you should set the CROSS_COMPILE variablesource. Set this to the prefix of your toolchain (including We will '''execute''' the trailing dash "-"). So if your toolchain is invoked as say file called '''arm-linux-gnueabi-gccdefconfig''', just chop off  (default configuration) that trailing gcc and that's what you use: arm-linux-gnueabihf-it variates in function of each model.  As example, once you've downloaded the u-boot source, you should follow these steps:   
<span style="colorIn order to load the default configuration of the target board, we have to write the following command: #002d87;"><code><span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-</span></code></span>
<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="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-size: 15.024px; width: 889px;"|-! style="width: 361px;"|<span style="color: #999999;">Modules</span>! style="width: 361px;"|<span style="color: #999999;">Files</span>|-! style="background-color: #ffffff; width: 361px; text-align: left;"|<span style="color: #999999;">IGEP0046 SMARC iMX6 Duallite 2GB</span>| style="background-color: #ffffff; width: 361px; text-align: left872px;"|<span style="colorheight: #999999317px;">igep0046_imx6dl_2G_defconfig </span>
|-
! style="background-color: #ffffff; width: 361px; text-align: left196px;"|<span Module! style="colorwidth: #99999910px;">IGEP0046 SMARC iMX6 DUAL</span>|Defconfig| ! style="background-color: #ffffff; width: 361px; text-align: left644px;"| Example
|-
! | style="background-color: #ffffff; width: 361px; text-align: left196px;"|<span IGEPv2 DM3730| style="colorwidth: #99999910px;">IGEP0046 SMARC iMX6 QUAD</span>|igep0020_defconfig| style="background-color: #ffffff; width: 361px; text-align: left644px;"|<span style="color: #999999000000;">igep0046_imx6q_2G_defconfig''' '''<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0020_defconfig</code></span>
|-
! | style="background-color: #ffffff; width: 361px; text-align: left196px;"|<span IGEP COM MODULE DM3730/AM3703| style="colorwidth: #99999910px;">'''IGEP0046 SMARC iMX6 SOLO'''</span>|igep0030_defconfig| style="background-color: #ffffff; width: 361px; text-align: left644px;"| |} <span style="color: #999999000000;">The result for '''Texas Instruments''' processor based board will be a '''MLO''' and '''u<code>make ARCH=arm CROSS_COMPILE=arm-boot.img'''. (COMPROVAR)linux-gnueabihf- igep0030_defconfig</code></span> {| class="contenttable sortable" style="width: 889px;"
|-
! | style="width: 358px196px;"|IGEP COM AQUILA AM335x<span | style="colorwidth: #99999910px;">Modules</span>|am335x_igep0033_defconfig
! | style="width: 513px644px;"|<span style="color: #999999000000;">"Files"<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0033_defconfig</code></span>
|-
! | style="background-color: #ffffff; text-alignwidth: left196px;"|<span IGEPv5 OMAP5432| style="colorwidth: #99999910px;">IGEP0030 DM3730 Module</span>| style="width: 513px644px;"|<span style="color: #999999000000;">igep0030_defconfig<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-</code></span>
|-
! | style="background-color: #ffffff; text-alignwidth: left196px;"|<span IGEP SMARC AM335x| style="colorwidth: #99999910px;">IGEP0020 DM3730 IGEPv2</span>|am335x_igep0034_defconfig| style="width: 513px644px;"|<span style="color: #999999000000;">igep0020_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;">IGEP0033 AM335x AQUILA Module</span>|igep0046_imx6dl_2G_defconfig| style="width: 513px644px;"|<span style="color: #999999000000;">am335x_igep0033_defconfig<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6dl_2G_defconfig</code></span>
|-
! | style="background-color: #ffffff; text-alignwidth: left196px;"|<span IGEP SMARC iMX6 Dual/ Quad| style="colorwidth: #99999910px;">IGEP0032 OMAP3530 PROTON Module</span>|igep0046_imx6q_2G_defconfig| style="width: 513px644px;"|<span style="color: #999999000000;">igep0032_defconfig<code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6q_2G_defconfig</code></span>
|-
! | style="background-color: #ffffff; text-alignwidth: left196px;"|<span style="color: #999999;">IGEP0034 IGEP SMARC AM335x Module<iMX6 Ultra-Lite /span>Ultra Ultra-Lite| style="width: 513px10px;"|<span style="color: #999999;">am335x_igep0034_defconfig</span>igep0146_imx6ul_512M_defconfig|-! style="background-colorwidth: #ffffff; text-align: left644px;"|<span style="color: #999999000000;">IGEP0034 SMARC AM335x Module lite</spancode>| stylemake ARCH="width: 513px;"|<span stylearm CROSS_COMPILE="color: #999999;"> am335x_igep0034_lite_defconfigarm-linux-gnueabihf- igep0146_imx6ul_512M_defconfig<br /span>|-! style="background-color: #ffffff; text-align: left;"|<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 style="color: #999999;">[=Download Binary package==[Categoryhttp:U-Boot//downloads.isee.biz/ You can download binary packages from here.]]</span>
==<span id="What_next..." class="mw-headline">What next...</divspan>==After build u-boot you have to download and compile [[Linux Kernel 4.9.y|kernel]]