使用 mkimage 將 zImage 轉換成 uImage

./mkimage -A arm -O linux -T kernel -C none -a 30008000 -e 30008000 -n linux-2.6.14.1_cs8900 -d zImage uImage

mkimage在製作映像文件的時候,是在原來的可執行映像文件的前面加上一個0x40字節的頭,記錄參數所指定的信息。
這樣uboot才能識別這個映像是針對哪個CPU體系架構,哪種OS,哪種類型,
載入記憶體中的哪個位置,入口點在記憶體的那個位置以及映像名是什麼。

root@zychip:/home/uboot/tools# ./mkimage
Usage: ./mkimage -l image
-l ==> list image header information
./mkimage -A arch -O os -T type -C comp -a addr -e ep -n name -d data_file[:data_file...] image
-A ==> set architecture to 'arch'
-O ==> set operating system to 'os'
-T ==> set image type to 'type'
-C ==> set compression type 'comp'
-a ==> set load address to 'addr' (hex)
-e ==> set entry point to 'ep' (hex)
-n ==> set image name to 'name'
-d ==> use image data from 'datafile'
-x ==> set XIP (execute in place)

參數說明:
-A 指定CPU的體系結構:

參數表示的CPU體系結構
alpha Alpha
arm A RM
x86 Intel x86
ia64 IA64
mips MIPS
mips64 MIPS 64 Bit
ppc PowerPC
s390 IBM S390
sh SuperH
sparc SPARC
sparc64 SPARC 64 Bit
m68k MC68000

-O 指定操作系統類型,可以取以下值:
openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos

-T 指定映像類型,可以取以下值:
standalone、kernel、ramdisk、multi、firmware、script、filesystem

-C 指定映像壓縮方式,可以取以下值:
none 不壓縮
gzip 用gzip的壓縮方式
bzip2 用bzip2的壓縮方式

-a 指定映像在記憶體中的載入地址,映像下載到記憶體時,要按照用mkimage製作映像時,這個參數所指定的地址值來下載

-e 指定映像運行的入口點地址

-n 指定映像檔名

-d 指定製作映像的源文件

其中指定參數 "-a 0x30008000 -e 0x30008000" 指定值不會隨軟體版本有所更改,這個值是根據CPU的記憶體配置而指定的。

REF://
http://www.zychip.com/phpBB3/viewtopic.php?f=11&t=588&p=1467&hilit=uImage#p1467

arrow
arrow
    全站熱搜

    BB 發表在 痞客邦 留言(0) 人氣()