$ln-su-boot-0.4.5u-boot
$cdu-boot
5.3配置
$exportBUILD_DIR=/opt/eldk/build//指定编译的输出目录
进入U-Boot源代码根目录后,可以先使用如下命令确保已经清除以前编译的结果:
$makedistclean
下一步是为Makalu板配置U-Boot:
$makemakalu_config
(译者注:
应该根据你自己的具体开发板配置,如$make_config,如果没有相应的开发板,应该自己照着建立相应的目录和配置文件。
)
最后我们可以开始编译U-Boot了:
$makeall
5.4安装
5.4.1动手之前
5.4.1.1安装所需
以下的章节假定你的开发板使用flash作为存储设备。
如果不是,则以下的指令不会工作。
如果你想使用U-Boot,需要换掉存储设备。
5.4.1.2开发板识别数据
所有的Makalu开发板使用一个序列号加以识别。
而且开发板需要分配一个以太网MAC地址。
如果这些数据丢失,你可能会失去授权。
在安装U-Boot或者改变开发板的配置之前,你需要搜集足够的信息。
5.4.2使用BDM/JTAG调试器安装U-Boot.bin
把数据烧入flash中的一个简单而又快速的办法是通过BDM或者JTAG接口的调试器或者flash烧写器。
当flash中没有任何数据(比如说一块新的开发板),这种方法是唯一的选择。
我们(强烈推荐)使用Abatron公司的BDI2000(见http:
//www.abatron.ch/BDI/bdiGDB.html)。
其它的BDM/JTAG调试器也可以使用,但是如何操作它们不是本文档要讨论的范围。
如果你想使用别的工具请参照它们的说明文档。
(我没有使用BDI2000,故略去操作BDI2000的方法。
我烧写u-boot.bin就是简单地通过JTAG口。
)
5.4.3使用U-Boot安装U-Boot.bin
如果U-Boot已经在你的板子上安装运行,你可以使用这些命令来下载新的U-Boot映像来代替当前的。
警告:
在你安装新的映像之前,你必须擦除当前的u-boot.bin。
如果出现什么差错,你的开发板将不能运行。
因此强烈建议:
做一个能工作的U-Boot映像文件的备份;
你清楚如何在一个新的开发板上安装u-boot.bin。
过程如下:
=>tftp100000/tftpboot/uboot.bin
ARPbroadcast1
TFTPfromserver10.0.0.2;ourIPaddressis10.0.0.100
Filename””/tftpboot/uboot.bin””.
Loadaddress:
0×100000
Loading:
###############################
done
Bytestransferred=155376(25ef0hex)
=>protectoff400000004003FFFF
Un-Protected5sectors
=>era400000004003FFFF
EraseFlashfrom0×40000000to0×4003ffff
………done
Erased5sectors
=>cp.b10000040000000$(filesize)
CopytoFlash…done
=>setenvfilesize
=>saveenv
SavingEnviromenttoFlash…
Un-Protected1sectors
ErasingFlash…
..done
Erased1sectors
WritingtoFlash…done
Protected1sectors
=>reset
5.5工具的安装
U-Boot加载Linux内核、Ramdisk或者其它映像时使用一种特殊的映像格式。
这种格式包含了一些信息,如创建时间、操作系统、压缩格式、映像类型、映像名和CRC32校验和。
mkimage用来创建这种格式的映像文件或者显示它包含的信息。
如果使用ELDK,那么mkimage这个命令已经包含在ELDK中。
如果你不想使用ELDK,你应该把mkimage安装在某个能够直接执行的目录里,比如:
$cptools/mkimage/usr/local/bin/
5.6初始化
初始化你的Makalu板上的U-Boot,你需要通过终端连接板子的串口。
Makalu板的串口默认配置是波特率为115200/8N1(115200bps,每个字符8bit,无奇偶校验,1bit停止位,无握手)。
如果你的主机是Linux操作系统,我们建议你用kermit或者cu作为终端控制程序。
确定硬件和软件控制流都已经关闭。
5.7开始的步骤
在默认配置中,U-Boot运行在一种互动模式,它通过串口“UART1”提供命令行形式的用户接口。
这意味着U-Boot显示一个提示符(默认是:
=>),等待着接受用户的输入。
然后你输入一个命令,按下回车键。
U-Boot将运行这个命令,然后又出现提示符等待下一条命令。
你可以使用help(或者简单地一个?
)来查看所有的U-Boot命令。
它将会列出在你当前配置下所有支持的命令。
[请注意到尽管U-Boot提供了很多配置选项,并不是所有选项都支持各种处理器和开发板,有些选项可能在你的配置中并没有被选上。
]
=>help
?
-aliasfor‘help’
askenv-getenvironmentvariablesfromstdin
autoscr-runscriptfrommemory
base-printorsetaddressoffset
bdinfo-printBoardInfostructure
boot-bootdefault,i.e.,run‘bootcmd’
bootd-bootdefault,i.e.,run‘bootcmd’
bootelf-BootfromanELFimageinmemory
bootm-bootapplicationimagefrommemory
bootp-bootimagevianetworkusingBootP/TFTPprotocol
bootstrap-programtheI2CbootstrapEEPROM
bootvx-BootvxWorksfromanELFimage
cmp-memorycompare
coninfo-printconsoledevicesandinformation
cp-memorycopy
crc32-checksumcalculation
date-get/set/resetdate&time
dhcp-invokeDHCPclienttoobtainIP/bootparams
dtt-DigitalThermometerandThermostat
echo-echoargstoconsole
eeprom-EEPROMsub-system
erase-eraseFLASHmemory
exit-exitscript
ext2load-loadbinaryfilefromaExt2filesystem
ext2ls-listfilesinadirectory(default/)
fatinfo-printinformationaboutfilesystem
fatload-loadbinaryfilefromadosfilesystem
fatls-listfilesinadirectory(default/)
fdt-flatteneddevicetreeutilitycommands
flinfo-printFLASHmemoryinformation
getdcr-GetanAMCCPPC4xxDCR’svalue
getidcr-GetaregistervalueviaindirectDCRaddressing
go-startapplicationataddress‘addr’
help-printonlinehelp
icrc32-checksumcalculation
iloop-infinitelooponaddressrange
imd-i2cmemorydisplay
iminfo-printheaderinformationforapplicationimage
imls-listallimagesfoundinflash
imm-i2cmemorymodify(auto-incrementing)
imw-memorywrite(fill)
imxtract-extractapartofamulti-image
inm-memorymodify(constantaddress)
iprobe-probetodiscovervalidI2Cchipaddresses
irqinfo-printinformationaboutIRQs
isdram-printSDRAMconfigurationinformation
itest-returntrue/falseonintegercompare
loadb-loadbinaryfileoverserialline(kermitmode)
loads-loadS-Recordfileoverserialline
loady-loadbinaryfileoverserialline(ymodemmode)
loop-infinitelooponaddressrange
loopw-infinitewritelooponaddressrange
md-memorydisplay
mdc-memorydisplaycyclic
mii-MIIutilitycommands
mm-memorymodify(auto-incrementing)
mtest-simpleRAMtest
mw-memorywrite(fill)
mwc-memorywritecyclic
nand-NANDsub-system
nboot-bootfromNANDdevice
nfs-bootimagevianetworkusingNFSprotocol
nm-memorymodify(constantaddress)
pci-listandaccessPCIConfigurationSpace
ping-sendICMPECHO_REQUESTtonetworkhost
printenv-printenvironmentvariables
protect-enableordisableFLASHwriteprotection
rarpboot-bootimagevianetworkusingRARP/TFTPprotocol
reginfo-printregisterinformation
reset-PerformRESEToftheCPU
run-runcommandsinanenvironmentvariable
saveenv-saveenvironmentvariablestopersistentstorage
setdcr-SetanAMCCPPC4xxDCR’svalue
setenv-setenvironmentvariables
se