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

作者:wowo 发布于:2016-7-21 22:47 分类:X Project

到目前为止,“X Project”在Bubblegum-96平台上的代码,都是运行在SRAM中。由于SRAM的size很小(最多也就96KB),如果要做更多的事情,就必须把DDR跑起来。不过,关于Bubblegum-96平台的DDR driver,我和codingbelief同学折腾了很久,试图找出一个最佳的方法,给大家呈现出DDR driver的开发方法和开发步骤。最终,受限于“资源”的短缺,还是失败了。

根据Bubblegum-96公开的资料,只知道它包含了一个2GB的、单bank的LPDDR,除此之外,找不到任何技术有关的细节,如LPDDR的datasheet、S900 DDR controller的说明、DDR时钟的配置等等。没有这些东西,我们根本无法完成DDR的配置,更不用说以此介绍、分析DDR driver了。

但是,虽然困难重重,“X Project”还是要进行下去,既然常规方法走不通,我们就采用一些非常规的手段,无论如何,还是能把DDR成功的初始化起来的。由于是非常规手段,当然就无法开源,也无法给大家讲解了。

因此,本文关于DDR的技术细节不多,主要目的是结合DDR的初始化,进一步介绍嵌入式linux开发的基本过程,包括如下知识点:

嵌入式Linux的启动过程。

u-boot SPL的使用场景。

u-boot启动过程中DDR初始化的流程。

阅读全文>>

标签: SDRAM u-boot spl ddr

评论(4) 浏览(10337)

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

作者:wowo 发布于:2016-7-9 21:47 分类:X Project

wowo觉得,在linux kernel新引入的众多子系统中,pinctrl subsystem是一个特别晦涩难懂的子系统,它所解决的问题,和它所引入的困扰,不相上下。在平时工作的过程中,年轻工程师问的最多的,就是在驱动中要怎么使用pinctrl?这样配置pinctrl到底是什么意思?等等。

对一个子系统来说,如果不能让它的使用者(consumer)很容易的理解和掌握,就宣告了它的失败。更不用说让它的提供者(provider)简单、快速地编写驱动程序了。

为什么会这样呢?通俗一点讲,就是“大炮打蚊子”。从技术的角度看,pinctrl是一个非常优秀的子系统,有着复杂而巧妙的封装和抽象,但它所要解决的问题,实际上非常简单、直白。这就造成了一个落差,从而带来了各种理解上的困惑。

正因为此,u-boot在照搬linux kernel pinctrl的同时,额外提供了一种简洁的方法。本文将借助“X Project” u-boot中pin control driver的移植过程,介绍、分析这种方法,并以此理解pinctrl的本质。

与此同时,我们会基于“X-005-UBOOT-device tree移植(Bubblegum-96平台)”,扩展对device tree的使用,以加深对device tree的理解和掌握。

阅读全文>>

标签: subsystem u-boot porting pinctrl

评论(8) 浏览(11075)

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

作者:wowo 发布于:2016-6-29 22:14 分类:X Project

我们在“X-004-UBOOT-串口驱动移植(Bubblegum-96平台)”中,简单介绍了u-boot中serial driver的移植过程。由于serial driver是u-boot移植中的第一个driver,为了方便debug,并没有引入device tree。在serial driver ready之后,基本的console功能已经okay,基于此,我们可以着手增加device tree功能。

很久以前,我们在博客上写了三篇device tree的分析文章(Device Tree(一):背景介绍Device Tree(二):基本概念Device Tree(三):代码分析),这些文章的目的是介绍device tree背后的思想、原理、实现方法、等等,偏重于理论,相信给大家制造了不小的“心里压力”。

因此,本文将以“X Project”为契机,从实践的角度,以使用者的视角,介绍device tree使用方法。相信通过本文,大家对device tree的理解会上一个新台阶,达到化繁为简、随心所欲的境地。

阅读全文>>

标签: dts u-boot porting device_tree dtc dtb

评论(8) 浏览(14949)

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

作者:wowo 发布于:2016-6-18 9:56 分类:X Project

话说现在的u-boot长得和linux kernel越来越像,设备模型(driver model)、device tree、各种framework(gpio、pinctrl、clock、i2c、regulator、等等),各种概念,均和linux kernel保持一致。这对工程师(特别是linux驱动工程师)来说,是一个利好,因为熟悉了linux kernel相关子系统之后,去搞u-boot基本上就毫无压力了。

不过,对“蜗窝”来说,压力(或者说矛盾)就来了:要不要为u-boot中相关的子系统写分析文章?写吧,实在提不起兴趣,毕竟和kernel类似,我们的重点又在kernel分析上。不写吧,不符合我们的风格啊!

最后,鉴于时间的压力,只能选一个折衷方案:

对于“X Project” u-boot移植过程所涉及的driver模块,只写一篇移植说明,至于其它的,只能战略性放弃(当然,如果有同学有兴趣帮忙补上,我们还是很欢迎的)。

本文是这类文章的第一篇,介绍串口驱动(serial driver)的移植过程。因为u-boot跑起来之后,第一件事就是要把串口输出(console)准备好,以便后续模块的debug。

阅读全文>>

标签: uart x project u-boot uboot porting serial

评论(10) 浏览(13824)

X-003-UBOOT-基于Bubblegum-96平台的u-boot移植说明

作者:wowo 发布于:2016-5-29 18:00 分类:X Project

本文是X Project “【任务1】启动过程-Boot from USB”的一部分,将以“Bubblegum 96boards”为例,介绍将u-boot移植到一个新的平台上的步骤和方法,并以此为契机,分析、理解u-boot的编译过程。

阅读全文>>

标签: bubblegum uboot porting

评论(42) 浏览(22631)

X-002-HW-S900芯片boot from USB有关的硬件描述

作者:wowo 发布于:2016-5-12 22:01 分类:X Project

本文将以S900芯片[1]为例,介绍和“【任务1】启动过程-Boot from USB有关的硬件行为。其它人可以借鉴该文档,描述自己所使用平台的硬件特性,以完成该任务。

为了方便操作,这里以“填空题”的形式,给出我们关心的key point,只要我们能够把这些填空题完成,就可以放心的去coding了。题目如下:

1)CPU上电后,从哪种设备(                )的哪个地址(                )开始执行。

2)用(                )方式,可以让CPU进入USB download(或者UART download)模式。

3)进入USB download之后,设备使用哪个USB接口(        )和主机通信。

4)进入download模式后,哪一段地址范围(通常为SRAM)可以用来执行程序:(                )~(                ),size有多大(                )

5)用什么协议(                )可以通过USB将bin文件上传到指定的地址。

6)用什么协议(                )可以让CPU跳转到到指定地址继续执行。

注1:Boot这一块的资料,国内的IC设计厂商给出的资料都是语焉不详,从哪里得到有用的信息,是一个相当困难的事情。大家只能各显神通了。

阅读全文>>

标签: USB s900 hw boot

评论(18) 浏览(13949)

X-001-PRE-git介绍及操作记录

作者:wowo 发布于:2016-4-26 22:27 分类:X Project

git是一个高效、实用的版本管理工具,但并不是一个容易掌握的工具,刚接触的时候,总有一种云里雾里的感觉。因此本文将结合“X Project”的开发过程,记录git的操作记录,从实战的角度,理解并学习git。

注1:有关“X Project”的介绍和讨论,可参考“http://www.wowotech.net/forum/viewtopic.php?id=2”。

阅读全文>>

标签: git remote push origin commit

评论(17) 浏览(15110)

X-000-PRE-开发环境搭建

作者:wowo 发布于:2016-4-23 20:20 分类:X Project

本文是“X Project”的第一篇文章,介绍怎么从零开始搭建“X Project”的开发环境(同样适用于其它的嵌入式Linux开发)。通过该过程,可以使读者对嵌入式Linux开发的基本流程有一个简单的了解,以达到“知其然、知其所以然”的目的。

注1:有关“X Project”的介绍和讨论,可参考“http://www.wowotech.net/forum/viewtopic.php?id=2”。

阅读全文>>

标签: x project git gerrit build environment

评论(31) 浏览(16246)

Copyright @ 2013-2015 蜗窝科技 All rights reserved. Powered by emlog