Changes

The bootloader U-Boot

6,893 bytes added, 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>
===<span style="color: #000000;">What is U-Boot?</span>===<span style="color: #000000;">[http://www.denx.de/wiki/U-Boot/ Das U-Boot] (Universal Bootloader) is an open source, primary boot loader used in embedded devices. It Its primary purpose in the shipping system is available for a number of different computer architectures, including PPC, ARM, MIPS, AVR32, x86to load some operating system.</span>
<span style=How to cross compile the "color: #000000;">That means that U-Boot=In order is necessary to perform a certain task, but it's nothing you want to compile and build the throw any significant resources at. Typically U-Boot for IGEP PROCESSOR BOARDS you should set is stored in relatively small NOR flash memory, which is expensive compared to the CROSS_COMPILE variable. Set this much larger NAND devices often used to store the prefix of your toolchain (including operating system and 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-application.</span>
As example, once you've downloaded the u-boot source, you should follow these steps:
make CROSS_COMPILE=[cross compiler] [board config]
make CROSS_COMPILE=[cross compiler]
The result for Texas Instruments processor based board will be a '''MLO''' and '''u-boot.img'''.
==Config filesNecessary package==IGEP0030 DM3730 Module: igep0030_defconfigIn 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).
IGEP0020 DM3730 IGEPv2: igep0020_defconfig{{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>}}
IGEP0033 AM335x AQUILA ModuleIn order to install the Compiler we can use this command: am335x_igep0033_defconfig
IGEP0032 OMAP3530 PROTON Module: igep0032_defconfig sudo apt install gcc-arm-linux-gnueabihf==Download U-Boot Source== First of all, will be a distintion between '''NXP'''-processors products and '''ARM'''-processors products. Because there are different kinds of U-Boot depending of each processor.
IGEP0034 {| class="contenttable sortable" style="width: 887px;"|-! style="width: 344px;"|<span style="color: #000000;">'''Commercial Name'''</span>! style="width: 527px;"|<span style="color: #000000;">'''U-Boot Series'''</span>|-| style="width: 344px;"|<span style="color: #000000;">IGEPv2 DM3730</span>| style="width: 527px;"|<span dir="auto">U-boot-ARM</span>|-| style="width: 344px;"|<span style="color: #000000;">IGEP COM MODULE </span>DM3730/AM3703| style="width: 527px;"|<span dir="auto">U-boot-ARM</span> |-| style="width: 344px;"|<span style="color: #000000;">IGEP COM AQUILA AM335x</span>| style="width: 527px;"|<span style="color: #000000;"><span dir="auto">U-boot-ARM</span> </span>|-| style="width: 344px;"|<span style="color: #000000;">IGEPv5 OMAP5432</span>| style="width: 527px;"|<span dir="auto">U-boot-ARM</span> |-| style="width: 344px;"|<span style="color: #000000;">IGEP SMARC AM335x Module</span>| style="width: 527px;"|<span dir="auto">U-boot-ARM</span> |-| style="width: 344px;"|<span style="color: #000000;">IGEP SMARC iMX6 </span>| style="width: am335x_igep0034_defconfig527px;"|<span dir="auto">U-boot-</span>Freescale-NXP|}
IGEP0034 SMARC AM335x Module lite: am335x_igep0034_lite_defconfig* Once we know which U-Boot have we will clone the corresponding git repository.
IGEP0050 OMAP5 IGEPv5:
The result for iMX6 processor based ====<span dir="auto">U-Boot '''ARM''' Series</span>====: If we have an ARM series we will be a follow this table to get our source of U-Boot{| class="contenttable sortable" style="width: 881px; height: 298px;"|- style="height: 16.5781px;"! style="width: 855px; height: 16.5781px; text-align: center; vertical-align: middle;" colspan="2"|'''Downloading binary files/U-Boot Source'''|- style="height: 44px;"! style="background-color: #ffffff; width: 225px; height: 44px;"|'''<span id="Clone_the_u-boot_repo" class="mw-headline">Clone the u-boot.imx.repository</span>'''| style="width: 621px; height: 44px;"|Clone the u-boot repository using git address:
IGEP0046 SMARC iMX6 Duallite 2GB<span style="color: igep0046_imx6dl_2G_defconfig#000000;"> <code>git clone https://git.isee.biz/cgit/arm-boot/u-boot-arm.git</code></span>
IGEP0046 SMARC iMX6 DUAL|- style="height: 110px;"! style="background-color: #ffffff; width: 225px; height: 110px;"|<span id="Checkout_u-boot_repo" class="mw-headline">Checkout u-boot repository</span>| style="width: 621px; height: 110px;"|Go to the u-boot-arm directory and checkout the isee_v2017.03 as:
IGEP0046 SMARC iMX6 QUAD<span style="color: igep0046_imx6q_2G_defconfig#002d87;"><code><span style="color: #002d87;"><span style="color: #000000;">cd u-boot-arm</span></span></code></span>
IGEP0046 SMARC iMX6 SOLO<span style="color:#000000;"><code>git checkout -b isee_v2017.03 origin/isee_v2017.03</code></span>
=Stable U-Boot=The software git repository is located [https://git.isee.biz/arm-boot here].|}
====<span dir="auto">U-bootBoot '''Freescale-NXP'''  Serie</span>====<div class="clearfix">: If we have an Freescale-NXP series we will follow this table to get our source of U-Boot</div>{| class="contenttable sortable" style="width: 883px; height: 263px;"|- style="height: 22px;"! style="width: 849px; height: 22px; text-align: OMAP3 boards, OMAP5 boards, AM335x boards is located [httpscenter; vertical-align:middle;" colspan="2"|'''Downloading binary files//git.isee.biz/armU-Boot Source'''|- style="height: 44px;"! style="background-color: #ffffff; width: 223px;"|'''<span id="Clone_the_u-boot_repo" class="mw-headline">Clone the u-bootrepository</span>'''| style="width: 626px; height: 44px;"|<span style="color: #000000;">Clone the u-boot-arm here].repository using git address:</span>
U-boot<span style="color: iMX6 boards is located [#000000;"><code>git clone https://git.isee.biz/cgit/arm-boot/u-boot-imx here].git</code></span>
|- style="height: 89px;"! style="background-color: #ffffff; width: 223px;"|'''<span id="Checkout_u-boot_repo" class="mw-headline">Checkout u-boot firmware binaries can be downloaded from hererepository</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>
[EOL] For OMAP3 based platforms, ISEE do not support <span style="color: #000000;"><code>cd u-boot, instead of, ISEE provides [[The IGEP X-loader]]imx</code></span>
<span style==u-boot Freescale-NXP iMX6 series==* [[U-boot Freescale-NXP iMX6 Series|u-boot Freescale"color: #000000;"><code>git checkout origin/isee_imx_v2017.03_4.9.11_1.0.0_ga -NXP iMX6 Series]]b isee_imx_v2017.03_4.9.11_1.0.0_ga </code></span>
==u-boot Texas Instruments AM335x, OMAP3, DM3730 series==* [[u-boot_Texas_Instruments_Series|u-boot Texas Instruments Series]]}
==Prepare your U-Boot 2014.01.y-omap5 seriesBOOT==The 2014Once we have downloaded the U-Boot source.01We will '''execute''' the file called '''defconfig''' (default configuration) that it variates in function of each model.y-omap5 u-boot series are supported by IGEP PROCESSOR BOARDS based on:
<gallery heights="100px">FileIn order to load the default configuration of the target board, we have to write the following command:omap5.png</gallery>
See the <span style="color: #000000;"> make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- [[U-Boot 2014.01.yyour_defconfig]] article</span>* In the following table it can be found the name of each default configuration associated to each IGEP PROCESSORS BOARDS:
{| class="contenttable sortable" style=U"width: 872px; height: 317px;"|-Boot 2015.07.y series! style="width: 196px;"|Module! style="width: 10px;"|Defconfig! style="width: 644px;"|ExampleThe 2015.07.y u|-boot series are supported by | style="width: 196px;"|IGEPv2 DM3730| style="width: 10px;"|igep0020_defconfig| style="width: 644px;"|<span style="color: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0020_defconfig</code></span>|-| style="width: 196px;"|IGEP COM MODULE DM3730/AM3703| style="width: 10px;"|igep0030_defconfig| style="width: 644px;"|<span style="color: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0030_defconfig</code></span>|-| style="width: 196px;"|IGEP PROCESSOR BOARDS based onCOM AQUILA AM335x| style="width:10px;"|am335x_igep0033_defconfig
| style="width: 644px;"|<span style="color: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0033_defconfig</code></span>|-| style="width: 196px;"|IGEPv5 OMAP5432| style="width: 10px;"| | style="width: 644px;"|<span style="color: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-</code></span>|-| style="width: 196px;"|IGEP SMARC AM335x| style="width: 10px;"|am335x_igep0034_defconfig| style="width: 644px;"|<span style="color: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_igep0034_defconfig</code></span>|-| style="width: 196px;"|IGEP SMARC iMX6 Solo/Dual Lite| style="width: 10px;"|igep0046_imx6dl_2G_defconfig| style="width: 644px;"|<span style="color: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6dl_2G_defconfig</code></span>|-| style="width: 196px;"|IGEP SMARC iMX6 Dual/ Quad| style="width: 10px;"|igep0046_imx6q_2G_defconfig| style="width: 644px;"|<gallery heightsspan style="100pxcolor: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6q_2G_defconfig</code></span>|-File| style="width: 196px;"|IGEP SMARC iMX6 Ultra-Lite / Ultra Ultra-Lite| style="width:am335x.png10px;"|igep0146_imx6ul_512M_defconfig| style="width: 644px;"|<span style="color: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0146_imx6ul_512M_defconfig<br /gallery></code></span>|}
See ==Build your U-BOOT==After running the defconfig. You can build the [[U-Boot 2015.07.y]] articleby executing this command:
<span style="color: #000000;">  make ARCH=arm CROSS_COMPILE=arm-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'''<strong style="font-size: 0.939em;"> </strong><span style="font-size: 0.939em;">processor based will be a </span><strong style="font-size: 0.939em;">u-boot.imx.</strong>  Finally we can copy this files in a '''boot device''', for example, a microSD Memory Card. It is explained in the following [[CategoryHow to prepare a bootable MicroSD Card|post]]. {{Message/Information Message|title=TITLE|message= <span style="color:Boot loaders#000000;">In case of the Freescale-NXP Porcessor Boards, it is not possible to copy directly the u-boot.imx file. It is necessary to copy in the first blocks of the boot device using the dd command. It is explained in the following post [[How to prepare a bootable MicroSD Card|How to prepare a bootable MicroSD Card]].</span>}}   ==Download Binary package==[http://downloads.isee.biz/ You can download binary packages from here.] ==<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|Ubootkernel]]