AM35xOMAP35xPSP 0407 UserGuide 中文手册Word文档格式.docx
《AM35xOMAP35xPSP 0407 UserGuide 中文手册Word文档格式.docx》由会员分享,可在线阅读,更多相关《AM35xOMAP35xPSP 0407 UserGuide 中文手册Word文档格式.docx(23页珍藏版)》请在冰豆网上搜索。
4.2.2.4擦除Nand
4.2.2.5Nand的阅读
4.2.2.6Nand的阅读
4.2.2.7选择ECC校验
4.2.3nor的支持(仅在AM3517EVM)
4.2.4MUSB主机支持
4.3从uboot烧写
4.3.1OneNAND
4.3.1.1保存环境变量
4.3.1.2烧写x-loader
4.3.1.3烧写u-boot
4.3.1.4烧写Linux内核
4.3.1.5烧写JFFS2文件系统
4.3.2NAND
4.3.2.1保存环境变量
4.3.2.2烧写x-loader
4.3.2.3烧写uboot
4.3.2.4烧写Linux内核
4.3.2.5烧写JFFS2文件系统
4.3.3nor
5linux内核
5.1编译内核
5.2为内核选择对应的nandecc校验
5.3配置内核
5.4用正确的串口输出设备
5.5创建jffs2文件系统
5.6启动内核
5.6.1从nand启动
5.6.2从onenand启动
5.6.3从mmc启动
5.6.4从nor启动
6音频驱动程序
7视频显示驱动程序
8视频捕获驱动程序
9USB驱动程序
10MMC驱动程序
11以太网驱动程序
12电源管理
13电源管理IC
14TIHECCCAN控制器
先阅读以下内容(非常重要)
重要的变化
现在,Linux内核中的NAND驱动程序使用1位硬件ECC校验.。
x-loader和uboot必须使用相同的ECC校验。
所以,强制性的更新x-loader和uboot当使用来自这份文档中的linux内核。
文件系统也需要相应的更新。
详细的信息可以看TI的用户手册。
串口控制设备从ttySn变成了ttyOn.所以在bootarg里面需要改变一下你所选择的串口设备。
通过mkfs.jffs2制作jffs2文件系统也发生了改变
利用uboot烧写jffs2到nand的步骤也发生了改变
Beagleboard的板子已经被同步到TI支持的平台上。
在linux2.6.37中,根文件系统对于挺的项/proc/mounts已经发生了改变,这个可能导致初始化脚本失败。
举个例子,当你用nfs作为根文件系统的时候,文件系统里面的DHCP脚本可能就发生的变化。
内核输入子系统EV_VERSION已经更新到01.00.01.确定你的tilib也同步了,否则会导致错误。
关于本文档
本文档介绍了如何安装和用德州仪器平台支持包(PSP)作为OMAP35x,AM/DM37x,AM3517平台开发运行Linux的工具。
此PSP提供基础软件平台的开发、部署和执行。
它抽象化提供的硬件的功能。
在这个开发平台上用过应用程序开发的来得到产品。
安装系统要求
硬件要求:
▪ForAM/DM37x
▪OMAP3ProcessorModulewithAM37xES1.2
▪OMAP3EVMMainBoard(RevG)
▪BeagleXM(RevA1andlater)
▪ForAM3505/AM3517
▪AM3517ProcessorModulewithES1.2Si
▪AM3517EVM(RevC)
▪AM3517Applicationboard(RevC)
▪ForOMAP35x
▪OMAP3ProcessorModulewithOMAP35xES3.1orlater
▪Beagle(RevDandlater)
软件要求
安装CodeSourceryARMtoolchainversion2009-q1交叉编译器
重要信息
此版本已在以下平台上做过系统的测试
AM/DM37xSupport:
OMAP3EVM(rev.G)andAM/DM37xProcessorboardwithES1.2Si
AM3517Support:
AM3517EVM(RevC),Applicationboard(RevC)andES1.2Si
安装包包含的内容
$tar-xvfzAM35x-OMAP35x-LINUX-PSP-MM.mm.pp.bb.tgz
\---AM35x-OMAP35x-LINUX-PSP-MM.mm.pp.bb
|Software-manifest.html
+----docs
||----DataSheet-MM.mm.pp.bb.pdf
||----ReleaseNotes-MM.mm.pp.bb.pdf
||----am3517
||`----UserGuide-MM.mm.pp.bb.pdf
||----omap3530
+----host-tools
||----linux
||`----signGP
||----src
||`----signGP.c
+----images
||----boot-strap
|||----am3517
|||`----x-load.bin.ift
|||----omap3530
|||----beagle
||----kernel
|||`----uImage
||----u-boot
|||`----u-boot.bin
+----scripts
|||----Readme.txt
|||----initenv-micron.txt
||`----reflash-micron.txt
|||----initenv-samsung.txt
||`----reflash-samsung.txt
+----src
|----boot-strap
||----ChangeLog-MM.mm.pp.bb
||----ShortLog
||----Unified-patch-MM.mm.pp.bb.gz
||----diffstat-MM.mm.pp.bb
||----x-loader-patches-MM.mm.pp.bb.tar.gz
|`----x-loader-MM.mm.pp.bb.tar.gz
|----examples
||----examples.tar.gz
|----kernel
||----Readme.txt
||----kernel-patches-MM.mm.pp.bb.tar.gz
|`----linux-MM.mm.pp.bb.tar.gz
|----u-boot
|----Readme.txt
|----ChangeLog-MM.mm.pp.bb
|----ShortLog
|----Unified-patch-MM.mm.pp.bb.gz
|----diffstat-MM.mm.pp.bb
|----u-boot-patches-MM.mm.pp.bb.tar.gz
`----u-boot-MM.mm.pp.bb.tar.gz
环境变量设置
1.交叉编译环境的设置
$exportPATH=/opt/toolchain/2009-q1/bin:
$PATH
2.uImage制作小插件的环境设置
$exportPATH=/opt/u-boot/tools:
注意:
实际的设置采决于你实际路径的设置
设置启动模式
OMAP3EVM(OMAP35x,AM/DM37x)
SW4开关是选择x-loader和uboot启动的位置,注意:
nand和onenand的拨码开关的选择不一样。
用三星onenandEVM板的设置
从onenand启动,用以下任何一个设置:
从mmc启动(只有用三星onenand的EVM板),用以下任何一个选择:
用镁光nand的EVM板
从nand启动,用以下任何一个设置
从mmc启动(用镁光nand的EVM板),用以下任何一种方式启动:
SW4-6,SW4-7和SW4-8随便怎么设置,这些在上面显示为灰色
AM3517EVM
SW7开关是选择x-loader和uboot启动的位置,注意:
nand和onenand的拨码开关的选择不一样
从nand启动,用以下的设置
从mmc启动。
用以下的设置
Beagle/BeagleXM
比格犬板通过默认系统启动是在NAND的引导模式下,通过用户按钮"
S1"
选择启动模式,从MMC启动模式。
按S1按钮并保持按下并松开时按住重置按钮S2。
BeagleXM,只有MMC启动模式,支持的情况下只连接到GPIO4,并不会引导模式选择器的功能。
x-loader
X-loader是可执行文件bootloader,她是通过rom下载到ram执行,它对于初始化外部存储器非常重要,然后从你(nand,sd等)下载uboot。
X-loader支持从nand,mmc/sd和onenand启动。
编译x-loader
1.进入x-loader的目录
$cd./x-load
2.清除以前的配置
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=armdistclean
3.选择对应的板子的配置
▪ForOMAP3EVM:
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=armomap3evm_config
▪ForAM3517EVM:
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=armam3517evm_config
▪ForBeagle/BeagleXM:
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=armomap3beagle_config
4.启动生成x-loader
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=arm
如果成功了,x-loader.bin文件将会出现在你的当前目录
标记可执行文件x-loader
在当前目录下执行
$signGPx-load.bin
然后会生成xloader.bin.ift。
这是我们后面需要用的文件。
选择ECC校验模式
X-loader支持以下ECC校验,需要选择一下当你编译的时候
(4位硬件校验,8位硬件校验,1位软件校验)
你必须执行undefineECC_HW_ENABLE
1.Editthefileinclude/configs/<
board_config>
.h
Changefrom:
#defineECC_HW_ENABLE
Changeto:
#undefECC_HW_ENABLE
▪1-bithardwareECC:
LeaveECC_HW_ENABLEdefined.
Thisisthedefaultscheme.Tobuildthisscheme:
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=arm
▪4-bitBCHhardwareECC:
First,undefineECC_HW_ENABLEasdescribedabove.
Tobuildthisscheme:
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=armPLATFORM_RELFLAGS+='
-DFOUR_BIT_ERROR_CORRECT'
▪8-bitBCHhardwareECC:
-DEIGHT_BIT_ERROR_CORRECT'
▪1-bitsoftwareECC:
-DONE_BIT_ERROR_CORRECT'
U-boot
1.进入uboot目录
$cd./u-boot
3.选择对应的板子的uboot配
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=armomap3_evm_config
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=armam3517_evm_config
$makeCROSS_COMPILE=arm-none-linux-gnueabi-ARCH=armomap3_beagle_config
4.启动生成uboot
如果成功,当前目录会出现u-boot.bin文件
U-boot的功能
请看这个链接http:
//www.denx.de/wiki/view/DULG/UBoot
Onenand的支持
只有老一些的版本的OMAP3EVM板才支持三星的Onenand,默认的uboot配置是支持镁光的nand的,所有如果你想支持Onenand,那么你需要使能支持Onenand在配置文件里面。
标记一个坏块
OMAP3_EVM#onenandmarkbad<
offset>
举个例子,标记块32,(假设块大小事128bytes)作为坏块,offset=blocknum*128*1024:
OMAP3_EVM#onenandmarkbad0x400000
擦除Onenand
OMAP3_EVM#onenanderase<
stoffaddr>
<
endoffaddr>
举个例子
OMAP3_EVM#onenanderase0x004000000x00440000
0x00400000是开始地址,0x00440000是长度。
对于坏块的处理,请参考我写过的两篇文章:
向Onenand写信息
OMAP3_EVM#onenandwrite<
addr>
len>
打个比方
OMAP3_EVM#onenandwrite0x800000000x4000000x40000
从Onenand读信息
OMAP3_EVM#onenandread<
OMAP3_EVM#onenandread0x800000000x4000000x40000
把Onenand全部置1.
参考我上面的连接
Nand的支持
镁光和华力士的nand可以被支持
+------------+-->
0x00000000->
X-loaderstart
||
||-->
0x0007FFFF->
X-loaderend
0x00080000->
U-Bootstart
0x001BFFFF->
U-Bootend
0x001C0000->
ENVstart
0x0027FFFF->
ENVend
0x00280000->
LinuxKernelstart
0x0077FFFF->
LinuxKernelend
0x00780000->
Filesystemstart
0x10000000->
Filesystemend
OMAP3_EVM#nandmarkbad<
OMAP3_EVM#nandmarkbad0x400000
看你的标记的坏块
OMAP3_EVM#nandbad
擦除nand
OMAP3_EVM#nanderase<
OMAP3_EVM#nanderase0x004000000x40000
向nand写信息
OMAP3_EVM#nandread<
OMAP3_EVM#nandread0x800000000x4000000x40000
选择ECC校验
#nandecc[hw<
hw_type>
|sw|bch4_sw|bch8_sw]
Usage:
sw-SetsoftwareECCforNAND
hw<
-SethardwareECCforNAND
-1forKernel/FileSystemECClayout
2forX-loader/U-bootECClayout
bch4_sw-Set4-bitBCHECCforNAND
bch8_sw-Set8-bitBCHECCforNAND
(hw1issetasthedefaultnandecc)
NORSupport(OnlyonAM3517EVM)
请看这个连接
MUSBHostSupport
Uboot支持usb下载
初始化USB子系统
OMAP3_EVM#usbstart
找到空闲的USB设备
OMAP3_EVM#usbtree
查看MSC设备的文件系统信息
OMAP3_EVM#fatinfousbD:
P
这个命令可以查看MSC设备分区的文件系统的信息
从MSC下载文件
OMAP3_EVM#fatloadusbD:
P<
ADDR>
file-name>
这个命令会阅读置顶的MSC上的文件并且会写到指定的地址上
烧写uboot
Onenand
保存环境变量
打个比方,设置boorargs的变量
OMAP3_EVM#setenvbootargs'
mem=128Mconsole=ttyO0,115200n8noinitrdroot=/dev/mtdblock4rwrootfstype=jffs2'
OMAP3_EVM#saveenv
烧写x-loader
烧写MLO(x-load.bin.ift)
OMAP3_EVM#mw.b0x800000000xFF0x100000
OMAP3_EVM#tftp0x80000000MLO
OMAP3_E