Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The IGEP X-loader

1,612 bytes added, 16:32, 7 May 2019
Download from git repository
= Summary<br><br> =X-Loader, an initial program loader for Embedded boards based on OMAP processors.
XAccess to the latest version&nbsp;[http://git.isee.biz/?p=pub/scm/igep-x-loader.git;a=summary here] and read the [http://git.isee.biz/?p=pub/scm/igep-x-Loader, an initial program loader .git;a=blob_plain;f=ISEE_README.txt;h=909c072bc2512026342d802b3ef1b7e8f703458b;hb=4bb2ebd99d5b86522d786ac5b074066e9841799c ISEE_Readme.txt] for Embedded boards based on OMAP processorsget the latest release information. <br>
Access to the latest version (release 2.4.0-2)&nbsp;[http://git.igep.es/?p=pub/scm/igepWhy IGEP-x-loader.git;a=summary here] and read the [http://git.igep.es/?p=pub/scm/igep-x-loader.git;a=blob;f=ISEE_README.txt;h=99a9a0e13bf165307f35b260b076ae4df5ad9b1d;hbXloader=HEAD ISEE_Readme.txt] Some important reasons exist for get the latest release informationusing this bootloader on IGEP boards.
= Why =Security==This is one of the most important reasons why we develop this new IGEPX-Xloader =loader. you will Probably know that flash devices get new bad memory blocks with normal usage that can make unusable or can damange the software residing inside the flash (ex: upgrading the software, copying a new kernel ... ), in these cases your board won't be usable anymore if you don't use a right nand filesystem that insures data integrity. Using the old schema we've 4 important partitions on flash without any protection, x-loader, u-boot, u-boot enviroment and kernel.
Some important reasons exist for using IGEP X-loader resolves this bootloader on IGEP boardssituation as the configuration and kernel files reside inside a jffs2 partition.
== Security Maintenance==With the old schema 3 different software existed (x-loader, u-boot, kernel) that did exactly the same job, so you had to reconfigure the board, increasing the complexity of maintenance for the board system and provide a major bug source because we had to assure that all software was aligned with all changes. Also, from a second point of view, we did the job three times so the boot process was more complex and slow.
This is one of the most important reasons why we develop ==Easy to use==With this new IGEP X-loader. approach use the software it's more easy to use, if you've the boot information stored inside a jffs2 partition you will Probably know that flash devices get new bad memory blocks with normal usage that can make unusable or can damange use the software residing inside linux kernel to access it directly without the use of any flash tool to modify the software (ex: upgrading the software, copying a new kernel ... ), in these cases your board wonusing nandwrite it't be usable anymore if you don't use a right nand filesystem that insures s to risky due to its inability to guarantee data integrity. Using over the old schema we've 4 important partitions on flash without any protection, x-loader, u-boot, u-boot enviroment and kernelNand Flash memory).
IGEP X-loader resolves this situation as ==Upgrade faster and easy==Upgradint to a new kernel it's easier and faster, you only need to copy the configuration and new kernel files reside inside a jffs2 the boot partition, copy your new igep.ini inside and reboot the board with all security.
=Features and Limitations= Mantenience ==Improvements &amp; Modifications==* Added malloc/free functionality.* Added mtd framework and onenand support, removed the old onenand drivers.* Added fs jffs2 support using mtd &amp; onenand support (Read Only).* Added crc32 and zlib.* Jffs2 zlib compression support (Read Only).* Dual boot mmc &amp; onenand with mmc highest priority.* Added Linux kernel boot directly (Support for 2.6.22 and highest version kernels)* Linux kernel supported images: vmlinuz, bzImage and zImage.* Support for loading Linux Ram disk (EXPERIMENTAL)* Added "ini" files parser.* The configuration resides in a plain txt (ini format file).* Support Windows &amp; Linux formating ini files.* boot from mmc, onenand, or mix with mmc highest priority.* Added codeblocks project and compilation rules.* Added support for vfat32 extra names.* Configure TPS65950 voltage to 1.35V if it's used a DM3730 processor.* Added new parameter MachineID in kernel tag file, with it you can* &nbsp;&nbsp;&nbsp; - configure the kernel board ID setup* Added new parameter buddy for kernels 2.6.35.y and 2.6.37.y* Optimize some LPDDR Memory configuration values* Removed some OneNand Debug information* Removed some FAT incorrect warnings* Added Support Initial Ram disk* Reconfigure Makefile options* Support Kernels 2.6.35, 2.6.37, 3.6.4* Added support for boot ARM binary files (such u-boot or QNX kernel)* Support for Numonyx, Micron and hynix POP Memories.* Memory autodetection.* Added GPTimer functionality.* Support Numonyx, Micron and hynix memories.* DMA Copy support* Omtimized memcpy and memset functions.* DSS Video driver.* Support ISEE toolchain yocto 1.2 based.
With the old schema 3 different software existed (x-loader, u-boot, kernel) that did exactly the same job, so you had ==Limitations==* The ini configuration file it's limited to max size: 16 KiB* Kernel Command line parameters it's limited to reconfigure the board, increasing the complexity of mantenience for the board system and provide a major bug source because we had : 4 KiB* Malloc it's hardcode limited to assure that all software was aligned with all changes32 MiB. Also, from a second point of view, we did the job three times so the boot process was more complex and slow* Video is limited to 1024 x 768 x 16 bits.* Video Memory is limited to 1280 x 720 x 32 bits.
== Easy to use TODO==* Remove compilation warnings.* System Rescue.* Improve boot selection and priority.* Remove unused code.
With this new approach use the software it's more easy to use, if you've the boot information stored inside a jffs2 partition you can use the linux kernel to access it directly without the use of any flash tool to modify the software (ex==STATUS==* Support: using nandwrite it's to risky due to its inability to guarantee data integrity over the Nand Flash memory). ** IGEPv2 DM3730** IGEPv2 OMAP3530** IGEP COM MODULE DM3730** IGEP COM PROTON DM3730** IGEP COM MODULE AM3703
== Upgrade faster and easy VERSION CHANGES==[2.1.0-1] This version only can be build with gcc linaro 4.5.2 other compilers be not supported.
Upgradint to a new kernel it's easier and faster, you only need to copy the new kernel inside the boot partition, copy your new igep[2.ini inside and reboot the board 1.0-1] Removed some uncontrolled "printf" with all securityincorrect information.
= Features and Limitations<br> =[2.1.0-1] Modified some code under __DEBUG__ option.
== Improvements &amp; Modifications ==[2.1.0-1] Added Support for TPS65950-A3 initialization at 1.35V
*Added malloc/free functionality. *Added mtd framework and onenand support, removed the old onenand drivers. *Added fs jffs2 support using mtd &amp; onenand support (Read Only). *Added crc32 and zlib. *Jffs2 zlib compression support (Read Only). *Dual boot mmc &amp; onenand with mmc highest priority. *Added Linux kernel boot directly (Support for [2.6.22 and highest version kernels) *Linux kernel supported images: vmlinuz, bzImage and zImage. *Support for loading Linux Ram disk (EXPERIMENTAL) *Added "ini" files parser. *The configuration resides in a plain txt (ini format file). *Support Windows &amp; Linux formating ini files. *boot from mmc, onenand, or mix with mmc highest priority. *Added codeblocks project and compilation rules. *Added support for vfat32 extra names. *Configure TPS65950 voltage to 1.35V if it's used a DM3730 processor. *Added new parameter MachineID in kernel tag file, with it you can<br> *&nbsp;&nbsp;&nbsp; 0- configure the kernel board ID setup *1] Added new parameter buddy for kernels 2.6.35.13-3 *Optimize some LPDDR Memory configuration values *Removed some OneNand Debug information *Removed some FAT incorrect warnings *Only support gcc 4.5.2 linaro version *Added Support Initial Ram disk *Reconfigure Makefile options *Support Kernels 2.6.35 and 2.6.37<br> *Added support for boot ARM binary files (such u-boot or QNX kernel) *Support for Numonyx, Micron and hynix POP Memories. *Memory autodetection. *This software only can be compiled with gcc 4.5 *Added GPTimer functionality.IGEP Module 0030
== Limitations<br> ==[2.1.0-1] Added support dynamic Machine ID selection (same xloader boot IGEPv2 &amp; IGEP Module)
*The ini configuration file it's limited to max size: 16 KiB *Kernel Command line parameters it's limited to: 4 KiB *Malloc it's limited to 32 MiB.<br> *jffs2 partitons with summary enabled (kernel experimental)----
== TODO<br> ==[2.1.0-2] ARM Compilation bug resolved
*Remove compilation warnings.<br> *System Rescue.----
== STATUS<br> ==[2.1.0-3] Update SDRAM structure initialization
*Support all IGEP boards[2.1.0-3] Added support for Initial RAM disk
== VERSION CHANGES<br> ==[2.1.0-3] Updated Initial RAM disk destination address
[2.1.0-1] This version only can be build with gcc linaro 4.5.2 other compilers be not supported.<br> ---
[2.12.0-1] Removed some uncontrolled "printf" with incorrect information.<br> Update Makefile structure
[2.12.0-1] Modified some code under __DEBUG__ option.<br> Downgrade the boot processor speed
[2.1.0-1] Added Support for TPS65950-A3 initialization at 1.35V<br> --
[2.13.0-1] Added Add NAND flash devices and Micron MT29CXGXXMAXX memories support for IGEP Module 0030<br>
[2.13.0-12] Add Hynix NAND memorie and IGEP0032 support [2.3.0-2] Added support dynamic Machine ID selection (same xloader boot IGEPv2 &amp; IGEP Module)<br> lzo compression schema.
----
[2.13.0-3] Add Support for execute ARM binaries [2.3.0-3] ARM Compilation bug resolved<br> Bug Fixes related to I and D Cache
----
[2.14.0-31] Update SDRAM structure initialization<br> Added Memory test feature
[2.14.0-31] Added support for Initial RAM disk<br> some boot information
[2.4.0-1] New read_nand_cache function optimized for load from NAND [2.4.0-1] BUG resolved: Refresh Setup in Micron &amp; Hynix Memories [2.4.0-31] BUG resolved: Reset Memory controller after initialize Malloc function [2.4.0-1] Updated Initial RAM disk destination address BUG resolved: Resolve problems updating the flash content under jffs2
----
[2.24.0-12] Update Makefile structure Resolved Memory Autodetection
[2.4.0-2] Better hang board led control [2.4.0-2] New read_nand_cache function optimized for load from OneNand [2.4.0-12] Downgrade the boot processor speed<br> Added Hw GPtimer functionality
----
[2.35.0-1] Add Added System DMA driver. [2.5.0-1] Added optimized memcpy &amp; memset functions. [2.5.0-1] Improved boot speed. [2.5.0-1] Improve NAND flash devices and Micron MT29CXGXXMAXX memories driver support .
[2.35.0-21] Add Hynix NAND memorie Auto x-loader.bin.ift and IGEP0032 support MLO generation.
[2.35.0-21] Added lzo compression schemaDSS video support.
----
[2.35.0-32] Add Support for execute ARM binaries [2.3Fixed System DMA misconfiguration.0-3] Bug Fixes related to I and D Cache
[2.5.0----2] Improve GPMC timming setup.
[2.45.0-12] Added Memory test feature DSS igep.ini variables.
[2.45.0-12] Added some boot information Support for new memory capacities.
[2.45.0-12] New read_nand_cache function optimized for load from NAND Auto x-loader.bin.ift and MLO generation.
[2.45.0-12] BUG resolved: Refresh Setup in Micron &amp; Hynix Memories Minor bug fixes.
[2.4.0-1] BUG resolved: Reset Memory controller after initialize Malloc function ---
[2.45.0-13] BUG resolvedplatform.S: Resolve problems updating the flash content under jffs2 downgrade MPU boot clock from 1GHz to 800 MHz
----
[2.46.0-1] Remove OMAP35xx support [2.6.0-1] Resolved Memory Autodetection New DMA driver, now can handle different DMA channels and transfers
[2.46.0-21] Better hang board led control GPMC: Add support for use prefetch engine
[2.46.0-21] New read_nand_cache function optimized for load from OneNand NAND: Added a new Nand driver
[2.46.0-21] Added Hw GPtimer functionality NAND: Modify memory setup timmings
= Pre-Compiled Binaries =---
[2.6.0-2] DMA: disable dma_memcpy function due random kernel memory corruption =Pre-Compiled Binaries={| border="1" width="905" cellspacing="1" cellpadding="1" width|-! scope="905col" border|Release! scope="1col" style|Download link! scope="col"|Support|-||2.6.0-2||[http://downloads.isee.biz/pub/releases/IGEP_xloader/igep-x-loader-2.6.0-2.tar.bz2 igep-x-loader-2.6.0-2.tar.bz2]||[[The_IGEP_X-loader#STATUS | DM3730 Boards]]
|-
! scope="col" | Release |2.5.0-2! scope="col" | Download link |[http://downloads.isee.biz/pub/releases/IGEP_xloader/igep-x-loader-2.5.0-2.tar.bz2 igep-x-loader-2.5.0-2.tar.bz2]! scope="col" | Support|[[The_IGEP_X-loader#STATUS | All OMAP3 Boards]]
|-
|| 2.4.0-2 || [http://downloads.isee.biz/pub/releases/IGEP_xloader/igep-x-loader-2.4.0-2.tar.bz2 igep-x-loader-2.4.0-2.tar.bz2] ||[[The_IGEP_X-loader#STATUS | All OMAP3 Boards]] except IGEP COM MODULE AM3703
|-
|| 2.1.0-2 || [http://downloads.isee.biz/pub/releases/IGEP_xloader/igep-x-loader-2.1.0-2.tar.bz2 igep-x-loader-2.1.0-2.tar.bz2] ||[[The_IGEP_X-loader#STATUS | All OMAP3 Boards]] except IGEP COM MODULE AM3703
|-
|| 2.1.0-3 || [http://downloads.isee.biz/pub/releases/IGEP_xloader/igep-x-loader-2.1.0-3.tar.bz2 igep-x-loader-2.1.0-3.tar.bz2] ||[[The_IGEP_X-loader#STATUS | All OMAP3 Boards]] except IGEP COM MODULE AM3703
|-
|| 2.2.0-1 || [http://downloads.isee.biz/pub/releases/IGEP_xloader/igep-x-loader-2.2.0-1.tar.bz2 igep-x-loader-2.2.0-1.tar.bz2] ||[[The_IGEP_X-loader#STATUS | All OMAP3 Boards]] except IGEP COM MODULE AM3703
|}
= Build Procedure<br> ===Build with ISEE SDK Yocto Toolchain 1.2=====Download and Install the cross compiler if you not do it before.===Download the toolchain from this [https://www.isee.biz/support/downloads/item/igep-sdk-yocto-toolchain-1-2-2-3 link] and uncompress it as root in your / directory.
== Build with Ubuntu Cross Compiler gcc 4.5.2 ==<pre>Hint: Remember setup the enviroment before build the source:
=== Install the cross compiler if you not do it beforesource /opt/poky/1.2/environment-setup-armv7a-vfp-neon-poky-linux-gnueabi<br/pre> ===
<span style="font-style: italic;"><span style="font-weight: bold;">Enviroment </span></span>'''''Ubuntu 10.10''''' <pre>sudo apt-get install cpp-4.5-arm-linux-gnueabi g++-4.5-arm-linux-gnueabi</pre> <span style="font-style: italic;"><span style="font-weight: bold;">Enviroment </span></span>'''''Ubuntu 10.04''''' <pre>sudo add-apt-repository ppa:linaro-maintainers/toolchain</pre> <pre>sudo apt-get install cpp-4.5-arm-linux-gnueabi g++-4.5-arm-linux-gnueabi</pre> === Download the sources from our git repository ===<pre>$ git clone git://git.isee.biz/pub/scm/igep-x-loader.git</pre> ===Get your desired tag / release===git checkout &lt;your_desired_release&gt; -b &lt;your_name_release&gt;<br> <pre>$ git checkout release-2.4.0-2 -b release-2.4.0-2-local</pre> === Setup the board settings<br> ===<pre>make igep00x0_config</pre> === Build<br> ===<pre>make</pre> === Sign the binary x-loader<br> ===
''You should execute contrib/signGP for sign the xloader.'' <pre>contrib/signGP xgit checkout release-load2.5.binThe signed x0-2 -loader it's named: xb release-load2.bin5.ift0-2-local</pre> == Build Native ==
=== Download from git repository ===<pre style="font-weight: normal;">$ git clone git://git.isee.biz/pub/scm/igep-x-loader.git</pre> git checkout &lt;your_desired_release&gt; -b &lt;your_name_release&gt;<br> <pre style="font-weight: normal;">$ git checkout release-2.4.0-2 -b release-2.4.0-2-local</pre> === Configure Setup the board settings build setup===<pre>make igep00x0_config</pre><pre>Edit the variable CFLAGS and add the option: -fno-stack-protectorCFLAGS&nbsp;:= $(CPPFLAGS) -Wall -Wstrict-prototypes -fno-stack-protector</pre> === Build<br> the software===<pre>make CROSS_COMPILE=arm-none-linux-gnueabi-</pre> === Sign the binary x-loader (Only versions prior to 2.5.0-x)===''You should execute contrib/signGP for sign the xloader.''
''You should execute contrib/signGP for sign the xloader.''
<pre>contrib/signGP x-load.bin
The signed x-loader it's named: x-load.bin.ift
</pre>  = BOOT<br> =Build Native=====Download from git repository=== =git clone https://git.isee.biz/arm-boot/igep-x-loader.git git checkout &lt;your_desired_release&gt; -b &lt;your_name_release&gt;
The IGEP X<pre style="font-weight: normal;"> git checkout release-2.5.0-2 -Loader must reside in the microSD card or in the Nand Memoryb release-2.5.0-2-local<br/pre>
== MMC Boot =Configure the board settings===<pre>make igep00x0_config</pre><pre>Edit the variable CFLAGS and add the option: -fno-stack-protectorCFLAGS&nbsp;:= $(CPPFLAGS) -Wall -Wstrict-prototypes -fno-stack-protector</pre>===Build===<pre>make CROSS_COMPILE=arm-none-linux-gnueabi-</pre>===Sign the binary x-loader===''You should execute contrib/signGP for sign the xloader.''
<pre>contrib/signGP x-load.binThe signed x-loader it's named: x-load.bin.ift</pre>=BOOT== Prepare The IGEP X-Loader must reside in the microsd microSD card ===or in the Nand Memory.
==MMC Boot=====Prepare the microsd card===You can follow this howto about how [http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat prepare the microsd card] or [[How to boot from MicroSD Card]]<br>
Get a new microsd card and create two partitions, the first one must be fat16/32 and the second one can be formated in any format type supported by linux kernel.<br>
=== Copy the files in the first (FAT) partition ===In the first partition you must copy in this order:
In the first partition # x-loader.bin.ift (you must rename this file to MLO before copy in this orderit) / This is a signed image using contrib/signGP tool# x-loader configuration file [http://git.igep.es/?p=pub/scm/igep-x-loader.git;a=blob;f=scripts/igep.ini;h=ce093fe80c81d8888bf79464f847059b312bba83;hb=HEAD igep.ini]&nbsp;also you can change the configuration file name editing the file:&nbsp;[http: //git.igep.es/?p=pub/scm/igep-x-loader.git;a=blob;f=include/configs/igep00x0.h igep00x0.h]&nbsp;(#define IGEP_BOOT_CFG_INI_FILE "igep.ini")# Your desired kernel image.
#x-loader.bin.ift (you must rename this file to MLO before copy it) / This is a signed image using contrib/signGP tool #x-loader configuration file [httpLoad Order://git.igep.es/?p=pub/scm/igep-x-loader.git;a=blob;f=scripts/igep.ini;h=7ecda91b2716d8984d48fa6c5eb5c74b8f0b0959;hb=HEAD igep.ini]&nbsp;also you can change the configuration file name editing the file:&nbsp;[http://git.igep.es/?p=pub/scm/igep-x-loader.git;a=blob;f=include/configs/igep00x0.h igep00x0.h]&nbsp;(#define IGEP_BOOT_CFG_INI_FILE "igep.ini") #Your desired kernel image.
Load Order:
<pre> 48 /* Linux Images */
49 const char* LinuxImageNames [] = {
or you can set the name for your kernel in the configuration file using the tag: kImageName
</pre> Don't use a uImage kernel format (from uboot), only standard kernel formats be supported.  '''kernel build command example''': <pre>make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- zImage modules</pre>
'''kernel build command example''': <pre>$make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- zImage modules</pre> === Second Partition ===Copy all your rootfs in this second partition.
Copy all Also you can use the [http://releases.linaro.org/platform/linaro-m/headless/final/linaro-m-headless-tar-20101108-2.tar.gz linaro 10.11 minimal image]&nbsp;download the image and untar (as root) in your rootfs in this microsd card second partition.
Also you can use Remember install the [http://releases.linaro.org/platform/linaro-m/headless/final/linaro-m-headless-tar-20101108-2.tar.gz linaro 10.11 minimal image]&nbsp;download the image and untar (as root) kernel modules in your microsd card second this partition.
Remember install the kernel modules in this partition. Example:
Example: <pre>sudo make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- modules_install INSTALL_MOD_PATH=[path to your target rootfs]</pre> == Nand Boot ==
==Nand Boot===== Nand Partitions<br> ===We've defined 3 partitions on the Nand Memory.
We've defined 3 partitions on the Nand Memory.
<pre>MTD partitions on "omap2-onenand":
(a) 0x000000000000-0x000000080000&nbsp;: "X-Loader"
(b) 0x000000080000-0x000000c80000&nbsp;: "Boot"
(c) 0x000000c80000-0x000020000000&nbsp;: "File System"
</pre> ==== X-Loader Partition ====* Not fs formated (onenand raw)* Size: 0x80000 (512 KiB)* The xloader must be signed before copy it into the flash memory.
*Not fs formated (onenand raw) *Size: 0x80000 You should copy the x-loader in the firsts 4 blocks (first 512 KiB) *The xloader must be signed before , this is not a&nbsp;formated partition due the ROM not permits boot from a formated partition in flash, you should use flash_eraseall and [http://git.isee.biz/?p=pub/scm/writeloader.git;a=summary writeloader] for copy it into x-loader in the flash memoryfirst blocks.
You should copy the x-loader in the firsts 4 blocks (first 512 KiB), this is not a&nbsp;formated partition due the ROM not permits boot from a formated partition in flash, you should use flash_eraseall and [http://git.igep.es/?p=pub/scm/writeloader.git;a=summary writeloader] for copy x-loader in the first blocks.
<pre>Suggested procedure:
Erase and copy the x-loader into the first flash partition (mtd0):
$nand_eraseall flash_eraseall /dev/mtd0$writeloader -i &lt;x-loader.bin.ift&gt; -o /dev/mtd0</pre> ==== <span id="1299156619608S" style="display: none;">&nbsp;</span>Boot Partition ====* filesystem used jffs2 zlib/lzo compressed filesystem.* Suggested size: 0xC00000 (12 MiB). X-Loader only support jffs2 partitions for boot partition.
*filesystem used jffs2 zlib<u>Create the boot partition:</lzo compressed filesystem. *Suggested size: 0xC00000 (12 MiB).u>
X-Loader only support jffs2 partitions for boot partition.
<u>Create the boot partition:</u>
<u></u>
<pre>Suggested procedure:
Erase all mtd1 content:
$flash_eraseall /dev/mtd1
Create your partition:
$mount -t jffs2 /dev/mtdblock1 /mnt</pre> <u>Next uses:</u>  <u></u>You can mount the partition over your boot directory in the rootfs <pre>$mount -t jffs2 /dev/mtdblock1 /boot</pre> You can use the cp command for copy your kernel and igep.ini configuration file. <pre>$cp igep.ini /boot$cp zImage /boot</pre> ==== Rootfs Partition ====
*fs (<u></u>You can mount the partition over your prefered fs supported by linux, maybe a good choice it should be ubifs) *Size, all or you can create more partitions if you wish ...&nbsp;:)boot directory in the rootfs
== Boot Priority ==<pre>mount -t jffs2 /dev/mtdblock1 /boot</pre>You can use the cp command for copy your kernel and igep.ini configuration file.
XLoader first try load from mmc and if it fails then try from OneNand<pre>cp igep.ini /bootcp zImage /boot<br/pre> ====Rootfs Partition====* fs (your prefered fs supported by linux, maybe a good choice it should be ubifs)* Size, all or you can create more partitions if you wish ...&nbsp;:)
'''MLO (x-loader), igep.ini, zImage ==Boot Priority==XLoader first try load from MMC'''<br>If all it's present in the mmc and if it don't fails then try to boot from OnenandOneNand.<br>
'''MLO (x-loader) in MMC, igep.ini and , zImage in Onenand.from MMC'''<br/>If only MLO all it's provided this one present in the mmc it don't try to load the other information boot from&nbsp;the Onenand.
It means that XLoader always try to load the information from '''MLO (x-loader) in MMC , igep.ini and if zImage in Onenand.'''<br />If only MLO it fails then 's provided this one try to load the other information from OneNand&nbsp;the Onenand.
== Configuration file: igepIt means that XLoader always try to load the information from MMC and if it fails then try to load from OneNand.ini ==
==Configuration file: igep.ini==[http://en.wikipedia.org/wiki/INI_file This entry in wikipedia] can help you how a ini file it's structured.
Inside the sources/scripts directory you can found a [http://git.igepisee.esbiz/?p=pub/scm/igep-x-loader.git;a=blob;f=scripts/igep.ini;h=4127b005e8ac1763804d709416a52cc6d850768ece093fe80c81d8888bf79464f847059b312bba83;hb=refs/heads/master igep.ini] example file.
The actual XLoader can handle two kind tags:
[kernel] Used for internal XLoader setup.<br>
[kparams] Used for pass the linux kernel parameters.
=== TAG: [kernel]&nbsp; ===
<pre> 1 [kernel]
2 kaddress=0x80008000
9 MachineID=xxxx Where Machine ID = 2344 for IGEPv2, ID = 2717 for IGEP COM Module, ID = 3203 for IGEP COM PROTON
10 Mode=&lt;kernel&gt; or &lt;binary&gt;
11 dss=&lt;0 or 1&gt; Enable or Disable Video Output 12 dss_color=&lt;0x00FF8000&gt; Write your desired color in hex value 13 dss_bitmap=&lt;filename&gt; Raw display image</pre> {| cellspacingborder="1" cellpaddingwidth="1800" widthcellspacing="8001" bordercellpadding="1"|-||Parameter Name||Description||Default Value||Comments|-||kaddress||Kernel copy address||0x80008000||hex memory address|-||rdaddress||Ram Disk location address||0x81600000||hex memory address
|-
| Parameter Name |serial.low| Description |Serial number (low part)| Default Value |0 - 99999999| Comments|numeric
|-
| kaddress |serial.high| Kernel copy address |Serial number (high part)| 0x80008000 |0 - 99999999| hex memory address|numeric
|-
| rdaddress |revision| Ram Disk location address |Revision ID| 0x81600000 |0 - 9999| hex memory address|numeric
|-
| serial.low |kImageName| Serial number (low part) |Kernel, binary image name| 0 - 99999999 |N/A| numeric|Kernel or binary image name
|-
| serial.high |kRdImageName| Serial number (high part) |Ramdisk| 0 - 99999999 |N/A| numeric|Ram Disk image name
|-
| revision |MachineID| Revision |Machine ID (kernel ID )| 0 - 9999 |2717| numeric|2717 (IGEP COM Module) | 2344 IGEPv2 | 3203 (IGEP COM PROTON)
|-
| kImageName |Mode| Kernel, binary image name |Boot Mode| N/A |kernel| Kernel or |kernel=linux kernel / binary=boot binary image name
|-
| kRdImageName |dss| Ramdisk |Enable Video| N/A |0| Ram Disk image name|0 = Disable, 1 Enable Video Output
|-
| MachineID |dss_color| Machine ID (kernel ID) |Video Color| 2717 |0x00FF8000| 2717 (IGEP COM Module) &#124; 2344 IGEPv2 &#124; 3203 (IGEP COM PROTON)|Solid Color
|-
| Mode |dss_bitmap| Boot Mode |Video Bitmap Image| kernel |string| kernel=linux kernel / binary=boot binary |filename with desired image
|}
=== TAG:&nbsp;[kparams] ===In this tag you can add all kernel parameters that you need, this is only an example:
In this tag you can add all kernel parameters that you need, this is only an example:
<pre> 10 [kparams]
11 console=ttyS2,115200n8
Also remember you can comment any line using ';' or '#' characters.
</pre> = FAQ =
=FAQ=== How I can boot from NFS? ==Yes, you should add below parameters in the kparams tag:
Yes, you should add below parameters in the kparams tag:
<pre>#smsc911x.mac fix your mac address
smsc911x.mac=0xb2,0xb0,0x14,0xb5,0xcd,0xde
root=/dev/nfs
# Set your NFS root path as &lt;server_ip&gt;:&lt;rootfs_path&gt;
nfsroot=192.168.2.105:/srv/nfs/linaro_minimal</pre> == How I can change the assigned kernel memory? ==You can use the mem kernel variable as assign your desired kernel memory as:
You can use the mem kernel variable as assign your desired kernel memory as:
<pre>[kparams]
mem=430M</pre> == How I can add more kernel variables? ==You can add more variables creating a new variable - value pair under kparams tag as:
You can add more variables creating a new variable - value pair under kparams tag as: <pre>boot_delay=0</pre> == How I can modify my MAC address? ==You can assign your desired mac address using the variable&nbsp;smsc911x.mac as:
You can assign your desired mac address using the variable&nbsp;smsc911x.mac as: <pre>smsc911x.mac=0xb2,0xb0,0x14,0xb5,0xcd,0xde</pre> == How I can boot my board using ubi root filesystem? ==You should use these parameters:
You should use these parameters:
<pre>ubi.mtd=2
root=ubi0:igep0020-rootfs
rootfstype=ubifs</pre> == How I can boot my board using a RAM disk?<br> ==Use a RAMdisk it's fully supported.
Use a RAMdisk it's fully supported.
<pre>[kernel]
rdaddress=0x81600000
root=/dev/ram0 rw
</pre> == Can I change the Processor frecuency? ==Yes you can, IGEP X-loader configures the processor to boot at 600 Mhz you can select a different boot speed using the variable mpurate as:
Yes you can, IGEP X-loader configures the processor to boot at 600 Mhz you can select a different boot speed using the variable mpurate as: <pre>mpurate=800</pre> If you don't force any frequency the linux kernel will put your processor at the maximum speed (ex: DM3730 will run at 1 Ghz)
<br>
== How I can boot downloading the kernel using wget? ==
==How I can boot downloading the kernel using wget?==The way for do that it's using one minimal kernel and RAMdisk (ex: using image-core-minimal from poky), the procedure can be more or less:
a) Copy your minimal kernel and your Ramdisk inside the boot partition.
b) Boot Normally from this kernel and Ramdisk, create one script your your desired command such wget http://192.168.15.22/mykernel.bin
c) Execute the script when boot (you can do that adding the script to the init enviroment)
d) if the downloading it's ok then execute the kexec call, first load the kernel and then pass to it your desired parameters.
e) finally boot the new kernel with kexec.
<br>
== My board not boot and I don't know what to do ... ==
==My board not boot and I don't know what to do ...==When you test your IGEP X-loader, igep.ini file and kernel we suggest use a microsd card in front of use directly the flash nand, if your flash not boot copy all files in one microsd card and boot from there. You can check what happens removing some files from your microsd card for example if you wish test if your flashed kernel it's loaded in a right way then remove the kernel from your microsd card (note: use the same kernel name), IGEP X-loader first try load the file from your microsd card but if it's not found then it try to find the file in the flash.<br>
== How I can upgrade my old kernel? ==Just copy the new one, the most secure way it's copy the new one and at end replace the igep.ini file with your new one.
Just copy the new one, the most secure way it's copy the new one and at end replace the igep.ini file with your new one. <pre>$ mount -t jffs2 /dev/mtdblock1 /boot
$ cp newkernel.bin /boot
$ cp igep.ini /boot</pre> Use a different kernel name and you always can boot from your old one.
= 6 Contribution &amp; Support &amp; Bugs Report =Contributions to this project be welcome and you can send your patches to support@iseebcn.com&nbsp;or you can use the igep forum for it.<br />You can access to IGEP-x-Loader repository using our git at [http://git.isee.biz/?p=pub/scm/igep-x-loader.git;a=summary git.isee.biz]<br />IGEP IRC Channel: [http://webchat.freenode.net/?channels=igep http://webchat.freenode.net/?channels=igep]
Contributions to this project be welcome and you can send your patches to support@iseebcn.com&nbsp;or you can use the igep forum for it.<br>You can access to IGEP-x-Loader repository using our git at [http://git.igep.es/?p=pub/scm/igep-x-loader.git;a=summary git.igep.es]<br>IGEP IRC Channel: [http://webchat.freenode.net/?channels=igep http://webchat.freenode.net/?channels=igep]<br>
<br><span style="display: none;" id="1299156619619E">&nbsp;<{{Message/span><br> <br> Forum}}
[[Category:Boot_loaders|X_Loader]]