DTS草稿之三

三、8572 DTS文件情景分析

1.根节点

    为了更清晰的说明怎样针对硬件平台编写一个dts文件,下面我们从8572的dts文件入手,进行一下仔细分析。dts的语法有些类似C语言的语法,我们在下面将看到这种相似性。

首先看到的是第12行有个“/ {”的标志,我们在dts文件的最后一行还会看到一个“};”,这里定义的就是我们前面提到的根节点,它定义的是单板级。“model”指定单板硬件平台的名字,#address-cells = <1>和#size-cells = <1>代表单板总线级地址为32位(1个cell),内存大小为32位(1个cell)。

2.CPU和MEMORY节点

接下来进行cpu节点的配置

    #cpus = <2>代表cpu子节点的个数为2。#address-cells = <1>代表cpu的地址为32位(1个cell)。

在cpu节点的下面还包含两个cpu子节点,其中第0号cpu子节点为

    device_type必须填为“cpu”,reg = <0>代表该节点是0号cpu,d-cache-line-size =<20> 和i-cache-line-size =<20>表示数据和指令的cache line的大小为0x20,cache每次和内存交换数据都是以cache line为单位的。d-cache-size = <8000>和i-cache-size = <8000>代表数据和指令cache的大小为0x8000。“32-bit”属性代表cpu是32位的。另外,第23行“PowerPC,8572”是cpu的名字,“@0”指定该cpu为0号cpu。合起来“PowerPC,8572@0”代表0号cpu的unit name。下面的1号cpu的描述也是一样的格式,这里不再叙述。接下来看看内存的配置情况。

这里是内存节点的表述,device_type必须填为“memory”,reg = <0000000000000000>代表的是内存的位置和大小,reg的格式是<mem_addr mem_size>,分别表示内存区的起始地址和大小,mem_addr和mem_size本身的数据长度延用上面根节点#address-cells = <1>和#size-cells = <1>的配置,即各用一个32位的数据来表示。这里填的都是00000000,是留给UBOOT初始化完内存区后填入的。

3.SOC子系统节点

    SOC子系统将分为根节点、I2C节点、MDIO节点、eTSEC节点、UART节点、PIC节点、SEC和UTILITIES节点。下面分别描述。

1)SOC子系统的根节点

表示是片上系统(SOC)的配置情况,它还将包含很多子节点如I2C、eTSEC、UART、PIC等。SOC总的配置为#address-cells = <1>和#size-cells = <1>表示SOC子系统内部的地址为32位,空间大小也为32位。#interrupt-cells = <2>表示每个中断属性“interrupts”将使用两个cell(每个cell为32位)表示,前一个32位表示中断号(对应中断控制器的输入),后一个32位表示中断触发模式的选择情况。对于和openPIC兼容的中断控制器,中断触发模式的设置为

对于普通ISA中断控制器(如i8259),中断触发模式的设置为

这里8572的SOC中使用的是openPIC,使用前一种中断触发模式的设置,这在后面设备中断具体设置中会用到。

另外,SOC子系统的device_type属性必须设置为"soc",ranges = <0 ffe0000000100000>由3个32位的数组成,它们各自代表的意义在前文中也有叙述,分别是“本设备的总线起始地址(bus address)”、“上一级父设备对应的总线起始地址(parent bus address)”、“本设备和父设备相互对应的总线地址大小(size)”。ranges = <0 ffe0000000100000>就表示SOC内部总线0x0~0x00100000的地址空间和CPU总的地址空间0xffe00000~(0xffe00000+0x00100000)相对应。我们将看到SOC内部的子设备的寄存器空间都是相对于SOC的基地址描述的偏移地址,实际上它们在CPU访问的时候还要加上SOC总的基地址0xffe00000。reg = <ffe0000000100000>描述的就是SOC子系统的寄存器是在CPU地址空间0xffe00000~(0xffe00000+0x00100000)。bus-frequency = <0>,这里的SOC总线频率将留给UBOOT进行填充。

现在讲完ranges和reg属性,应该好理解第55行soc8572@ffe0

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值