免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2968 | 回复: 13

[g-bios] OMAP3 image 制作工具开发 [复制链接]

论坛徽章:
0
发表于 2011-10-11 11:35 |显示全部楼层
开发qemu所需的NAND以及SD image制作工具
Task List:
  • 开发NAND image制作工具,要求可灵活配置各个段(th、bh、kernel以及rootfs)的起始地址(用python或者C开发)
  • 开发SD image制作工具,并从SD启动bh、kernel并加载rootfs,制作rootfs的image时,需要支持常用的文件系统(yaffs2、jffs2、ext3以及ubifs)

论坛徽章:
0
发表于 2011-10-12 09:27 |显示全部楼层
0001-add-a-python-version-of-image-making-tool.patch.tar (10 KB, 下载次数: 26)

论坛徽章:
0
发表于 2011-10-12 10:32 |显示全部楼层
fix make data
0002-fix-make-data.patch.tar (10 KB, 下载次数: 14)

论坛徽章:
0
发表于 2011-10-12 21:25 |显示全部楼层
今天用python做了一个256M的sd image,利用qemu-nbd进行连接,对/dev/nbdN进行操作,成功分区并制作好ext3,并放上了MLO,但用qemu-system-arm运行时,omap3还是找不到设备。
疑问:利用qemu-nbd方式对一个256M的image有问题吗,因为这个image不是利用qemu来create的,是用脚本来生成的.

论坛徽章:
0
发表于 2011-10-12 21:43 |显示全部楼层
对qemu-nbd操作,发现一个问题:qemu-nbd -d /dev/nbdN (N 是具体的数),也就是disconnect 后,没有什么作用!它还是在运行的,可以用 ps -A 看到。要手动的kill了它,不然cpu的资源都被它用去了。

论坛徽章:
0
发表于 2011-10-14 11:21 |显示全部楼层
NAND image制作工具: 用python开发,可以根据各个段(th、bh、kernel以及rootfs)的起始地址,写入image中
SD image制作工具:现在支持的文件系统有:ext2 ext3以及vfat, ubi文件系统还在测试着

直接打这个patch就可以了, 之前发的patch不用了。
0001-add-nandflash-and-sd-image-making-tools.patch.tar (10 KB, 下载次数: 20)

0001-add-nandflash-and-sd-image-making-tools.patch.tar

10 KB, 下载次数: 22

论坛徽章:
0
发表于 2011-10-14 11:26 |显示全部楼层
目前的脚本在制作Nandflash的时候,block size、page size以及oob的size是写死的,这样明显不合适,应该用参数指定,例如用-b 指定block size,用-p指定page size等,具体的可以参考mkfs.jffs2命令的选项,当然,为了使得命令更加人性化,在没有参数的情况下默认为large page(即block size = 2048 bytes, oob = 64 bytes, 1pages = 64 blocks),或者在指定-b = 2048 bytes的情况下,参数为large page的参数。

论坛徽章:
0
发表于 2011-10-14 16:32
在前面的基础上,制作nandflash的脚本,添加了命令参数解析,可以指定一些参数,如下:

Usage:        ./bb_nandflash.py <-i image> <-o destimage>
        [-p page-size] [-b block-size] [-f oob-size]
-b        Block size (default: 64 page)
-f        OOB size (default: 64)
-i        Input image FILE (g-bios-th.bin, g-bios-bh.bin, zImage, rootfs)
        rootfs:        yaffs2, jffs2, ubifs
-o        Output to FILE
-p        Page size (default: 204
-h        display this help text
Examples:
        ./bb_nandflash.py -i g-bios-th -o flash.img
        ./bb_nandflash.py -i zImage -o flash.img
        ./bb_nandflash.py -i ubifs -o flash.img
        ./bb_nandflash.py -i g-bios-th -o flash.img -p 2048 -b 64 -f 64

只需打这个path即可。
0001-add-nandflash-and-sd-image-making-tools.patch.tar (20 KB, 下载次数: 1)

论坛徽章:
0
发表于 2011-10-14 19:03 |显示全部楼层
fix a bug

bb_nandflash.py:
" 56     image_pages = size / flash_page_size"  
flash_page_size 改成局部变量
0001-add-nandflash-and-sd-image-making-tools.patch.tar (20 KB, 下载次数: 13)

论坛徽章:
0
发表于 2011-10-15 15:34
本帖最后由 voidjackjiang 于 2011-10-15 15:46 编辑

针对这个patch我有两个建议:
  • 脚本的名字未必要和原先一样,可以叫crate_nandflash_image.py之类一看就知道是干嘛的名字
  • 目前脚本虽然支持默认oob size,但是更好的做法是依据-p的参数来指定默认的block size和oob size (目前不指定默认oob都是64 bytes)

几种常见的nandflash规格:

page size       block size     oob size
512 bytes      32 pages       16 bytes
1024bytes     64 pages       32 bytes
2048bytes     64 pages       64 bytes
4096bytes     64 pages       128 bytes
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP