您的位置:首页 > 其它

[project X] tiny210 操作说明

2016-09-22 16:18 162 查看

零、项目说明

project X项目是由wowo发起的,希望能够在一个项目中可以支持多个板子的项目。

在wowo的project X项目上对友善之臂tiny210的板子进行支持。

目前已经可以正常启动到kernel commandline部分。

暂时只使用SDcard作为存储设备,后续会对nand flash进行支持。

欢迎有tiny210或者其他板子的同学也一起参与到这个项目来,让project x项目支持更多的板子。

一、准备操作

1、代码

github下载地址:

build https://github.com/wowotechX/build.git

uboot https://github.com/wowotechX/u-boot.git

kernel https://github.com/wowotechX/linux.git

tools https://github.com/wowotechX/tools.git

(1)git clone下载以上代码到同一目录下。

(2)由于tiny210没有合到主分支上,上述所有都需要切换到tiny210分支上,命令如下:

git checkout –track origin/tiny210

2、编译器

(1)进入build目录。

(2)在config.mk中配置如下(在tiny210分支上已经是默认了)

BOARD_NAME=tiny210
BOARD_ARCH=arm


(3)执行“make env_prepare

会下载arm-none-linux-gnueabi-4.8编译器。

3、软件

在制作ramdisk的过程中,需要安装genext2fs、gzip命令,可以通过apt-get install进行安装。

二、编译操作

以下都是在build目录下进行操作.

在config.mk中配置如下(在tiny210分支上已经是默认了):

BOARD_NAME=tiny210
BOARD_ARCH=arm


1、uboot

执行“make uboot

生成

out/u-boot/u-boot.bin

out/u-boot/spl/u-boot-spl.bin

out/u-boot/spl/tiny210-spl.bin

2、kernel、dtb

执行“make kernel

生成

out/linux/arch/arm/boot/Image

out/linux/arch/arm/boot/zImage

out/linux/arch/arm/boot/dts/s5pv210-tiny210.dtb

3、rootfs

tools/common/rootfs中就是根文件系统的一些东西。但是刚拉下的代码中busybox还是空的。

目前支持initramdisk格式的rootfs镜像和initramfs格式的rootfs镜像。

关于这两个格式的区别请参考http://blog.csdn.net/xys0610/article/details/52613149

(1)执行“make busybox

在rootfs中安装busybox

(2)如果要生成initramdisk格式rootfs

在config.mk中配置要生成的rootfs的格式为ramdisk

ROOTFS_IMAGE_TYPE=ramdisk


执行“make rootfs

生成

out/rootfs/ramdisk.img

out/rootfs/ramdisk.gz

(3)如果要生成initramfs格式rootfs

在config.mk中配置要生成的rootfs的格式为ramdisk

ROOTFS_IMAGE_TYPE=initramfs


执行“make rootfs

生成

out/rootfs/initramfs.img

out/rootfs/initramfs.gz

4、legacy_uimage & fit_uimage

这两种方式都是uboot用于启动kernel的方式。

具体区别可以参考wowo的http://www.wowotech.net/u-boot/fit_image_overview.html

4.1 制作传统uImage镜像

(0)如果需要生成传统格式的uimage,需要在config.mk中配置如下:

KERNEL_IMAGE_TYPE=legacy_uimage
UIMAGE_LOADADDR=0x20008000
UIMAGE_ENTRYADDR=0x20008040


(1)执行“make kernel-img” 生成

out/linux/arch/arm/boot/uImage

4.2 制作FIT镜像

(0)如果需要生成FIT格式的uimage,需要在config.mk中配置如下:

KERNEL_IMAGE_TYPE=fit_uimage
UIMAGE_LOADADDR=0x20008000
UIMAGE_ENTRYADDR=0x20008040


(1)执行“make kernel-img”,生成

out/xprj_uImage.itb

注意:4、5只需要根据uImage的格式选择其中一种。legacy_uimage是在zImage加上uboot使用的64B的头部。fit_uimage则是组合了Image(zImage)、ramdisk、dtb的镜像,uboot会对其进行解析。

三、烧录操作(使用SD card作为存储设备)

以下都是在tools/samsung/tiny210目录下操作

需要先执行“sudo fdisk -l”看看sdb是否已经存在,保证sdcard已经被挂载上了,可以通过命令进行烧写

0、使用SDcard来存放镜像

SDcard部署如下(扇区):

spl:                SEC_UBOOT_SPL=1-48(29KB)
uboot:            SEC_UBOOT=49-1072(512KB)
legacy_uimage:    SEC_UIMAGE=1073-5168(2MB)
dtb:                SEC_DTB=5169-5296(64KB)
ramdisk:            SEC_ROOTFS=5297-13488(4MB)
fit:                SEC_FIT_IMAGE_START=13489


1、uboot

需要保证上述<二、1><二、4>步骤完成

./flash_sdcard.sh uboot

会烧写spl.bin和uboot.bin到SDcard对应位置上。

2、kernel(legacy_uimage)& dtb

需要保证上述<二、2>步骤完成

./flash_sdcard.sh kernel

会烧写legacy_uimage和dtb到SDcard对应位置上。

3、rootfs(ramdisk)

需要保证上述<二、3>步骤完成

./flash_sdcard.sh rootfs

会烧写ramdisk到SDcard对应位置上。

4、fit-image

需要保证上述<二、5>步骤完成

./flash_sdcard.sh fit_image

会烧写fit uimage到SDcard对应位置上。

四、启动操作

0、说明

目前为了开发方便,在uboot中已经实现自动将镜像从SDCARD复制到ddr的对应位置上。

也就是说无需输入其他命令来复制镜像到ddr上。

ddr的部署如下:

legacy_uimage:0x20008000
dtb:0x22000000
ramdisk:0x21000000
fit_image:0x30000000


1、通过uimage、ramdisk、dtb启动kernel(也就是通过传统的uImage来启动kernel)

需要保证<三、1><三、2><三、3>步骤完成

在uboot的command line中,执行

bootm 0x20008000 0x21000000 0x22000000

到这里,kernel就跑起来了并且跑到了kernel的command line中。

其中,0x20008000 表示kernel在ddr上的位置,0x21000000表示rootfs镜像在ddr上的位置,0x22000000表示dtb文件在ddr上的位置

2、通过fit_uimage的方式来启动kernel(也就是通过FIT格式的uImage来启动kernel)

需要保证<三、4>步骤完成

在uboot的command line中,执行

bootm 0x30000000

0x30000000表示FIT文件在ddr中的为知,uboot会自动从FIT中解析出kernel、rootfs镜像和dtb在ddr上的位置。

到这里,kernel就跑起来了并且跑到了kernel的command line中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tiny210 project-X