Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The IGEP X-loader

11,404 bytes added, 16:32, 7 May 2019
Download from git repository
#=Summary=# (C) Copyright 2009-2011 ISEE# Manel Caro (mcaro@iseebcn.com)## Change log:# Version: IGEP-X-Loader 2.0.1-2# # See file CREDITS for list of people who contributed to this# project.## This program is free software; you can redistribute it and/or# modify it under the terms of the GNU General Public License as# published by the Free Software Foundation; either version 2 of# the License, or (at your option) any later version.## This an initial program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License loader for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, IncEmbedded boards based on OMAP processors., 59 Temple Place, Suite 330, Boston,# MA 02111-1307 USA#
IndexAccess to the latest version [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.git;a=blob_plain;f=ISEE_README.txt;h=909c072bc2512026342d802b3ef1b7e8f703458b;hb=4bb2ebd99d5b86522d786ac5b074066e9841799c ISEE_Readme.txt] for get the latest release information.
1 Summary.2 Features and Issues.2.1 Improvements & Modifications.2.2 Issues2.3 TODO4 Settings & Configuration4.1 MMC Boot4.2 Setup igep.ini file4.3 Boot Priority4.4 OneNand Partition settings4.4.1 =Why IGEP-Xloader partition=4.4.2 Boot Partition4.4.3 Rootfs5 Build procedure5.1 Build with Ubuntu Cross Compiler gcc 4.5.15.2 Build with Some important reasons exist for using this bootloader on IGEP SDK5boards.3 Build Native6 Contribution & Support & Report Bugs
1 Summary:=========Security==This directory contains is one of the source code for most important reasons why we develop this new IGEP X-Loaderloader. 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, an initial programx-loader for Embedded boards based on OMAP processors, u-boot, u-boot enviroment and kernel.
2 Features IGEP X-loader resolves this situation as the configuration and Issues:=======================kernel files reside inside a jffs2 partition.
2.1 Improvements & Modifications==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.
==Easy to use==
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: using nandwrite it's to risky due to its inability to guarantee data integrity over the Nand Flash memory).
 
==Upgrade faster and easy==
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.ini inside and reboot the board with all security.
 
=Features and Limitations=
==Improvements & 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.
* 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*     - 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. ==Limitations==* 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 hardcode limited to 32 MiB.* Video is limited to 1024 x 768 x 16 bits.* Video Memory is limited to 1280 x 720 x 32 bits. ==TODO==* Remove compilation warnings.* System Rescue.* Improve boot selection and priority.* Remove unused code. ==STATUS==* Support:** IGEPv2 DM3730** IGEPv2 OMAP3530** IGEP COM MODULE DM3730** IGEP COM PROTON DM3730** IGEP COM MODULE AM3703 ==VERSION CHANGES==[2.1.0-1] This version only can be build with gcc linaro 4.5.2 other compilers be not supported. [2.1.0-1] Removed some uncontrolled "printf" with incorrect information. [2.1.0-1] Modified some code under __DEBUG__ option. [2.1.0-1] Added Support for TPS65950-A3 initialization at 1.35V [2.1.0-1] Added support for IGEP Module 0030 [2.1.0-1] Added support dynamic Machine ID selection (same xloader boot IGEPv2 & IGEP Module) ---- [2.1.0-2] ARM Compilation bug resolved ---- [2.1.0-3] Update SDRAM structure initialization [2.1.0-3] Added support for Initial RAM disk [2.1.0-3] Updated Initial RAM disk destination address ---- [2.2.0-1] Update Makefile structure [2.2.0-1] Downgrade the boot processor speed
2.2 Issues-----------
* The ini file it's limited [2.3.0-1] Add NAND flash devices and Micron MT29CXGXXMAXX memories support [2.3.0-2] Add Hynix NAND memorie and IGEP0032 support [2.3.0-2] Added lzo compression schema. ---- [2.3.0-3] Add Support for execute ARM binaries [2.3.0-3] Bug Fixes related to max sizeI and D Cache ---- [2.4.0-1] Added Memory test feature [2.4.0-1] Added some boot information [2.4.0-1] New read_nand_cache function optimized for load from NAND [2.4.0-1] BUG resolved: 16 KiBRefresh Setup in Micron & Hynix Memories This is not a real limitation due all ini file it's copied into [2.4.0-1] BUG resolved: Reset Memory controller after initialize Malloc function [2.4.0-1] BUG resolved: Resolve problems updating the RAM memoryflash content under jffs2 ---- [2.4.0-2] Resolved Memory Autodetection* Kernel Command line parameters it's limited to: [2.4 KiB.0-2] Better hang board led control This is not a real limitation due all ini file it's copied into the RAM memory[2.4.0-2] New read_nand_cache function optimized for load from OneNand* Malloc it's limited to 32 MiB[2.4.0-2] Added Hw GPtimer functionality * Cannot write comments in lines with tag=value ----
[2.3 TODO-------5.0-1] Added System DMA driver.
* Add support for IGEP0030 - Family boards[2.* Add support for other OMAP/DM/AM processor boards5.* Remove compilation warnings0-1] Added optimized memcpy & memset functions.* Add in the tag=value inline comments
3 Status:==========[2.5.0-1] Improved boot speed.
* Support IGEP0020 Revision B & C family boards[2. 5.0- Tested with IGEPv2 (DM3730@1Ghz and 512/512 MB Ram/Onenand) - Tested with IGEPv2 (AM3703@1Ghz and 512/512 MB Ram/Onenand) - Tested with IGEPv2 (OMAP3530@720Mhz and 512/512 MB Ram/Onenand)1] Improve NAND driver support.
4 Settings & Configuration:============================[2.5.0-1] Auto x-loader.bin.ift and MLO generation.
4[2.5.0-1 MMC Boot------------Get a new mmc and create two partitions, the first one must be fat (you can follow this howto: http://code.google] Added DSS video support.com/p/beagleboard/wiki/LinuxBootDiskFormat)In this first partition (boot partition) you should copy:
* x-loader.bin.ift (you must rename this file to MLO) / This is a signed image using contrib/signGP tool* igep.ini* Your desired kernel image.---
Don't use a uImage kernel format (from uboot), only kernel formats be supported[2.5.0-2] Fixed System DMA misconfiguration.
Compilation Example:$make ARCH=arm CROSS_COMPILE=arm[2.5.0-none-linux-gnueabi- zImage modules2] Improve GPMC timming setup.
Read the kernel documentation about kernel images[2.5.0-2] Added DSS igep.ini variables.
4[2.5.0-2 Setup igep] Added Support for new memory capacities.ini file------------------------# Note this format permits use the characters# '#' and ';' as comment check file size restrictions
[kernel2.5.0-2]kaddress=0x80008000;rdaddress=0x84000000serialAuto x-loader.bin.low=00000001serialift and MLO generation.high=00000000revision=0001;kImageName=;kRdImageName=
[kparams]console=ttyS2,115200n8;earlyprintk=serial,ttyS2,115200mem=512Mboot_delay=2.5.0;mpurate=800;loglevel=7omapfb.mode=dvi:1024x768MR-16@60smsc911x2] Minor bug fixes.mac=0xb2,0xb0,0x14,0xb5,0xcd,0xde;ubi.mtd=2;root=ubi0:igep0020-rootfs ;rootfstype=ubifsroot=/dev/mmcblk0p2 rw rootwait
-----------------------------------
Tags Supported--------------[2.5.0-3] platform.S: downgrade MPU boot clock from 1GHz to 800 MHz
---- [kernel] ----* kaddress=0x80008000
Kernel copy address, you should use the same address used in kernel imageconfiguration[2. If you don't know what it means maybe it's better don't change it6.0-1] Remove OMAP35xx support
* rdaddress=0x84000000Kernel RAM disk copy address[2. If you don't know what it means maybe it's better don't change it6.0-1] New DMA driver, now can handle different DMA channels and transfers
* serial[2.low=00000001* serial6.high=00000000Board serial Number, you can read this information using /proc/cpuinfo0-1] GPMC: Add support for use prefetch engine
* revision=0001Board Revision ID, you can read this information using /proc/cpuinfo[2.6.0-1] NAND: Added a new Nand driver
* kImageName=zImageKernel file name, if you don't provide this tag it try to load these others[2.6.0-1] NAND:// DEFAULT IMAGES"zImage""zimage""vmlinuz""bzImage""bzimage"Modify memory setup timmings
* kRdImageName=rdimageKernel RAM Disk file, if you don't provide this tag it try to load these others:// DEFAULT IMAGES"initrd"----
[2.6.0---- [kparams2] ----Kernel parameters, all these parameters are passed directly to the DMA: disable dma_memcpy function due random kernel using thekernel command line.memory corruption
kernel parameters documentation=Pre-Compiled Binaries={| border="1" width="905" cellspacing="1" cellpadding="1"|-! scope="col"|Release! scope="col"|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]]|-||2.5.0-2||[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]||[[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://wwwdownloads.kernelisee.orgbiz/docpub/Documentationreleases/kernelIGEP_xloader/igep-parametersx-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.txt0-3||[http://wwwdownloads.kernelisee.orgbiz/pub/linuxreleases/kernelIGEP_xloader/peopleigep-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/gregkhpub/lknreleases/lkn_pdfIGEP_xloader/ch09igep-x-loader-2.2.0-1.tar.bz2 igep-x-loader-2.2.0-1.tar.pdfbz2]||[[The_IGEP_X-loader#STATUS | All OMAP3 Boards]] except IGEP COM MODULE AM3703|}
4=Build Procedure===Build with ISEE SDK Yocto Toolchain 1.2=====Download and Install the cross compiler if you not do it before.3 Boot Priority===Download the toolchain from this [https://www.isee.biz/support/downloads/item/igep-sdk-yocto-toolchain-1-2-2-----------First try mmc 3 link] and if uncompress it fails then try from OneNandas root in your / directory.
Examples<pre>Hint:a) MLO (x-loader), igep.ini, zImage from MMCIf all it's present in Remember setup the mmc it don't try to boot from Onenand.enviroment before build the source:
b) MLO (xsource /opt/poky/1.2/environment-setup-armv7a-vfp-neon-poky-loader) in MMC, igep.ini and zImage in Onenand.If only MLO it's provided this one try to load the other information fromthe Onenand.linux-gnueabi</pre>
4===Download the sources from our git repository===<pre>git clone git://git.4 OneNand Partition settings--------isee.biz/pub/scm/igep-x-loader.git</pre>===Get your desired tag / release===git checkout &lt;your_desired_release&gt; ---------------------We suggest use minimum 3 partitions on the OneNand.b &lt;your_name_release&gt;
Creating 3 MTD partitions on "omap2<pre>git checkout release-onenand":0x0000000000002.5.0-2 -b release-0x000000080000 : "X2.5.0-Loader"0x0000000800002-0x000000c80000 : "Boot"local0x000000c80000-0x000020000000 : "File System"</pre>
4.4.1) Xloader partition===Setup the board build setup===<pre>make igep00x0_config</pre>===Build the software===* Not fs formated (raw)<pre>make</pre>* Suggested size: 0x80000 ===Sign the binary x-loader (512 KiBOnly versions prior to 2.5.0-x)===* The ''You should execute contrib/signGP for sign the xloader must be signed before copy it in the flash memory.''
You should copy the <pre>contrib/signGP x-load.binThe signed x-loader in the firsts 4 blocks (first 512 KiB), this is not a formated partition due the ROM not permits boot from there, you should use toolsit's named:flash_eraseall and nandwrite for copy x-loader in the first blocksload.bin.ift</pre>
Suggested procedure==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;
nand_eraseall /dev/mtd0<pre style="font-weight: normal;"> git checkout release-2.5.0-2 -b release-2.5.0-2-localnandwrite -p </dev/mtd0 <x-loaderpre>
* ===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 that resides inside the flash memory.''
<pre>contrib/signGP x-load.bin
The signed x-loader it's named: x-load.bin.ift
</pre>
=BOOT=
The IGEP X-Loader must reside in the microSD card or in the Nand Memory.
Due ==MMC Boot=====Prepare the Onenand 512 MiB has two dies it's necessary split the x-loader and convert it to a 1 die binarymicrosd card===You can follow this howto about how [http://code.google.This is a know OMAPcom/p/DMbeagleboard/AM OneNandwiki/Nand LinuxBootDiskFormat prepare the microsd card] or [[How to boot limitation.from MicroSD Card]]
This is Get a new microsd card and create two partitions, the procedure for create first one must be fat16/32 and the x-loader OneNand binary:You should execute: (You second one can use copy paste be formated in your console)any format type supported by linux kernel.
split -b 2K x-load.bin.ift split-===Copy the files in the first (FAT) partition===for file In the first partition you must copy in `ls split-a?`; do cat $file >> x-load-ddp.bin.ift; cat $file >> x-load-ddp.bin.ift; donethis order:
This last command generate a file named # x-load-ddploader.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 [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 for copy it in the OneNand.git;a=blob;f=include/configs/igep00x0.h igep00x0.h]&nbsp;(#define IGEP_BOOT_CFG_INI_FILE "igep.ini")# Your desired kernel image.
4.4.2 Boot Partition--------------------* fs used jffs2 zlib compressed filesystem.* Suggested sizeLoad Order: 0xC00000 (12 MiB)
First time creation:<pre> 48 /* Linux Images */a) 49 const char* LinuxImageNames [] = { 50 "kparam" /* Use the same procedure described in point 4.2.1. Copy your kparam first */ 51 "zImage", /* jffs2 compressed image in theit's case sensitive */partition 52 "zimage", /* fat name it can be a empty file.'s not case sentitive */ 53 "vmlinuz", 54 "bzImage", 55 "bzimage", 56 0, 57 };
b) Erase the partition and mount it as jffs2 filesystem then or you can copy with cp commandset 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.
Next Times'''kernel build command example''':Copy the files using cp command, or edit directly.
when kernel boots you can enable mount this partition over <pre>make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- zImage modules</boot directory for access all boot content.pre>
4===Second Partition===Copy all your rootfs in this second partition.4 Also you can use the [http://releases.3 Rootfs -linaro.org/platform/linaro-m/headless/final/linaro-m-headless-tar-20101108------* 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 2.tar.gz linaro 10. :11 minimal image]&nbsp;download the image and untar (as root)in your microsd card second partition.
Remember install the kernel modules in this partition.
5 Build procedure=================Example:
5.1 Build with Ubuntu Cross Compiler gcc 4.5.1<pre>sudo make ARCH=arm CROSS_COMPILE=arm-poky-linux-gnueabi- modules_install INSTALL_MOD_PATH=[path to your target rootfs]</pre>
* This is tested with Ubuntu 10==Nand Boot=====Nand Partitions===We've defined 3 partitions on the Nand Memory.10
<pre>MTD partitions on "omap2-onenand":(a) Install the cross compiler0x000000000000-0x000000080000&nbsp;:"X-Loader"apt(b) 0x000000080000-get install cpp0x000000c80000&nbsp;: "Boot"(c) 0x000000c80000-4.50x000020000000&nbsp;: "File System"</pre>====X-arm-linux-gnueabi g++-4Loader Partition====* Not fs formated (onenand raw)* Size: 0x80000 (512 KiB)* The xloader must be signed before copy it into the flash memory.5-arm-linux-gnueabi
bYou should copy the x-loader in the firsts 4 blocks (first 512 KiB) Configure , this is not a&nbsp;formated partition due the boardmake igep0020ROM 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 x-sdcard_configloader in the first blocks.
c) Buildmake<pre>Suggested procedure:
d) Sign the x-loaderbefore write it on the flash or microsd card.Sign x-loader:
You should execute contrib/signGP for sign the xloader that resides inside the flash memory.
contrib/signGP x-load.bin
The signed x-loader it's named: x-load.bin.ift
Erase and copy the x-loader into the first flash partition (mtd0):
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).
5X-Loader only support jffs2 partitions for boot partition.2 Build with IGEP SDK
a) Source <u>Create the enviromentsource boot partition:</usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi u>
b) Edit the file Makefile
Find the define:
And Set the variable as:
CROSS_COMPILE = arm-none-linux-gnueabi-
b<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 /bootcp zImage /boot</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;:) ==Boot Priority==XLoader first try load from mmc and if it fails then try from OneNand. '''MLO (x-loader), igep.ini, zImage from MMC'''<br />If all it's present in the mmc it don't try to boot from Onenand. '''MLO (x-loader) Configure in MMC, igep.ini and zImage in Onenand.'''<br />If only MLO it's provided this one try to load the other information from&nbsp;the Onenand. It means that XLoader always try to load the information from MMC and if it fails then try to load from OneNand. ==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.isee.biz/?p=pub/scm/igep-x-loader.git;a=blob;f=scripts/igep.ini;h=ce093fe80c81d8888bf79464f847059b312bba83;hb=refs/heads/master igep.ini] example file. The actual XLoader can handle two kind tags: [kernel] Used for internal XLoader setup. [kparams] Used for pass the linux kernel parameters. ===TAG: [kernel]&nbsp;===<pre> 1 [kernel] 2 kaddress=0x80008000 3 rdaddress=0x81600000 4 serial.low=00000001 5 serial.high=00000000 6 revision=0001 7 kImageName=zImage-test 8 kRdImageName=rdImage-test 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>{| border="1" width="800" cellspacing="1" cellpadding="1"|-||Parameter Name||Description||Default Value||Comments|-||kaddress||Kernel copy address||0x80008000||hex memory address|-||rdaddress||Ram Disk location address||0x81600000||hex memory address|-||serial.low||Serial number (low part)||0 - 99999999||numeric|-||serial.high||Serial number (high part)||0 - 99999999||numeric|-||revision||Revision ID||0 - 9999||numeric|-||kImageName||Kernel, binary image name||N/A||Kernel or binary image name|-||kRdImageName||Ramdisk||N/A||Ram Disk image name|-||MachineID||Machine ID (kernel ID)||2717||2717 (IGEP COM Module) | 2344 IGEPv2 | 3203 (IGEP COM PROTON)|-||Mode||Boot Mode||kernel||kernel=linux kernel / binary=boot binary image|-||dss||Enable Video||0||0 = Disable, 1 Enable Video Output|-||dss_color||Video Color||0x00FF8000||Solid Color|-||dss_bitmap||Video Bitmap Image||string||filename with desired image|} ===TAG:&nbsp;[kparams]===In this tag you can add all kernel parameters that you need, this is only an example: <pre> 10 [kparams] 11 console=ttyS2,115200n8 12&nbsp;;earlyprintk=serial,ttyS2,115200 13 mem=512M 14 boot_delay=0 15&nbsp;;mpurate=800 16&nbsp;;loglevel=7 17 omapfb.mode=dvi:1024x768MR-16@60\r 18 smsc911x.mac=0xb2,0xb0,0x14,0xb5,0xcd,0xde\r 19&nbsp;;ubi.mtd=2 20&nbsp;;root=ubi0:igep0020-rootfs 21&nbsp;;rootfstype=ubifs 22 root=/dev/mmcblk0p2 rw rootwait Also remember you can comment any line using ';' or '#' characters. </pre> =FAQ===How I can boot from NFS?==Yes, you should add below parameters in the kparams tag: <pre>#smsc911x.mac fix your mac addresssmsc911x.mac=0xb2,0xb0,0x14,0xb5,0xcd,0xde# IP set you IP settings &lt;local_ip&gt;:&lt;server_ip&gt;:&lt;gateway&gt;:&lt;network_mask&gt;::&lt;interface&gt;:ip=192.168.2.123:192.168.2.105:192.168.2.1:255.255.255.0::eth0:# Set root as nfsroot=/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: <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: <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: <pre>smsc911x.mac=0xb2,0xb0,0x14,0xb5,0xcd,0xde</pre>==How I can boot my boardusing ubi root filesystem?==You should use these parameters: <pre>ubi.mtd=2 make root=ubi0:igep0020-sdcard_configrootfs rootfstype=ubifs</pre>==How I can boot my board using a RAM disk?==Use a RAMdisk it's fully supported. <pre>[kernel]rdaddress=0x81600000kRdImageName=ramdisk.bin [kparams]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: <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)   ==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.
c) build
make
d) Sign x-loader
You should execute contrib/signGP for sign the xloader that resides inside the flash memory.
contrib/signGP x-load.bin
The signed x-loader it's named: x-load.bin.ift
==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.
5==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.3 Build Native
a) Configure the boardmake igep0020<pre> mount -sdcard_configt jffs2 /dev/mtdblock1 /boot
b) Modify the config cp newkernel.mk fileEdit the variable CFLAGS and add the option: -fno-stack-protectorbin /boot
CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -fno-stack-protector cp igep.ini /boot</pre>Use a different kernel name and you always can boot from your old one.
c) build =6 Contribution &amp; Support &amp; Bugs Report=make CROSS_COMPILEContributions 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]
d) Sign x-loader
You should execute contrib/signGP for sign the xloader that resides inside the flash memory.
contrib/signGP x-load.bin
The signed x-loader it's named: x-load.bin.ift
{{Message/Forum}}
6 Contribution & Support & Report Bugs======================================Contributions to this project be welcome and you can send your patches to support@iseebcn.comor you can use the igep forum for it.You can access to IGEP-x-Loader repository using our git at git.igep.esIGEP IRC Channel[[Category: http://webchat.freenode.net/?channels=igepBoot_loaders|X_Loader]]