Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The bootloader U-Boot

5,620 bytes added, 16:27, 12 October 2023
Download Binary package
= U-Boot for IGEP platforms =__TOC__
First of all setup the build environment sourcing this script==Overview==<prespan style="color: #000000;">$ source /usr/local/poky/eabiThis page is meant to be a starting point for people to learn build a u-glibc/arm/environmentboot image and show to people the current status of different u-setup</pre>or<pre>$ source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabiboot versions for IGEP Processor Boards.</prespan>if you have updated your SDK environment to latest version (see [[Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine]])
== =<span style="color: #000000;">What is U-Boot v2009?</span>===<span style="color: #000000;">[http://www.denx.11de/wiki/U-Boot/ Das U-2 Boot] (stableUniversal Bootloader) ==is an open source, primary boot loader used in embedded devices. Its primary purpose in the shipping system is to load some operating system.</span>
Download the IGEP X-loader sources and follow next steps:<pre>$ wget httpspan style="color://downloads.igep.es/sources/x-loader-1.4.3-0.tar.gz$ tar xzf x-loader-1.4.3-0.tar.gz$ cd x-loader-1.4.3-0$ scripts/./autobuild.sh arm-none-linux-gnueabi-</pre#000000;">The result will be :* For IGEP v2 platform**x-loadThat means that U-ddpBoot is necessary to perform a certain task, but it's nothing you want to throw any significant resources at.bin.ift in autobuild/igep0020/flash directory (for OneNAND DDP)**x-load.bin.ift in autobuild/igep0020/sdcard directory (for SD card)*For OMAP3 IGEP module**xTypically U-load-ddp.bin.ift Boot is stored in autobuild/igep0030/relatively small NOR flash directory (for OneNAND DDP)**x-loadmemory, which is expensive compared to the much larger NAND devices often used to store the operating system and the application.bin.ift in autobuild</igep0030/sdcard directory (for SD card)span>
Download the IGEP U-Boot sources and follow next steps:
$ wget http://downloads.igep.es/sources/u-boot-arm-2009.11-2.tar.gz==Necessary package== $ tar xzf In order to compile the u-boot-arm-2009.11-2it is '''necessary''' to set up the Cross Compiler correctly.tarIn this [[Set Up the Cross Compiler|post]] it is detailed how to set up correctly the Cross Compiler (and the desired version).gz $ cd u-boot-arm-2009.11-2
Configure for your board with,{{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>}}
$ make CROSS_COMPILE=arm-none-linux-gnueabi- <board-config>In order to install the Compiler we can use this command:
where: 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.
* {| 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;"><boardspan dir="auto">U-configboot-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;"> is omap3_igep0020_config for IGEP v2 platform.SMARC AM335x</span>* | style="width: 527px;"|<span dir="auto">U-boot-ARM<board/span> |-config| style="width: 344px;"|<span style="color: #000000;"> is omap3_igep0030_config for OMAP3 IGEP module.SMARC iMX6 </span>| style="width: 527px;"|<span dir="auto">U-boot-</span>Freescale-NXP|}
Finally, build with* Once we know which U-Boot have we will clone the corresponding git repository.
$ make CROSS_COMPILE=arm-none-linux-gnueabi-
The result ====<span dir="auto">U-Boot '''ARM''' Series</span>====: If we have an ARM series we will be an 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.bin file in arch/armrepository</span>'''| style="width: 621px; height: 44px;"|Clone the u-boot directory.repository using git address:
<span style== U"color: #000000;"> <code>git clone https://git.isee.biz/cgit/arm-boot/u-boot-Boot mainline tree (development) ==arm.git</code></span>
<span |- style="height: 110px;"! style="background-color: rgb(255, 0, 0)#ffffff; width: 225px; height: 110px;"|<span id="Checkout_u-boot_repo" class="mw-headline">'''NoteCheckout u-boot repository</span>| style="width:''' The 'master' branch is where the development work takes place and you should use this if you're after 621px; height: 110px;"|Go to work with the latest cutting edge developments. It is possible trunk can suffer temporary periods of instability while new features are developed u-boot-arm directory and if this is undesirable we recommend using one of checkout the release branchesisee_v2017. '''Use ONLY for development purposes.'''</span> 03 as:
Clone the GIT repository from git.igep.es<span style="color: #002d87;"><code><span style="color: #002d87;"><span style="color: #000000;">cd u-boot-arm</span></span></code></span>
$ git clone git<span style="color://git.igep.es/pub/scm/u-boot-arm.git $ cd u-boot-arm $ #000000;"><code>git checkout origin/u-boot-2009.11.y -b u-boot-2009isee_v2017.1103 origin/isee_v2017.y03</code></span>
Configure for your board with,|}
$ make CROSS_COMPILE=arm===<span dir="auto">U-Boot '''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: center; vertical-align: middle;" colspan="2"|'''Downloading binary files/U-Boot Source'''|- style="height: 44px;"! style="background-nonecolor: #ffffff; width: 223px;"|'''<span id="Clone_the_u-linuxboot_repo" class="mw-gnueabiheadline">Clone the u- boot repository<board/span>'''| style="width: 626px; height: 44px;"|<span style="color: #000000;">Clone the u-configboot repository using git address:</span>
where<span style="color:#000000;"><code>git clone https://git.isee.biz/cgit/arm-boot/u-boot-imx.git</code></span>
* |- style="height: 89px;"! style="background-color: #ffffff; width: 223px;"|'''<boardspan id="Checkout_u-boot_repo" class="mw-headline">Checkout u-configboot repository</span> is omap3_igep0020_config for IGEP v2 platform.'''| style="width: 626px; height: 89px;"|* <boardspan style="color: #000000;">Go to the u-boot-configimx directory and checkout the isee_imx_v2017.03.y as:</span> is omap3_igep0030_config for OMAP3 IGEP module.
Finally, build with<span style="color: #000000;"><code>cd u-boot-imx</code></span>
$ make CROSS_COMPILE<span style=arm-none-linux-gnueabi"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>
The result will be an u-boot.bin file in arch/arm/boot directory.|}
== CHANGELOG Prepare your U-BOOT==Once we have downloaded the U-Boot source. We will '''execute''' the file called '''defconfig''' (default configuration) that it variates in function of each model.
* [httpIn order to load the default configuration of the target board, we have to write the following command://git.igep.es/?p=pub/scm/u-boot-arm.git;a=commit;h=10f386973ff68d604323b1e7787a0f3bd3b3c381 2010-06-15 Release 2009.11-2]** improve SMSC LAN9221 throughput** add support for OMAP3 IGEP module (igep0030)
<span style= Annex"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 u-boot environment =configuration associated to each IGEP PROCESSORS BOARDS:
setenv distro poky
setenv machine igep0020
setenv project poky-image-sato
setenv ethaddr ac:de:48:00:02:54
setenv ipaddr 192.168.254.254
setenv netmask 255.255.255.0
setenv gatewayip 192.168.254.10
setenv serverip 192.168.254.10
setenv addip 'setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}::eth0:'
setenv bootargs-base 'mem=512M console=ttyS2,115200n8 console=tty0 omapfb.mode=dvi:1024x768MR-16@60'
setenv mmc-bootargs 'setenv bootargs ${bootargs-base} root=/dev/mmcblk0p2 rw rootwait'
setenv mmc-boot 'mmc init 0; if fatload mmc 0 80000000 boot.ini; then source; else if fatload mmc 0 80000000 uImage; then run mmc-bootargs; bootm; fi; fi'
setenv onenand-bootargs 'setenv bootargs ${bootargs-base} root=/dev/mtdblock4 rootfstype=jffs2 ; run addip'
setenv onenand-boot 'run onenand-bootargs; onenand read 80000000 280000 400000 ; bootm 80000000'
setenv nfs-bootargs 'setenv bootargs ${bootargs-base} root=/dev/nfs nfsroot=${serverip}:/srv/nfs/${distro}/${project}/${machine} ; run addip'
setenv nfs-boot 'if ping ${serverip}; then run nfs-bootargs; tftp 0x80000000 ${distro}/${project}/${machine}/uImage; bootm; fi;'
setenv bootcmd 'run mmc-boot; run nfs-boot; run onenand-boot'
 {| class="contenttable sortable" style="width: 872px; height: 317px;"|-! style="width: 196px;"|Module! style="width: 10px;"|Defconfig! style="width: 644px;"|Example|-| 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 COM 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;"|<span style="color: #000000;"><code>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- igep0046_imx6q_2G_defconfig</code></span>|-| style="width: 196px;"|IGEP SMARC iMX6 Ultra-Lite / Ultra Ultra-Lite| style="width: 10px;"|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 /></code></span>|} ==Build your U-BOOT==After running the defconfig. You can build the U-Boot by 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 [[How to prepare a bootable MicroSD Card|post]]. {{Message/Information Message|title=TITLE|message= <span style="color: #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 [[CategoryHow to prepare a bootable MicroSD Card|How to prepare a bootable MicroSD Card]].</span>}}   ==Download Binary package==[http:Software//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]]