Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The IGEP X-loader

6,000 bytes removed, 14:47, 3 March 2011
no edit summary
=== TAG: [kernel]  ===
<pre><font class="Apple-style-span" color="#FF0000"</font><font class="Apple-style-span"> 1 [kernel]
2 kaddress=0x80008000
3 rdaddress=0x84000000
4 serial.low=00000001
5 serial.high=00000000
6 revision=0001
7 kImageName=zImage-test
8 kRdImageName=rdImage-test
</font></pre>
=== <font class="Apple-style-span" color="#FF0000"</font>TAG:&nbsp;[kparams] ===
In this tag you can add all kernel parameters that you need, this is only an example:<span stylepre> 10 [kparams] 11 console="colorttyS2,115200n8 12 ;earlyprintk=serial,ttyS2,115200 13 mem=512M 14 boot_delay=0 15 ;mpurate=800 16 ;loglevel=7 17 omapfb.mode=dvi: rgb(2551024x768MR-16@60\r 18 smsc911x.mac=0xb2, 00xb0,0x14,0xb5,0xcd, 0)0xde\r 19 ;ubi.mtd=2 20 ;root=ubi0:igep0020-rootfs 21 ;">''# kaddress (Kernel copy destination address)''<rootfstype=ubifs 22 root=/dev/span> mmcblk0p2 rw rootwait
kaddress=0x80008000 Also remember you can comment any line using ';' or '#' characters.
<span style/pre>="color: rgb(255, 0, 0)6 Contribution &amp;">''# rdaddressSupport &nbspamp;(RamDisk copy destination address)''</span>Report Bugs =
<span style="color: rgb(255, 0, 0);"<span style="color: rgb(0, 0, 0); ">rdaddress=0x84000000</span></span> <span style="color: rgb(255, 0, 0);">''# Serial Hardware ID''</span> serial.low=00000001 serial.high=00000000  <span style="color: rgb(255, 0, 0);">''# Revision Hardware ID''</span>  revision=0001  <span style="color: rgb(255, 0, 0);">''# Kernel Image Name''</span> <span style="color: rgb(255, 0, 0);"<span style="color: rgb(0, 0, 0); ">kImageName=zImage-test</span></span> ''<span style="color: rgb(255, 0, 0);"># Kernel Ramdisk Name</span>'' ''<span style="color: rgb(255, 0, 0);" />''kRdImageName=rdImage-test  <br>  4.2 Setup igep.ini file<br>------------------------<br># Note this format permits use the characters<br># '#' and ';' as comment check file size restrictions  [kernel]<br>kaddress=0x80008000<br>;rdaddress=0x84000000<br>serial.low=00000001<br>serial.high=00000000<br>revision=0001<br>;kImageName=<br>;kRdImageName=  [kparams]<br>console=ttyS2,115200n8<br>;earlyprintk=serial,ttyS2,115200<br>mem=512M<br>boot_delay=0<br>;mpurate=800<br>;loglevel=7<br>omapfb.mode=dvi:1024x768MR-16@60<br>smsc911x.mac=0xb2,0xb0,0x14,0xb5,0xcd,0xde<br>;ubi.mtd=2<br>;root=ubi0:igep0020-rootfs <br>;rootfstype=ubifs<br>root=/dev/mmcblk0p2 rw rootwait  ---- Tags Supported<br>---------------  ---- [kernel] ----<br>* kaddress=0x80008000  Kernel copy address, you should use the same address used in kernel image<br>configuration. If you don't know what it means maybe it's better don't change it.  *rdaddress=0x84000000<br>Kernel RAM disk copy address. <br>If you don't know what it means maybe it's better don't change it. *serial.low=00000001<br>* serial.high=00000000<br>Board serial Number, you can read this information using /proc/cpuinfo *revision=0001<br>Board Revision ID, you can read this information using /proc/cpuinfo *kImageName=zImage<br>Kernel file name, if you don't provide this tag it try to load these others:<br>// DEFAULT IMAGES<br>"zImage"<br>"zimage"<br>"vmlinuz"<br>"bzImage"<br>"bzimage" *kRdImageName=rdimage<br>Kernel RAM Disk file, if you don't provide this tag it try to load these others:<br>// DEFAULT IMAGES<br>"initrd" ---- [kparams] ----<br>Kernel parameters, all these parameters are passed directly to the kernel using the<br>kernel command line.  kernel parameters documentation:<br>http://www.kernel.org/doc/Documentation/kernel-parameters.txt<br>http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf/ch09.pdf  4.3 Boot Priority<br>-----------------<br>First try mmc and if it fails then try from OneNand.  Examples:<br>a) 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.  b) MLO (x-loader) in MMC, igep.ini and zImage in Onenand.<br>If only MLO it's provided this one try to load the other information from<br>the Onenand.  4.4 OneNand Partition settings<br>-------------------------------<br>We suggest use minimum 3 partitions on the OneNand.  Creating 3 MTD partitions on "omap2-onenand":<br>0x000000000000-0x000000080000&nbsp;: "X-Loader"<br>0x000000080000-0x000000c80000&nbsp;: "Boot"<br>0x000000c80000-0x000020000000&nbsp;: "File System"  4.4.1) Xloader partition<br>* Not fs formated (raw)<br>* Suggested size: 0x80000 (512 KiB)<br>* The xloader must be signed before copy it in the flash memory.  You should copy the x-loader in the firsts 4 blocks (first 512 KiB), this is not a <br>formated partition due the ROM not permits boot from there, you should use tools:<br>flash_eraseall and nandwrite for copy x-loader in the first blocks.  Suggested procedure:  nand_eraseall /dev/mtd0<br>nandwrite -p /dev/mtd0 &lt;x-loader&gt;  *Sign x-loader<br>You should execute contrib/signGP for sign the xloader that resides inside the flash memory. contrib/signGP x-load.bin <br>The signed x-loader it's named: x-load.bin.ift  Due the Onenand 512 MiB has two dies it's necessary split the x-loader and convert it to a 1 die binary.<br>This is a know OMAP/DM/AM OneNand/Nand boot limitation.  This is the procedure for create the x-loader OneNand binary:<br>You should execute: (You can use copy paste in your console)  split -b 2K x-load.bin.ift split-<br>for file in `ls split-a?`; do cat $file &gt;&gt; x-load-ddp.bin.ift; cat $file &gt;&gt; x-load-ddp.bin.ift; done  This last command generate a file named x-load-ddp.bin.ift this is the x-loader for copy it in the OneNand.  4.4.2 Boot Partition<br>--------------------<br>* fs used jffs2 zlib compressed filesystem.<br>* Suggested size: 0xC00000 (12 MiB)  First time creation:<br>a) Use the same procedure described in point 4.2.1. Copy your jffs2 compressed image in the<br>partition, it can be a empty file.  b) Erase the partition and mount it as jffs2 filesystem then you can copy with cp command.  Next Times:<br>Copy the files using cp command, or edit directly.  when kernel boots you can enable mount this partition over /boot directory for access all boot content.  4.4.3 Rootfs <br>------------<br>* fs (your prefered fs supported by linux, maybe a good choice it should be ubifs)<br>* Size, all or you can create more partitions if you wish ...&nbsp;:)  <br>5 Build procedure<br>=================  5.1 Build with Ubuntu Cross Compiler gcc 4.5.1  *This is tested with Ubuntu 10.10 a) Install the cross compiler:<br>apt-get install cpp-4.5-arm-linux-gnueabi g++-4.5-arm-linux-gnueabi  b) Configure the board<br>make igep0020-sdcard_config  c) Build<br>make  d) Sign x-loader<br>You should execute contrib/signGP for sign the xloader that resides inside the flash memory.<br>contrib/signGP x-load.bin <br>The signed x-loader it's named: x-load.bin.ift  <br>5.2 Build with IGEP SDK  a) Source the enviroment<br>source /usr/local/poky/eabi-glibc/environment-setup-arm-none-linux-gnueabi  b) Edit the file Makefile<br>Find the define:  And Set the variable as:<br>CROSS_COMPILE = arm-none-linux-gnueabi-  b) Configure the board<br>make igep0020-sdcard_config  c) build<br>make  d) Sign x-loader<br>You should execute contrib/signGP for sign the xloader that resides inside the flash memory.<br>contrib/signGP x-load.bin <br>The signed x-loader it's named: x-load.bin.ift  <br>5.3 Build Native  a) Configure the board<br>make igep0020-sdcard_config  b) Modify the config.mk file<br>Edit the variable CFLAGS and add the option: -fno-stack-protector  CFLAGS&nbsp;:= $(CPPFLAGS) -Wall -Wstrict-prototypes -fno-stack-protector  c) build <br>make CROSS_COMPILE=""  d) Sign x-loader<br>You should execute contrib/signGP for sign the xloader that resides inside the flash memory.<br>contrib/signGP x-load.bin <br>The signed x-loader it's named: x-load.bin.ift  <br>6 Contribution &amp; Support &amp; Report Bugs<br>======================================<br>Contributions to this project be welcome and you can send your patches to support@iseebcn.com<br>&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 git.igep.es]<br>IGEP IRC Channel: [http://webchat.freenode.net/?channels=igephttp://webchat.freenode.net/?channels=igep]<br><span style="display: none;" id="1299156619619E">&nbsp;</span><br>