在 Rocket-chip 中,有一个 RegisterRouter 类可以设置简单的设备compat
。这是一个字符串序列。是我如何使用它Seq("sifive","uart0")
的一个例子。UART.scala
我认为它指的是“兼容性”,并且在 Linux 如何读取设备树方面发挥了一些作用?设置此参数时我应该遵循任何特定格式吗?像Seq("Company name", "device")
什么?
代码来自RegisterRouter.scala
:
val device = new SimpleDevice(devParams.name, devParams.compat) {
override def describe(resources: ResourceBindings): Description = {
val Description(name, mapping) = super.describe(resources)
Description(name, mapping ++ extraResources(resources))
}
}
示例使用UART.scala
class UART(busWidthBytes: Int, val c: UARTParams, divisorInit: Int = 0)
(implicit p: Parameters)
extends IORegisterRouter(
RegisterRouterParams(
name = "serial",
compat = Seq("sifive,uart0"),
base = c.address,
beatBytes = busWidthBytes),
new UARTPortIO(c))