hsy75的个人空间 https://blog.eetop.cn/vivilife [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

[o][bz] Uboot 的实践 001

已有 1924 次阅读| 2013-6-6 09:52 |个人分类:practic_linux

嵌入式系统,如果不研究UBOOT,那么可以说你不是一个嵌入式工程师,本文着重选取了工作中遇到的一些UBOOT相关的实际问题。包括网上搜集的一些东西
【】为hsy75注解

1 uboot 的启动分区设置:这是系统软件配置的基本,根据,系统硬件所含的各种存储设备的大小,已经系统各种应用占用空间的设置来设置不同的启动分区:
1.1 基础命令:
1.1.1 gcs学习:(这也许是自己定义的cmd,使用可以参考ref 1:)
- gcs     - GCS sub-system
- gcs info 拿到系统的存储器配置
 @ gcs info
GCS Flash Info--
BOOT Device:--SFC Flash.【boot device】
ALT Flash Device:--NAND Flash.【系统硬件提供两块物理设备】

1.1.2 mtd 分区相关命令格式举例
set sfcparts "mtdparts=nx_sfc:1024k@0k(uldr),1024k@1m(u-boot),1024k@2m(settings),-(sfcextra)"
这是一个串行flash的分区设置命令:
说明如下:【】为注解
set【设置命令】 sfcparts【设置sfc串行flash】 "mtdparts【分区定义】=nx_sfc【设备名称】:1024k【uldr大小】@0k(uldr)【uldr起始地址】,1024k【uboot大小】@1m(u-boot)【uboot起始地址】,1024k@2m(settings),-(sfcextra)"

1.1.3 设备使用分类:

setenv ldrflsh 'sfc'

setenv knlflsh 'nand'

setenv fssflsh 'nand'


1.2 实例
设置一个以串行flash为启动,用nandflash装载微码或者应用数据的例子

1.2.1 MTD settings
gcs sel NAND 【系统自动选择启动设备】

set sfcparts "mtdparts=nx_sfc:1024k@0k(uldr),1024k@1m(u-boot),1024k@2m(settings),-(sfcextra)" 【设置串行flash分区】
set nandparts "nx_2017:1024k@0k(unused1),1024k@1m(unused2),6m@2m(kernel),64m@8m(root),200m@72m(appfs),400m@272m(datac),1024k@672m(splash1),1024k@673m(splash2),-(extra)"【设置nand分区】
set mtdids "$sfcids,$nandids"
set mtdparts "$sfcparts;$nandparts"

1.2.2  mtd 这个分区通用命令是检查你分区分配适合合理的必用工具。
 @ mtd
device sfc0 <nx_sfc>, # parts = 4
 #: name                size            offset          mask_flags
 0: uldr                0x0000100000    0x0000000000    0 【系统硬件启动设置,这一般在uboot之前就应该装载】
 1: u-boot              0x0000100000    0x0000100000    0
 2: settings            0x0000100000    0x0000200000    0
 3: sfcextra            0x0000500000    0x0000300000    0

device nand0 <nx_2017>, # parts = 9
 #: name                size            offset          mask_flags
 0: unused1             0x0000100000    0x0000000000    0
 1: unused2             0x0000100000    0x0000100000    0
 2: kernel              0x0000600000    0x0000200000    0
 3: root                0x0004000000    0x0000800000    0
 4: appfs               0x000c800000    0x0004800000    0
 5: datac               0x0019000000    0x0011000000    0
 6: splash1             0x0000100000    0x002a000000    0
 7: splash2             0x0000100000    0x002a100000    0
 8: extra               0x0015e00000    0x002a200000    0

1.2.3 write to the sfc
@sfc erase u-boot
@tftp u-boot.bin
@sfc write u-boot

@sfc erase uldr
@tftp  uldr.bin
@tftp uldr.bin.uartboot_img
@sfc write uldr


2 Uboot 的几种启动模式设置
2.1 flash 模式

2.2  NFS 模式 【假定已经建立tftp nfs samba模式】
setenv serverip 192.168.0.1
setenv ethaddr 00:06:37:03:15:01
setenv ipaddr 192.168.0.201
setenv ethport eth0
setenv gatewayip 192.168.0.1
setenv nfs_serverip "192.168.0.1"
@setenv rootfsargs "root=/dev/nfs rw nfsroot=${nfs_serverip}:/home/wine/nfs_serverfolder/rootfs_fd"
@setenv appfsargs "APPFS=${serverip}:/home/wine/nfs_serverfolder/apps_fd"
@setenv bootargs "noinitrd ip=${ipaddr}:${serverip}:192.168.0.1:255.255.255.0:${ethport} console=ttyS1,115200n8 ${mtdparts} ${rootfsargs} ${appfsargs}" 
@setenv bootcmd "tftp linuxkernel.bin; go 0x8000";setenv uboot_cmdline 1;save;

2.3 USB 模式

2.4 混合模式











ref:




点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 2

    粉丝
  • 1

    好友
  • 2

    获赞
  • 14

    评论
  • 3241

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-24 12:08 , Processed in 0.025554 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部