• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 25, comments - 7, trackbacks - 0, articles - 0

            幾種Bootloader簡介

            Posted on 2007-10-06 19:24 謝龍飛 閱讀(1993) 評論(2)  編輯 收藏 引用
             Redboot

            RedbootRedhat公司隨eCos發布的一個BOOT方案,是一個開源項目。

            當前Redboot的最新版本是Redboot-2.0.1Redhat公司將會繼續支持該項目,其官方發布網址為:http://sources.redhat.com/redboot/

            Redboot支持的處理器構架有ARMMIPSMN10300PowerPC Renesas SHxv850x86等,是一個完善的嵌入式系統Boot Loader

            Redboot是在ECOS的基礎上剝離出來的,繼承了ECOS的簡潔、輕巧、可靈活配置、穩定可靠等品質優點。它可以使用X-modemY-modem協議經由串口下載,也可以經由以太網口通過BOOTP/DHCP服務獲得IP參數,使用TFTP方式下載程序映像文件,常用于調試支持和系統初始化(Flash下載更新和網絡啟動)。Redboot可以通過串口和以太網口與GDB進行通信,調試應用程序,甚至能中斷被GDB運行的應用程序。Redboot為管理FLASH映像,映像下載,Redboot配置以及其他如串口、以太網口提供了一個交互式命令行接口,自動啟動后,REDBOOT用來從TFTP服務器或者從Flash下載映像文件加載系統的引導腳本文件保存在Flash上。當前支持單板機的移植版特性有:

            -          支持ECOSLinux操作系統引導

            -          在線讀寫Flash

            -          支持串行口kermitS-record下載代碼

            -          監控(minitor)命令集:讀寫I/O,內存,寄存器、 內存、外設測試功能等

            Redboot是標準的嵌入式調試和引導解決方案,支持幾乎所有的處理器構架以及大量的外圍硬件接口,并且還在不斷地完善過程中。

             

            l         ARMboot

            ARMboot是一個ARM平臺的開源固件項目,它特別基于PPCBoot,一個為PowerPC平臺上的系統提供類似功能的姊妹項目。鑒于對PPCBoot的嚴重依賴性,已經與PPCBoot項目合并,新的項目為U-Boot

            ARMboot發布的最后版本為ARMboot-1.1.02002ARMboot終止了維護,其發布網址為:http://sourceforge.net/projects/armboot

            ARMboot支持的處理器構架有StrongARM ARM720T PXA250 等,是為基于ARM或者StrongARM CPU的嵌入式系統所設計的。

            ARMboot的目標是成為通用的、容易使用和移植的引導程序,非常輕便地運用于新的平臺上。ARMbootGPL下的ARM固件項目中唯一支持Flash閃存,BOOTPDHCPTFTP網絡下載,PCMCLA尋線機等多種類型來引導系統的。特性為:

            -          支持多種類型的FLASH

            -          允許映像文件經由BOOTPDHCPTFTP從網絡傳輸;

            -          支持串行口下載S-record或者binary文件

            -          允許內存的顯示及修改

            -          支持jffs2文件系統等

            ArmbootS3C44B0板的移植相對簡單,在經過刪減完整代碼中的一部分后,僅僅需要完成初始化、串口收發數據、啟動計數器和FLASH操作等步驟,就可以下載引導uClinux內核完成板上系統的加載。總得來說,ARMboot介于大、小型Boot Loader之間,相對輕便,基本功能完備,缺點是缺乏后續支持。

             

            l         U-Boot

            U-Boot是由開源項目PPCBoot發展起來的,ARMboot并入了PPCBoot,和其他一些archLoader合稱U-Boot20021217日第一個版本U-Boot-0.2.0發布,同時PPCBootARMboot停止維護。

            U-Boot自發布以后已更新6,最新版本為U-Boot-1.1.1U-Boot的支持是持續性的。其發布網址為:http://sourceforge.net/projects/u-boot/

            U-Boot支持的處理器構架包括PowerPC (MPC5xxMPC8xxMPC82xxMPC7xxMPC74xx4xx) ARM ARM7ARM9StrongARMXscale),MIPS (4Kc5Kc)x86等等, U-BootUniversal Bootloader從名字就可以看出,它是在GPL下資源代碼最完整的一個通用Boot Loader

            U-Boot提供兩種操作模式:啟動加載(Boot loading)模式和下載(Downloading)模式,并具有大型Boot Loader的全部功能。主要特性為:

            -          SCC/FEC以太網支持 

            -          BOOTP/TFTP引導 

            -          IPMAC預置功能 

            -          在線讀寫FLASHDOC, IDEIICEEROMRTC

            -          支持串行口kermitS-record下載代碼 

            -          識別二進制、ELF32pImage格式的Image,對Linux引導有特別的支持 

            -          監控(minitor)命令集:讀寫I/O,內存,寄存器、內存、外設測試功能等

            -          腳本語言支持(類似BASH腳本)

            -          支持WatchDogLCD logo,狀態指示功能等 

            U-Boot的功能是如此之強大,涵蓋了絕大部分處理器構架,提供大量外設驅動,支持多個文件系統,附帶調試、腳本、引導等工具,特別支持Linux,為板級移植做了大量的工作。U-Boot1.1.1版本特別包含了對SA110044B0芯片的移植,所以44B0移植主要是針對Board 的移植,包括FLASH、內存配置以及串口波特率等等。U-Boot的完整功能性和后續不斷的支持,使系統的升級維護變得十分方便。

             

            l         Blob

            Blob(Boot Loader Object)是由Jan-Derk Bakker and Erik Mouw發布的,是專門為StrongARM 構架下的LART設計的Boot Loader

            Blob的最后版本是blob-2.0.5,其發布網址為:http://www.lart.tudelft.nl/lartware/blob/

            Blob支持SA1100LART主板,但用戶也可以自行修改移植。

            Blob也提供兩種工作模式,在啟動時處于正常的啟動加載模式,但是它會延時 10 秒等待終端用戶按下任意鍵而將 Blob 切換到下載模式。如果在 10 秒內沒有用戶按鍵,則 Blob 繼續啟動 Linux 內核。其基本功能為:

            初始化硬件(CPU速度,存儲器,中斷,RS232串口)

            -          引導Linux內核并提供ramdisk

            -          LART下載一個內核或者ramdisk

            -          FLASH片更新內核或者ramdisk

            -          測定存儲配置并通知內核

            -          給內核提供一個命令行

            Blob功能比較齊全,代碼較少,比較適合做修改移植,用來引導Liunx,目前大部分S3C44B0板都用Blob修改移植后來加載uClinux 

            l         Bios-lt

            Bios-lt是專門支持三星(Samsung)公司ARM構架處理器S3C4510BLoader,可以設置CPU/ROM/SDRAM/EXTIO,管理并燒寫FLASH,裝載引導uClinux內核。這是國內工程師申請GNU通用公共許可發布的。                  

            Bios-lt的最新版本是Bios-lt-0.74,另外還提供了S3C4510B的一些外圍驅動,其發布網址為:http://sourceforge.net/projects/bios-lt

            l         Bootldr

            Bootldr是康柏(Compaq)公司發布的,類似于compaq iPAQ Pocket PC,支持SA1100芯片。它被推薦用來引導Llinux,支持串口Y-modem協議以及jffs文件系統。                                          

            Bootldr的最后版本為Bootldr-2.19,其發布網址為: http://www.wearablegroup.org/software/bootldr/

             ViVi

                    vivi是什么?

                    vivi是由mizi公司設計為ARM處理器系列設計的一個bootloader,因為vivi目前只支持使用串口和主機通信,所以您必須使用一條串口電纜來連接目標板和主機。

                   它有如下作用:

                   1)、 把內核(kernel)從flash復制到RAM,然后啟動它

                   2)、 初始化硬件

                   3)、 下載程序并寫入flash(一般通過串口或者網口先把內核下載到RAM中,然后寫入到flash)

                   4)、 檢測目標板(bootloader會有一些簡單的代碼用以測試目標板硬件的好壞)

                   vivi的使用方法

                   摘錄自vivi的guide.txt,稍作修改。

            Getting started with vivi

            Janghoon Lyu (nandy@mizi.com)

            This is a short introduction about the vivi.

            Revision History

            Revision v0.1 2002-10-21 Revised by: jl

            Initial public release. very very short descriptions. (with foolish sentences -_-;;)

            ------------------------------------------------------------------------

              

            1. Introduction.

            1.1. Definitions.

            1.2. vivi的目錄結構及文件.

            1.2.1 vivi的目錄樹.

            1.2.2 vivi的文件.

            2. vivi 的編譯.

            2.1. Pre-Requirements.

            2.2. Straight-forward compilation.

            2.3. SA-1110-Based machines with the NOR flash.

            2.4. S3C2410-Based machines with the NAND flash.

            3. vivi的使用.

            3.1. Interface between an user and the vivi.

            3.2. Built-in user commands.

            3.2.1. load command.

            3.2.2. part command.

            3.2.3. param command.

            3.2.4. boot command.

            3.2.5. flash command.

            ------------------------------------------------------------------------

            1. Introduction

            This document explains to you:

             

            1) compiling the vivi

             

            2) interface an user and the vivi

             

            3) avaliable user commands

            1.1. Definitions

            vivi

             

            The vivi is one of arm boot loaders.

             

            Autoboot mode

             

            The vivi has two modes. one of these is autoboot mode. This is a default mode. In this mode, The vivi automatically boot-up the linux kernel when a delay time is expired.

             

            Prompt mode

             

            One of vivi's modes is prompt mode. In this mode, An user is able to command to the vivi doing something.

             

            Host platform

             

            Generally, an engineer develop the software on the powerful destktop computer (not on the embedded machines). This descktop called host platform.

             

            Target platform

             

            Target platform means developemnt boards or embedded machines.

            1.2. vivi的目錄結構及文件

            1.2.1 vivi的目錄樹

            E:\S3C2410_VIVI_R1.1

            ├───Documentation

               └───html

            ├───arch

               ├───def-configs

               └───s3c2410

            ├───drivers

               ├───mtd

                  ├───maps

                  ├───nand

                  └───nor

              └───serial

            ├───include

               ├───mtd

               ├───proc

               └───platform

            ├───init

            ├───lib

               └───priv_data

            ├───scripts

               └───lxdialog

            └───util

            1.2.2 vivi的文件

            Directory of E:\s3c2410_vivi_r1.1

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2006-08-30 14:10    <DIR>          Documentation

            2006-08-30  14:10    <DIR>          arch

            2006-08-30 14:10    <DIR>          drivers

            2006-08-30 14:10    <DIR>          include

            2006-08-30 14:10    <DIR>          init

            2006-08-30 14:10    <DIR>          lib

            2006-08-30 14:10    <DIR>          scripts

            2006-08-30 14:10    <DIR>          util

            2004-05-07 08:48            18,008 COPYING

            2004-05-07 08:48             5,540 Makefile

            2004-05-07 08:48             4,348 Rules.make

                           3 File(s)      27,896 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\Documentation

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2006-08-30 14:10    <DIR>          html

            2004-05-07 08:48                98 .cvsignore

            2004-05-07 08:48             7,002 CHANGELOG

            2004-05-07 08:48             8,537 Configure.help

            2004-05-07 08:48             7,979 Configure.help.en

            2004-05-07 08:48             1,301 README

            2004-05-07 08:48             4,373 booting.ARM

            2004-05-07 08:48               682 compile.txt

            2004-05-07 08:48             8,965 guide.txt

            2004-05-07 08:48             1,353 optoions.txt

            2004-05-07 08:48             1,490 vivi_priv_data.txt

                          10 File(s)         41,780 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\Documentation\html

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48            18,232 guide.html

                           1 File(s)         18,232 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\arch

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2006-08-30 14:10    <DIR>          def-configs

            2004-05-07 08:48             2,282 Makefile

            2004-05-07 08:48             3,435 config.in

            2004-05-07 08:48             2,070 defconfig

            2004-05-07 08:48               137 vivi.lds.in

            2006-08-30 14:10    <DIR>          s3c2410

                           4 File(s)          7,924 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\arch\def-configs

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48             2,070 smdk2410

                           1 File(s)          2,070 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\arch\s3c2410

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48               379 Makefile

            2004-05-07 08:48            16,566 head.S

            2004-05-07 08:48             4,858 mmu.c

            2004-05-07 08:48             1,597 nand_read.c

            2004-05-07 08:48             9,077 proc.c

            2004-05-07 08:48             2,497 smdk.c

            2004-05-07 08:48             3,801 smdk2410_test.c

            2004-05-07 08:48             9,069 test.c

                           8 File(s)         47,844 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\drivers

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2006-08-30 14:10    <DIR>          mtd

            2004-05-07 08:48               237 Makefile

            2006-08-30 14:10    <DIR>          serial

                           1 File(s)            237 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\drivers\mtd

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2006-08-30 14:10    <DIR>          maps

            2006-08-30 14:10    <DIR>          nand

            2004-05-07 08:48               506 Config.in

            2004-05-07 08:48               284 Makefile

            2004-05-07 08:48            12,856 mtdcore.c

            2006-08-30 14:10    <DIR>          nor

                           3 File(s)         13,646 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\drivers\mtd\maps

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48               553 Config.in

            2004-05-07 08:48               340 Makefile

            2004-05-07 08:48             2,683 pxa250_flash.c

            2004-05-07 08:48             2,701 s3c2400_flash.c

            2004-05-07 08:48             7,570 s3c2410_flash.c

            2004-05-07 08:48             2,632 sa1100_flash.c

                           6 File(s)         16,479 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\drivers\mtd\nand

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48               630 Config.in

            2004-05-07 08:48               278 Makefile

            2004-05-07 08:48            10,376 bon.c

            2004-05-07 08:48             5,252 nand_ecc.c

            2004-05-07 08:48            26,771 smc_core.c

                           5 File(s)         43,307 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\drivers\mtd\nor

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48             2,000 Config.in

            2004-05-07 08:48               265 Makefile

            2004-05-07 08:48            29,770 amd_flash.c

            2004-05-07 08:48            25,191 cfi_cmdset_0001.c

            2004-05-07 08:48             9,777 cfi_probe.c

            2004-05-07 08:48             1,007 chipreg.c

            2004-05-07 08:48             6,781 gen_probe.c

                           7 File(s)         74,791 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\drivers\serial

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48               955 Config.in

            2004-05-07 08:48               324 Makefile

            2004-05-07 08:48             1,174 getcmd.c

            2004-05-07 08:48               647 getcmd.h

            2004-05-07 08:48             6,878 getcmd_ext.c

            2004-05-07 08:48             1,530 serial_core.c

            2004-05-07 08:48             1,264 term.c

            2004-05-07 08:48             4,895 xmodem.c

            2004-05-07 08:48             7,204 ymodem.c

                           9 File(s)         24,871 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\include

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2006-08-30 14:10    <DIR>          mtd

            2006-08-30 14:10    <DIR>          proc

            2004-05-07 08:48               691 architecture.h

            2004-05-07 08:48             2,835 bitfield.h

            2004-05-07 08:48               764 boot_kernel.h

            2004-05-07 08:48             3,122 cap.h

            2004-05-07 08:48               912 command.h

            2004-05-07 08:48               257 compile.h

            2004-05-07 08:48               196 config.h

            2004-05-07 08:48               106 ctype.h

            2004-05-07 08:48               106 errno.h

            2004-05-07 08:48               105 flash.h

            2004-05-07 08:48               112 getcmd.h

            2004-05-07 08:48               694 hardware.h

            2004-05-07 08:48               229 heap.h

            2004-05-07 08:48               385 io.h

            2004-05-07 08:48               441 linkage.h

            2004-05-07 08:48             1,087 machine.h

            2004-05-07 08:48             3,938 md5.h

            2004-05-07 08:48               427 memory.h

            2004-05-07 08:48               796 mmu.h

            2004-05-07 08:48               114 printk.h

            2004-05-07 08:48             1,657 priv_data.h

            2004-05-07 08:48               312 processor.h

            2004-05-07 08:48            24,247 pxa250.h

            2004-05-07 08:48               357 reset_handle.h

            2004-05-07 08:48            16,876 s3c2400.h

            2004-05-07 08:48            17,357 s3c2410.h

            2004-05-07 08:48            17,979 sa1100.h

            2004-05-07 08:48               438 serial.h

            2004-05-07 08:48               104 setup.h

            2004-05-07 08:48             1,130 sizes.h

            2004-05-07 08:48               198 time.h

            2004-05-07 08:48               125 types.h

            2004-05-07 08:48             1,296 vivi.h

            2004-05-07 08:48               273 vivi_lib.h

            2004-05-07 08:48               328 vivi_string.h

            2004-05-07 08:48               115 xmodem.h

            2004-05-07 08:48             2,690 ymodem.h

            2006-08-30 14:10    <DIR>          platform

                          37 File(s)        102,799 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\include\mtd

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48             2,918 amd_flash.h

            2004-05-07 08:48               201 bonfs.h

            2004-05-07 08:48            11,521 cfi.h

            2004-05-07 08:48             1,277 flashchip.h

            2004-05-07 08:48               505 gen_probe.h

            2004-05-07 08:48             2,632 map.h

            2004-05-07 08:48             5,997 mtd.h

            2004-05-07 08:48             6,572 nand.h

            2004-05-07 08:48               782 nand_ecc.h

            2004-05-07 08:48             3,216 nand_ids.h

                          10 File(s)         35,621 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\include\proc

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48             1,773 proc_pxa250.h

            2004-05-07 08:48             1,301 proc_s3c2400.h

            2004-05-07 08:48             1,803 proc_s3c2410.h

            2004-05-07 08:48             1,911 proc_sa1100.h

                           4 File(s)          6,788 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\include\platform

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48             3,654 s3c2410_gen_memmap.h

            2004-05-07 08:48             4,417 smdk2410.h

                           2 File(s)          8,071 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\init

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48               263 version.c

            2004-05-07 08:48             3,021 main.c

                           2 File(s)          3,284 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\lib

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2006-08-30 14:10    <DIR>          priv_data

            2004-05-07 08:48               577 Config_cmd.in

            2004-05-07 08:48               350 Makefile

            2004-05-07 08:48            10,342 boot_kernel.c

            2004-05-07 08:48             8,103 command.c

            2004-05-07 08:48             1,321 ctype.c

            2004-05-07 08:48            3,332 exec.c

            2004-05-07 08:48             2,694 heap.c

            2004-05-07 08:48             4,160 load_file.c

            2004-05-07 08:48            13,371 md5.c

            2004-05-07 08:48            11,374 memory.c

            2004-05-07 08:48            11,221 memtst.c

            2004-05-07 08:48             4,530 misc.c

            2004-05-07 08:48             9,044 printk.c

            2004-05-07 08:48             1,218 reset_handle.c

            2004-05-07 08:48             3,618 string.c

            2004-05-07 08:48             2,267 time.c

                          16 File(s)         87,522 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\lib\priv_data

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48               419 Config.in

            2004-05-07 08:48                87 Makefile

            2004-05-07 08:48             7,612 mtdpart.c

            2004-05-07 08:48             6,685 param.c

            2004-05-07 08:48             5,853 rw.c

                           5 File(s)         20,656 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\scripts

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2006-08-30 14:10    <DIR>          lxdialog

            2004-05-07 08:48            12,287 Configure

            2004-05-07 08:48            24,422 Menuconfig

            2004-05-07 08:48             7,485 README.Menuconfig

                           3 File(s)         44,194 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\scripts\lxdialog

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48               234 BIG.FAT.WARNING

            2004-05-07 08:48             1,130 Makefile

            2004-05-07 08:48             9,765 checklist.c

            2004-05-07 08:48             5,384 colors.h

            2004-05-07 08:48             5,936 dialog.h

            2004-05-07 08:48             6,179 inputbox.c

            2004-05-07 08:48             6,023 lxdialog.c

            2004-05-07 08:48            12,844 menubox.c

            2004-05-07 08:48             2,529 msgbox.c

            2004-05-07 08:48            15,584 textbox.c

            2004-05-07 08:48             9,927 util.c

            2004-05-07 08:48             3,067 yesno.c

                          12 File(s)         78,602 bytes

             

             Directory of E:\s3c2410_vivi_r1.1\util

             

            2006-08-30 14:10    <DIR>          .

            2006-08-30 14:10    <DIR>          ..

            2004-05-07 08:48            10,711 imagewrite.c

            2004-05-07 08:48               113 README

            2004-05-07 08:48             3,186 ecc.c

            2004-05-07 08:48            28,012 imagewrite

            4 File(s)         42,022 bytes

            2. vivi 的編譯

            This section describes how to compile the vivi.

            2.1. Pre-Requirements

            Here is a list of the minimum levels of software necessary to compile the vivi.

             

            * Gnu C 2.95.3

             

            * Gnu make 3.79.1

             

            * binutils 2.11.2

             

            And then, your host platform are installed these tools.

             

            * You have a cross-compiler and tool-chains.

             

            * You have a Baurne-Again shell. (/bin/bash)

             

            * You have a ncurses library.

            2.2. Straight-forward compilation

            The compiliation(configuration) environment of the vivi is simlilar to the environment of the linux kernel. So, you can do make distclean, make clean, make oldconfig , make menuconfig, and make config. General compiling sequence sequence is:

             

            1) make distclean

             

            2) make menuconfig

             

            3) make

             

            Note that If you change configurations, run make clean and make. Next two sections describes compilation of two examples.

            2.3. SA-1110-Based machines with the NOR flash

            I will take an example about the vivi compliation. I assumed that a target platform's core block is composed like this:

             

            * CPU: SA-1110 processor

             

            * ROM: 32MB Intel Strata Flash (32-bit wide)

             

            * RAM: 32MB DRAM

             

            These features make sense to you. Many platforms I have met is designed core block like above. For instance, KINGS, GILL, and ENDA's core block is designed like this. Therefore, you refer to vivi/arch/def-configs/kings, vivi/arch/def-configs/gill, and vivi/arch/def-configs/enda

             

            If you want to compile vivi for KINGS(i.e. a configuration of a target board, alredy exist in the vivi/arch/def-cofnigs), just do like this:

             

            # make kings

             

            Other machines can complie same ways.

            2.4. S3C2410-Based machines with the NAND flash

            Here, I will take an example about a S3C2410-Based machine. The SMDK-2410 (a development board by SAMSUNG) is a S3C2410-Based machine.The core block of SMDK-2410 is composed like this:

             

            * CPU: S3C2410

            * ROM: 64MB SMC (NAND Flash)

            * RAM: 64MB DRAM

             

            A configuration for SMDK-2410 will be found atvivi/arch/def-configs/smdk2410. To compile for SMDK-2410, do like this(As I described above):

             

            # make smdk2410

            3. vivi的使用

            3.1. Interface between an user and the vivi

            The vivi uses the serical communication for user interface. Therefore, to connect the vivi, you

            1) connect a serial cable between host platform and target platform.

            2) already have a serial communication program like the minicom.

            3) properly make the vivi binary to support a UART port when you configure the vivi.

             

            If all of above is ok, you can see messages on the screen printed by the vivi. For example, below messages catched from the SMDK-2410

             

            VIVI version 0.1.4 (nandy@nandy.mizi.com) (gcc version 2.95.2 20000516 (release)

             

            [Rebel.com]) #0.1.4 10 16 16:19:11 KST 2002

             

            MMU table base address = 0x33DFC000

             

            Succeed memory mapping.

            NAND device: Manufacture ID: 0xec, Chip ID: 0x75 (Samsung KM29U256T)

            Found saved vivi parameters.

             

            Press Return to start the LINUX now, any other key for vivi

             

            See the last line on the screen. (As I mentioned section 1.1) the vivi has two mode: an autoboot mode and a prompt mode. The vivi wait for a key input. If an user want to enter the prompt mode, press andy key (except Enter key). And then you can see the "vivi>" prompt. Otherwise, the vivi try boot the linux kernel after waiting a few seconds or minutes.

            3.2. Built-in user commands

            This is not full-described built-in user comamnd. But following commands is enough to use the vivi (as far as I know).

            3.2.1. load command

            A load command is loading binaries to the flash or the ram.

             

            Usage:

             

            load [ | ]

             

            This argument is where to load. Availabe values are *flash* and *ram*.

             

            [ ] or [ ]

             

            This arguement determines location where to load a binary. If you want to use pre-defined mtd partiton informations, just type a partition name. Otherwise you specify an address and a size.

             

            This arguement determines the file transfer protocol. I shy that the vivi only supprot xmodem curruntly. So, Available value is "x".

             

            For exampe, you load zImage to flash memroy.

             

            vivi > load flash kernel x

             

            or you specify an address and a size.

             

            vivi > load flash 0x80000 0xc0000 x

            3.2.2. part command

            The vivi has mtd partiton informations for the vivi. This informatin not related to mtd partition informations of mtd device drivers. The vivi uses partition informations when load a binary, boot the linux kernel, erase flash memroy, etc...

             

            Avalilable commands are:

             

            Display mtd partition informations.

             

            part show

             

            Add a new mtd partition.

             

            part add

             

            is name of a new mtd partiton.

            is offset in the mtd device.

            is a size of a mtd parition.

            is flags of a mtd parition. Available valuse are JFFS2, LOCKED, and BONFS.

             

            Delete a mtd partiton.

             

            part del

             

            Reset mtd partitions to default values.

             

            part reset

             

            Save paramter valuse and mtd parition informations to flash permanently.

             

            part save

            3.2.3. param command

            The vivi has some parameter values. For example, the "boot_delay" paramter determines how long wait keystroke when the vivi is in the autoboot mode. I'm sorry that this feature is in progress. So all listed parameter is not available.

             

            Here, I give several tips for you.

             

            If you change the "linxu command line",

             

            vivi> param set linux_cmd_line "you wish.."

             

            If you want to see paramters,

             

            vivi> param show

             

            If you want to wait a long time when recevie file via xmodem,

             

            vivi> param set xmodem_initial_timeout 3000000

             

            If you want to boot imediately when a hardware reset,

             

            vivi> param set boot_delay 100000

            3.2.4. boot command

            A boot command is boot the linux kernel which is stored in the flashmemroy or ram.

             

            Usage:

             

            boot [ | ]

             

            This argument is where to store the linux kernel image. Availabe values are ram, nor and smc.

             

            [ ] or [ ]

             

            This arguement determines location where to store the linux kernel. If you want to use pre-defined mtd partiton information, just type a partition name. Otherwise you shuld specify an address and a size.

             

            Note that all argument is optional. If you omit all argument (just type boot), all arguments is parsing from pre-defined mtd parititon information called "kernel" For example,

             

            vivi> boot

             

            the vivi read the linux kernel binary from the "kernel" mtd parititons.

             

            vivi> boot nor 0x80000

             

            the vivi read the linux kernel binary form the nor flash memory. The offset is 0x80000 and the size is default value (0xc0000). Ocassionally, you want to test the kernel on the ram (not store kernel to flash). you can do it on the vivi On the SA-1110 based machine,

             

            vivi> load ram 0xc0008000 x

             

            vivi> boot ram

             

            On the S3C2410 based machine,

             

            vivi> load ram 0x30008000 x

             

            vivi> boot ram

             

            On the PXA-240 based machine,

             

            vivi> load ram 0xA0008000 x

             

            vivi> boot ram

             

            the vivi boot the linux kernel from the ram.

            3.2.5. flash command

            A flash comamnd manages the flash memory. If you want to erase flash memory,

             

            flash erase [ | ] 
             

            Feedback

            # re: 幾種Bootloader簡介  回復  更多評論   

            2008-06-21 00:49 by 地磅解碼器
            fdsafafafa
            无码任你躁久久久久久久| 无码国内精品久久人妻蜜桃 | 亚洲AV无码久久| 久久人人爽人人爽人人AV东京热| 无码人妻久久一区二区三区免费丨| 久久无码人妻一区二区三区午夜| 久久久久亚洲精品无码蜜桃| 国内精品免费久久影院| 国产精品久久久久久久久久影院 | 亚洲国产成人乱码精品女人久久久不卡 | 久久国产综合精品五月天| 久久综合久久美利坚合众国| 久久久久99精品成人片欧美| 久久精品国产一区二区电影| 蜜臀av性久久久久蜜臀aⅴ麻豆| 国产高清国内精品福利99久久| 亚洲精品午夜国产VA久久成人| 久久e热在这里只有国产中文精品99 | 国产高潮国产高潮久久久91| 日日躁夜夜躁狠狠久久AV| 久久综合一区二区无码| 久久国产精品99精品国产987| 久久精品国产亚洲AV蜜臀色欲| 精品欧美一区二区三区久久久| 蜜臀av性久久久久蜜臀aⅴ麻豆 | 久久亚洲精品成人av无码网站| 久久久久人妻一区精品果冻| 久久精品国产一区| 久久亚洲中文字幕精品有坂深雪| 国产精品亚洲综合久久| 久久人搡人人玩人妻精品首页 | 日韩av无码久久精品免费| 亚洲国产小视频精品久久久三级| 国产精品一久久香蕉国产线看 | 亚洲国产精品综合久久网络| 国产高清美女一级a毛片久久w| 狠狠久久亚洲欧美专区| 88久久精品无码一区二区毛片| 国产国产成人精品久久| 情人伊人久久综合亚洲| 91久久成人免费|