Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
2d87e06e
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
161
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
2d87e06e
编写于
3月 21, 2012
作者:
B
Benjamin Herrenschmidt
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'jwb/next' into next
上级
ff651516
b5594a77
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
199 addition
and
5 deletion
+199
-5
MAINTAINERS
MAINTAINERS
+1
-1
arch/powerpc/boot/dts/bluestone.dts
arch/powerpc/boot/dts/bluestone.dts
+125
-2
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/cputable.c
+1
-1
arch/powerpc/platforms/44x/Kconfig
arch/powerpc/platforms/44x/Kconfig
+1
-0
arch/powerpc/platforms/44x/ppc44x_simple.c
arch/powerpc/platforms/44x/ppc44x_simple.c
+1
-1
arch/powerpc/sysdev/ppc4xx_pci.c
arch/powerpc/sysdev/ppc4xx_pci.c
+70
-0
未找到文件。
MAINTAINERS
浏览文件 @
2d87e06e
...
...
@@ -4034,7 +4034,7 @@ M: Josh Boyer <jwboyer@gmail.com>
M: Matt Porter <mporter@kernel.crashing.org>
W: http://www.penguinppc.org/
L: linuxppc-dev@lists.ozlabs.org
T: git git://git.
infradead.org/users
/jwboyer/powerpc-4xx.git
T: git git://git.
kernel.org/pub/scm/linux/kernel/git
/jwboyer/powerpc-4xx.git
S: Maintained
F: arch/powerpc/platforms/40x/
F: arch/powerpc/platforms/44x/
...
...
arch/powerpc/boot/dts/bluestone.dts
浏览文件 @
2d87e06e
...
...
@@ -33,7 +33,7 @@
aliases
{
ethernet0
=
&
EMAC0
;
serial0
=
&
UART0
;
//
serial1
=
&
UART1
;
--
gcl
missing
UART1
label
serial1
=
&
UART1
;
};
cpus
{
...
...
@@ -52,7 +52,7 @@
d
-
cache
-
size
=
<
32768
>;
dcr
-
controller
;
dcr
-
access
-
method
=
"native"
;
//
next
-
level
-
cache
=
<&
L2C0
>;
--
gcl
missing
L2C0
label
next
-
level
-
cache
=
<&
L2C0
>;
};
};
...
...
@@ -117,6 +117,16 @@
dcr
-
reg
=
<
0x00c
0x002
>;
};
L2C0
:
l2c
{
compatible
=
"ibm,l2-cache-apm82181"
,
"ibm,l2-cache"
;
dcr
-
reg
=
<
0x020
0x008
0x030
0x008
>;
cache
-
line
-
size
=
<
32
>;
cache
-
size
=
<
262144
>;
interrupt
-
parent
=
<&
UIC1
>;
interrupts
=
<
11
1
>;
};
plb
{
compatible
=
"ibm,plb4"
;
#
address
-
cells
=
<
2
>;
...
...
@@ -182,6 +192,53 @@
reg
=
<
0x001a0000
0x00060000
>;
};
};
ndfc
@
1
,
0
{
compatible
=
"ibm,ndfc"
;
reg
=
<
0x00000003
0x00000000
0x00002000
>;
ccr
=
<
0x00001000
>;
bank
-
settings
=
<
0x80002222
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
/*
2
Gb
Nand
Flash
*/
nand
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
partition
@
0
{
label
=
"firmware"
;
reg
=
<
0x00000000
0x00C00000
>;
};
partition
@
c00000
{
label
=
"environment"
;
reg
=
<
0x00C00000
0x00B00000
>;
};
partition
@
1700000
{
label
=
"kernel"
;
reg
=
<
0x01700000
0x00E00000
>;
};
partition
@
2500000
{
label
=
"root"
;
reg
=
<
0x02500000
0x08200000
>;
};
partition
@
a700000
{
label
=
"device-tree"
;
reg
=
<
0x0A700000
0x00B00000
>;
};
partition
@
b200000
{
label
=
"config"
;
reg
=
<
0x0B200000
0x00D00000
>;
};
partition
@
bf00000
{
label
=
"diag"
;
reg
=
<
0x0BF00000
0x00C00000
>;
};
partition
@
cb00000
{
label
=
"vendor"
;
reg
=
<
0x0CB00000
0x3500000
>;
};
};
};
};
UART0
:
serial
@
ef600300
{
...
...
@@ -195,11 +252,36 @@
interrupts
=
<
0x1
0x4
>;
};
UART1
:
serial
@
ef600400
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
0xef600400
0x00000008
>;
virtual
-
reg
=
<
0xef600400
>;
clock
-
frequency
=
<
0
>;
/*
Filled
in
by
U
-
Boot
*/
current
-
speed
=
<
0
>;
/*
Filled
in
by
U
-
Boot
*/
interrupt
-
parent
=
<&
UIC0
>;
interrupts
=
<
0x1
0x4
>;
};
IIC0
:
i2c
@
ef600700
{
compatible
=
"ibm,iic"
;
reg
=
<
0xef600700
0x00000014
>;
interrupt
-
parent
=
<&
UIC0
>;
interrupts
=
<
0x2
0x4
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
rtc
@
68
{
compatible
=
"stm,m41t80"
;
reg
=
<
0x68
>;
interrupt
-
parent
=
<&
UIC0
>;
interrupts
=
<
0x9
0x8
>;
};
sttm
@
4
C
{
compatible
=
"adm,adm1032"
;
reg
=
<
0x4C
>;
interrupt
-
parent
=
<&
UIC1
>;
interrupts
=
<
0x1E
0x8
>;
/*
CPU_THERNAL_L
*/
};
};
IIC1
:
i2c
@
ef600800
{
...
...
@@ -250,5 +332,46 @@
};
};
PCIE0
:
pciex
@
d00000000
{
device_type
=
"pci"
;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
compatible
=
"ibm,plb-pciex-apm821xx"
,
"ibm,plb-pciex"
;
primary
;
port
=
<
0x0
>;
/*
port
number
*/
reg
=
<
0x0000000d
0x00000000
0x20000000
/*
Config
space
access
*/
0x0000000c
0x08010000
0x00001000
>;
/*
Registers
*/
dcr
-
reg
=
<
0x100
0x020
>;
sdr
-
base
=
<
0x300
>;
/*
Outbound
ranges
,
one
memory
and
one
IO
,
*
later
cannot
be
changed
*/
ranges
=
<
0x02000000
0x00000000
0x80000000
0x0000000e
0x00000000
0x00000000
0x80000000
0x02000000
0x00000000
0x00000000
0x0000000f
0x00000000
0x00000000
0x00100000
0x01000000
0x00000000
0x00000000
0x0000000f
0x80000000
0x00000000
0x00010000
>;
/*
Inbound
2
GB
range
starting
at
0
*/
dma
-
ranges
=
<
0x42000000
0x0
0x0
0x0
0x0
0x0
0x80000000
>;
/*
This
drives
busses
40
to
0x7f
*/
bus
-
range
=
<
0x40
0x7f
>;
/*
Legacy
interrupts
(
note
the
weird
polarity
,
the
bridge
seems
*
to
invert
PCIe
legacy
interrupts
).
*
We
are
de
-
swizzling
here
because
the
numbers
are
actually
for
*
port
of
the
root
complex
virtual
P2P
bridge
.
But
I
want
*
to
avoid
putting
a
node
for
it
in
the
tree
,
so
the
numbers
*
below
are
basically
de
-
swizzled
numbers
.
*
The
real
slot
is
on
idsel
0
,
so
the
swizzling
is
1
:
1
*/
interrupt
-
map
-
mask
=
<
0x0
0x0
0x0
0x7
>;
interrupt
-
map
=
<
0x0
0x0
0x0
0x1
&
UIC3
0xc
0x4
/*
swizzled
int
A
*/
0x0
0x0
0x0
0x2
&
UIC3
0xd
0x4
/*
swizzled
int
B
*/
0x0
0x0
0x0
0x3
&
UIC3
0xe
0x4
/*
swizzled
int
C
*/
0x0
0x0
0x0
0x4
&
UIC3
0xf
0x4
/*
swizzled
int
D
*/>;
};
};
};
arch/powerpc/kernel/cputable.c
浏览文件 @
2d87e06e
...
...
@@ -1816,7 +1816,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
.
platform
=
"ppc440"
,
},
{
/* 464 in APM821xx */
.
pvr_mask
=
0xffffff
0
0
,
.
pvr_mask
=
0xffffff
f
0
,
.
pvr_value
=
0x12C41C80
,
.
cpu_name
=
"APM821XX"
,
.
cpu_features
=
CPU_FTRS_44X
,
...
...
arch/powerpc/platforms/44x/Kconfig
浏览文件 @
2d87e06e
...
...
@@ -23,6 +23,7 @@ config BLUESTONE
default n
select PPC44x_SIMPLE
select APM821xx
select PPC4xx_PCI_EXPRESS
select IBM_EMAC_RGMII
help
This option enables support for the APM APM821xx Evaluation board.
...
...
arch/powerpc/platforms/44x/ppc44x_simple.c
浏览文件 @
2d87e06e
...
...
@@ -52,7 +52,7 @@ machine_device_initcall(ppc44x_simple, ppc44x_device_probe);
static
char
*
board
[]
__initdata
=
{
"amcc,arches"
,
"amcc,bamboo"
,
"a
mcc
,bluestone"
,
"a
pm
,bluestone"
,
"amcc,glacier"
,
"ibm,ebony"
,
"amcc,eiger"
,
...
...
arch/powerpc/sysdev/ppc4xx_pci.c
浏览文件 @
2d87e06e
...
...
@@ -1050,6 +1050,74 @@ static struct ppc4xx_pciex_hwops ppc460ex_pcie_hwops __initdata =
.
check_link
=
ppc4xx_pciex_check_link_sdr
,
};
static
int
__init
apm821xx_pciex_core_init
(
struct
device_node
*
np
)
{
/* Return the number of pcie port */
return
1
;
}
static
int
apm821xx_pciex_init_port_hw
(
struct
ppc4xx_pciex_port
*
port
)
{
u32
val
;
/*
* Do a software reset on PCIe ports.
* This code is to fix the issue that pci drivers doesn't re-assign
* bus number for PCIE devices after Uboot
* scanned and configured all the buses (eg. PCIE NIC IntelPro/1000
* PT quad port, SAS LSI 1064E)
*/
mtdcri
(
SDR0
,
PESDR0_460EX_PHY_CTL_RST
,
0x0
);
mdelay
(
10
);
if
(
port
->
endpoint
)
val
=
PTYPE_LEGACY_ENDPOINT
<<
20
;
else
val
=
PTYPE_ROOT_PORT
<<
20
;
val
|=
LNKW_X1
<<
12
;
mtdcri
(
SDR0
,
port
->
sdr_base
+
PESDRn_DLPSET
,
val
);
mtdcri
(
SDR0
,
port
->
sdr_base
+
PESDRn_UTLSET1
,
0x00000000
);
mtdcri
(
SDR0
,
port
->
sdr_base
+
PESDRn_UTLSET2
,
0x01010000
);
mtdcri
(
SDR0
,
PESDR0_460EX_L0CDRCTL
,
0x00003230
);
mtdcri
(
SDR0
,
PESDR0_460EX_L0DRV
,
0x00000130
);
mtdcri
(
SDR0
,
PESDR0_460EX_L0CLK
,
0x00000006
);
mtdcri
(
SDR0
,
PESDR0_460EX_PHY_CTL_RST
,
0x10000000
);
mdelay
(
50
);
mtdcri
(
SDR0
,
PESDR0_460EX_PHY_CTL_RST
,
0x30000000
);
mtdcri
(
SDR0
,
port
->
sdr_base
+
PESDRn_RCSSET
,
mfdcri
(
SDR0
,
port
->
sdr_base
+
PESDRn_RCSSET
)
|
(
PESDRx_RCSSET_RSTGU
|
PESDRx_RCSSET_RSTPYN
));
/* Poll for PHY reset */
val
=
PESDR0_460EX_RSTSTA
-
port
->
sdr_base
;
if
(
ppc4xx_pciex_wait_on_sdr
(
port
,
val
,
0x1
,
1
,
100
))
{
printk
(
KERN_WARNING
"%s: PCIE: Can't reset PHY
\n
"
,
__func__
);
return
-
EBUSY
;
}
else
{
mtdcri
(
SDR0
,
port
->
sdr_base
+
PESDRn_RCSSET
,
(
mfdcri
(
SDR0
,
port
->
sdr_base
+
PESDRn_RCSSET
)
&
~
(
PESDRx_RCSSET_RSTGU
|
PESDRx_RCSSET_RSTDL
))
|
PESDRx_RCSSET_RSTPYN
);
port
->
has_ibpre
=
1
;
return
0
;
}
}
static
struct
ppc4xx_pciex_hwops
apm821xx_pcie_hwops
__initdata
=
{
.
want_sdr
=
true
,
.
core_init
=
apm821xx_pciex_core_init
,
.
port_init_hw
=
apm821xx_pciex_init_port_hw
,
.
setup_utl
=
ppc460ex_pciex_init_utl
,
.
check_link
=
ppc4xx_pciex_check_link_sdr
,
};
static
int
__init
ppc460sx_pciex_core_init
(
struct
device_node
*
np
)
{
/* HSS drive amplitude */
...
...
@@ -1362,6 +1430,8 @@ static int __init ppc4xx_pciex_check_core_init(struct device_node *np)
ppc4xx_pciex_hwops
=
&
ppc460ex_pcie_hwops
;
if
(
of_device_is_compatible
(
np
,
"ibm,plb-pciex-460sx"
))
ppc4xx_pciex_hwops
=
&
ppc460sx_pcie_hwops
;
if
(
of_device_is_compatible
(
np
,
"ibm,plb-pciex-apm821xx"
))
ppc4xx_pciex_hwops
=
&
apm821xx_pcie_hwops
;
#endif
/* CONFIG_44x */
#ifdef CONFIG_40x
if
(
of_device_is_compatible
(
np
,
"ibm,plb-pciex-405ex"
))
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录