蜗窝讨论区

慢下来,享受技术

您尚未登录。

#1 2016-06-01 22:26:28

wowo
管理员
注册时间: 2016-04-18
帖子: 221

【任务2】启动到u-boot command line

1. 任务说明

通过“【任务1】启动过程-Boot from USB”,我们已经可以通过USB将一个二进制文件,上传到板子的SRAM中并执行。基于此,我们可以展开第二个任务:启动到u-boot的命令行。完成该任务的基本步骤包括:

  • 通过USB DFU操作,将u-boot SPL image上传到SRAM中并运行

  • u-boot SPL,初始化板子的SDRAM后,退出

  • 通过USB DFU操作,将u-boot image上传到SDRAM中并运行

  • u-boot启动后,初始化UART,并执行UART console,进入命令行

2. 涉及的知识点

该任务主要涉及如下知识点:

  • SDRAM的配置和初始化(SDRAM driver)

  • u-boot driver model

  • u-boot device tree(和kernel中一模一样,可以统一学习)

  • u-boot UART driver

  • u-boot serial console

  • u-boot command line

3. 完成任务的思路

相比“【任务1】启动过程-Boot from USB”,该任务比较简单,可以拆分为几个独立的部分:

  1. SDRAM有关的任务。和具体的版型、SDRAM型号有关,代码量较小。
    可以基于具体的板子,完成一篇SDRAM有关的硬件介绍的文章,并给出SDRAM初始化有关的步骤。然后在u-boot SPL的board_init_f函数中配置即可。

  2. u-boot driver model有关的介绍和分析,写一篇文章即可。

  3. u-boot device tree的编写、编译和使用,可以结合博客上的device tree的分析文章,从实战的角度,写一篇文章。

  4. u-boot UART driver的设计和编写,要基于driver model和device tree。
    和u-boot的UART框架,以及具体的板子有关,可以出两份文章,一份介绍具体板子UART有关的硬件,一份介绍u-boot的UART框架。文档完成后,直接编写具体板子的代码即可。

  5. u-boot serial console和command line有关的内容,不需要任何的实现,可以写一篇文章,介绍相应的机制,以及使用方式。

  6. u-boot启动流程的第2部分,从u-boot开始,到command line出来,可以写一篇介绍文章。

最后还是希望大家能捡一些力所能及的任务,和我们一起开发,不然我们全包了的话,太木有意思了(说实话,这些事情对我们来说太小菜一碟了),呵呵~~

4. 任务总结

到目前为止(2016/07/27),该任务在bubblegum 96boards上基本完成,共有如下的文档和代码产出:

  1. u-boot启动流程分析(2)_板级(board)部分

  2. X-004-UBOOT-串口驱动移植(Bubblegum-96平台)

  3. X-005-UBOOT-device tree移植(Bubblegum-96平台)

  4. X-006-UBOOT-pinctrl driver移植(Bubblegum-96平台)

  5. X-007-UBOOT-DDR的初始化(Bubblegum-96平台)

  6. X-008-UBOOT-支持命令行(Bubblegum-96平台)

其中“X-005-UBOOT-device tree移植(Bubblegum-96平台)”、“X-006-UBOOT-pinctrl driver移植(Bubblegum-96平台)”并不是该任务的必要步骤。而“X-007-UBOOT-DDR的初始化(Bubblegum-96平台)”,为关键步骤,但受限于资源的缺乏,无法给大家呈现移植过程。

可以通过如下步骤在板子上验证:
1)代码下载(具体可参考“X-003-UBOOT-基于Bubblegum-96平台的u-boot移植说明”)

mkidr -p ~/work/xprj
cd ~/work/xprj
git clone https://github.com/wowotechX/build
git clone https://github.com/wowotechX/u-boot
git clone https://github.com/wowotechX/tools

2)代码编译

cd build
make env_prepare    #下载交叉编译工具,只需要执行一次即可
make libusb             #只需要执行一次
make dfu                 #只需要执行一次
make uboot

3)按住Bubblegum-96的ADFU键,使板子进入DFU模式

4)按住Bubblegum-96的ADFU键不松开,将splboot.bin(就是我们的SPL image)上传到SRAM并执行

sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1

5)执行完毕后,会重新进入DFU模式,进入后,可以松开ADFU按键。

6)将u-boot上传到DDR并执行(注意上传位置和CONFIG_SYS_TEXT_BASE 一致)

sudo ../tools/dfu/dfu bubblegum 0x11000000 out/u-boot/u-boot-dtb.bin 1

7)使用串口连接开发板,将可以进入命令行。

离线

#2 2016-06-01 23:56:03

Codingbelief
版主
注册时间: 2016-05-07
帖子: 8

Re: 【任务2】启动到u-boot command line

我先认领个 SDRAM 的任务吧~ @wowo 有没有大概的 Deadline ?

离线

#3 2016-06-02 08:56:51

wowo
管理员
注册时间: 2016-04-18
帖子: 221

Re: 【任务2】启动到u-boot command line

Codingbelief 说:

我先认领个 SDRAM 的任务吧~ @wowo 有没有大概的 Deadline ?

欢迎欢迎,我们没有schedule压力,因此没有deadline,大家玩的开心就行了。
SDRAM我觉得有两个重点:一是SDRAM本身,不知道容易搞到相应的资料不;二是要考虑一下SRAM driver的位置,SDRAM应该是machine和board的代码结合,但现在的思路是要跑起mach-xxx的概念,要想想怎样合适。
做的过程中大家可以在这里多讨论讨论。

离线

#4 2016-06-02 10:42:43

wowo
管理员
注册时间: 2016-04-18
帖子: 221

Re: 【任务2】启动到u-boot command line

wowo 说:
Codingbelief 说:

我先认领个 SDRAM 的任务吧~ @wowo 有没有大概的 Deadline ?

欢迎欢迎,我们没有schedule压力,因此没有deadline,大家玩的开心就行了。
SDRAM我觉得有两个重点:一是SDRAM本身,不知道容易搞到相应的资料不;二是要考虑一下SRAM driver的位置,SDRAM应该是machine和board的代码结合,但现在的思路是要跑起mach-xxx的概念,要想想怎样合适。
做的过程中大家可以在这里多讨论讨论。

补充一下bubblegum所使用的SDRAM的信息(板子后面可以看到):
两颗LPDDR,型号为K4E8E304EE-EGC
8Gb 1CH x32 K4E8E304EE-EGCE 178-FBGA, 11x11.5, DDP, 1600Mbps 1.8V/1.2V/1.2V Now
http://www.samsung.com/us/samsungsemico … _FINAL.pdf

离线

#5 2016-06-02 16:58:40

奔跑的蜗牛
会员
注册时间: 2016-06-01
帖子: 1

Re: 【任务2】启动到u-boot command line

2 u-boot driver model有关的介绍和分析,写一篇文章即可。
--->这个我来吧。

离线

#6 2016-06-02 17:10:38

wowo
管理员
注册时间: 2016-04-18
帖子: 221

Re: 【任务2】启动到u-boot command line

奔跑的蜗牛 说:

2 u-boot driver model有关的介绍和分析,写一篇文章即可。
--->这个我来吧。

多谢,鼓掌欢迎~~~~

离线

#7 2016-07-01 16:14:25

lutingleo
会员
注册时间: 2016-07-01
帖子: 2

Re: 【任务2】启动到u-boot command line

这个uboot就是实现fastboot类似的功能么?

离线

#8 2016-07-01 17:16:32

wowo
管理员
注册时间: 2016-04-18
帖子: 221

Re: 【任务2】启动到u-boot command line

lutingleo 说:

这个uboot就是实现fastboot类似的功能么?

是的。

离线

页脚