【任务2】启动到u-boot command line
本文是原「蜗窝讨论区」的历史存档(2016-06-01),来自版块「X Project」,共 8 帖。讨论区已停止服务,此处仅供查阅。
任务说明 通过“【任务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,进入命令行[/*]
涉及的知识点 该任务主要涉及如下知识点:
SDRAM的配置和初始化(SDRAM driver)[/*]
u-boot driver model[/*]
u-boot device tree(和kernel中一模一样,可以统一学习)[/*]
u-boot UART driver[/*]
u-boot serial console[/*]
u-boot command line[/*]
完成任务的思路 相比“【任务1】启动过程-Boot from USB”,该任务比较简单,可以拆分为几个独立的部分:
SDRAM有关的任务。和具体的版型、SDRAM型号有关,代码量较小。 可以基于具体的板子,完成一篇SDRAM有关的硬件介绍的文章,并给出SDRAM初始化有关的步骤。然后在u-boot SPL的board_init_f函数中配置即可。[/*]
u-boot driver model有关的介绍和分析,写一篇文章即可。[/*]
u-boot device tree的编写、编译和使用,可以结合博客上的device tree的分析文章,从实战的角度,写一篇文章。[/*]
u-boot UART driver的设计和编写,要基于driver model和device tree。 和u-boot的UART框架,以及具体的板子有关,可以出两份文章,一份介绍具体板子UART有关的硬件,一份介绍u-boot的UART框架。文档完成后,直接编写具体板子的代码即可。[/*]
u-boot serial console和command line有关的内容,不需要任何的实现,可以写一篇文章,介绍相应的机制,以及使用方式。[/*]
u-boot启动流程的第2部分,从u-boot开始,到command line出来,可以写一篇介绍文章。[/*]
最后还是希望大家能捡一些力所能及的任务,和我们一起开发,不然我们全包了的话,太木有意思了(说实话,这些事情对我们来说太小菜一碟了),呵呵~~
任务总结 到目前为止(2016/07/27),该任务在bubblegum 96boards上基本完成,共有如下的文档和代码产出:
(/u-boot/boot_flow_2.html)[/*]
其中“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移植说明”)
[== Undefined ==]
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)代码编译
[== Undefined ==]
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并执行
[== Undefined ==]
sudo ../tools/dfu/dfu bubblegum 0xe406b200 ../tools/actions/splboot.bin 1
5)执行完毕后,会重新进入DFU模式,进入后,可以松开ADFU按键。
6)将u-boot上传到DDR并执行(注意上传位置和CONFIG_SYS_TEXT_BASE 一致)
[== Undefined ==]
sudo ../tools/dfu/dfu bubblegum 0x11000000 out/u-boot/u-boot-dtb.bin 1
7)使用串口连接开发板,将可以进入命令行。
我先认领个 SDRAM 的任务吧~ @wowo 有没有大概的 Deadline ?
Codingbelief 写道: 我先认领个 SDRAM 的任务吧~ @wowo 有没有大概的 Deadline ?
欢迎欢迎,我们没有schedule压力,因此没有deadline,大家玩的开心就行了。 SDRAM我觉得有两个重点:一是SDRAM本身,不知道容易搞到相应的资料不;二是要考虑一下SRAM driver的位置,SDRAM应该是machine和board的代码结合,但现在的思路是要跑起mach-xxx的概念,要想想怎样合适。 做的过程中大家可以在这里多讨论讨论。
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/samsungsemiconductor/pdfs/PSG2014_2H_FINAL.pdf)
2 u-boot driver model有关的介绍和分析,写一篇文章即可。 --->这个我来吧。
奔跑的蜗牛 写道: 2 u-boot driver model有关的介绍和分析,写一篇文章即可。 --->这个我来吧。
多谢,鼓掌欢迎~~~~
这个uboot就是实现fastboot类似的功能么?
lutingleo 写道: 这个uboot就是实现fastboot类似的功能么?
是的。
