Skip to content

Latest commit

 

History

History
269 lines (187 loc) · 12.1 KB

File metadata and controls

269 lines (187 loc) · 12.1 KB

设备树规格书(Devicetree Specification)

中文 / English

上一章 - 目录 - 下一章


4 设备绑定

本章包含了特定类型和设备类在设备树中的表示要求,即绑定。设备节点的compatible属性描述了节点符合的特定绑定(或多个绑定)。

绑定可以定义为其他绑定的扩展。例如,新的总线类型可以定义为简单总线绑定的扩展。在这种情况下,compatible属性将包含多个字符串,从最具体到最一般的每个绑定(参见:numref:sect-standard-properties-compatible,compatible)。

4.1 绑定指南

4.1.1 一般原则

在为设备创建新的设备树表示时,应创建一个完全描述设备所需属性和值的绑定。这组属性应足够描述设备的所需属性,以提供设备驱动程序所需的属性。

一些推荐的做法包括:

  1. 使用:numref:sect-standard-properties-compatible中描述的约定定义兼容字符串。

  2. 对于新设备,如适用,使用标准属性(在:numref:sect-standard-properties和:numref:sect-interrupts中定义)。此使用通常包括至少“reg”和“interrupts”属性。

  3. 如果新设备适合于|spec|定义的设备类之一,则使用:numref:chapter-device-bindings(设备绑定)中指定的约定。

  4. 如果适用,使用在:numref:sect-misc-properties中指定的杂项属性约定。

  5. 如果绑定需要新属性,则属性名称的推荐格式为:"<company>,<property-name>",其中"<company>"是标识绑定创建者的OUI或短唯一字符串,如股票代码。

    例如:"ibm,ppc-interrupt-server#s"

4.1.2 杂项属性

本节定义了一些有用的属性,适用于许多类型的设备和设备类。它们在此定义,以便标准化名称和用法。

clock-frequency 属性
属性 clock-frequency
值类型 <prop-encoded-array>
描述 指定时钟频率(以赫兹为单位)。值是一个 <prop-encoded-array>,有两种形式之一:
由一个 <u32> 组成的 32 位整数,指定频率
由一个 <u64> 表示的 64 位整数,指定频率
reg-shift 属性
属性 reg-shift
值类型 <u32>
描述 reg-shift 属性提供了一种机制,用于表示在大多数方面相同但寄存器之间的字节数不同的设备。reg-shift 属性指定离散设备寄存器彼此分隔的距离(以字节为单位)。使用以下公式计算单个寄存器位置:“寄存器地址”<< reg-shift。如果未指定,则默认值为 0。
例如,在一个系统中,16540 UART 寄存器位于地址 0x0、0x4、0x8、0xC、0x10、0x14、0x18 和 0x1C,将使用 reg-shift = <2> 属性来指定寄存器位置。
label 属性
属性 label
值类型 <string>
描述 label 属性定义了一个人类可读的字符串,描述了一个设备。给定设备的绑定指定了该属性对于该设备的确切含义。

4.2 串行设备

4.2.1 串行设备类绑定

串行设备类包括各种类型的点对点串行线设备。串行线设备的示例包括8250 UART、16550 UART、HDLC设备和BISYNC设备。在大多数情况下,与RS-232标准兼容的硬件适合于串行设备类。

I2C和SPI(串行外设接口)设备不应表示为串行端口设备,因为它们有自己特定的表示。

clock-frequency 属性
属性 clock-frequency
值类型 <u32>
描述 指定波特率发生器输入时钟的频率(以赫兹为单位)。
示例 clock-frequency = <100000000>;
current-speed 属性
属性 current-speed
值类型 <u32>
描述 指定串行设备的当前速度(以每秒位数为单位)。如果引导程序已初始化串行设备,则应设置此属性。
示例 115,200波特率:current-speed = <115200>;

4.2.2 National Semiconductor 16450/16550 兼容 UART 要求

应使用以下属性在设备树中表示与 National Semiconductor 16450/16550 UART(通用异步收发器)兼容的串行设备。

属性名称 用途 值类型 定义
compatible R <string list> 值应包括 "ns16550"。
clock-frequency R <u32> 指定波特率发生器输入时钟的频率(以赫兹为单位)。
current-speed OR <u32> 指定当前串行设备速度,以每秒位数为单位。
reg R <prop encoded array> 指定设备寄存器的物理地址,该地址位于父总线的地址空间中。
interrupts OR <prop encoded array> 指定此设备生成的中断。中断属性的值由一个或多个中断规范符号组成。中断规范符号的格式由描述节点中断父级的绑定文档定义。
reg-shift O <u32> 指定离散设备寄存器与彼此分隔的字节数。使用以下公式计算单个寄存器位置:"寄存器地址" << reg-shift。如果未指定,则默认值为 0。
virtual-reg SD <u32><u64> 参见 :numref:sect-standard-properties-virtual-reg。指定映射到 reg 属性中指定的第一个物理地址的有效地址。如果此设备节点是系统的控制台,则需要此属性。

用途图例:R=必需,O=可选,OR=可选但建议,SD=见定义

注意: 允许使用所有其他标准属性(:numref:sect-standard-properties),但这些属性是可选的。

4.3 网络设备

网络设备是面向数据包的通信设备。假定此类设备实现了七层OSI模型的数据链路层(第2层)并使用媒体访问控制(MAC)地址。网络设备的示例包括以太网、FDDI、802.11和Token-Ring。

4.3.1 网络类绑定

address-bits 属性
属性 address-bits
值类型 <u32>
描述 指定用于寻址描述此节点的设备所需的地址位数。此属性指定MAC地址中的位数。如果未指定,则默认值为48。
示例 address-bits = <48>;
local-mac-address 属性
属性 local-mac-address
值类型 <prop-encoded-array> 编码为十六进制数字数组
描述 指定分配给包含此属性的节点描述的网络设备的MAC地址。
示例 local-mac-address = [ 00 00 12 34 56 78 ];
mac-address 属性
属性 mac-address
值类型 <prop-encoded-array> 编码为十六进制数字数组
描述 指定引导程序最后使用的MAC地址。在引导程序分配给设备的MAC地址与local-mac-address属性不同时,应使用此属性。仅当值与local-mac-address属性值不同时,才应使用此属性。
示例 mac-address = [ 02 03 04 05 06 07 ];
max-frame-size 属性
属性 max-frame-size
值类型 <u32>
描述 指定物理接口可以发送和接收的最大数据包长度(以字节为单位)。
示例 max-frame-size = <1518>;

4.3.2 以太网特定考虑事项

基于IEEE 802.3局域网标准集(统称为以太网)的网络设备可以使用以下属性在设备树中表示,除了网络设备类别指定的属性之外。

本节列出的属性增强了网络设备类别中列出的属性。

max-speed 属性
属性 max-speed
值类型 <u32>
描述 指定设备支持的最大速度(以兆位每秒为单位)。
示例 max-speed = <1000>;
phy-connection-type 属性
属性 phy-connection-type
值类型 <string>
描述 指定以太网设备和物理层(PHY)设备之间的接口类型。此属性的值特定于实现。建议值如下表所示。
示例 phy-connection-type = "mii";
phy-connection-type 属性的定义值
连接类型
媒体独立接口 mii
简化媒体独立接口 rmii
千兆位媒体独立接口 gmii
简化千兆位媒体独立 rgmii
rgmii带内部延迟 rgmii-id
仅在TX上具有内部延迟的rgmii rgmii-txid
仅在RX上具有内部延迟的rgmii rgmii-rxid
十位接口 tbi
简化十位接口 rtbi
串行媒体独立接口 smii
串行千兆位媒体独立接口 sgmii
反向媒体独立接口 rev-mii
十千兆位媒体独立接口 xgmii
同轴多媒体 moca
四个串行千兆位媒体独立接口 qsgmii
Turbo简化千兆位媒体独立接口 trgmii
phy-handle 属性
属性 phy-handle
值类型 <phandle>
描述 指定表示连接到此以太网设备的物理层(PHY)设备的节点的引用。如果以太网设备连接到物理层设备,则需要此属性。
示例 phy-handle = <&PHY0>;

4.4 Power ISA Open PIC中断控制器

本节指定了表示Open PIC兼容中断控制器的要求。Open PIC中断控制器实现了Open PIC架构(由AMD和Cyrix共同开发),并在《可编程开放式中断控制器(PIC)寄存器接口规范修订版1.2》[b18]中指定。

Open PIC中断域中的中断指定符使用两个单元格进行编码。第一个单元格定义中断号。第二个单元格定义感知和电平信息。

在中断指定符中,感知和电平信息应编码如下:

0 = 低到高边缘敏感类型已启用

1 = 低电平敏感类型已启用

2 = 高电平敏感类型已启用

3 = 高到低边缘敏感类型已启用

4.4.1 Open-PIC属性
属性名称 用途 值类型 定义
compatible R <string> 值应包括“open-pic”
reg R <prop encoded array> 指定寄存器设备在父总线地址空间内的物理地址
interrupt-controller R <empty> 指定此节点是中断控制器
#interrupt-cells R <u32> 必须为2
#address-cells R <u32> 必须为0

用途图例:R=必需,O=可选,OR=可选但建议,SD=请参阅定义

Note: 允许使用所有其他标准属性(:numref:sect-standard-properties),但是这些属性是可选的。

simple-bus兼容值

片上系统处理器可能具有无法探测设备的内部I/O总线。可以直接访问总线上的设备,无需其他配置即可访问。此类型的总线表示为具有兼容值“simple-bus”的节点。

4.5 simple-bus兼容节点属性

属性名称 用途 值类型 定义
compatible R <string> 值应包括“simple-bus”
ranges R <prop encoded array> 此属性表示父地址到子地址空间之间的映射(请参见:numref:sect-standard-properties-ranges,ranges)
nonposted-mmio O <empty> 指定此总线的直接子项应使用非发布的内存访问(即非发布的映射模式)进行MMIO范围。

用途图例:R=必需,O=可选,OR=可选但建议,SD=请参阅定义


上一章 - 目录 - 下一章