Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
e6b18912
K
Kernel
项目概览
openeuler
/
Kernel
接近 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
e6b18912
编写于
4月 01, 2008
作者:
P
Paul Mackerras
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'powerpc-next' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc
上级
99d8be05
ee0a3f56
变更
7
展开全部
显示空白变更内容
内联
并排
Showing
7 changed file
with
1433 addition
and
1 deletion
+1433
-1
arch/powerpc/boot/Makefile
arch/powerpc/boot/Makefile
+1
-0
arch/powerpc/boot/dts/ksi8560.dts
arch/powerpc/boot/dts/ksi8560.dts
+267
-0
arch/powerpc/boot/wrapper
arch/powerpc/boot/wrapper
+1
-1
arch/powerpc/configs/ksi8560_defconfig
arch/powerpc/configs/ksi8560_defconfig
+899
-0
arch/powerpc/platforms/85xx/Kconfig
arch/powerpc/platforms/85xx/Kconfig
+7
-0
arch/powerpc/platforms/85xx/Makefile
arch/powerpc/platforms/85xx/Makefile
+1
-0
arch/powerpc/platforms/85xx/ksi8560.c
arch/powerpc/platforms/85xx/ksi8560.c
+257
-0
未找到文件。
arch/powerpc/boot/Makefile
浏览文件 @
e6b18912
...
@@ -256,6 +256,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm8555
...
@@ -256,6 +256,7 @@ image-$(CONFIG_TQM8555) += cuImage.tqm8555
image-$(CONFIG_TQM8560)
+=
cuImage.tqm8560
image-$(CONFIG_TQM8560)
+=
cuImage.tqm8560
image-$(CONFIG_SBC8548)
+=
cuImage.sbc8548
image-$(CONFIG_SBC8548)
+=
cuImage.sbc8548
image-$(CONFIG_SBC8560)
+=
cuImage.sbc8560
image-$(CONFIG_SBC8560)
+=
cuImage.sbc8560
image-$(CONFIG_KSI8560)
+=
cuImage.ksi8560
# Board ports in arch/powerpc/platform/embedded6xx/Kconfig
# Board ports in arch/powerpc/platform/embedded6xx/Kconfig
image-$(CONFIG_STORCENTER)
+=
cuImage.storcenter
image-$(CONFIG_STORCENTER)
+=
cuImage.storcenter
...
...
arch/powerpc/boot/dts/ksi8560.dts
0 → 100644
浏览文件 @
e6b18912
/*
*
Device
Tree
Source
for
Emerson
KSI8560
*
*
Author
:
Alexandr
Smirnov
<
asmirnov
@
ru
.
mvista
.
com
>
*
*
Based
on
mpc8560ads
.
dts
*
*
2008
(
c
)
MontaVista
,
Software
,
Inc
.
This
file
is
licensed
under
*
the
terms
of
the
GNU
General
Public
License
version
2.
This
program
*
is
licensed
"as is"
without
any
warranty
of
any
kind
,
whether
express
*
or
implied
.
*
*/
/
dts
-
v1
/;
/
{
model
=
"KSI8560"
;
compatible
=
"emerson,KSI8560"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
aliases
{
ethernet0
=
&
enet0
;
ethernet1
=
&
enet1
;
ethernet2
=
&
enet2
;
};
cpus
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
PowerPC
,
8560
@
0
{
device_type
=
"cpu"
;
reg
=
<
0
>;
d
-
cache
-
line
-
size
=
<
32
>;
i
-
cache
-
line
-
size
=
<
32
>;
d
-
cache
-
size
=
<
0x8000
>;
/*
L1
,
32
K
*/
i
-
cache
-
size
=
<
0x8000
>;
/*
L1
,
32
K
*/
timebase
-
frequency
=
<
0
>;
/*
From
U
-
boot
*/
bus
-
frequency
=
<
0
>;
/*
From
U
-
boot
*/
clock
-
frequency
=
<
0
>;
/*
From
U
-
boot
*/
};
};
memory
{
device_type
=
"memory"
;
reg
=
<
0x00000000
0x10000000
>;
/*
Fixed
by
bootwrapper
*/
};
soc
@
fdf00000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
device_type
=
"soc"
;
ranges
=
<
0x00000000
0xfdf00000
0x00100000
>;
bus
-
frequency
=
<
0
>;
/*
Fixed
by
bootwrapper
*/
memory
-
controller
@
2000
{
compatible
=
"fsl,8540-memory-controller"
;
reg
=
<
0x2000
0x1000
>;
interrupt
-
parent
=
<&
MPIC
>;
interrupts
=
<
0x12
0x2
>;
};
l2
-
cache
-
controller
@
20000
{
compatible
=
"fsl,8540-l2-cache-controller"
;
reg
=
<
0x20000
0x1000
>;
cache
-
line
-
size
=
<
0x20
>;
/*
32
bytes
*/
cache
-
size
=
<
0x40000
>;
/*
L2
,
256
K
*/
interrupt
-
parent
=
<&
MPIC
>;
interrupts
=
<
0x10
0x2
>;
};
i2c
@
3000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
cell
-
index
=
<
0
>;
compatible
=
"fsl-i2c"
;
reg
=
<
0x3000
0x100
>;
interrupts
=
<
0x2b
0x2
>;
interrupt
-
parent
=
<&
MPIC
>;
dfsrr
;
};
mdio
@
24520
{
/*
For
TSECs
*/
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
compatible
=
"fsl,gianfar-mdio"
;
reg
=
<
0x24520
0x20
>;
PHY1
:
ethernet
-
phy
@
1
{
interrupt
-
parent
=
<&
MPIC
>;
reg
=
<
0x1
>;
device_type
=
"ethernet-phy"
;
};
PHY2
:
ethernet
-
phy
@
2
{
interrupt
-
parent
=
<&
MPIC
>;
reg
=
<
0x2
>;
device_type
=
"ethernet-phy"
;
};
};
enet0
:
ethernet
@
24000
{
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
0x24000
0x1000
>;
/*
Mac
address
filled
in
by
bootwrapper
*/
local
-
mac
-
address
=
[
00
00
00
00
00
00
];
interrupts
=
<
0x1d
0x2
0x1e
0x2
0x22
0x2
>;
interrupt
-
parent
=
<&
MPIC
>;
phy
-
handle
=
<&
PHY1
>;
};
enet1
:
ethernet
@
25000
{
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
0x25000
0x1000
>;
/*
Mac
address
filled
in
by
bootwrapper
*/
local
-
mac
-
address
=
[
00
00
00
00
00
00
];
interrupts
=
<
0x23
0x2
0x24
0x2
0x28
0x2
>;
interrupt
-
parent
=
<&
MPIC
>;
phy
-
handle
=
<&
PHY2
>;
};
MPIC
:
pic
@
40000
{
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
interrupt
-
controller
;
reg
=
<
0x40000
0x40000
>;
device_type
=
"open-pic"
;
};
cpm
@
919
c0
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
compatible
=
"fsl,mpc8560-cpm"
,
"fsl,cpm2"
;
reg
=
<
0x919c0
0x30
>;
ranges
;
muram
@
80000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
ranges
=
<
0x0
0x80000
0x10000
>;
data
@
0
{
compatible
=
"fsl,cpm-muram-data"
;
reg
=
<
0x0
0x4000
0x9000
0x2000
>;
};
};
brg
@
919f0
{
compatible
=
"fsl,mpc8560-brg"
,
"fsl,cpm2-brg"
,
"fsl,cpm-brg"
;
reg
=
<
0x919f0
0x10
0x915f0
0x10
>;
clock
-
frequency
=
<
165000000
>;
/*
166
MHz
*/
};
CPMPIC
:
pic
@
90
c00
{
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
interrupt
-
controller
;
interrupts
=
<
0x2e
0x2
>;
interrupt
-
parent
=
<&
MPIC
>;
reg
=
<
0x90c00
0x80
>;
compatible
=
"fsl,mpc8560-cpm-pic"
,
"fsl,cpm2-pic"
;
};
serial
@
91
a00
{
device_type
=
"serial"
;
compatible
=
"fsl,mpc8560-scc-uart"
,
"fsl,cpm2-scc-uart"
;
reg
=
<
0x91a00
0x20
0x88000
0x100
>;
fsl
,
cpm
-
brg
=
<
1
>;
fsl
,
cpm
-
command
=
<
0x800000
>;
current
-
speed
=
<
0x1c200
>;
interrupts
=
<
0x28
0x8
>;
interrupt
-
parent
=
<&
CPMPIC
>;
};
serial
@
91
a20
{
device_type
=
"serial"
;
compatible
=
"fsl,mpc8560-scc-uart"
,
"fsl,cpm2-scc-uart"
;
reg
=
<
0x91a20
0x20
0x88100
0x100
>;
fsl
,
cpm
-
brg
=
<
2
>;
fsl
,
cpm
-
command
=
<
0x4a00000
>;
current
-
speed
=
<
0x1c200
>;
interrupts
=
<
0x29
0x8
>;
interrupt
-
parent
=
<&
CPMPIC
>;
};
mdio
@
90
d00
{
/*
For
FCCs
*/
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
compatible
=
"fsl,cpm2-mdio-bitbang"
;
reg
=
<
0x90d00
0x14
>;
fsl
,
mdio
-
pin
=
<
24
>;
fsl
,
mdc
-
pin
=
<
25
>;
PHY0
:
ethernet
-
phy
@
0
{
interrupt
-
parent
=
<&
MPIC
>;
reg
=
<
0x0
>;
device_type
=
"ethernet-phy"
;
};
};
enet2
:
ethernet
@
91300
{
device_type
=
"network"
;
compatible
=
"fsl,mpc8560-fcc-enet"
,
"fsl,cpm2-fcc-enet"
;
reg
=
<
0x91300
0x20
0x88400
0x100
0x91390
0x1
>;
/*
Mac
address
filled
in
by
bootwrapper
*/
local
-
mac
-
address
=
[
00
00
00
00
00
00
];
fsl
,
cpm
-
command
=
<
0x12000300
>;
interrupts
=
<
0x20
0x8
>;
interrupt
-
parent
=
<&
CPMPIC
>;
phy
-
handle
=
<&
PHY0
>;
};
};
};
localbus
@
fdf05000
{
#
address
-
cells
=
<
2
>;
#
size
-
cells
=
<
1
>;
compatible
=
"fsl,mpc8560-localbus"
;
reg
=
<
0xfdf05000
0x68
>;
ranges
=
<
0x0
0x0
0xe0000000
0x00800000
0x4
0x0
0xe8080000
0x00080000
>;
flash
@
0
,
0
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
compatible
=
"jedec-flash"
;
reg
=
<
0x0
0x0
0x800000
>;
bank
-
width
=
<
0x2
>;
partition
@
0
{
label
=
"Primary Kernel"
;
reg
=
<
0x0
0x180000
>;
};
partition
@
180000
{
label
=
"Primary Filesystem"
;
reg
=
<
0x180000
0x580000
>;
};
partition
@
700000
{
label
=
"Monitor"
;
reg
=
<
0x300000
0x100000
>;
read
-
only
;
};
};
cpld
@
4
,
0
{
compatible
=
"emerson,KSI8560-cpld"
;
reg
=
<
0x4
0x0
0x80000
>;
};
};
chosen
{
linux
,
stdout
-
path
=
"/soc/cpm/serial@91a00"
;
};
};
arch/powerpc/boot/wrapper
浏览文件 @
e6b18912
...
@@ -174,7 +174,7 @@ cuboot*)
...
@@ -174,7 +174,7 @@ cuboot*)
*
-mpc83
*
)
*
-mpc83
*
)
platformo
=
$object
/cuboot-83xx.o
platformo
=
$object
/cuboot-83xx.o
;;
;;
*
-tqm8541
|
*
-mpc8560
*
|
*
-tqm8560
|
*
-tqm8555
)
*
-tqm8541
|
*
-mpc8560
*
|
*
-tqm8560
|
*
-tqm8555
|
*
-ksi8560
*
)
platformo
=
$object
/cuboot-85xx-cpm2.o
platformo
=
$object
/cuboot-85xx-cpm2.o
;;
;;
*
-mpc85
*
|
*
-tqm8540
|
*
-sbc85
*
)
*
-mpc85
*
|
*
-tqm8540
|
*
-sbc85
*
)
...
...
arch/powerpc/configs/ksi8560_defconfig
0 → 100644
浏览文件 @
e6b18912
此差异已折叠。
点击以展开。
arch/powerpc/platforms/85xx/Kconfig
浏览文件 @
e6b18912
...
@@ -46,6 +46,13 @@ config MPC85xx_DS
...
@@ -46,6 +46,13 @@ config MPC85xx_DS
help
help
This option enables support for the MPC85xx DS (MPC8544 DS) board
This option enables support for the MPC85xx DS (MPC8544 DS) board
config KSI8560
bool "Emerson KSI8560"
select PPC_CPM_NEW_BINDING
select DEFAULT_UIMAGE
help
This option enables support for the Emerson KSI8560 board
config STX_GP3
config STX_GP3
bool "Silicon Turnkey Express GP3"
bool "Silicon Turnkey Express GP3"
help
help
...
...
arch/powerpc/platforms/85xx/Makefile
浏览文件 @
e6b18912
...
@@ -10,3 +10,4 @@ obj-$(CONFIG_STX_GP3) += stx_gp3.o
...
@@ -10,3 +10,4 @@ obj-$(CONFIG_STX_GP3) += stx_gp3.o
obj-$(CONFIG_TQM85xx)
+=
tqm85xx.o
obj-$(CONFIG_TQM85xx)
+=
tqm85xx.o
obj-$(CONFIG_SBC8560)
+=
sbc8560.o
obj-$(CONFIG_SBC8560)
+=
sbc8560.o
obj-$(CONFIG_SBC8548)
+=
sbc8548.o
obj-$(CONFIG_SBC8548)
+=
sbc8548.o
obj-$(CONFIG_KSI8560)
+=
ksi8560.o
arch/powerpc/platforms/85xx/ksi8560.c
0 → 100644
浏览文件 @
e6b18912
/*
* Board setup routines for the Emerson KSI8560
*
* Author: Alexandr Smirnov <asmirnov@ru.mvista.com>
*
* Based on mpc85xx_ads.c maintained by Kumar Gala
*
* 2008 (c) MontaVista, Software, Inc. This file is licensed under
* the terms of the GNU General Public License version 2. This program
* is licensed "as is" without any warranty of any kind, whether express
* or implied.
*
*/
#include <linux/stddef.h>
#include <linux/kernel.h>
#include <linux/pci.h>
#include <linux/kdev_t.h>
#include <linux/delay.h>
#include <linux/seq_file.h>
#include <linux/of_platform.h>
#include <asm/system.h>
#include <asm/time.h>
#include <asm/machdep.h>
#include <asm/pci-bridge.h>
#include <asm/mpic.h>
#include <mm/mmu_decl.h>
#include <asm/udbg.h>
#include <asm/prom.h>
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
#include <asm/cpm2.h>
#include <sysdev/cpm2_pic.h>
#define KSI8560_CPLD_HVR 0x04
/* Hardware Version Register */
#define KSI8560_CPLD_PVR 0x08
/* PLD Version Register */
#define KSI8560_CPLD_RCR1 0x30
/* Reset Command Register 1 */
#define KSI8560_CPLD_RCR1_CPUHR 0x80
/* CPU Hard Reset */
static
void
__iomem
*
cpld_base
=
NULL
;
static
void
machine_restart
(
char
*
cmd
)
{
if
(
cpld_base
)
out_8
(
cpld_base
+
KSI8560_CPLD_RCR1
,
KSI8560_CPLD_RCR1_CPUHR
);
else
printk
(
KERN_ERR
"Can't find CPLD base, hang forever
\n
"
);
for
(;;);
}
static
void
cpm2_cascade
(
unsigned
int
irq
,
struct
irq_desc
*
desc
)
{
int
cascade_irq
;
while
((
cascade_irq
=
cpm2_get_irq
())
>=
0
)
generic_handle_irq
(
cascade_irq
);
desc
->
chip
->
eoi
(
irq
);
}
static
void
__init
ksi8560_pic_init
(
void
)
{
struct
mpic
*
mpic
;
struct
resource
r
;
struct
device_node
*
np
;
#ifdef CONFIG_CPM2
int
irq
;
#endif
np
=
of_find_node_by_type
(
NULL
,
"open-pic"
);
if
(
np
==
NULL
)
{
printk
(
KERN_ERR
"Could not find open-pic node
\n
"
);
return
;
}
if
(
of_address_to_resource
(
np
,
0
,
&
r
))
{
printk
(
KERN_ERR
"Could not map mpic register space
\n
"
);
of_node_put
(
np
);
return
;
}
mpic
=
mpic_alloc
(
np
,
r
.
start
,
MPIC_PRIMARY
|
MPIC_WANTS_RESET
|
MPIC_BIG_ENDIAN
,
0
,
256
,
" OpenPIC "
);
BUG_ON
(
mpic
==
NULL
);
of_node_put
(
np
);
mpic_init
(
mpic
);
#ifdef CONFIG_CPM2
/* Setup CPM2 PIC */
np
=
of_find_compatible_node
(
NULL
,
NULL
,
"fsl,cpm2-pic"
);
if
(
np
==
NULL
)
{
printk
(
KERN_ERR
"PIC init: can not find fsl,cpm2-pic node
\n
"
);
return
;
}
irq
=
irq_of_parse_and_map
(
np
,
0
);
cpm2_pic_init
(
np
);
of_node_put
(
np
);
set_irq_chained_handler
(
irq
,
cpm2_cascade
);
setup_irq
(
0
,
NULL
);
#endif
}
#ifdef CONFIG_CPM2
/*
* Setup I/O ports
*/
struct
cpm_pin
{
int
port
,
pin
,
flags
;
};
static
struct
cpm_pin
__initdata
ksi8560_pins
[]
=
{
/* SCC1 */
{
3
,
29
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
3
,
30
,
CPM_PIN_OUTPUT
|
CPM_PIN_SECONDARY
},
{
3
,
31
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
/* SCC2 */
{
3
,
26
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
3
,
27
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
3
,
28
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
/* FCC1 */
{
0
,
14
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
{
0
,
15
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
{
0
,
16
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
{
0
,
17
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
{
0
,
18
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
0
,
19
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
0
,
20
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
0
,
21
,
CPM_PIN_OUTPUT
|
CPM_PIN_PRIMARY
},
{
0
,
26
,
CPM_PIN_INPUT
|
CPM_PIN_SECONDARY
},
{
0
,
27
,
CPM_PIN_INPUT
|
CPM_PIN_SECONDARY
},
{
0
,
28
,
CPM_PIN_OUTPUT
|
CPM_PIN_SECONDARY
},
{
0
,
29
,
CPM_PIN_OUTPUT
|
CPM_PIN_SECONDARY
},
{
0
,
30
,
CPM_PIN_INPUT
|
CPM_PIN_SECONDARY
},
{
0
,
31
,
CPM_PIN_INPUT
|
CPM_PIN_SECONDARY
},
{
2
,
23
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
/* CLK9 */
{
2
,
22
,
CPM_PIN_INPUT
|
CPM_PIN_PRIMARY
},
/* CLK10 */
};
static
void
__init
init_ioports
(
void
)
{
int
i
;
for
(
i
=
0
;
i
<
ARRAY_SIZE
(
ksi8560_pins
);
i
++
)
{
struct
cpm_pin
*
pin
=
&
ksi8560_pins
[
i
];
cpm2_set_pin
(
pin
->
port
,
pin
->
pin
,
pin
->
flags
);
}
cpm2_clk_setup
(
CPM_CLK_SCC1
,
CPM_BRG1
,
CPM_CLK_RX
);
cpm2_clk_setup
(
CPM_CLK_SCC1
,
CPM_BRG1
,
CPM_CLK_TX
);
cpm2_clk_setup
(
CPM_CLK_SCC2
,
CPM_BRG2
,
CPM_CLK_RX
);
cpm2_clk_setup
(
CPM_CLK_SCC2
,
CPM_BRG2
,
CPM_CLK_TX
);
cpm2_clk_setup
(
CPM_CLK_FCC1
,
CPM_CLK9
,
CPM_CLK_RX
);
cpm2_clk_setup
(
CPM_CLK_FCC1
,
CPM_CLK10
,
CPM_CLK_TX
);
}
#endif
/*
* Setup the architecture
*/
static
void
__init
ksi8560_setup_arch
(
void
)
{
struct
device_node
*
cpld
;
cpld
=
of_find_compatible_node
(
NULL
,
NULL
,
"emerson,KSI8560-cpld"
);
if
(
cpld
)
cpld_base
=
of_iomap
(
cpld
,
0
);
else
printk
(
KERN_ERR
"Can't find CPLD in device tree
\n
"
);
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"ksi8560_setup_arch()"
,
0
);
#ifdef CONFIG_CPM2
cpm2_reset
();
init_ioports
();
#endif
}
static
void
ksi8560_show_cpuinfo
(
struct
seq_file
*
m
)
{
uint
pvid
,
svid
,
phid1
;
uint
memsize
=
total_memory
;
pvid
=
mfspr
(
SPRN_PVR
);
svid
=
mfspr
(
SPRN_SVR
);
seq_printf
(
m
,
"Vendor
\t\t
: Emerson Network Power
\n
"
);
seq_printf
(
m
,
"Board
\t\t
: KSI8560
\n
"
);
if
(
cpld_base
)
{
seq_printf
(
m
,
"Hardware rev
\t
: %d
\n
"
,
in_8
(
cpld_base
+
KSI8560_CPLD_HVR
));
seq_printf
(
m
,
"CPLD rev
\t
: %d
\n
"
,
in_8
(
cpld_base
+
KSI8560_CPLD_PVR
));
}
else
seq_printf
(
m
,
"Unknown Hardware and CPLD revs
\n
"
);
seq_printf
(
m
,
"PVR
\t\t
: 0x%x
\n
"
,
pvid
);
seq_printf
(
m
,
"SVR
\t\t
: 0x%x
\n
"
,
svid
);
/* Display cpu Pll setting */
phid1
=
mfspr
(
SPRN_HID1
);
seq_printf
(
m
,
"PLL setting
\t
: 0x%x
\n
"
,
((
phid1
>>
24
)
&
0x3f
));
/* Display the amount of memory */
seq_printf
(
m
,
"Memory
\t\t
: %d MB
\n
"
,
memsize
/
(
1024
*
1024
));
}
static
struct
of_device_id
__initdata
of_bus_ids
[]
=
{
{
.
type
=
"soc"
,
},
{
.
name
=
"cpm"
,
},
{
.
name
=
"localbus"
,
},
{},
};
static
int
__init
declare_of_platform_devices
(
void
)
{
of_platform_bus_probe
(
NULL
,
of_bus_ids
,
NULL
);
return
0
;
}
machine_device_initcall
(
ksi8560
,
declare_of_platform_devices
);
/*
* Called very early, device-tree isn't unflattened
*/
static
int
__init
ksi8560_probe
(
void
)
{
unsigned
long
root
=
of_get_flat_dt_root
();
return
of_flat_dt_is_compatible
(
root
,
"emerson,KSI8560"
);
}
define_machine
(
ksi8560
)
{
.
name
=
"KSI8560"
,
.
probe
=
ksi8560_probe
,
.
setup_arch
=
ksi8560_setup_arch
,
.
init_IRQ
=
ksi8560_pic_init
,
.
show_cpuinfo
=
ksi8560_show_cpuinfo
,
.
get_irq
=
mpic_get_irq
,
.
restart
=
machine_restart
,
.
calibrate_decr
=
generic_calibrate_decr
,
};
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录