Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
98c31c1d
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
98c31c1d
编写于
1月 11, 2008
作者:
J
Josh Boyer
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'virtex-for-2.6.25' of
git://git.secretlab.ca/git/linux-2.6-virtex
into for-2.6.25
上级
78994e24
f67702a3
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
56 addition
and
29 deletion
+56
-29
Documentation/powerpc/booting-without-of.txt
Documentation/powerpc/booting-without-of.txt
+33
-23
arch/powerpc/boot/serial.c
arch/powerpc/boot/serial.c
+2
-1
arch/powerpc/platforms/40x/virtex.c
arch/powerpc/platforms/40x/virtex.c
+11
-1
arch/powerpc/sysdev/xilinx_intc.c
arch/powerpc/sysdev/xilinx_intc.c
+7
-1
drivers/serial/uartlite.c
drivers/serial/uartlite.c
+3
-3
未找到文件。
Documentation/powerpc/booting-without-of.txt
浏览文件 @
98c31c1d
...
...
@@ -2292,7 +2292,7 @@ platforms are moved over to use the flattened-device-tree model.
properties of the device node. In general, device nodes for IP-cores
will take the following form:
(name)@(base-address) {
(name)
: (generic-name)
@(base-address) {
compatible = "xlnx,(ip-core-name)-(HW_VER)"
[, (list of compatible devices), ...];
reg = <(baseaddr) (size)>;
...
...
@@ -2302,6 +2302,9 @@ platforms are moved over to use the flattened-device-tree model.
xlnx,(parameter2) = <(int-value)>;
};
(generic-name): an open firmware-style name that describes the
generic class of device. Preferably, this is one word, such
as 'serial' or 'ethernet'.
(ip-core-name): the name of the ip block (given after the BEGIN
directive in system.mhs). Should be in lowercase
and all underscores '_' converted to dashes '-'.
...
...
@@ -2310,9 +2313,9 @@ platforms are moved over to use the flattened-device-tree model.
dropped from the parameter name, the name is converted
to lowercase and all underscore '_' characters are
converted to dashes '-'.
(baseaddr): the
C_BASEADDR parameter
.
(baseaddr): the
baseaddr parameter value (often named C_BASEADDR)
.
(HW_VER): from the HW_VER parameter.
(size):
equals C_HIGHADDR - C_BASEADDR + 1
(size):
the address range size (often C_HIGHADDR - C_BASEADDR + 1).
Typically, the compatible list will include the exact IP core version
followed by an older IP core version which implements the same
...
...
@@ -2342,11 +2345,11 @@ platforms are moved over to use the flattened-device-tree model.
becomes the following device tree node:
opb
-uartlite-0
@ec100000 {
opb
_uartlite_0: serial
@ec100000 {
device_type = "serial";
compatible = "xlnx,opb-uartlite-1.00.b";
reg = <ec100000 10000>;
interrupt-parent = <&opb
-intc
>;
interrupt-parent = <&opb
_intc_0
>;
interrupts = <1 0>; // got this from the opb_intc parameters
current-speed = <d#115200>; // standard serial device prop
clock-frequency = <d#50000000>; // standard serial device prop
...
...
@@ -2355,16 +2358,19 @@ platforms are moved over to use the flattened-device-tree model.
xlnx,use-parity = <0>;
};
Some IP cores actually implement 2 or more logical devices. In this case,
the device should still describe the whole IP core with a single node
and add a child node for each logical device. The ranges property can
be used to translate from parent IP-core to the registers of each device.
(Note: this makes the assumption that both logical devices have the same
bus binding. If this is not true, then separate nodes should be used for
each logical device). The 'cell-index' property can be used to enumerate
logical devices within an IP core. For example, the following is the
system.mhs entry for the dual ps2 controller found on the ml403 reference
design.
Some IP cores actually implement 2 or more logical devices. In
this case, the device should still describe the whole IP core with
a single node and add a child node for each logical device. The
ranges property can be used to translate from parent IP-core to the
registers of each device. In addition, the parent node should be
compatible with the bus type 'xlnx,compound', and should contain
#address-cells and #size-cells, as with any other bus. (Note: this
makes the assumption that both logical devices have the same bus
binding. If this is not true, then separate nodes should be used
for each logical device). The 'cell-index' property can be used to
enumerate logical devices within an IP core. For example, the
following is the system.mhs entry for the dual ps2 controller found
on the ml403 reference design.
BEGIN opb_ps2_dual_ref
PARAMETER INSTANCE = opb_ps2_dual_ref_0
...
...
@@ -2386,21 +2392,24 @@ platforms are moved over to use the flattened-device-tree model.
It would result in the following device tree nodes:
opb_ps2_dual_ref_0@a9000000 {
opb_ps2_dual_ref_0: opb-ps2-dual-ref@a9000000 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "xlnx,compound";
ranges = <0 a9000000 2000>;
// If this device had extra parameters, then they would
// go here.
ps2@0 {
compatible = "xlnx,opb-ps2-dual-ref-1.00.a";
reg = <0 40>;
interrupt-parent = <&opb
-intc
>;
interrupt-parent = <&opb
_intc_0
>;
interrupts = <3 0>;
cell-index = <0>;
};
ps2@1000 {
compatible = "xlnx,opb-ps2-dual-ref-1.00.a";
reg = <1000 40>;
interrupt-parent = <&opb
-intc
>;
interrupt-parent = <&opb
_intc_0
>;
interrupts = <3 0>;
cell-index = <0>;
};
...
...
@@ -2463,17 +2472,18 @@ platforms are moved over to use the flattened-device-tree model.
Gives this device tree (some properties removed for clarity):
plb
-v34-
0 {
plb
@
0 {
#address-cells = <1>;
#size-cells = <1>;
compatible = "xlnx,plb-v34-1.02.a";
device_type = "ibm,plb";
ranges; // 1:1 translation
plb
-bram-if-cntrl-0
@ffff0000 {
plb
_bram_if_cntrl_0: bram
@ffff0000 {
reg = <ffff0000 10000>;
}
opb
-v20-
0 {
opb
@2000000
0 {
#address-cells = <1>;
#size-cells = <1>;
ranges = <20000000 20000000 20000000
...
...
@@ -2481,11 +2491,11 @@ platforms are moved over to use the flattened-device-tree model.
80000000 80000000 40000000
c0000000 c0000000 20000000>;
opb
-uart16550-0
@a0000000 {
opb
_uart16550_0: serial
@a0000000 {
reg = <a00000000 2000>;
};
opb
-intc-0
@d1000fc0 {
opb
_intc_0: interrupt-controller
@d1000fc0 {
reg = <d1000fc0 20>;
};
};
...
...
arch/powerpc/boot/serial.c
浏览文件 @
98c31c1d
...
...
@@ -128,7 +128,8 @@ int serial_console_init(void)
rc
=
cpm_console_init
(
devp
,
&
serial_cd
);
else
if
(
dt_is_compatible
(
devp
,
"mpc5200-psc-uart"
))
rc
=
mpc5200_psc_console_init
(
devp
,
&
serial_cd
);
else
if
(
dt_is_compatible
(
devp
,
"xilinx,uartlite"
))
else
if
(
dt_is_compatible
(
devp
,
"xlnx,opb-uartlite-1.00.b"
)
||
dt_is_compatible
(
devp
,
"xlnx,xps-uartlite-1.00.a"
))
rc
=
uartlite_console_init
(
devp
,
&
serial_cd
);
/* Add other serial console driver calls here */
...
...
arch/powerpc/platforms/40x/virtex.c
浏览文件 @
98c31c1d
...
...
@@ -15,9 +15,19 @@
#include <asm/time.h>
#include <asm/xilinx_intc.h>
static
struct
of_device_id
xilinx_of_bus_ids
[]
__initdata
=
{
{
.
compatible
=
"xlnx,plb-v46-1.00.a"
,
},
{
.
compatible
=
"xlnx,plb-v34-1.01.a"
,
},
{
.
compatible
=
"xlnx,plb-v34-1.02.a"
,
},
{
.
compatible
=
"xlnx,opb-v20-1.10.c"
,
},
{
.
compatible
=
"xlnx,dcr-v29-1.00.a"
,
},
{
.
compatible
=
"xlnx,compound"
,
},
{}
};
static
int
__init
virtex_device_probe
(
void
)
{
of_platform_bus_probe
(
NULL
,
NULL
,
NULL
);
of_platform_bus_probe
(
NULL
,
xilinx_of_bus_ids
,
NULL
);
return
0
;
}
...
...
arch/powerpc/sysdev/xilinx_intc.c
浏览文件 @
98c31c1d
...
...
@@ -135,10 +135,16 @@ void __init xilinx_intc_init_tree(void)
struct
device_node
*
np
;
/* find top level interrupt controller */
for_each_compatible_node
(
np
,
NULL
,
"x
ilinx,int
c"
)
{
for_each_compatible_node
(
np
,
NULL
,
"x
lnx,opb-intc-1.00.
c"
)
{
if
(
!
of_get_property
(
np
,
"interrupts"
,
NULL
))
break
;
}
if
(
!
np
)
{
for_each_compatible_node
(
np
,
NULL
,
"xlnx,xps-intc-1.00.a"
)
{
if
(
!
of_get_property
(
np
,
"interrupts"
,
NULL
))
break
;
}
}
/* xilinx interrupt controller needs to be top level */
BUG_ON
(
!
np
);
...
...
drivers/serial/uartlite.c
浏览文件 @
98c31c1d
...
...
@@ -539,7 +539,7 @@ static int __devinit ulite_assign(struct device *dev, int id, u32 base, int irq)
*
* @dev: pointer to device structure
*/
static
int
__dev
in
it
ulite_release
(
struct
device
*
dev
)
static
int
__dev
ex
it
ulite_release
(
struct
device
*
dev
)
{
struct
uart_port
*
port
=
dev_get_drvdata
(
dev
);
int
rc
=
0
;
...
...
@@ -572,14 +572,14 @@ static int __devinit ulite_probe(struct platform_device *pdev)
return
ulite_assign
(
&
pdev
->
dev
,
pdev
->
id
,
res
->
start
,
res2
->
start
);
}
static
int
ulite_remove
(
struct
platform_device
*
pdev
)
static
int
__devexit
ulite_remove
(
struct
platform_device
*
pdev
)
{
return
ulite_release
(
&
pdev
->
dev
);
}
static
struct
platform_driver
ulite_platform_driver
=
{
.
probe
=
ulite_probe
,
.
remove
=
ulite_remove
,
.
remove
=
__devexit_p
(
ulite_remove
)
,
.
driver
=
{
.
owner
=
THIS_MODULE
,
.
name
=
"uartlite"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录