Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The bootloader U-Boot

7,324 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: 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 '''ARM''' SerieSeries</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>{| 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><span style="color: #002d87;">$ git@git.isee.biz:arm-boot/u-boot-arm.git</span></code></span>  or  <code><span style="color: #002d87;">$ git clone</span> [httpsclone 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; font-family"><code><span style="color: Verdana, Arial, Helvetica, sans-serif#002d87; white-space"><span style="color: normal#000000;"><code>$ cd u-boot-arm</span></span></code></span>
<span style="color: #002d87; font-family: Verdana, Arial, Helvetica, sans-serif; white-space: normal000000;"><code>$ git checkout remotes/origin/-b isee_v2017.03 -b 03 origin/isee_v2017.03</code> </span>
|}
====<span dir="auto">U-Boot '''Freescale-NXP ''' 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: 881px263px;"
|- 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: 205px223px;"|'''<span id="Clone_the_u-boot_repo" class="mw-headline">Clone the u-boot reporepository</span>'''| style="width: 646px626px; height: 44px;"|<span style="color: #000000;">Clone the u-boot repository using git address:</span>
<span style="color: #002d87000000;"><code><span style="color: #002d87;">$ git clone git@https://git.isee.biz:/cgit/arm-boot/u-boot-imx.git</span></code></span>
or|- style="height: 89px;"! style="background-color: #ffffff; width: 223px;"|'''<span id="Checkout_u-boot_repo" class="mw-headline">Checkout u-boot repository</span>'''| 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>
 <code><span style="color: #002d87000000;">$ git clone</spancode> [https://git.isee.biz/arm-boot/cd u-boot-imx.git https:<//git.isee.biz/arm-boot/u-boot-imx.git]code></codespan>
|- <span style="height: 89px;"! style="background-color: #ffffff; width: 205px000000;"|'''><span id="Checkout_ucode>git checkout origin/isee_imx_v2017.03_4.9.11_1.0.0_ga -boot_repo" class="mw-headline"b isee_imx_v2017.03_4.9.11_1.0.0_ga </code>Checkout u-boot repo </span>'''| style="width: 646px; height: 89px;"|Go to the u-boot-imx directory and checkout the version 2015.04.y as:
<span style="color: #002d87;"><code><span style="color: #002d87;">$ cd u-boot-imx</span></code></span>|}
<span style="color: #002d87;"><code><span style="color: #002d87;">$ git checkout remotes/origin/isee_imx_v2017.03_4.9.11_1.0.0_ga Prepare your U-BOOT==Once we have downloaded the U-b isee_imx_v2017Boot source.03_4.9.11_1We will '''execute''' the file called '''defconfig''' (default configuration) that it variates in function of each model.0.0_ga</span></code> </span>
|}In order to load the default configuration of the target board, we have to write the following command:
Once we have downloaded we will execute <span style="color: #000000;"> make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- [your_defconfig]</span>* In the file called '''defconfig,''' that following table it variates in function can be found the name of each model.default configuration associated to each IGEP PROCESSORS BOARDS:
{| class="contenttable sortable" style="width: 885px872px; height: 1296px317px;"
|-
! style="width: 854px; text-align: center; vertical-align: middle196px;" colspan|Module! style="3width: 10px;"|Defconfig===<span id! style="Set_the_board_configurationwidth: 644px;" 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>===|Example
|-
! | style="background-color: #f2f2f2; width: 209px196px;"|ModelIGEPv2 DM3730! | style="background-color: #f2f2f2; width: 148px10px;"|U-BOOT Versionigep0020_defconfig! | style="width: 497px644px; background-"|<span style="color: #f2f2f2000000;"|Example><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0020_defconfig</code></span>
|-
! | style="background-color: #ffffff; width: 209px196px;"|IGEPv2IGEP COM MODULE DM3730/AM3703| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle10px;"| u-boot-ARMigep0030_defconfig| style="width: 497px644px;"| <span style="color: #002d87000000;">$ <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0020_defconfig igep0030_defconfig</code></span>
|-
! | style="background-color: #ffffff; width: 209px196px;"|IGEP COM Module AQUILA AM335x| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle10px;"|u-boot-ARM am335x_igep0033_defconfig | style="width: 497px644px;"| <span style="color: #002d87000000;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0030_defconfig </spancode>|-! style="background-color: #ffffff; width: 209px;"|IGEP COM PROTON | style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle;"|u-boot-ARM | style="width: 497px;"| <span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0032_defconfig am335x_igep0033_defconfig</spancode>|-! style="background-color: #ffffff; width: 209px;"|IGEP COM AQUILA | style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle;"|u-boot-ARM | style="width: 497px;"| <span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0033_defconfig</span>
|-
! | style="background-color: #ffffff; width: 209px196px;"|IGEPv5IGEPv5 OMAP5432| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle10px;"|u-boot-ARM  | style="width: 497px644px;"| <span style="color: #002d87000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf--</code></span>
|-
! | style="background-color: #ffffff; width: 209px196px;"|IGEP SMARC AM335x AM335x| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle10px;"|u-boot-ARM am335x_igep0034_defconfig| style="width: 497px644px;"| <span style="color: #002d87000000;">$ <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0034_defconfig</code></span>
|-
! | style="background-color: #ffffff; width: 209px196px;"|IGEP SMARC AM335x iMX6 Solo/Dual Lite| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle10px;"|u-boot-ARM igep0046_imx6dl_2G_defconfig| style="width: 497px644px;"| <span style="color: #002d87000000;">$ <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0034_lite_defconfig igep0046_imx6dl_2G_defconfig</code></span>
|-
! | style="background-color: #ffffff; width: 209px196px;"|'''IGEP0046 IGEP SMARC Solo'''iMX6 Dual/ Quad| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle10px;"|u-boot-IMXigep0046_imx6q_2G_defconfig| style="width: 497px644px;"| <span style="color: #002d87000000;">$ <code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xxxxx  igep0046_imx6q_2G_defconfig</code></span>
|-
! | style="background-color: #ffffff; width: 209px196px;"|'''IGEP0046 IGEP SMARC Dual lite'''| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle;"|u-boot-IMX| style="width: 497px;"| <span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihfiMX6 Ultra- igep0046_imx6dl_2G_defconfig<Lite /span><span style="color: #002d87;"> </span>|Ultra Ultra-! style="background-color: #ffffff; width: 209px;"| '''IGEP0046 SMARC Dual '''Lite| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle10px;"|u-boot-IMXigep0146_imx6ul_512M_defconfig| style="width: 497px644px;"|<span style="color: #002d87000000;"> </spancode> <span style="color: #002d87;">$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xxxxxigep0146_imx6ul_512M_defconfig<br /span><span style="color: #002d87;"> </span>|-! style="background-color: #ffffff; width: 209px;"| '''IGEP0046 SMARC Quad'''| style="background-color: #ffffff; width: 148px; text-align: center; vertical-align: middle;"|u-boot-IMX| style="width: 497px;"| <span style="color: #002d87;"code> $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6q_2G_defconfig</span>
|}
==Build your U-BOOT==
After running the defconfig. You can build the U-Boot by executing this command:
====<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: #002d87000000;">$ make  make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-</span></code></span>   * The result for '''Texas Instruments''' processor based board Once the compile process has sucesfully finished, we will be a '''MLO''' and '''find the resulting files inside the u-bootroot folder.img'''.* The result for <strong style="font-size: 0.939em;">iMX6 </strong><span style="font-size: 0.939em;">Depending on the processor based the generated files will be a </span><strong style="font-sizedifferent: 0.939em;">u-boot.imx.</strong>  You can install these files, for example, in the boot partition of a SD-card.         ===<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 ARM'''processor  processor based board will be a '''MLO''' and '''u-boot.imximg'''.* The result for '''Freescale'''-'''NXP'''</span> {| class="contenttable sortable" strong style="font-size: 150.024px; width: 889px;"|-! style="width: 361px;"|<span style="color: #999999939em;">Modules </spanstrong>! style="width: 361px;"|<span style="color: #999999;">Files</span>|font-! style="background-colorsize: #ffffff; width: 361px; text-align: left;"|<span style="color: #9999990.939em;">IGEP0046 SMARC iMX6 Duallite 2GBprocessor based will be a </span>| style="background-color: #ffffff; width: 361px; text-align: left;"|<span strong style="color: #999999;">igep0046_imx6dl_2G_defconfig </span>|font-! style="background-colorsize: #ffffff; width: 361px; text-align: left;"|<span style="color: #9999990.939em;">IGEP0046 SMARC iMX6 DUAL</span>| style="backgroundu-color: #ffffff; width: 361px; text-align: left;"| |-! style="background-color: #ffffff; width: 361px; text-align: left;"|<span style="color: #999999;">IGEP0046 SMARC iMX6 QUADboot.imx.</spanstrong>| style="background-color: #ffffff; width: 361px; text-align: left;"|<span style="color: #999999;">igep0046_imx6q_2G_defconfig''' '''</span>|-! style="background-color: #ffffff; width: 361px; text-align: left;"|<span style="color: #999999;">'''IGEP0046 SMARC iMX6 SOLO'''</span>| style="background-color: #ffffff; width: 361px; text-align: left;"| |}
<span style="color: #999999;">The result for '''Texas Instruments''' processor based board will be a '''MLO''' and '''u-boot.img'''. (COMPROVAR)</span>
{Finally we can copy this files in a '''boot device''', for example, a microSD Memory Card. It is explained in the following [[How to prepare a bootable MicroSD Card| class="contenttable sortable" style="width: 889px;"|-! style="width: 358px;"|<span style="color: #999999;">Modules</span>! style="width: 513px;"|<span style="color: #999999;">"Files"</span>|-! style="background-color: #ffffff; text-align: left;"|<span style="color: #999999;">IGEP0030 DM3730 Module</span>| style="width: 513px;"|<span style="color: #999999;">igep0030_defconfig</span>|-! style="background-color: #ffffff; text-align: left;"|<span style="color: #999999;">IGEP0020 DM3730 IGEPv2</span>| style="width: 513px;"|<span style="color: #999999;">igep0020_defconfig</span>|-! style="background-color: #ffffff; text-align: left;"|<span style="color: #999999;">IGEP0033 AM335x AQUILA Module</span>| style="width: 513px;"|<span style="color: #999999;">am335x_igep0033_defconfig</span>|-! style="background-color: #ffffff; text-align: left;"|<span style="color: #999999;">IGEP0032 OMAP3530 PROTON Module</span>| style="width: 513px;"|<span style="color: #999999;">igep0032_defconfig</span>|-! style="background-color: #ffffff; text-align: left;"|<span style="color: #999999;">IGEP0034 SMARC AM335x Module</span>| style="width: 513px;"|<span style="color: #999999;">am335x_igep0034_defconfig</span>|-! style="background-color: #ffffff; text-align: left;"|<span style="color: #999999;">IGEP0034 SMARC AM335x Module lite</span>| style="width: 513px;"|<span style="color: #999999;"> am335x_igep0034_lite_defconfig</span>|-! style="background-color: #ffffff; text-align: left;"|<span style="color: #999999;">IGEP0050 OMAP5 IGEPv5</span>| style="width: 513px;"| |}post]].
<span style{{Message/Information Message|title="font-size: 28.2451px; color: #000000;">Stable U-Boot</span><span styleTITLE|message="color: #000000;">The software git repository is located [https://git.isee.biz/arm-boot here].</span><span style="color: #000000;">UIn case of the Freescale-boot: OMAP3 boardsNXP Porcessor Boards, OMAP5 boards, AM335x boards it is located [https://git.isee.biz/arm-boot/not possible to copy directly the u-boot-arm here].</span><span style="color: #000000;">U-boot: iMX6 boards is located [https://git.isee.biz/arm-boot/u-boot-imx here]file.</span><span style="color: #000000;">u-It is necessary to copy in the first blocks of the boot firmware binaries can be downloaded from heredevice using the dd command.</span><span style="color: #000000;">[EOL] For OMAP3 based platforms, ISEE do not support u-boot, instead of, ISEE provides 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>
''''''Bold text''''''==<span id="What_next..." class="mw-headline">What next...</span>==After build u-boot you have to download and compile [[Linux Kernel 4.9.y|kernel]]