Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
Commits
ea0763a7
Commit
ea0763a7
authored
Aug 25, 2006
by
Paul Mackerras
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'merge'
parents
271c511d
c85c41ad
Changes
37
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
1746 additions
and
464 deletions
+1746
-464
Documentation/powerpc/booting-without-of.txt
Documentation/powerpc/booting-without-of.txt
+5
-5
arch/powerpc/Kconfig
arch/powerpc/Kconfig
+4
-3
arch/powerpc/boot/dts/mpc8540ads.dts
arch/powerpc/boot/dts/mpc8540ads.dts
+257
-0
arch/powerpc/boot/dts/mpc8541cds.dts
arch/powerpc/boot/dts/mpc8541cds.dts
+244
-0
arch/powerpc/boot/dts/mpc8548cds.dts
arch/powerpc/boot/dts/mpc8548cds.dts
+287
-0
arch/powerpc/boot/dts/mpc8555cds.dts
arch/powerpc/boot/dts/mpc8555cds.dts
+244
-0
arch/powerpc/boot/dts/mpc8641_hpcn.dts
arch/powerpc/boot/dts/mpc8641_hpcn.dts
+1
-0
arch/powerpc/configs/g5_defconfig
arch/powerpc/configs/g5_defconfig
+98
-24
arch/powerpc/configs/iseries_defconfig
arch/powerpc/configs/iseries_defconfig
+64
-14
arch/powerpc/configs/pseries_defconfig
arch/powerpc/configs/pseries_defconfig
+62
-16
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/Makefile
+2
-2
arch/powerpc/kernel/cpu_setup_ppc970.S
arch/powerpc/kernel/cpu_setup_ppc970.S
+2
-0
arch/powerpc/kernel/crash.c
arch/powerpc/kernel/crash.c
+11
-0
arch/powerpc/kernel/irq.c
arch/powerpc/kernel/irq.c
+1
-1
arch/powerpc/kernel/kprobes.c
arch/powerpc/kernel/kprobes.c
+2
-0
arch/powerpc/kernel/legacy_serial.c
arch/powerpc/kernel/legacy_serial.c
+6
-2
arch/powerpc/kernel/machine_kexec.c
arch/powerpc/kernel/machine_kexec.c
+56
-0
arch/powerpc/kernel/machine_kexec_64.c
arch/powerpc/kernel/machine_kexec_64.c
+0
-57
arch/powerpc/kernel/prom_parse.c
arch/powerpc/kernel/prom_parse.c
+7
-6
arch/powerpc/kernel/time.c
arch/powerpc/kernel/time.c
+17
-8
arch/powerpc/kernel/traps.c
arch/powerpc/kernel/traps.c
+17
-7
arch/powerpc/mm/hugetlbpage.c
arch/powerpc/mm/hugetlbpage.c
+1
-1
arch/powerpc/platforms/85xx/Kconfig
arch/powerpc/platforms/85xx/Kconfig
+0
-1
arch/powerpc/platforms/85xx/mpc85xx_ads.c
arch/powerpc/platforms/85xx/mpc85xx_ads.c
+55
-107
arch/powerpc/platforms/85xx/mpc85xx_cds.c
arch/powerpc/platforms/85xx/mpc85xx_cds.c
+88
-122
arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
+9
-10
arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
+24
-49
arch/powerpc/platforms/powermac/bootx_init.c
arch/powerpc/platforms/powermac/bootx_init.c
+11
-4
arch/powerpc/sysdev/fsl_soc.c
arch/powerpc/sysdev/fsl_soc.c
+10
-2
arch/powerpc/sysdev/tsi108_dev.c
arch/powerpc/sysdev/tsi108_dev.c
+6
-4
arch/powerpc/sysdev/tsi108_pci.c
arch/powerpc/sysdev/tsi108_pci.c
+12
-9
include/asm-powerpc/kexec.h
include/asm-powerpc/kexec.h
+1
-2
include/asm-powerpc/mpc86xx.h
include/asm-powerpc/mpc86xx.h
+0
-1
include/asm-powerpc/pgalloc.h
include/asm-powerpc/pgalloc.h
+1
-1
include/asm-powerpc/system.h
include/asm-powerpc/system.h
+9
-0
include/asm-powerpc/tsi108.h
include/asm-powerpc/tsi108.h
+8
-6
include/asm-powerpc/tsi108_irq.h
include/asm-powerpc/tsi108_irq.h
+124
-0
No files found.
Documentation/powerpc/booting-without-of.txt
View file @
ea0763a7
...
...
@@ -1196,7 +1196,7 @@ platforms are moved over to use the flattened-device-tree model.
- model : Model of the device. Can be "TSEC", "eTSEC", or "FEC"
- compatible : Should be "gianfar"
- reg : Offset and length of the register set for the device
- address : List of bytes representing the ethernet address of
-
mac-
address : List of bytes representing the ethernet address of
this controller
- interrupts : <a b> where a is the interrupt number and b is a
field that represents an encoding of the sense and level
...
...
@@ -1216,7 +1216,7 @@ platforms are moved over to use the flattened-device-tree model.
model = "TSEC";
compatible = "gianfar";
reg = <24000 1000>;
address = [ 00 E0 0C 00 73 00 ];
mac-
address = [ 00 E0 0C 00 73 00 ];
interrupts = <d 3 e 3 12 3>;
interrupt-parent = <40000>;
phy-handle = <2452000>
...
...
@@ -1498,7 +1498,7 @@ not necessary as they are usually the same as the root node.
model = "TSEC";
compatible = "gianfar";
reg = <24000 1000>;
address = [ 00 E0 0C 00 73 00 ];
mac-
address = [ 00 E0 0C 00 73 00 ];
interrupts = <d 3 e 3 12 3>;
interrupt-parent = <40000>;
phy-handle = <2452000>;
...
...
@@ -1511,7 +1511,7 @@ not necessary as they are usually the same as the root node.
model = "TSEC";
compatible = "gianfar";
reg = <25000 1000>;
address = [ 00 E0 0C 00 73 01 ];
mac-
address = [ 00 E0 0C 00 73 01 ];
interrupts = <13 3 14 3 18 3>;
interrupt-parent = <40000>;
phy-handle = <2452001>;
...
...
@@ -1524,7 +1524,7 @@ not necessary as they are usually the same as the root node.
model = "FEC";
compatible = "gianfar";
reg = <26000 1000>;
address = [ 00 E0 0C 00 73 02 ];
mac-
address = [ 00 E0 0C 00 73 02 ];
interrupts = <19 3>;
interrupt-parent = <40000>;
phy-handle = <2452002>;
...
...
arch/powerpc/Kconfig
View file @
ea0763a7
...
...
@@ -837,9 +837,10 @@ config MCA
bool
config PCI
bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) \
|| MPC7448HPC2
default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx && !PPC_85xx && !PPC_86xx
bool "PCI support" if 40x || CPM2 || PPC_83xx || PPC_85xx || PPC_86xx \
|| PPC_MPC52xx || (EMBEDDED && PPC_ISERIES) || MPC7448HPC2
default y if !40x && !CPM2 && !8xx && !APUS && !PPC_83xx \
&& !PPC_85xx && !PPC_86xx
default PCI_PERMEDIA if !4xx && !CPM2 && !8xx && APUS
default PCI_QSPAN if !4xx && !CPM2 && 8xx
help
...
...
arch/powerpc/boot/dts/mpc8540ads.dts
0 → 100644
View file @
ea0763a7
/*
*
MPC8540
ADS
Device
Tree
Source
*
*
Copyright
2006
Freescale
Semiconductor
Inc
.
*
*
This
program
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
*
under
the
terms
of
the
GNU
General
Public
License
as
published
by
the
*
Free
Software
Foundation
;
either
version
2
of
the
License
,
or
(
at
your
*
option
)
any
later
version
.
*/
/
{
model
=
"MPC8540ADS"
;
compatible
=
"MPC85xxADS"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
linux
,
phandle
=
<
100
>;
cpus
{
#
cpus
=
<
1
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
linux
,
phandle
=
<
200
>;
PowerPC
,
8540
@
0
{
device_type
=
"cpu"
;
reg
=
<
0
>;
d
-
cache
-
line
-
size
=
<
20
>;
//
32
bytes
i
-
cache
-
line
-
size
=
<
20
>;
//
32
bytes
d
-
cache
-
size
=
<
8000
>;
//
L1
,
32
K
i
-
cache
-
size
=
<
8000
>;
//
L1
,
32
K
timebase
-
frequency
=
<
0
>;
//
33
MHz
,
from
uboot
bus
-
frequency
=
<
0
>;
//
166
MHz
clock
-
frequency
=
<
0
>;
//
825
MHz
,
from
uboot
32
-
bit
;
linux
,
phandle
=
<
201
>;
};
};
memory
{
device_type
=
"memory"
;
linux
,
phandle
=
<
300
>;
reg
=
<
00000000
08000000
>;
//
128
M
at
0x0
};
soc8540
@
e0000000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
#
interrupt
-
cells
=
<
2
>;
device_type
=
"soc"
;
ranges
=
<
0
e0000000
00100000
>;
reg
=
<
e0000000
00100000
>;
//
CCSRBAR
1
M
bus
-
frequency
=
<
0
>;
i2c
@
3000
{
device_type
=
"i2c"
;
compatible
=
"fsl-i2c"
;
reg
=
<
3000
100
>;
interrupts
=
<
1
b
2
>;
interrupt
-
parent
=
<
40000
>;
dfsrr
;
};
mdio
@
24520
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"mdio"
;
compatible
=
"gianfar"
;
reg
=
<
24520
20
>;
linux
,
phandle
=
<
24520
>;
ethernet
-
phy
@
0
{
linux
,
phandle
=
<
2452000
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
1
>;
reg
=
<
0
>;
device_type
=
"ethernet-phy"
;
};
ethernet
-
phy
@
1
{
linux
,
phandle
=
<
2452001
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
1
>;
reg
=
<
1
>;
device_type
=
"ethernet-phy"
;
};
ethernet
-
phy
@
3
{
linux
,
phandle
=
<
2452003
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
37
1
>;
reg
=
<
3
>;
device_type
=
"ethernet-phy"
;
};
};
ethernet
@
24000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
24000
1000
>;
address
=
[
00
E0
0
C
00
73
00
];
local
-
mac
-
address
=
[
00
E0
0
C
00
73
00
];
interrupts
=
<
d
2
e
2
12
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452000
>;
};
ethernet
@
25000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
25000
1000
>;
address
=
[
00
E0
0
C
00
73
01
];
local
-
mac
-
address
=
[
00
E0
0
C
00
73
01
];
interrupts
=
<
13
2
14
2
18
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452001
>;
};
ethernet
@
26000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"FEC"
;
compatible
=
"gianfar"
;
reg
=
<
26000
1000
>;
address
=
[
00
E0
0
C
00
73
02
];
local
-
mac
-
address
=
[
00
E0
0
C
00
73
02
];
interrupts
=
<
19
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452003
>;
};
serial
@
4500
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
4500
100
>;
//
reg
base
,
size
clock
-
frequency
=
<
0
>;
//
should
we
fill
in
in
uboot
?
interrupts
=
<
1
a
2
>;
interrupt
-
parent
=
<
40000
>;
};
serial
@
4600
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
4600
100
>;
//
reg
base
,
size
clock
-
frequency
=
<
0
>;
//
should
we
fill
in
in
uboot
?
interrupts
=
<
1
a
2
>;
interrupt
-
parent
=
<
40000
>;
};
pci
@
8000
{
linux
,
phandle
=
<
8000
>;
interrupt
-
map
-
mask
=
<
f800
0
0
7
>;
interrupt
-
map
=
<
/*
IDSEL
0x02
*/
1000
0
0
1
40000
31
1
1000
0
0
2
40000
32
1
1000
0
0
3
40000
33
1
1000
0
0
4
40000
34
1
/*
IDSEL
0x03
*/
1800
0
0
1
40000
34
1
1800
0
0
2
40000
31
1
1800
0
0
3
40000
32
1
1800
0
0
4
40000
33
1
/*
IDSEL
0x04
*/
2000
0
0
1
40000
33
1
2000
0
0
2
40000
34
1
2000
0
0
3
40000
31
1
2000
0
0
4
40000
32
1
/*
IDSEL
0x05
*/
2800
0
0
1
40000
32
1
2800
0
0
2
40000
33
1
2800
0
0
3
40000
34
1
2800
0
0
4
40000
31
1
/*
IDSEL
0x0c
*/
6000
0
0
1
40000
31
1
6000
0
0
2
40000
32
1
6000
0
0
3
40000
33
1
6000
0
0
4
40000
34
1
/*
IDSEL
0x0d
*/
6800
0
0
1
40000
34
1
6800
0
0
2
40000
31
1
6800
0
0
3
40000
32
1
6800
0
0
4
40000
33
1
/*
IDSEL
0x0e
*/
7000
0
0
1
40000
33
1
7000
0
0
2
40000
34
1
7000
0
0
3
40000
31
1
7000
0
0
4
40000
32
1
/*
IDSEL
0x0f
*/
7800
0
0
1
40000
32
1
7800
0
0
2
40000
33
1
7800
0
0
3
40000
34
1
7800
0
0
4
40000
31
1
/*
IDSEL
0x12
*/
9000
0
0
1
40000
31
1
9000
0
0
2
40000
32
1
9000
0
0
3
40000
33
1
9000
0
0
4
40000
34
1
/*
IDSEL
0x13
*/
9800
0
0
1
40000
34
1
9800
0
0
2
40000
31
1
9800
0
0
3
40000
32
1
9800
0
0
4
40000
33
1
/*
IDSEL
0x14
*/
a000
0
0
1
40000
33
1
a000
0
0
2
40000
34
1
a000
0
0
3
40000
31
1
a000
0
0
4
40000
32
1
/*
IDSEL
0x15
*/
a800
0
0
1
40000
32
1
a800
0
0
2
40000
33
1
a800
0
0
3
40000
34
1
a800
0
0
4
40000
31
1
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
08
2
>;
bus
-
range
=
<
0
0
>;
ranges
=
<
02000000
0
80000000
80000000
0
20000000
01000000
0
00000000
e2000000
0
00100000
>;
clock
-
frequency
=
<
3f940
aa
>;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
reg
=
<
8000
1000
>;
compatible
=
"85xx"
;
device_type
=
"pci"
;
};
pic
@
40000
{
linux
,
phandle
=
<
40000
>;
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
reg
=
<
40000
40000
>;
built
-
in
;
compatible
=
"chrp,open-pic"
;
device_type
=
"open-pic"
;
big
-
endian
;
};
};
};
arch/powerpc/boot/dts/mpc8541cds.dts
0 → 100644
View file @
ea0763a7
/*
*
MPC8541
CDS
Device
Tree
Source
*
*
Copyright
2006
Freescale
Semiconductor
Inc
.
*
*
This
program
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
*
under
the
terms
of
the
GNU
General
Public
License
as
published
by
the
*
Free
Software
Foundation
;
either
version
2
of
the
License
,
or
(
at
your
*
option
)
any
later
version
.
*/
/
{
model
=
"MPC8541CDS"
;
compatible
=
"MPC85xxCDS"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
linux
,
phandle
=
<
100
>;
cpus
{
#
cpus
=
<
1
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
linux
,
phandle
=
<
200
>;
PowerPC
,
8541
@
0
{
device_type
=
"cpu"
;
reg
=
<
0
>;
d
-
cache
-
line
-
size
=
<
20
>;
//
32
bytes
i
-
cache
-
line
-
size
=
<
20
>;
//
32
bytes
d
-
cache
-
size
=
<
8000
>;
//
L1
,
32
K
i
-
cache
-
size
=
<
8000
>;
//
L1
,
32
K
timebase
-
frequency
=
<
0
>;
//
33
MHz
,
from
uboot
bus
-
frequency
=
<
0
>;
//
166
MHz
clock
-
frequency
=
<
0
>;
//
825
MHz
,
from
uboot
32
-
bit
;
linux
,
phandle
=
<
201
>;
};
};
memory
{
device_type
=
"memory"
;
linux
,
phandle
=
<
300
>;
reg
=
<
00000000
08000000
>;
//
128
M
at
0x0
};
soc8541
@
e0000000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
#
interrupt
-
cells
=
<
2
>;
device_type
=
"soc"
;
ranges
=
<
0
e0000000
00100000
>;
reg
=
<
e0000000
00100000
>;
//
CCSRBAR
1
M
bus
-
frequency
=
<
0
>;
i2c
@
3000
{
device_type
=
"i2c"
;
compatible
=
"fsl-i2c"
;
reg
=
<
3000
100
>;
interrupts
=
<
1
b
2
>;
interrupt
-
parent
=
<
40000
>;
dfsrr
;
};
mdio
@
24520
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"mdio"
;
compatible
=
"gianfar"
;
reg
=
<
24520
20
>;
linux
,
phandle
=
<
24520
>;
ethernet
-
phy
@
0
{
linux
,
phandle
=
<
2452000
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
0
>;
reg
=
<
0
>;
device_type
=
"ethernet-phy"
;
};
ethernet
-
phy
@
1
{
linux
,
phandle
=
<
2452001
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
0
>;
reg
=
<
1
>;
device_type
=
"ethernet-phy"
;
};
};
ethernet
@
24000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
24000
1000
>;
local
-
mac
-
address
=
[
00
E0
0
C
00
73
00
];
interrupts
=
<
d
2
e
2
12
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452000
>;
};
ethernet
@
25000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
25000
1000
>;
local
-
mac
-
address
=
[
00
E0
0
C
00
73
01
];
interrupts
=
<
13
2
14
2
18
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452001
>;
};
serial
@
4500
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
4500
100
>;
//
reg
base
,
size
clock
-
frequency
=
<
0
>;
//
should
we
fill
in
in
uboot
?
interrupts
=
<
1
a
2
>;
interrupt
-
parent
=
<
40000
>;
};
serial
@
4600
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
4600
100
>;
//
reg
base
,
size
clock
-
frequency
=
<
0
>;
//
should
we
fill
in
in
uboot
?
interrupts
=
<
1
a
2
>;
interrupt
-
parent
=
<
40000
>;
};
pci
@
8000
{
linux
,
phandle
=
<
8000
>;
interrupt
-
map
-
mask
=
<
1f800
0
0
7
>;
interrupt
-
map
=
<
/*
IDSEL
0x10
*/
08000
0
0
1
40000
30
1
08000
0
0
2
40000
31
1
08000
0
0
3
40000
32
1
08000
0
0
4
40000
33
1
/*
IDSEL
0x11
*/
08800
0
0
1
40000
30
1
08800
0
0
2
40000
31
1
08800
0
0
3
40000
32
1
08800
0
0
4
40000
33
1
/*
IDSEL
0x12
(
Slot
1
)
*/
09000
0
0
1
40000
30
1
09000
0
0
2
40000
31
1
09000
0
0
3
40000
32
1
09000
0
0
4
40000
33
1
/*
IDSEL
0x13
(
Slot
2
)
*/
09800
0
0
1
40000
31
1
09800
0
0
2
40000
32
1
09800
0
0
3
40000
33
1
09800
0
0
4
40000
30
1
/*
IDSEL
0x14
(
Slot
3
)
*/
0
a000
0
0
1
40000
32
1
0
a000
0
0
2
40000
33
1
0
a000
0
0
3
40000
30
1
0
a000
0
0
4
40000
31
1
/*
IDSEL
0x15
(
Slot
4
)
*/
0
a800
0
0
1
40000
33
1
0
a800
0
0
2
40000
30
1
0
a800
0
0
3
40000
31
1
0
a800
0
0
4
40000
32
1
/*
Bus
1
(
Tundra
Bridge
)
*/
/*
IDSEL
0x12
(
ISA
bridge
)
*/
19000
0
0
1
40000
30
1
19000
0
0
2
40000
31
1
19000
0
0
3
40000
32
1
19000
0
0
4
40000
33
1
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
08
2
>;
bus
-
range
=
<
0
0
>;
ranges
=
<
02000000
0
80000000
80000000
0
20000000
01000000
0
00000000
e2000000
0
00100000
>;
clock
-
frequency
=
<
3f940
aa
>;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
reg
=
<
8000
1000
>;
compatible
=
"85xx"
;
device_type
=
"pci"
;
i8259
@
19000
{
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
device_type
=
"interrupt-controller"
;
reg
=
<
19000
0
0
0
1
>;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
built
-
in
;
compatible
=
"chrp,iic"
;
big
-
endian
;
interrupts
=
<
1
>;
interrupt
-
parent
=
<
8000
>;
};
};
pci
@
9000
{
linux
,
phandle
=
<
9000
>;
interrupt
-
map
-
mask
=
<
f800
0
0
7
>;
interrupt
-
map
=
<
/*
IDSEL
0x15
*/
a800
0
0
1
40000
3
b
1
a800
0
0
2
40000
3
b
1
a800
0
0
3
40000
3
b
1
a800
0
0
4
40000
3
b
1
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
09
2
>;
bus
-
range
=
<
0
0
>;
ranges
=
<
02000000
0
a0000000
a0000000
0
20000000
01000000
0
00000000
e3000000
0
00100000
>;
clock
-
frequency
=
<
3f940
aa
>;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
reg
=
<
9000
1000
>;
compatible
=
"85xx"
;
device_type
=
"pci"
;
};
pic
@
40000
{
linux
,
phandle
=
<
40000
>;
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
reg
=
<
40000
40000
>;
built
-
in
;
compatible
=
"chrp,open-pic"
;
device_type
=
"open-pic"
;
big
-
endian
;
};
};
};
arch/powerpc/boot/dts/mpc8548cds.dts
0 → 100644
View file @
ea0763a7
/*
*
MPC8555
CDS
Device
Tree
Source
*
*
Copyright
2006
Freescale
Semiconductor
Inc
.
*
*
This
program
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
*
under
the
terms
of
the
GNU
General
Public
License
as
published
by
the
*
Free
Software
Foundation
;
either
version
2
of
the
License
,
or
(
at
your
*
option
)
any
later
version
.
*/
/
{
model
=
"MPC8548CDS"
;
compatible
=
"MPC85xxCDS"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
linux
,
phandle
=
<
100
>;
cpus
{
#
cpus
=
<
1
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
linux
,
phandle
=
<
200
>;
PowerPC
,
8548
@
0
{
device_type
=
"cpu"
;
reg
=
<
0
>;
d
-
cache
-
line
-
size
=
<
20
>;
//
32
bytes
i
-
cache
-
line
-
size
=
<
20
>;
//
32
bytes
d
-
cache
-
size
=
<
8000
>;
//
L1
,
32
K
i
-
cache
-
size
=
<
8000
>;
//
L1
,
32
K
timebase
-
frequency
=
<
0
>;
//
33
MHz
,
from
uboot
bus
-
frequency
=
<
0
>;
//
166
MHz
clock
-
frequency
=
<
0
>;
//
825
MHz
,
from
uboot
32
-
bit
;
linux
,
phandle
=
<
201
>;
};
};
memory
{
device_type
=
"memory"
;
linux
,
phandle
=
<
300
>;
reg
=
<
00000000
08000000
>;
//
128
M
at
0x0
};
soc8548
@
e0000000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
#
interrupt
-
cells
=
<
2
>;
device_type
=
"soc"
;
ranges
=
<
0
e0000000
00100000
>;
reg
=
<
e0000000
00100000
>;
//
CCSRBAR
1
M
bus
-
frequency
=
<
0
>;
i2c
@
3000
{
device_type
=
"i2c"
;
compatible
=
"fsl-i2c"
;
reg
=
<
3000
100
>;
interrupts
=
<
1
b
2
>;
interrupt
-
parent
=
<
40000
>;
dfsrr
;
};
mdio
@
24520
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"mdio"
;
compatible
=
"gianfar"
;
reg
=
<
24520
20
>;
linux
,
phandle
=
<
24520
>;
ethernet
-
phy
@
0
{
linux
,
phandle
=
<
2452000
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
0
>;
reg
=
<
0
>;
device_type
=
"ethernet-phy"
;
};
ethernet
-
phy
@
1
{
linux
,
phandle
=
<
2452001
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
0
>;
reg
=
<
1
>;
device_type
=
"ethernet-phy"
;
};
ethernet
-
phy
@
2
{
linux
,
phandle
=
<
2452002
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
0
>;
reg
=
<
2
>;
device_type
=
"ethernet-phy"
;
};
ethernet
-
phy
@
3
{
linux
,
phandle
=
<
2452003
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
0
>;
reg
=
<
3
>;
device_type
=
"ethernet-phy"
;
};
};
ethernet
@
24000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"eTSEC"
;
compatible
=
"gianfar"
;
reg
=
<
24000
1000
>;
local
-
mac
-
address
=
[
00
E0
0
C
00
73
00
];
interrupts
=
<
d
2
e
2
12
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452000
>;
};
ethernet
@
25000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"eTSEC"
;
compatible
=
"gianfar"
;
reg
=
<
25000
1000
>;
local
-
mac
-
address
=
[
00
E0
0
C
00
73
01
];
interrupts
=
<
13
2
14
2
18
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452001
>;
};
ethernet
@
26000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"eTSEC"
;
compatible
=
"gianfar"
;
reg
=
<
26000
1000
>;
local
-
mac
-
address
=
[
00
E0
0
C
00
73
02
];
interrupts
=
<
f
2
10
2
11
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452001
>;
};
/*
eTSEC
4
is
currently
broken
ethernet
@
27000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"eTSEC"
;
compatible
=
"gianfar"
;
reg
=
<
27000
1000
>;
local
-
mac
-
address
=
[
00
E0
0
C
00
73
03
];
interrupts
=
<
15
2
16
2
17
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452001
>;
};
*/
serial
@
4500
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
4500
100
>;
//
reg
base
,
size
clock
-
frequency
=
<
0
>;
//
should
we
fill
in
in
uboot
?
interrupts
=
<
1
a
2
>;
interrupt
-
parent
=
<
40000
>;
};
serial
@
4600
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
4600
100
>;
//
reg
base
,
size
clock
-
frequency
=
<
0
>;
//
should
we
fill
in
in
uboot
?
interrupts
=
<
1
a
2
>;
interrupt
-
parent
=
<
40000
>;
};
pci
@
8000
{
linux
,
phandle
=
<
8000
>;
interrupt
-
map
-
mask
=
<
1f800
0
0
7
>;
interrupt
-
map
=
<
/*
IDSEL
0x10
*/
08000
0
0
1
40000
30
1
08000
0
0
2
40000
31
1
08000
0
0
3
40000
32
1
08000
0
0
4
40000
33
1
/*
IDSEL
0x11
*/
08800
0
0
1
40000
30
1
08800
0
0
2
40000
31
1
08800
0
0
3
40000
32
1
08800
0
0
4
40000
33
1
/*
IDSEL
0x12
(
Slot
1
)
*/
09000
0
0
1
40000
30
1
09000
0
0
2
40000
31
1
09000
0
0
3
40000
32
1
09000
0
0
4
40000
33
1
/*
IDSEL
0x13
(
Slot
2
)
*/
09800
0
0
1
40000
31
1
09800
0
0
2
40000
32
1
09800
0
0
3
40000
33
1
09800
0
0
4
40000
30
1
/*
IDSEL
0x14
(
Slot
3
)
*/
0
a000
0
0
1
40000
32
1
0
a000
0
0
2
40000
33
1
0
a000
0
0
3
40000
30
1
0
a000
0
0
4
40000
31
1
/*
IDSEL
0x15
(
Slot
4
)
*/
0
a800
0
0
1
40000
33
1
0
a800
0
0
2
40000
30
1
0
a800
0
0
3
40000
31
1
0
a800
0
0
4
40000
32
1
/*
Bus
1
(
Tundra
Bridge
)
*/
/*
IDSEL
0x12
(
ISA
bridge
)
*/
19000
0
0
1
40000
30
1
19000
0
0
2
40000
31
1
19000
0
0
3
40000
32
1
19000
0
0
4
40000
33
1
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
08
2
>;
bus
-
range
=
<
0
0
>;
ranges
=
<
02000000
0
80000000
80000000
0
20000000
01000000
0
00000000
e2000000
0
00100000
>;
clock
-
frequency
=
<
3f940
aa
>;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
reg
=
<
8000
1000
>;
compatible
=
"85xx"
;
device_type
=
"pci"
;
i8259
@
19000
{
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
device_type
=
"interrupt-controller"
;
reg
=
<
19000
0
0
0
1
>;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
built
-
in
;
compatible
=
"chrp,iic"
;
big
-
endian
;
interrupts
=
<
1
>;
interrupt
-
parent
=
<
8000
>;
};
};
pci
@
9000
{
linux
,
phandle
=
<
9000
>;
interrupt
-
map
-
mask
=
<
f800
0
0
7
>;
interrupt
-
map
=
<
/*
IDSEL
0x15
*/
a800
0
0
1
40000
3
b
1
a800
0
0
2
40000
3
b
1
a800
0
0
3
40000
3
b
1
a800
0
0
4
40000
3
b
1
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
09
2
>;
bus
-
range
=
<
0
0
>;
ranges
=
<
02000000
0
a0000000
a0000000
0
20000000
01000000
0
00000000
e3000000
0
00100000
>;
clock
-
frequency
=
<
3f940
aa
>;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
reg
=
<
9000
1000
>;
compatible
=
"85xx"
;
device_type
=
"pci"
;
};
pic
@
40000
{
linux
,
phandle
=
<
40000
>;
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
reg
=
<
40000
40000
>;
built
-
in
;
compatible
=
"chrp,open-pic"
;
device_type
=
"open-pic"
;
big
-
endian
;
};
};
};
arch/powerpc/boot/dts/mpc8555cds.dts
0 → 100644
View file @
ea0763a7
/*
*
MPC8555
CDS
Device
Tree
Source
*
*
Copyright
2006
Freescale
Semiconductor
Inc
.
*
*
This
program
is
free
software
;
you
can
redistribute
it
and
/
or
modify
it
*
under
the
terms
of
the
GNU
General
Public
License
as
published
by
the
*
Free
Software
Foundation
;
either
version
2
of
the
License
,
or
(
at
your
*
option
)
any
later
version
.
*/
/
{
model
=
"MPC8555CDS"
;
compatible
=
"MPC85xxCDS"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
linux
,
phandle
=
<
100
>;
cpus
{
#
cpus
=
<
1
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
linux
,
phandle
=
<
200
>;
PowerPC
,
8555
@
0
{
device_type
=
"cpu"
;
reg
=
<
0
>;
d
-
cache
-
line
-
size
=
<
20
>;
//
32
bytes
i
-
cache
-
line
-
size
=
<
20
>;
//
32
bytes
d
-
cache
-
size
=
<
8000
>;
//
L1
,
32
K
i
-
cache
-
size
=
<
8000
>;
//
L1
,
32
K
timebase
-
frequency
=
<
0
>;
//
33
MHz
,
from
uboot
bus
-
frequency
=
<
0
>;
//
166
MHz
clock
-
frequency
=
<
0
>;
//
825
MHz
,
from
uboot
32
-
bit
;
linux
,
phandle
=
<
201
>;
};
};
memory
{
device_type
=
"memory"
;
linux
,
phandle
=
<
300
>;
reg
=
<
00000000
08000000
>;
//
128
M
at
0x0
};
soc8555
@
e0000000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
#
interrupt
-
cells
=
<
2
>;
device_type
=
"soc"
;
ranges
=
<
0
e0000000
00100000
>;
reg
=
<
e0000000
00100000
>;
//
CCSRBAR
1
M
bus
-
frequency
=
<
0
>;
i2c
@
3000
{
device_type
=
"i2c"
;
compatible
=
"fsl-i2c"
;
reg
=
<
3000
100
>;
interrupts
=
<
1
b
2
>;
interrupt
-
parent
=
<
40000
>;
dfsrr
;
};
mdio
@
24520
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"mdio"
;
compatible
=
"gianfar"
;
reg
=
<
24520
20
>;
linux
,
phandle
=
<
24520
>;
ethernet
-
phy
@
0
{
linux
,
phandle
=
<
2452000
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
0
>;
reg
=
<
0
>;
device_type
=
"ethernet-phy"
;
};
ethernet
-
phy
@
1
{
linux
,
phandle
=
<
2452001
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
35
0
>;
reg
=
<
1
>;
device_type
=
"ethernet-phy"
;
};
};
ethernet
@
24000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
24000
1000
>;
local
-
mac
-
address
=
[
00
E0
0
C
00
73
00
];
interrupts
=
<
0
d
2
0
e
2
12
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452000
>;
};
ethernet
@
25000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
device_type
=
"network"
;
model
=
"TSEC"
;
compatible
=
"gianfar"
;
reg
=
<
25000
1000
>;
local
-
mac
-
address
=
[
00
E0
0
C
00
73
01
];
interrupts
=
<
13
2
14
2
18
2
>;
interrupt
-
parent
=
<
40000
>;
phy
-
handle
=
<
2452001
>;
};
serial
@
4500
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
4500
100
>;
//
reg
base
,
size
clock
-
frequency
=
<
0
>;
//
should
we
fill
in
in
uboot
?
interrupts
=
<
1
a
2
>;
interrupt
-
parent
=
<
40000
>;
};
serial
@
4600
{
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
4600
100
>;
//
reg
base
,
size
clock
-
frequency
=
<
0
>;
//
should
we
fill
in
in
uboot
?
interrupts
=
<
1
a
2
>;
interrupt
-
parent
=
<
40000
>;
};
pci
@
8000
{
linux
,
phandle
=
<
8000
>;
interrupt
-
map
-
mask
=
<
1f800
0
0
7
>;
interrupt
-
map
=
<
/*
IDSEL
0x10
*/
08000
0
0
1
40000
30
1
08000
0
0
2
40000
31
1
08000
0
0
3
40000
32
1
08000
0
0
4
40000
33
1
/*
IDSEL
0x11
*/
08800
0
0
1
40000
30
1
08800
0
0
2
40000
31
1
08800
0
0
3
40000
32
1
08800
0
0
4
40000
33
1
/*
IDSEL
0x12
(
Slot
1
)
*/
09000
0
0
1
40000
30
1
09000
0
0
2
40000
31
1
09000
0
0
3
40000
32
1
09000
0
0
4
40000
33
1
/*
IDSEL
0x13
(
Slot
2
)
*/
09800
0
0
1
40000
31
1
09800
0
0
2
40000
32
1
09800
0
0
3
40000
33
1
09800
0
0
4
40000
30
1
/*
IDSEL
0x14
(
Slot
3
)
*/
0
a000
0
0
1
40000
32
1
0
a000
0
0
2
40000
33
1
0
a000
0
0
3
40000
30
1
0
a000
0
0
4
40000
31
1
/*
IDSEL
0x15
(
Slot
4
)
*/
0
a800
0
0
1
40000
33
1
0
a800
0
0
2
40000
30
1
0
a800
0
0
3
40000
31
1
0
a800
0
0
4
40000
32
1
/*
Bus
1
(
Tundra
Bridge
)
*/
/*
IDSEL
0x12
(
ISA
bridge
)
*/
19000
0
0
1
40000
30
1
19000
0
0
2
40000
31
1
19000
0
0
3
40000
32
1
19000
0
0
4
40000
33
1
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
08
2
>;
bus
-
range
=
<
0
0
>;
ranges
=
<
02000000
0
80000000
80000000
0
20000000
01000000
0
00000000
e2000000
0
00100000
>;
clock
-
frequency
=
<
3f940
aa
>;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
reg
=
<
8000
1000
>;
compatible
=
"85xx"
;
device_type
=
"pci"
;
i8259
@
19000
{
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
device_type
=
"interrupt-controller"
;
reg
=
<
19000
0
0
0
1
>;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
built
-
in
;
compatible
=
"chrp,iic"
;
big
-
endian
;
interrupts
=
<
1
>;
interrupt
-
parent
=
<
8000
>;
};
};
pci
@
9000
{
linux
,
phandle
=
<
9000
>;
interrupt
-
map
-
mask
=
<
f800
0
0
7
>;
interrupt
-
map
=
<
/*
IDSEL
0x15
*/
a800
0
0
1
40000
3
b
1
a800
0
0
2
40000
3
b
1
a800
0
0
3
40000
3
b
1
a800
0
0
4
40000
3
b
1
>;
interrupt
-
parent
=
<
40000
>;
interrupts
=
<
09
2
>;
bus
-
range
=
<
0
0
>;
ranges
=
<
02000000
0
a0000000
a0000000
0
20000000
01000000
0
00000000
e3000000
0
00100000
>;
clock
-
frequency
=
<
3f940
aa
>;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
reg
=
<
9000
1000
>;
compatible
=
"85xx"
;
device_type
=
"pci"
;
};
pic
@
40000
{
linux
,
phandle
=
<
40000
>;
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
reg
=
<
40000
40000
>;
built
-
in
;
compatible
=
"chrp,open-pic"
;
device_type
=
"open-pic"
;
big
-
endian
;
};
};
};
arch/powerpc/boot/dts/mpc8641_hpcn.dts
View file @
ea0763a7
...
...
@@ -293,6 +293,7 @@
f800
0
0
4
4
d0
0
0
>;
i8259
@
4
d0
{
linux
,
phandle
=
<
4
d0
>;
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
device_type
=
"interrupt-controller"
;
...
...
arch/powerpc/configs/g5_defconfig
View file @
ea0763a7
This diff is collapsed.
Click to expand it.
arch/powerpc/configs/iseries_defconfig
View file @
ea0763a7
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
7-rc1
#
Wed Apr 19 11:46:44
2006
# Linux kernel version: 2.6.1
8-rc3
#
Tue Aug 8 09:15:46
2006
#
CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_PPC=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
...
...
@@ -34,6 +36,7 @@ CONFIG_PPC_STD_MMU=y
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
...
...
@@ -51,6 +54,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
...
...
@@ -69,10 +73,12 @@ CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_RT_MUTEXES=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
...
...
@@ -113,10 +119,14 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
CONFIG_PPC_ISERIES=y
# CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set
# CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_UDBG_RTAS_CONSOLE is not set
# CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set
CONFIG_IBMVIO=y
# CONFIG_PPC_MPC106 is not set
# CONFIG_PPC_970_NAP is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
...
...
@@ -135,6 +145,7 @@ CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_IRQ_ALL_CPUS=y
CONFIG_LPARCFG=y
# CONFIG_NUMA is not set
...
...
@@ -149,6 +160,7 @@ CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_RESOURCES_64BIT=y
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set
CONFIG_PROC_DEVICETREE=y
...
...
@@ -164,6 +176,7 @@ CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_DEBUG is not set
#
...
...
@@ -207,6 +220,8 @@ CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
...
...
@@ -219,6 +234,7 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
...
...
@@ -246,9 +262,11 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
CONFIG_NETFILTER_XT_MATCH_REALM=m
CONFIG_NETFILTER_XT_MATCH_SCTP=m
CONFIG_NETFILTER_XT_MATCH_STATE=m
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
CONFIG_NETFILTER_XT_MATCH_STRING=m
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
...
...
@@ -267,6 +285,7 @@ CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
# CONFIG_IP_NF_PPTP is not set
# CONFIG_IP_NF_H323 is not set
# CONFIG_IP_NF_SIP is not set
CONFIG_IP_NF_QUEUE=m
CONFIG_IP_NF_IPTABLES=m
CONFIG_IP_NF_MATCH_IPRANGE=m
...
...
@@ -360,6 +379,7 @@ CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
...
...
@@ -396,6 +416,7 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_BLK_DEV_INITRD=y
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
...
...
@@ -453,6 +474,7 @@ CONFIG_SCSI_FC_ATTRS=y
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
...
...
@@ -464,7 +486,6 @@ CONFIG_SCSI_IBMVSCSI=m
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_LPFC is not set
...
...
@@ -481,9 +502,7 @@ CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=m
CONFIG_MD_RAID5=y
# CONFIG_MD_RAID5_RESHAPE is not set
CONFIG_MD_RAID6=m
# CONFIG_MD_RAID456 is not set
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=y
...
...
@@ -596,6 +615,7 @@ CONFIG_E1000=m
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
# CONFIG_MYRI10GE is not set
#
# Token Ring devices
...
...
@@ -696,6 +716,7 @@ CONFIG_SERIAL_ICOM=m
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_BRIQ_PANEL is not set
#
# IPMI
...
...
@@ -706,6 +727,7 @@ CONFIG_LEGACY_PTY_COUNT=256
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
...
...
@@ -741,7 +763,6 @@ CONFIG_MAX_RAW_DEVS=256
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
#
# Hardware Monitoring support
...
...
@@ -757,6 +778,7 @@ CONFIG_MAX_RAW_DEVS=256
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
CONFIG_VIDEO_V4L2=y
#
# Digital Video Broadcasting Devices
...
...
@@ -766,7 +788,9 @@ CONFIG_MAX_RAW_DEVS=256
#
# Graphics support
#
CONFIG_FIRMWARE_EDID=y
# CONFIG_FB is not set
# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
#
# Sound
...
...
@@ -800,6 +824,14 @@ CONFIG_USB_ARCH_HAS_EHCI=y
#
# CONFIG_NEW_LEDS is not set
#
# LED drivers
#
#
# LED Triggers
#
#
# InfiniBand support
#
...
...
@@ -814,6 +846,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
#
# CONFIG_RTC_CLASS is not set
#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set
#
# DMA Clients
#
#
# DMA Devices
#
#
# File systems
#
...
...
@@ -843,7 +888,6 @@ CONFIG_JFS_SECURITY=y
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_XFS_EXPORT=y
# CONFIG_XFS_QUOTA is not set
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
...
...
@@ -852,6 +896,7 @@ CONFIG_XFS_POSIX_ACL=y
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=m
...
...
@@ -933,8 +978,10 @@ CONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
...
...
@@ -1013,10 +1060,12 @@ CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
CONFIG_PLIST=y
#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
#
...
...
@@ -1024,14 +1073,19 @@ CONFIG_TEXTSEARCH_FSM=m
#
# CONFIG_PRINTK_TIME is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y
...
...
@@ -1042,11 +1096,7 @@ CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_DEBUGGER is not set
CONFIG_IRQSTACKS=y
# CONFIG_PPC_EARLY_DEBUG_LPAR is not set
# CONFIG_PPC_EARLY_DEBUG_G5 is not set
# CONFIG_PPC_EARLY_DEBUG_RTAS is not set
# CONFIG_PPC_EARLY_DEBUG_MAPLE is not set
# CONFIG_PPC_EARLY_DEBUG_ISERIES is not set
# CONFIG_PPC_EARLY_DEBUG is not set
#
# Security options
...
...
arch/powerpc/configs/pseries_defconfig
View file @
ea0763a7
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
7-rc4
#
Sun May 28 07:26:56
2006
# Linux kernel version: 2.6.1
8-rc3
#
Tue Aug 8 09:14:48
2006
#
CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_IRQ_PER_CPU=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
...
...
@@ -35,6 +36,7 @@ CONFIG_PPC_STD_MMU=y
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_SMP=y
CONFIG_NR_CPUS=128
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
#
# Code maturity level options
...
...
@@ -52,6 +54,7 @@ CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_BSD_PROCESS_ACCT is not set
# CONFIG_TASKSTATS is not set
CONFIG_SYSCTL=y
CONFIG_AUDIT=y
CONFIG_AUDITSYSCALL=y
...
...
@@ -70,10 +73,12 @@ CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_RT_MUTEXES=y
CONFIG_FUTEX=y
CONFIG_EPOLL=y
CONFIG_SHMEM=y
CONFIG_SLAB=y
CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0
# CONFIG_SLOB is not set
...
...
@@ -118,6 +123,9 @@ CONFIG_PPC_PSERIES=y
# CONFIG_PPC_PMAC is not set
# CONFIG_PPC_MAPLE is not set
# CONFIG_PPC_CELL is not set
# CONFIG_PPC_CELL_NATIVE is not set
# CONFIG_PPC_IBM_CELL_BLADE is not set
# CONFIG_UDBG_RTAS_CONSOLE is not set
CONFIG_XICS=y
# CONFIG_U3_DART is not set
CONFIG_MPIC=y
...
...
@@ -149,6 +157,7 @@ CONFIG_BINFMT_MISC=m
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y
CONFIG_HOTPLUG_CPU=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_KEXEC=y
# CONFIG_CRASH_DUMP is not set
CONFIG_IRQ_ALL_CPUS=y
...
...
@@ -173,6 +182,7 @@ CONFIG_SPARSEMEM_EXTREME=y
# CONFIG_MEMORY_HOTPLUG is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_MIGRATION=y
CONFIG_RESOURCES_64BIT=y
CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
# CONFIG_PPC_64K_PAGES is not set
CONFIG_SCHED_SMT=y
...
...
@@ -190,6 +200,7 @@ CONFIG_PPC_I8259=y
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCIEPORTBUS is not set
# CONFIG_PCI_DEBUG is not set
#
...
...
@@ -238,6 +249,8 @@ CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
CONFIG_INET_XFRM_TUNNEL=m
CONFIG_INET_TUNNEL=y
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
...
...
@@ -250,6 +263,7 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
...
...
@@ -277,6 +291,7 @@ CONFIG_IP_NF_TFTP=m
CONFIG_IP_NF_AMANDA=m
# CONFIG_IP_NF_PPTP is not set
# CONFIG_IP_NF_H323 is not set
# CONFIG_IP_NF_SIP is not set
CONFIG_IP_NF_QUEUE=m
#
...
...
@@ -316,6 +331,7 @@ CONFIG_LLC=y
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NET_TCPPROBE is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
...
...
@@ -332,6 +348,7 @@ CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=y
# CONFIG_DEBUG_DRIVER is not set
# CONFIG_SYS_HYPERVISOR is not set
#
# Connector - unified userspace <-> kernelspace linker
...
...
@@ -352,6 +369,7 @@ CONFIG_PARPORT_PC=m
# CONFIG_PARPORT_PC_FIFO is not set
# CONFIG_PARPORT_PC_SUPERIO is not set
# CONFIG_PARPORT_GSC is not set
# CONFIG_PARPORT_AX88796 is not set
# CONFIG_PARPORT_1284 is not set
#
...
...
@@ -376,6 +394,7 @@ CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_BLK_DEV_INITRD=y
# CONFIG_CDROM_PKTCDVD is not set
# CONFIG_ATA_OVER_ETH is not set
...
...
@@ -487,6 +506,7 @@ CONFIG_SCSI_SAS_ATTRS=m
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_SATA is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_EATA is not set
...
...
@@ -508,12 +528,6 @@ CONFIG_SCSI_IPR_TRACE=y
CONFIG_SCSI_IPR_DUMP=y
# CONFIG_SCSI_QLOGIC_1280 is not set
CONFIG_SCSI_QLA_FC=m
CONFIG_SCSI_QLA2XXX_EMBEDDED_FIRMWARE=y
CONFIG_SCSI_QLA21XX=m
CONFIG_SCSI_QLA22XX=m
CONFIG_SCSI_QLA2300=m
CONFIG_SCSI_QLA2322=m
CONFIG_SCSI_QLA24XX=m
CONFIG_SCSI_LPFC=m
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
...
...
@@ -528,9 +542,7 @@ CONFIG_MD_LINEAR=y
CONFIG_MD_RAID0=y
CONFIG_MD_RAID1=y
CONFIG_MD_RAID10=m
CONFIG_MD_RAID5=y
CONFIG_MD_RAID5_RESHAPE=y
CONFIG_MD_RAID6=m
# CONFIG_MD_RAID456 is not set
CONFIG_MD_MULTIPATH=m
CONFIG_MD_FAULTY=m
CONFIG_BLK_DEV_DM=y
...
...
@@ -651,6 +663,7 @@ CONFIG_IXGB=m
# CONFIG_IXGB_NAPI is not set
CONFIG_S2IO=m
# CONFIG_S2IO_NAPI is not set
# CONFIG_MYRI10GE is not set
#
# Token Ring devices
...
...
@@ -754,6 +767,7 @@ CONFIG_SERIO_LIBPS2=y
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set
#
...
...
@@ -776,6 +790,7 @@ CONFIG_SERIAL_JSM=m
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
# CONFIG_BRIQ_PANEL is not set
# CONFIG_PRINTER is not set
# CONFIG_PPDEV is not set
# CONFIG_TIPAR is not set
...
...
@@ -793,6 +808,7 @@ CONFIG_HVCS=m
# Watchdog Cards
#
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
...
...
@@ -839,6 +855,7 @@ CONFIG_I2C_ALGOBIT=y
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
...
...
@@ -876,7 +893,6 @@ CONFIG_I2C_ALGOBIT=y
#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
#
# Hardware Monitoring support
...
...
@@ -892,6 +908,7 @@ CONFIG_I2C_ALGOBIT=y
# Multimedia devices
#
# CONFIG_VIDEO_DEV is not set
CONFIG_VIDEO_V4L2=y
#
# Digital Video Broadcasting Devices
...
...
@@ -902,19 +919,19 @@ CONFIG_I2C_ALGOBIT=y
#
# Graphics support
#
CONFIG_FIRMWARE_EDID=y
CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_MACMODES=y
CONFIG_FB_FIRMWARE_EDID=y
# CONFIG_FB_BACKLIGHT is not set
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
# CONFIG_FB_CIRRUS is not set
# CONFIG_FB_PM2 is not set
# CONFIG_FB_CYBER2000 is not set
CONFIG_FB_OF=y
# CONFIG_FB_CT65550 is not set
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
...
...
@@ -993,6 +1010,7 @@ CONFIG_USB_DEVICEFS=y
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=y
# CONFIG_USB_OHCI_BIG_ENDIAN is not set
...
...
@@ -1083,10 +1101,12 @@ CONFIG_USB_MON=y
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_LED is not set
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGETKIT is not set
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TEST is not set
...
...
@@ -1124,12 +1144,14 @@ CONFIG_USB_MON=y
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
CONFIG_INFINIBAND_IPOIB=m
CONFIG_INFINIBAND_IPOIB_DEBUG=y
# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
CONFIG_INFINIBAND_SRP=m
# CONFIG_INFINIBAND_ISER is not set
#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
...
...
@@ -1140,6 +1162,19 @@ CONFIG_INFINIBAND_SRP=m
#
# CONFIG_RTC_CLASS is not set
#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set
#
# DMA Clients
#
#
# DMA Devices
#
#
# File systems
#
...
...
@@ -1169,15 +1204,16 @@ CONFIG_JFS_SECURITY=y
# CONFIG_JFS_STATISTICS is not set
CONFIG_FS_POSIX_ACL=y
CONFIG_XFS_FS=m
CONFIG_XFS_EXPORT=y
# CONFIG_XFS_QUOTA is not set
CONFIG_XFS_SECURITY=y
CONFIG_XFS_POSIX_ACL=y
# CONFIG_XFS_RT is not set
CONFIG_OCFS2_FS=m
CONFIG_OCFS2_DEBUG_MASKLOG=y
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
...
...
@@ -1259,8 +1295,10 @@ CONFIG_RPCSEC_GSS_SPKM3=m
# CONFIG_SMB_FS is not set
CONFIG_CIFS=m
# CONFIG_CIFS_STATS is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
CONFIG_CIFS_XATTR=y
CONFIG_CIFS_POSIX=y
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
...
...
@@ -1326,6 +1364,9 @@ CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_PLIST=y
#
# Instrumentation Support
...
...
@@ -1339,14 +1380,19 @@ CONFIG_KPROBES=y
#
# CONFIG_PRINTK_TIME is not set
CONFIG_MAGIC_SYSRQ=y
# CONFIG_UNUSED_SYMBOLS is not set
CONFIG_DEBUG_KERNEL=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_RT_MUTEXES is not set
# CONFIG_RT_MUTEX_TESTER is not set
# CONFIG_DEBUG_SPINLOCK is not set
# CONFIG_DEBUG_MUTEXES is not set
# CONFIG_DEBUG_RWSEMS is not set
# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y
...
...
arch/powerpc/kernel/Makefile
View file @
ea0763a7
...
...
@@ -67,9 +67,9 @@ pci64-$(CONFIG_PPC64) += pci_64.o pci_dn.o pci_iommu.o \
pci_direct_iommu.o iomap.o
pci32-$(CONFIG_PPC32)
:=
pci_32.o
obj-$(CONFIG_PCI)
+=
$
(
pci64-y
)
$
(
pci32-y
)
kexec-$(CONFIG_PPC64)
:=
machine_kexec_64.o
crash.o
kexec-$(CONFIG_PPC64)
:=
machine_kexec_64.o
kexec-$(CONFIG_PPC32)
:=
machine_kexec_32.o
obj-$(CONFIG_KEXEC)
+=
machine_kexec.o
$
(
kexec-y
)
obj-$(CONFIG_KEXEC)
+=
machine_kexec.o
crash.o
$
(
kexec-y
)
ifeq
($(CONFIG_PPC_ISERIES),y)
$(obj)/head_64.o
:
$(obj)/lparmap.s
...
...
arch/powerpc/kernel/cpu_setup_ppc970.S
View file @
ea0763a7
...
...
@@ -81,6 +81,8 @@ _GLOBAL(__setup_cpu_ppc970)
mfspr
r0
,
SPRN_HID0
li
r11
,
5
/*
clear
DOZE
and
SLEEP
*/
rldimi
r0
,
r11
,
52
,
8
/*
set
NAP
and
DPM
*/
li
r11
,
0
rldimi
r0
,
r11
,
32
,
31
/*
clear
EN_ATTN
*/
mtspr
SPRN_HID0
,
r0
mfspr
r0
,
SPRN_HID0
mfspr
r0
,
SPRN_HID0
...
...
arch/powerpc/kernel/crash.c
View file @
ea0763a7
...
...
@@ -44,6 +44,7 @@
/* This keeps a track of which one is crashing cpu. */
int
crashing_cpu
=
-
1
;
static
cpumask_t
cpus_in_crash
=
CPU_MASK_NONE
;
cpumask_t
cpus_in_sr
=
CPU_MASK_NONE
;
static
u32
*
append_elf_note
(
u32
*
buf
,
char
*
name
,
unsigned
type
,
void
*
data
,
size_t
data_len
)
...
...
@@ -139,7 +140,13 @@ void crash_ipi_callback(struct pt_regs *regs)
if
(
ppc_md
.
kexec_cpu_down
)
ppc_md
.
kexec_cpu_down
(
1
,
1
);
#ifdef CONFIG_PPC64
kexec_smp_wait
();
#else
for
(;;);
/* FIXME */
#endif
/* NOTREACHED */
}
...
...
@@ -255,7 +262,11 @@ static void crash_kexec_prepare_cpus(int cpu)
*
* do this if kexec in setup.c ?
*/
#ifdef CONFIG_PPC64
smp_release_cpus
();
#else
/* FIXME */
#endif
}
void
crash_kexec_secondary
(
struct
pt_regs
*
regs
)
...
...
arch/powerpc/kernel/irq.c
View file @
ea0763a7
...
...
@@ -694,7 +694,7 @@ unsigned int irq_radix_revmap(struct irq_host *host,
/* If not there, try to insert it */
virq
=
irq_find_mapping
(
host
,
hwirq
);
if
(
virq
!=
NO_IRQ
)
radix_tree_insert
(
tree
,
v
irq
,
&
irq_map
[
virq
]);
radix_tree_insert
(
tree
,
hw
irq
,
&
irq_map
[
virq
]);
bail:
spin_unlock_irqrestore
(
&
irq_big_lock
,
flags
);
return
virq
;
...
...
arch/powerpc/kernel/kprobes.c
View file @
ea0763a7
...
...
@@ -61,6 +61,8 @@ int __kprobes arch_prepare_kprobe(struct kprobe *p)
if
(
!
ret
)
{
memcpy
(
p
->
ainsn
.
insn
,
p
->
addr
,
MAX_INSN_SIZE
*
sizeof
(
kprobe_opcode_t
));
p
->
opcode
=
*
p
->
addr
;
flush_icache_range
((
unsigned
long
)
p
->
ainsn
.
insn
,
(
unsigned
long
)
p
->
ainsn
.
insn
+
sizeof
(
kprobe_opcode_t
));
}
return
ret
;
...
...
arch/powerpc/kernel/legacy_serial.c
View file @
ea0763a7
...
...
@@ -116,6 +116,7 @@ static int __init add_legacy_soc_port(struct device_node *np,
u64
addr
;
const
u32
*
addrp
;
upf_t
flags
=
UPF_BOOT_AUTOCONF
|
UPF_SKIP_TEST
|
UPF_SHARE_IRQ
;
struct
device_node
*
tsi
=
of_get_parent
(
np
);
/* We only support ports that have a clock frequency properly
* encoded in the device-tree.
...
...
@@ -135,7 +136,10 @@ static int __init add_legacy_soc_port(struct device_node *np,
/* Add port, irq will be dealt with later. We passed a translated
* IO port value. It will be fixed up later along with the irq
*/
return
add_legacy_port
(
np
,
-
1
,
UPIO_MEM
,
addr
,
addr
,
NO_IRQ
,
flags
,
0
);
if
(
tsi
&&
!
strcmp
(
tsi
->
type
,
"tsi-bridge"
))
return
add_legacy_port
(
np
,
-
1
,
UPIO_TSI
,
addr
,
addr
,
NO_IRQ
,
flags
,
0
);
else
return
add_legacy_port
(
np
,
-
1
,
UPIO_MEM
,
addr
,
addr
,
NO_IRQ
,
flags
,
0
);
}
static
int
__init
add_legacy_isa_port
(
struct
device_node
*
np
,
...
...
@@ -465,7 +469,7 @@ static int __init serial_dev_init(void)
fixup_port_irq
(
i
,
np
,
port
);
if
(
port
->
iotype
==
UPIO_PORT
)
fixup_port_pio
(
i
,
np
,
port
);
if
(
port
->
iotype
==
UPIO_MEM
)
if
(
(
port
->
iotype
==
UPIO_MEM
)
||
(
port
->
iotype
==
UPIO_TSI
)
)
fixup_port_mmio
(
i
,
np
,
port
);
}
...
...
arch/powerpc/kernel/machine_kexec.c
View file @
ea0763a7
...
...
@@ -13,6 +13,7 @@
#include <linux/reboot.h>
#include <linux/threads.h>
#include <asm/machdep.h>
#include <asm/lmb.h>
void
machine_crash_shutdown
(
struct
pt_regs
*
regs
)
{
...
...
@@ -59,3 +60,58 @@ NORET_TYPE void machine_kexec(struct kimage *image)
}
for
(;;);
}
static
int
__init
early_parse_crashk
(
char
*
p
)
{
unsigned
long
size
;
if
(
!
p
)
return
1
;
size
=
memparse
(
p
,
&
p
);
if
(
*
p
==
'@'
)
crashk_res
.
start
=
memparse
(
p
+
1
,
&
p
);
else
crashk_res
.
start
=
KDUMP_KERNELBASE
;
crashk_res
.
end
=
crashk_res
.
start
+
size
-
1
;
return
0
;
}
early_param
(
"crashkernel"
,
early_parse_crashk
);
void
__init
reserve_crashkernel
(
void
)
{
unsigned
long
size
;
if
(
crashk_res
.
start
==
0
)
return
;
/* We might have got these values via the command line or the
* device tree, either way sanitise them now. */
size
=
crashk_res
.
end
-
crashk_res
.
start
+
1
;
if
(
crashk_res
.
start
!=
KDUMP_KERNELBASE
)
printk
(
"Crash kernel location must be 0x%x
\n
"
,
KDUMP_KERNELBASE
);
crashk_res
.
start
=
KDUMP_KERNELBASE
;
size
=
PAGE_ALIGN
(
size
);
crashk_res
.
end
=
crashk_res
.
start
+
size
-
1
;
/* Crash kernel trumps memory limit */
if
(
memory_limit
&&
memory_limit
<=
crashk_res
.
end
)
{
memory_limit
=
crashk_res
.
end
+
1
;
printk
(
"Adjusted memory limit for crashkernel, now 0x%lx
\n
"
,
memory_limit
);
}
lmb_reserve
(
crashk_res
.
start
,
size
);
}
int
overlaps_crashkernel
(
unsigned
long
start
,
unsigned
long
size
)
{
return
(
start
+
size
)
>
crashk_res
.
start
&&
start
<=
crashk_res
.
end
;
}
arch/powerpc/kernel/machine_kexec_64.c
View file @
ea0763a7
...
...
@@ -10,7 +10,6 @@
*/
#include <linux/cpumask.h>
#include <linux/kexec.h>
#include <linux/smp.h>
#include <linux/thread_info.h>
...
...
@@ -21,7 +20,6 @@
#include <asm/machdep.h>
#include <asm/cacheflush.h>
#include <asm/paca.h>
#include <asm/lmb.h>
#include <asm/mmu.h>
#include <asm/sections.h>
/* _end */
#include <asm/prom.h>
...
...
@@ -383,58 +381,3 @@ static int __init kexec_setup(void)
return
0
;
}
__initcall
(
kexec_setup
);
static
int
__init
early_parse_crashk
(
char
*
p
)
{
unsigned
long
size
;
if
(
!
p
)
return
1
;
size
=
memparse
(
p
,
&
p
);
if
(
*
p
==
'@'
)
crashk_res
.
start
=
memparse
(
p
+
1
,
&
p
);
else
crashk_res
.
start
=
KDUMP_KERNELBASE
;
crashk_res
.
end
=
crashk_res
.
start
+
size
-
1
;
return
0
;
}
early_param
(
"crashkernel"
,
early_parse_crashk
);
void
__init
reserve_crashkernel
(
void
)
{
unsigned
long
size
;
if
(
crashk_res
.
start
==
0
)
return
;
/* We might have got these values via the command line or the
* device tree, either way sanitise them now. */
size
=
crashk_res
.
end
-
crashk_res
.
start
+
1
;
if
(
crashk_res
.
start
!=
KDUMP_KERNELBASE
)
printk
(
"Crash kernel location must be 0x%x
\n
"
,
KDUMP_KERNELBASE
);
crashk_res
.
start
=
KDUMP_KERNELBASE
;
size
=
PAGE_ALIGN
(
size
);
crashk_res
.
end
=
crashk_res
.
start
+
size
-
1
;
/* Crash kernel trumps memory limit */
if
(
memory_limit
&&
memory_limit
<=
crashk_res
.
end
)
{
memory_limit
=
crashk_res
.
end
+
1
;
printk
(
"Adjusted memory limit for crashkernel, now 0x%lx
\n
"
,
memory_limit
);
}
lmb_reserve
(
crashk_res
.
start
,
size
);
}
int
overlaps_crashkernel
(
unsigned
long
start
,
unsigned
long
size
)
{
return
(
start
+
size
)
>
crashk_res
.
start
&&
start
<=
crashk_res
.
end
;
}
arch/powerpc/kernel/prom_parse.c
View file @
ea0763a7
...
...
@@ -601,11 +601,6 @@ static struct device_node *of_irq_find_parent(struct device_node *child)
return
p
;
}
static
u8
of_irq_pci_swizzle
(
u8
slot
,
u8
pin
)
{
return
(((
pin
-
1
)
+
slot
)
%
4
)
+
1
;
}
/* This doesn't need to be called if you don't have any special workaround
* flags to pass
*/
...
...
@@ -895,6 +890,12 @@ int of_irq_map_one(struct device_node *device, int index, struct of_irq *out_irq
}
EXPORT_SYMBOL_GPL
(
of_irq_map_one
);
#ifdef CONFIG_PCI
static
u8
of_irq_pci_swizzle
(
u8
slot
,
u8
pin
)
{
return
(((
pin
-
1
)
+
slot
)
%
4
)
+
1
;
}
int
of_irq_map_pci
(
struct
pci_dev
*
pdev
,
struct
of_irq
*
out_irq
)
{
struct
device_node
*
dn
,
*
ppnode
;
...
...
@@ -971,4 +972,4 @@ int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq)
return
of_irq_map_raw
(
ppnode
,
&
lspec
,
laddr
,
out_irq
);
}
EXPORT_SYMBOL_GPL
(
of_irq_map_pci
);
#endif
/* CONFIG_PCI */
arch/powerpc/kernel/time.c
View file @
ea0763a7
...
...
@@ -417,7 +417,7 @@ static __inline__ void timer_check_rtc(void)
/*
* This version of gettimeofday has microsecond resolution.
*/
static
inline
void
__do_gettimeofday
(
struct
timeval
*
tv
,
u64
tb_val
)
static
inline
void
__do_gettimeofday
(
struct
timeval
*
tv
)
{
unsigned
long
sec
,
usec
;
u64
tb_ticks
,
xsec
;
...
...
@@ -431,7 +431,12 @@ static inline void __do_gettimeofday(struct timeval *tv, u64 tb_val)
* without a divide (and in fact, without a multiply)
*/
temp_varp
=
do_gtod
.
varp
;
tb_ticks
=
tb_val
-
temp_varp
->
tb_orig_stamp
;
/* Sampling the time base must be done after loading
* do_gtod.varp in order to avoid racing with update_gtod.
*/
data_barrier
(
temp_varp
);
tb_ticks
=
get_tb
()
-
temp_varp
->
tb_orig_stamp
;
temp_tb_to_xs
=
temp_varp
->
tb_to_xs
;
temp_stamp_xsec
=
temp_varp
->
stamp_xsec
;
xsec
=
temp_stamp_xsec
+
mulhdu
(
tb_ticks
,
temp_tb_to_xs
);
...
...
@@ -464,7 +469,7 @@ void do_gettimeofday(struct timeval *tv)
tv
->
tv_usec
=
usec
;
return
;
}
__do_gettimeofday
(
tv
,
get_tb
()
);
__do_gettimeofday
(
tv
);
}
EXPORT_SYMBOL
(
do_gettimeofday
);
...
...
@@ -650,6 +655,7 @@ void timer_interrupt(struct pt_regs * regs)
int
next_dec
;
int
cpu
=
smp_processor_id
();
unsigned
long
ticks
;
u64
tb_next_jiffy
;
#ifdef CONFIG_PPC32
if
(
atomic_read
(
&
ppc_n_lost_interrupts
)
!=
0
)
...
...
@@ -691,11 +697,14 @@ void timer_interrupt(struct pt_regs * regs)
continue
;
write_seqlock
(
&
xtime_lock
);
tb_last_jiffy
+=
tb_ticks_per_jiffy
;
tb_last_stamp
=
per_cpu
(
last_jiffy
,
cpu
);
do_timer
(
regs
);
timer_recalc_offset
(
tb_last_jiffy
);
timer_check_rtc
();
tb_next_jiffy
=
tb_last_jiffy
+
tb_ticks_per_jiffy
;
if
(
per_cpu
(
last_jiffy
,
cpu
)
>=
tb_next_jiffy
)
{
tb_last_jiffy
=
tb_next_jiffy
;
tb_last_stamp
=
per_cpu
(
last_jiffy
,
cpu
);
do_timer
(
regs
);
timer_recalc_offset
(
tb_last_jiffy
);
timer_check_rtc
();
}
write_sequnlock
(
&
xtime_lock
);
}
...
...
arch/powerpc/kernel/traps.c
View file @
ea0763a7
...
...
@@ -55,9 +55,6 @@
#ifdef CONFIG_PPC64
/* XXX */
#define _IO_BASE pci_io_base
#ifdef CONFIG_KEXEC
cpumask_t
cpus_in_sr
=
CPU_MASK_NONE
;
#endif
#endif
#ifdef CONFIG_DEBUGGER
...
...
@@ -211,6 +208,19 @@ void system_reset_exception(struct pt_regs *regs)
die
(
"System Reset"
,
regs
,
SIGABRT
);
/*
* Some CPUs when released from the debugger will execute this path.
* These CPUs entered the debugger via a soft-reset. If the CPU was
* hung before entering the debugger it will return to the hung
* state when exiting this function. This causes a problem in
* kdump since the hung CPU(s) will not respond to the IPI sent
* from kdump. To prevent the problem we call crash_kexec_secondary()
* here. If a kdump had not been initiated or we exit the debugger
* with the "exit and recover" command (x) crash_kexec_secondary()
* will return after 5ms and the CPU returns to its previous state.
*/
crash_kexec_secondary
(
regs
);
/* Must die if the interrupt is not recoverable */
if
(
!
(
regs
->
msr
&
MSR_RI
))
panic
(
"Unrecoverable System Reset"
);
...
...
@@ -575,14 +585,14 @@ static void parse_fpe(struct pt_regs *regs)
#define INST_MFSPR_PVR_MASK 0xfc1fffff
#define INST_DCBA 0x7c0005ec
#define INST_DCBA_MASK 0x
7
c0007fe
#define INST_DCBA_MASK 0x
f
c0007fe
#define INST_MCRXR 0x7c000400
#define INST_MCRXR_MASK 0x
7
c0007fe
#define INST_MCRXR_MASK 0x
f
c0007fe
#define INST_STRING 0x7c00042a
#define INST_STRING_MASK 0x
7
c0007fe
#define INST_STRING_GEN_MASK 0x
7
c00067e
#define INST_STRING_MASK 0x
f
c0007fe
#define INST_STRING_GEN_MASK 0x
f
c00067e
#define INST_LSWI 0x7c0004aa
#define INST_LSWX 0x7c00042a
#define INST_STSWI 0x7c0005aa
...
...
arch/powerpc/mm/hugetlbpage.c
View file @
ea0763a7
...
...
@@ -153,7 +153,7 @@ static void free_hugepte_range(struct mmu_gather *tlb, hugepd_t *hpdp)
hpdp
->
pd
=
0
;
tlb
->
need_flush
=
1
;
pgtable_free_tlb
(
tlb
,
pgtable_free_cache
(
hugepte
,
HUGEPTE_CACHE_NUM
,
HUGEPTE_TABLE_SIZE
-
1
));
PGF_CACHENUM_MASK
));
}
#ifdef CONFIG_PPC_64K_PAGES
...
...
arch/powerpc/platforms/85xx/Kconfig
View file @
ea0763a7
...
...
@@ -14,7 +14,6 @@ config MPC8540_ADS
config MPC85xx_CDS
bool "Freescale MPC85xx CDS"
select DEFAULT_UIMAGE
select PPC_I8259 if PCI
help
This option enables support for the MPC85xx CDS board
...
...
arch/powerpc/platforms/85xx/mpc85xx_ads.c
View file @
ea0763a7
...
...
@@ -37,79 +37,7 @@ unsigned long isa_io_base = 0;
unsigned
long
isa_mem_base
=
0
;
#endif
/*
* Internal interrupts are all Level Sensitive, and Positive Polarity
*
* Note: Likely, this table and the following function should be
* obtained and derived from the OF Device Tree.
*/
static
u_char
mpc85xx_ads_openpic_initsenses
[]
__initdata
=
{
MPC85XX_INTERNAL_IRQ_SENSES
,
0x0
,
/* External 0: */
#if defined(CONFIG_PCI)
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* Ext 1: PCI slot 0 */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* Ext 2: PCI slot 1 */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* Ext 3: PCI slot 2 */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* Ext 4: PCI slot 3 */
#else
0x0
,
/* External 1: */
0x0
,
/* External 2: */
0x0
,
/* External 3: */
0x0
,
/* External 4: */
#endif
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* External 5: PHY */
0x0
,
/* External 6: */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* External 7: PHY */
0x0
,
/* External 8: */
0x0
,
/* External 9: */
0x0
,
/* External 10: */
0x0
,
/* External 11: */
};
#ifdef CONFIG_PCI
/*
* interrupt routing
*/
int
mpc85xx_map_irq
(
struct
pci_dev
*
dev
,
unsigned
char
idsel
,
unsigned
char
pin
)
{
static
char
pci_irq_table
[][
4
]
=
/*
* This is little evil, but works around the fact
* that revA boards have IDSEL starting at 18
* and others boards (older) start at 12
*
* PCI IDSEL/INTPIN->INTLINE
* A B C D
*/
{
{
PIRQA
,
PIRQB
,
PIRQC
,
PIRQD
},
/* IDSEL 2 */
{
PIRQD
,
PIRQA
,
PIRQB
,
PIRQC
},
{
PIRQC
,
PIRQD
,
PIRQA
,
PIRQB
},
{
PIRQB
,
PIRQC
,
PIRQD
,
PIRQA
},
/* IDSEL 5 */
{
0
,
0
,
0
,
0
},
/* -- */
{
0
,
0
,
0
,
0
},
/* -- */
{
0
,
0
,
0
,
0
},
/* -- */
{
0
,
0
,
0
,
0
},
/* -- */
{
0
,
0
,
0
,
0
},
/* -- */
{
0
,
0
,
0
,
0
},
/* -- */
{
PIRQA
,
PIRQB
,
PIRQC
,
PIRQD
},
/* IDSEL 12 */
{
PIRQD
,
PIRQA
,
PIRQB
,
PIRQC
},
{
PIRQC
,
PIRQD
,
PIRQA
,
PIRQB
},
{
PIRQB
,
PIRQC
,
PIRQD
,
PIRQA
},
/* IDSEL 15 */
{
0
,
0
,
0
,
0
},
/* -- */
{
0
,
0
,
0
,
0
},
/* -- */
{
PIRQA
,
PIRQB
,
PIRQC
,
PIRQD
},
/* IDSEL 18 */
{
PIRQD
,
PIRQA
,
PIRQB
,
PIRQC
},
{
PIRQC
,
PIRQD
,
PIRQA
,
PIRQB
},
{
PIRQB
,
PIRQC
,
PIRQD
,
PIRQA
},
/* IDSEL 21 */
};
const
long
min_idsel
=
2
,
max_idsel
=
21
,
irqs_per_slot
=
4
;
return
PCI_IRQ_TABLE_LOOKUP
;
}
int
mpc85xx_exclude_device
(
u_char
bus
,
u_char
devfn
)
{
...
...
@@ -119,44 +47,63 @@ mpc85xx_exclude_device(u_char bus, u_char devfn)
return
PCIBIOS_SUCCESSFUL
;
}
void
__init
mpc85xx_pcibios_fixup
(
void
)
{
struct
pci_dev
*
dev
=
NULL
;
for_each_pci_dev
(
dev
)
pci_read_irq_line
(
dev
);
}
#endif
/* CONFIG_PCI */
void
__init
mpc85xx_ads_pic_init
(
void
)
{
struct
mpic
*
mpic1
;
phys_addr_t
OpenPIC_PAddr
;
/* Determine the Physical Address of the OpenPIC regs */
OpenPIC_PAddr
=
get_immrbase
()
+
MPC85xx_OPENPIC_OFFSET
;
mpic1
=
mpic_alloc
(
OpenPIC_PAddr
,
MPIC_PRIMARY
|
MPIC_WANTS_RESET
|
MPIC_BIG_ENDIAN
,
4
,
MPC85xx_OPENPIC_IRQ_OFFSET
,
0
,
250
,
mpc85xx_ads_openpic_initsenses
,
sizeof
(
mpc85xx_ads_openpic_initsenses
),
" OpenPIC "
);
BUG_ON
(
mpic1
==
NULL
);
mpic_assign_isu
(
mpic1
,
0
,
OpenPIC_PAddr
+
0x10200
);
mpic_assign_isu
(
mpic1
,
1
,
OpenPIC_PAddr
+
0x10280
);
mpic_assign_isu
(
mpic1
,
2
,
OpenPIC_PAddr
+
0x10300
);
mpic_assign_isu
(
mpic1
,
3
,
OpenPIC_PAddr
+
0x10380
);
mpic_assign_isu
(
mpic1
,
4
,
OpenPIC_PAddr
+
0x10400
);
mpic_assign_isu
(
mpic1
,
5
,
OpenPIC_PAddr
+
0x10480
);
mpic_assign_isu
(
mpic1
,
6
,
OpenPIC_PAddr
+
0x10500
);
mpic_assign_isu
(
mpic1
,
7
,
OpenPIC_PAddr
+
0x10580
);
/* dummy mappings to get to 48 */
mpic_assign_isu
(
mpic1
,
8
,
OpenPIC_PAddr
+
0x10600
);
mpic_assign_isu
(
mpic1
,
9
,
OpenPIC_PAddr
+
0x10680
);
mpic_assign_isu
(
mpic1
,
10
,
OpenPIC_PAddr
+
0x10700
);
mpic_assign_isu
(
mpic1
,
11
,
OpenPIC_PAddr
+
0x10780
);
/* External ints */
mpic_assign_isu
(
mpic1
,
12
,
OpenPIC_PAddr
+
0x10000
);
mpic_assign_isu
(
mpic1
,
13
,
OpenPIC_PAddr
+
0x10080
);
mpic_assign_isu
(
mpic1
,
14
,
OpenPIC_PAddr
+
0x10100
);
mpic_init
(
mpic1
);
struct
mpic
*
mpic
;
struct
resource
r
;
struct
device_node
*
np
=
NULL
;
np
=
of_find_node_by_type
(
np
,
"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
,
4
,
0
,
" OpenPIC "
);
BUG_ON
(
mpic
==
NULL
);
of_node_put
(
np
);
mpic_assign_isu
(
mpic
,
0
,
r
.
start
+
0x10200
);
mpic_assign_isu
(
mpic
,
1
,
r
.
start
+
0x10280
);
mpic_assign_isu
(
mpic
,
2
,
r
.
start
+
0x10300
);
mpic_assign_isu
(
mpic
,
3
,
r
.
start
+
0x10380
);
mpic_assign_isu
(
mpic
,
4
,
r
.
start
+
0x10400
);
mpic_assign_isu
(
mpic
,
5
,
r
.
start
+
0x10480
);
mpic_assign_isu
(
mpic
,
6
,
r
.
start
+
0x10500
);
mpic_assign_isu
(
mpic
,
7
,
r
.
start
+
0x10580
);
/* Unused on this platform (leave room for 8548) */
mpic_assign_isu
(
mpic
,
8
,
r
.
start
+
0x10600
);
mpic_assign_isu
(
mpic
,
9
,
r
.
start
+
0x10680
);
mpic_assign_isu
(
mpic
,
10
,
r
.
start
+
0x10700
);
mpic_assign_isu
(
mpic
,
11
,
r
.
start
+
0x10780
);
/* External Interrupts */
mpic_assign_isu
(
mpic
,
12
,
r
.
start
+
0x10000
);
mpic_assign_isu
(
mpic
,
13
,
r
.
start
+
0x10080
);
mpic_assign_isu
(
mpic
,
14
,
r
.
start
+
0x10100
);
mpic_init
(
mpic
);
}
/*
...
...
@@ -165,7 +112,9 @@ void __init mpc85xx_ads_pic_init(void)
static
void
__init
mpc85xx_ads_setup_arch
(
void
)
{
struct
device_node
*
cpu
;
#ifdef CONFIG_PCI
struct
device_node
*
np
;
#endif
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"mpc85xx_ads_setup_arch()"
,
0
);
...
...
@@ -186,8 +135,7 @@ static void __init mpc85xx_ads_setup_arch(void)
for
(
np
=
NULL
;
(
np
=
of_find_node_by_type
(
np
,
"pci"
))
!=
NULL
;)
add_bridge
(
np
);
ppc_md
.
pci_swizzle
=
common_swizzle
;
ppc_md
.
pci_map_irq
=
mpc85xx_map_irq
;
ppc_md
.
pcibios_fixup
=
mpc85xx_pcibios_fixup
;
ppc_md
.
pci_exclude_device
=
mpc85xx_exclude_device
;
#endif
...
...
arch/powerpc/platforms/85xx/mpc85xx_cds.c
View file @
ea0763a7
...
...
@@ -57,94 +57,8 @@ unsigned long isa_mem_base = 0;
static
int
cds_pci_slot
=
2
;
static
volatile
u8
*
cadmus
;
/*
* Internal interrupts are all Level Sensitive, and Positive Polarity
*
* Note: Likely, this table and the following function should be
* obtained and derived from the OF Device Tree.
*/
static
u_char
mpc85xx_cds_openpic_initsenses
[]
__initdata
=
{
MPC85XX_INTERNAL_IRQ_SENSES
,
#if defined(CONFIG_PCI)
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_POSITIVE
),
/* Ext 0: PCI slot 0 */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* Ext 1: PCI slot 1 */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* Ext 2: PCI slot 2 */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* Ext 3: PCI slot 3 */
#else
0x0
,
/* External 0: */
0x0
,
/* External 1: */
0x0
,
/* External 2: */
0x0
,
/* External 3: */
#endif
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* External 5: PHY */
0x0
,
/* External 6: */
0x0
,
/* External 7: */
0x0
,
/* External 8: */
0x0
,
/* External 9: */
0x0
,
/* External 10: */
#ifdef CONFIG_PCI
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* Ext 11: PCI2 slot 0 */
#else
0x0
,
/* External 11: */
#endif
};
#ifdef CONFIG_PCI
/*
* interrupt routing
*/
int
mpc85xx_map_irq
(
struct
pci_dev
*
dev
,
unsigned
char
idsel
,
unsigned
char
pin
)
{
struct
pci_controller
*
hose
=
pci_bus_to_hose
(
dev
->
bus
->
number
);
if
(
!
hose
->
index
)
{
/* Handle PCI1 interrupts */
char
pci_irq_table
[][
4
]
=
/*
* PCI IDSEL/INTPIN->INTLINE
* A B C D
*/
/* Note IRQ assignment for slots is based on which slot the elysium is
* in -- in this setup elysium is in slot #2 (this PIRQA as first
* interrupt on slot */
{
{
0
,
1
,
2
,
3
},
/* 16 - PMC */
{
0
,
1
,
2
,
3
},
/* 17 P2P (Tsi320) */
{
0
,
1
,
2
,
3
},
/* 18 - Slot 1 */
{
1
,
2
,
3
,
0
},
/* 19 - Slot 2 */
{
2
,
3
,
0
,
1
},
/* 20 - Slot 3 */
{
3
,
0
,
1
,
2
},
/* 21 - Slot 4 */
};
const
long
min_idsel
=
16
,
max_idsel
=
21
,
irqs_per_slot
=
4
;
int
i
,
j
;
for
(
i
=
0
;
i
<
6
;
i
++
)
for
(
j
=
0
;
j
<
4
;
j
++
)
pci_irq_table
[
i
][
j
]
=
((
pci_irq_table
[
i
][
j
]
+
5
-
cds_pci_slot
)
&
0x3
)
+
PIRQ0A
;
return
PCI_IRQ_TABLE_LOOKUP
;
}
else
{
/* Handle PCI2 interrupts (if we have one) */
char
pci_irq_table
[][
4
]
=
{
/*
* We only have one slot and one interrupt
* going to PIRQA - PIRQD */
{
PIRQ1A
,
PIRQ1A
,
PIRQ1A
,
PIRQ1A
},
/* 21 - slot 0 */
};
const
long
min_idsel
=
21
,
max_idsel
=
21
,
irqs_per_slot
=
4
;
return
PCI_IRQ_TABLE_LOOKUP
;
}
}
#define ARCADIA_HOST_BRIDGE_IDSEL 17
#define ARCADIA_2ND_BRIDGE_IDSEL 3
...
...
@@ -210,50 +124,104 @@ mpc85xx_cds_pcibios_fixup(void)
pci_write_config_byte
(
dev
,
PCI_INTERRUPT_LINE
,
11
);
pci_dev_put
(
dev
);
}
/* Now map all the PCI irqs */
dev
=
NULL
;
for_each_pci_dev
(
dev
)
pci_read_irq_line
(
dev
);
}
#ifdef CONFIG_PPC_I8259
#warning The i8259 PIC support is currently broken
static
void
mpc85xx_8259_cascade
(
unsigned
int
irq
,
struct
irq_desc
*
desc
,
struct
pt_regs
*
regs
)
{
unsigned
int
cascade_irq
=
i8259_irq
(
regs
);
if
(
cascade_irq
!=
NO_IRQ
)
generic_handle_irq
(
cascade_irq
,
regs
);
desc
->
chip
->
eoi
(
irq
);
}
#endif
/* PPC_I8259 */
#endif
/* CONFIG_PCI */
void
__init
mpc85xx_cds_pic_init
(
void
)
{
struct
mpic
*
mpic1
;
phys_addr_t
OpenPIC_PAddr
;
struct
mpic
*
mpic
;
struct
resource
r
;
struct
device_node
*
np
=
NULL
;
struct
device_node
*
cascade_node
=
NULL
;
int
cascade_irq
;
/* Determine the Physical Address of the OpenPIC regs */
OpenPIC_PAddr
=
get_immrbase
()
+
MPC85xx_OPENPIC_OFFSET
;
np
=
of_find_node_by_type
(
np
,
"open-pic"
);
if
(
np
==
NULL
)
{
printk
(
KERN_ERR
"Could not find open-pic node
\n
"
);
return
;
}
mpic1
=
mpic_alloc
(
OpenPIC_PAddr
,
if
(
of_address_to_resource
(
np
,
0
,
&
r
))
{
printk
(
KERN_ERR
"Failed to map mpic register space
\n
"
);
of_node_put
(
np
);
return
;
}
mpic
=
mpic_alloc
(
np
,
r
.
start
,
MPIC_PRIMARY
|
MPIC_WANTS_RESET
|
MPIC_BIG_ENDIAN
,
4
,
MPC85xx_OPENPIC_IRQ_OFFSET
,
0
,
250
,
mpc85xx_cds_openpic_initsenses
,
sizeof
(
mpc85xx_cds_openpic_initsenses
),
" OpenPIC "
);
BUG_ON
(
mpic1
==
NULL
);
mpic_assign_isu
(
mpic1
,
0
,
OpenPIC_PAddr
+
0x10200
);
mpic_assign_isu
(
mpic1
,
1
,
OpenPIC_PAddr
+
0x10280
);
mpic_assign_isu
(
mpic1
,
2
,
OpenPIC_PAddr
+
0x10300
);
mpic_assign_isu
(
mpic1
,
3
,
OpenPIC_PAddr
+
0x10380
);
mpic_assign_isu
(
mpic1
,
4
,
OpenPIC_PAddr
+
0x10400
);
mpic_assign_isu
(
mpic1
,
5
,
OpenPIC_PAddr
+
0x10480
);
mpic_assign_isu
(
mpic1
,
6
,
OpenPIC_PAddr
+
0x10500
);
mpic_assign_isu
(
mpic1
,
7
,
OpenPIC_PAddr
+
0x10580
);
/* dummy mappings to get to 48 */
mpic_assign_isu
(
mpic1
,
8
,
OpenPIC_PAddr
+
0x10600
);
mpic_assign_isu
(
mpic1
,
9
,
OpenPIC_PAddr
+
0x10680
);
mpic_assign_isu
(
mpic1
,
10
,
OpenPIC_PAddr
+
0x10700
);
mpic_assign_isu
(
mpic1
,
11
,
OpenPIC_PAddr
+
0x10780
);
/* External ints */
mpic_assign_isu
(
mpic1
,
12
,
OpenPIC_PAddr
+
0x10000
);
mpic_assign_isu
(
mpic1
,
13
,
OpenPIC_PAddr
+
0x10080
);
mpic_assign_isu
(
mpic1
,
14
,
OpenPIC_PAddr
+
0x10100
);
mpic_init
(
mpic1
);
4
,
0
,
" OpenPIC "
);
BUG_ON
(
mpic
==
NULL
);
/* Return the mpic node */
of_node_put
(
np
);
mpic_assign_isu
(
mpic
,
0
,
r
.
start
+
0x10200
);
mpic_assign_isu
(
mpic
,
1
,
r
.
start
+
0x10280
);
mpic_assign_isu
(
mpic
,
2
,
r
.
start
+
0x10300
);
mpic_assign_isu
(
mpic
,
3
,
r
.
start
+
0x10380
);
mpic_assign_isu
(
mpic
,
4
,
r
.
start
+
0x10400
);
mpic_assign_isu
(
mpic
,
5
,
r
.
start
+
0x10480
);
mpic_assign_isu
(
mpic
,
6
,
r
.
start
+
0x10500
);
mpic_assign_isu
(
mpic
,
7
,
r
.
start
+
0x10580
);
/* Used only for 8548 so far, but no harm in
* allocating them for everyone */
mpic_assign_isu
(
mpic
,
8
,
r
.
start
+
0x10600
);
mpic_assign_isu
(
mpic
,
9
,
r
.
start
+
0x10680
);
mpic_assign_isu
(
mpic
,
10
,
r
.
start
+
0x10700
);
mpic_assign_isu
(
mpic
,
11
,
r
.
start
+
0x10780
);
/* External Interrupts */
mpic_assign_isu
(
mpic
,
12
,
r
.
start
+
0x10000
);
mpic_assign_isu
(
mpic
,
13
,
r
.
start
+
0x10080
);
mpic_assign_isu
(
mpic
,
14
,
r
.
start
+
0x10100
);
mpic_init
(
mpic
);
#ifdef CONFIG_PPC_I8259
/* Initialize the i8259 controller */
for_each_node_by_type
(
np
,
"interrupt-controller"
)
if
(
device_is_compatible
(
np
,
"chrp,iic"
))
{
cascade_node
=
np
;
break
;
}
if
(
cascade_node
==
NULL
)
{
printk
(
KERN_DEBUG
"Could not find i8259 PIC
\n
"
);
return
;
}
#ifdef CONFIG_PCI
mpic_setup_cascade
(
PIRQ0A
,
i8259_irq_cascade
,
NULL
);
cascade_irq
=
irq_of_parse_and_map
(
cascade_node
,
0
);
if
(
cascade_irq
==
NO_IRQ
)
{
printk
(
KERN_ERR
"Failed to map cascade interrupt
\n
"
);
return
;
}
i8259_init
(
0
,
0
);
#endif
i8259_init
(
cascade_node
,
0
);
of_node_put
(
cascade_node
);
set_irq_chained_handler
(
cascade_irq
,
mpc85xx_8259_cascade
);
#endif
/* CONFIG_PPC_I8259 */
}
...
...
@@ -298,8 +266,6 @@ mpc85xx_cds_setup_arch(void)
add_bridge
(
np
);
ppc_md
.
pcibios_fixup
=
mpc85xx_cds_pcibios_fixup
;
ppc_md
.
pci_swizzle
=
common_swizzle
;
ppc_md
.
pci_map_irq
=
mpc85xx_map_irq
;
ppc_md
.
pci_exclude_device
=
mpc85xx_exclude_device
;
#endif
...
...
arch/powerpc/platforms/86xx/mpc86xx_hpcn.c
View file @
ea0763a7
...
...
@@ -68,37 +68,36 @@ mpc86xx_hpcn_init_irq(void)
{
struct
mpic
*
mpic1
;
struct
device_node
*
np
;
phys_addr_t
openpic_paddr
;
struct
resource
res
;
#ifdef CONFIG_PCI
struct
device_node
*
cascade_node
=
NULL
;
int
cascade_irq
;
#endif
/* Determine PIC address. */
np
=
of_find_node_by_type
(
NULL
,
"open-pic"
);
if
(
np
==
NULL
)
return
;
/* Determine the Physical Address of the OpenPIC regs */
openpic_paddr
=
get_immrbase
()
+
MPC86xx_OPENPIC_OFFSET
;
of_address_to_resource
(
np
,
0
,
&
res
);
/* Alloc mpic structure and per isu has 16 INT entries. */
mpic1
=
mpic_alloc
(
np
,
openpic_paddr
,
mpic1
=
mpic_alloc
(
np
,
res
.
start
,
MPIC_PRIMARY
|
MPIC_WANTS_RESET
|
MPIC_BIG_ENDIAN
,
16
,
NR_IRQS
-
4
,
" MPIC "
);
BUG_ON
(
mpic1
==
NULL
);
mpic_assign_isu
(
mpic1
,
0
,
openpic_paddr
+
0x10000
);
mpic_assign_isu
(
mpic1
,
0
,
res
.
start
+
0x10000
);
/* 48 Internal Interrupts */
mpic_assign_isu
(
mpic1
,
1
,
openpic_paddr
+
0x10200
);
mpic_assign_isu
(
mpic1
,
2
,
openpic_paddr
+
0x10400
);
mpic_assign_isu
(
mpic1
,
3
,
openpic_paddr
+
0x10600
);
mpic_assign_isu
(
mpic1
,
1
,
res
.
start
+
0x10200
);
mpic_assign_isu
(
mpic1
,
2
,
res
.
start
+
0x10400
);
mpic_assign_isu
(
mpic1
,
3
,
res
.
start
+
0x10600
);
/* 16 External interrupts
* Moving them from [0 - 15] to [64 - 79]
*/
mpic_assign_isu
(
mpic1
,
4
,
openpic_paddr
+
0x10000
);
mpic_assign_isu
(
mpic1
,
4
,
res
.
start
+
0x10000
);
mpic_init
(
mpic1
);
...
...
arch/powerpc/platforms/embedded6xx/mpc7448_hpc2.c
View file @
ea0763a7
/*
* mpc7448_hpc2.c
*
* Board setup routines for the Freescale
Taiga
platform
* Board setup routines for the Freescale
mpc7448hpc2(taiga)
platform
*
* Author: Jacob Pan
* jacob.pan@freescale.com
...
...
@@ -12,10 +12,10 @@
*
* Copyright 2004-2006 Freescale Semiconductor, Inc.
*
* This
file is licensed unde
r
*
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
.
* This
program is free software; you can redistribute it and/o
r
*
modify it under the terms of the GNU General Public License
*
as published by the Free Software Foundation; either version
*
2 of the License, or (at your option) any later version
.
*/
#include <linux/config.h>
...
...
@@ -62,43 +62,8 @@ pci_dram_offset = MPC7448_HPC2_PCI_MEM_OFFSET;
extern
int
tsi108_setup_pci
(
struct
device_node
*
dev
);
extern
void
_nmask_and_or_msr
(
unsigned
long
nmask
,
unsigned
long
or_val
);
extern
void
tsi108_pci_int_init
(
void
);
extern
int
tsi108_irq_cascade
(
struct
pt_regs
*
regs
,
void
*
unused
);
/*
* Define all of the IRQ senses and polarities. Taken from the
* mpc7448hpc manual.
* Note: Likely, this table and the following function should be
* obtained and derived from the OF Device Tree.
*/
static
u_char
mpc7448_hpc2_pic_initsenses
[]
__initdata
=
{
/* External on-board sources */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* INT[0] XINT0 from FPGA */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* INT[1] XINT1 from FPGA */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* INT[2] PHY_INT from both GIGE */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_NEGATIVE
),
/* INT[3] RESERVED */
/* Internal Tsi108/109 interrupt sources */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* Reserved IRQ */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* Reserved IRQ */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* Reserved IRQ */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* Reserved IRQ */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* DMA0 */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* DMA1 */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* DMA2 */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* DMA3 */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* UART0 */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* UART1 */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* I2C */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* GPIO */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_POSITIVE
),
/* GIGE0 */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_POSITIVE
),
/* GIGE1 */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* Reserved IRQ */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* HLP */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* SDC */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* Processor IF */
(
IRQ_SENSE_EDGE
|
IRQ_POLARITY_POSITIVE
),
/* Reserved IRQ */
(
IRQ_SENSE_LEVEL
|
IRQ_POLARITY_POSITIVE
),
/* PCI/X block */
};
extern
void
tsi108_irq_cascade
(
unsigned
int
irq
,
struct
irq_desc
*
desc
,
struct
pt_regs
*
regs
);
int
mpc7448_hpc2_exclude_device
(
u_char
bus
,
u_char
devfn
)
{
...
...
@@ -229,6 +194,8 @@ static void __init mpc7448_hpc2_init_IRQ(void)
{
struct
mpic
*
mpic
;
phys_addr_t
mpic_paddr
=
0
;
unsigned
int
cascade_pci_irq
;
struct
device_node
*
tsi_pci
;
struct
device_node
*
tsi_pic
;
tsi_pic
=
of_find_node_by_type
(
NULL
,
"open-pic"
);
...
...
@@ -246,24 +213,31 @@ static void __init mpc7448_hpc2_init_IRQ(void)
DBG
(
"%s: tsi108pic phys_addr = 0x%x
\n
"
,
__FUNCTION__
,
(
u32
)
mpic_paddr
);
mpic
=
mpic_alloc
(
mpic_paddr
,
mpic
=
mpic_alloc
(
tsi_pic
,
mpic_paddr
,
MPIC_PRIMARY
|
MPIC_BIG_ENDIAN
|
MPIC_WANTS_RESET
|
MPIC_SPV_EOI
|
MPIC_MOD_ID
(
MPIC_ID_TSI108
),
0
,
/* num_sources used */
TSI108_IRQ_BASE
,
0
,
/* num_sources used */
NR_IRQS
-
4
/* XXXX */
,
mpc7448_hpc2_pic_initsenses
,
sizeof
(
mpc7448_hpc2_pic_initsenses
),
"Tsi108_PIC"
);
"Tsi108_PIC"
);
BUG_ON
(
mpic
==
NULL
);
/* XXXX */
mpic_init
(
mpic
);
mpic_setup_cascade
(
IRQ_TSI108_PCI
,
tsi108_irq_cascade
,
mpic
);
tsi_pci
=
of_find_node_by_type
(
NULL
,
"pci"
);
if
(
tsi_pci
==
0
)
{
printk
(
"%s: No tsi108 pci node found !
\n
"
,
__FUNCTION__
);
return
;
}
cascade_pci_irq
=
irq_of_parse_and_map
(
tsi_pci
,
0
);
set_irq_data
(
cascade_pci_irq
,
mpic
);
set_irq_chained_handler
(
cascade_pci_irq
,
tsi108_irq_cascade
);
tsi108_pci_int_init
();
/* Configure MPIC outputs to CPU0 */
tsi108_write_reg
(
TSI108_MPIC_OFFSET
+
0x30c
,
0
);
of_node_put
(
tsi_pic
);
}
void
mpc7448_hpc2_show_cpuinfo
(
struct
seq_file
*
m
)
...
...
@@ -320,6 +294,7 @@ static int mpc7448_machine_check_exception(struct pt_regs *regs)
return
0
;
}
define_machine
(
mpc7448_hpc2
){
.
name
=
"MPC7448 HPC2"
,
.
probe
=
mpc7448_hpc2_probe
,
...
...
arch/powerpc/platforms/powermac/bootx_init.c
View file @
ea0763a7
...
...
@@ -411,8 +411,15 @@ static unsigned long __init bootx_flatten_dt(unsigned long start)
DBG
(
"End of boot params: %x
\n
"
,
mem_end
);
rsvmap
[
0
]
=
mem_start
;
rsvmap
[
1
]
=
mem_end
;
rsvmap
[
2
]
=
0
;
rsvmap
[
3
]
=
0
;
if
(
bootx_info
->
ramDisk
)
{
rsvmap
[
2
]
=
((
unsigned
long
)
bootx_info
)
+
bootx_info
->
ramDisk
;
rsvmap
[
3
]
=
rsvmap
[
2
]
+
bootx_info
->
ramDiskSize
;
rsvmap
[
4
]
=
0
;
rsvmap
[
5
]
=
0
;
}
else
{
rsvmap
[
2
]
=
0
;
rsvmap
[
3
]
=
0
;
}
return
(
unsigned
long
)
hdr
;
}
...
...
@@ -543,12 +550,12 @@ void __init bootx_init(unsigned long r3, unsigned long r4)
*/
if
(
bi
->
version
<
5
)
{
space
=
bi
->
deviceTreeOffset
+
bi
->
deviceTreeSize
;
if
(
bi
->
ramDisk
)
if
(
bi
->
ramDisk
>=
space
)
space
=
bi
->
ramDisk
+
bi
->
ramDiskSize
;
}
else
space
=
bi
->
totalParamsSize
;
bootx_printf
(
"Total space used by parameters & ramdisk: %x
\n
"
,
space
);
bootx_printf
(
"Total space used by parameters & ramdisk:
0x
%x
\n
"
,
space
);
/* New BootX will have flushed all TLBs and enters kernel with
* MMU switched OFF, so this should not be useful anymore.
...
...
arch/powerpc/sysdev/fsl_soc.c
View file @
ea0763a7
...
...
@@ -166,8 +166,16 @@ static int __init gfar_of_init(void)
goto
err
;
}
mac_addr
=
get_property
(
np
,
"address"
,
NULL
);
memcpy
(
gfar_data
.
mac_addr
,
mac_addr
,
6
);
mac_addr
=
get_property
(
np
,
"local-mac-address"
,
NULL
);
if
(
mac_addr
==
NULL
)
mac_addr
=
get_property
(
np
,
"mac-address"
,
NULL
);
if
(
mac_addr
==
NULL
)
{
/* Obsolete */
mac_addr
=
get_property
(
np
,
"address"
,
NULL
);
}
if
(
mac_addr
)
memcpy
(
gfar_data
.
mac_addr
,
mac_addr
,
6
);
if
(
model
&&
!
strcasecmp
(
model
,
"TSEC"
))
gfar_data
.
device_flags
=
...
...
arch/powerpc/sysdev/tsi108_dev.c
View file @
ea0763a7
...
...
@@ -93,13 +93,15 @@ static int __init tsi108_eth_of_init(void)
goto
err
;
r
[
1
].
name
=
"tx"
;
r
[
1
].
start
=
np
->
intrs
[
0
].
line
;
r
[
1
].
end
=
np
->
intrs
[
0
].
line
;
r
[
1
].
start
=
irq_of_parse_and_map
(
np
,
0
)
;
r
[
1
].
end
=
irq_of_parse_and_map
(
np
,
0
)
;
r
[
1
].
flags
=
IORESOURCE_IRQ
;
DBG
(
"%s: name:start->end = %s:0x%lx-> 0x%lx
\n
"
,
__FUNCTION__
,
r
[
1
].
name
,
r
[
1
].
start
,
r
[
1
].
end
);
tsi_eth_dev
=
platform_device_register_simple
(
"tsi-ethernet"
,
i
,
&
r
[
0
],
np
->
n_intrs
+
1
);
1
);
if
(
IS_ERR
(
tsi_eth_dev
))
{
ret
=
PTR_ERR
(
tsi_eth_dev
);
...
...
@@ -127,7 +129,7 @@ static int __init tsi108_eth_of_init(void)
tsi_eth_data
.
regs
=
r
[
0
].
start
;
tsi_eth_data
.
phyregs
=
res
.
start
;
tsi_eth_data
.
phy
=
*
phy_id
;
tsi_eth_data
.
irq_num
=
np
->
intrs
[
0
].
line
;
tsi_eth_data
.
irq_num
=
irq_of_parse_and_map
(
np
,
0
)
;
of_node_put
(
phy
);
ret
=
platform_device_add_data
(
tsi_eth_dev
,
&
tsi_eth_data
,
...
...
arch/powerpc/sysdev/tsi108_pci.c
View file @
ea0763a7
...
...
@@ -26,7 +26,6 @@
#include <linux/irq.h>
#include <linux/interrupt.h>
#include <asm/byteorder.h>
#include <asm/io.h>
#include <asm/irq.h>
...
...
@@ -228,7 +227,7 @@ int __init tsi108_setup_pci(struct device_node *dev)
(
hose
)
->
ops
=
&
tsi108_direct_pci_ops
;
printk
(
KERN_INFO
"Found tsi108 PCI host bridge at 0x%08
l
x. "
printk
(
KERN_INFO
"Found tsi108 PCI host bridge at 0x%08x. "
"Firmware bus number: %d->%d
\n
"
,
rsrc
.
start
,
hose
->
first_busno
,
hose
->
last_busno
);
...
...
@@ -278,7 +277,7 @@ static void init_pci_source(void)
mb
();
}
static
inline
int
get_pci_source
(
void
)
static
inline
unsigned
int
get_pci_source
(
void
)
{
u_int
temp
=
0
;
int
irq
=
-
1
;
...
...
@@ -371,12 +370,12 @@ static void tsi108_pci_irq_end(u_int irq)
* Interrupt controller descriptor for cascaded PCI interrupt controller.
*/
st
ruct
hw_interrupt_type
tsi108_pci_irq
=
{
st
atic
struct
irq_chip
tsi108_pci_irq
=
{
.
typename
=
"tsi108_PCI_int"
,
.
enable
=
tsi108_pci_irq_enable
,
.
disable
=
tsi108_pci_irq_disable
,
.
mask
=
tsi108_pci_irq_disable
,
.
ack
=
tsi108_pci_irq_ack
,
.
end
=
tsi108_pci_irq_end
,
.
unmask
=
tsi108_pci_irq_enable
,
};
/*
...
...
@@ -399,14 +398,18 @@ void __init tsi108_pci_int_init(void)
DBG
(
"Tsi108_pci_int_init: initializing PCI interrupts
\n
"
);
for
(
i
=
0
;
i
<
NUM_PCI_IRQS
;
i
++
)
{
irq_desc
[
i
+
IRQ_PCI_INTAD_BASE
].
handler
=
&
tsi108_pci_irq
;
irq_desc
[
i
+
IRQ_PCI_INTAD_BASE
].
chip
=
&
tsi108_pci_irq
;
irq_desc
[
i
+
IRQ_PCI_INTAD_BASE
].
status
|=
IRQ_LEVEL
;
}
init_pci_source
();
}
int
tsi108_irq_cascade
(
struct
pt_regs
*
regs
,
void
*
unused
)
void
tsi108_irq_cascade
(
unsigned
int
irq
,
struct
irq_desc
*
desc
,
struct
pt_regs
*
regs
)
{
return
get_pci_source
();
unsigned
int
cascade_irq
=
get_pci_source
();
if
(
cascade_irq
!=
NO_IRQ
)
generic_handle_irq
(
cascade_irq
,
regs
);
desc
->
chip
->
eoi
(
irq
);
}
include/asm-powerpc/kexec.h
View file @
ea0763a7
...
...
@@ -32,6 +32,7 @@
#endif
#ifndef __ASSEMBLY__
#include <linux/cpumask.h>
#ifdef CONFIG_KEXEC
...
...
@@ -109,7 +110,6 @@ static inline void crash_setup_regs(struct pt_regs *newregs,
#define MAX_NOTE_BYTES 1024
#ifdef __powerpc64__
extern
void
kexec_smp_wait
(
void
);
/* get and clear naca physid, wait for
master to copy new code to 0 */
extern
int
crashing_cpu
;
...
...
@@ -119,7 +119,6 @@ static inline int kexec_sr_activated(int cpu)
{
return
cpu_isset
(
cpu
,
cpus_in_sr
);
}
#endif
/* __powerpc64 __ */
struct
kimage
;
struct
pt_regs
;
...
...
include/asm-powerpc/mpc86xx.h
View file @
ea0763a7
...
...
@@ -31,7 +31,6 @@
#define MCM_PORT_CONFIG_OFFSET 0x1010
/* Offset from CCSRBAR */
#define MPC86xx_OPENPIC_OFFSET (0x40000)
#define MPC86xx_MCM_OFFSET (0x00000)
#define MPC86xx_MCM_SIZE (0x02000)
...
...
include/asm-powerpc/pgalloc.h
View file @
ea0763a7
...
...
@@ -117,7 +117,7 @@ static inline void pte_free(struct page *ptepage)
pte_free_kernel
(
page_address
(
ptepage
));
}
#define PGF_CACHENUM_MASK 0x
f
#define PGF_CACHENUM_MASK 0x
3
typedef
struct
pgtable_free
{
unsigned
long
val
;
...
...
include/asm-powerpc/system.h
View file @
ea0763a7
...
...
@@ -53,6 +53,15 @@
#define smp_read_barrier_depends() do { } while(0)
#endif
/* CONFIG_SMP */
/*
* This is a barrier which prevents following instructions from being
* started until the value of the argument x is known. For example, if
* x is a variable loaded from memory, this prevents following
* instructions from being executed until the load has been performed.
*/
#define data_barrier(x) \
asm volatile("twi 0,%0,0; isync" : : "r" (x) : "memory");
struct
task_struct
;
struct
pt_regs
;
...
...
include/asm-powerpc/tsi108.h
View file @
ea0763a7
/*
* include/asm-ppc/tsi108.h
*
* common routine and memory layout for Tundra TSI108(Grendel) host bridge
* memory controller.
*
* Author: Jacob Pan (jacob.pan@freescale.com)
* Alex Bounine (alexandreb@tundra.com)
* 2004 (c) Freescale Semiconductor 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.
*
* Copyright 2004-2006 Freescale Semiconductor, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version
* 2 of the License, or (at your option) any later version.
*/
#ifndef __PPC_KERNEL_TSI108_H
#define __PPC_KERNEL_TSI108_H
...
...
include/asm-powerpc/tsi108_irq.h
0 → 100644
View file @
ea0763a7
/*
* (C) Copyright 2005 Tundra Semiconductor Corp.
* Alex Bounine, <alexandreb at tundra.com).
*
* See file CREDITS for list of people who contributed to this
* project.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of
* the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
/*
* definitions for interrupt controller initialization and external interrupt
* demultiplexing on TSI108EMU/SVB boards.
*/
#ifndef _ASM_PPC_TSI108_IRQ_H
#define _ASM_PPC_TSI108_IRQ_H
/*
* Tsi108 interrupts
*/
#ifndef TSI108_IRQ_REG_BASE
#define TSI108_IRQ_REG_BASE 0
#endif
#define TSI108_IRQ(x) (TSI108_IRQ_REG_BASE + (x))
#define TSI108_MAX_VECTORS (36 + 4)
/* 36 sources + PCI INT demux */
#define MAX_TASK_PRIO 0xF
#define TSI108_IRQ_SPURIOUS (TSI108_MAX_VECTORS)
#define DEFAULT_PRIO_LVL 10
/* initial priority level */
/* Interrupt vectors assignment to external and internal
* sources of requests. */
/* EXTERNAL INTERRUPT SOURCES */
#define IRQ_TSI108_EXT_INT0 TSI108_IRQ(0)
/* External Source at INT[0] */
#define IRQ_TSI108_EXT_INT1 TSI108_IRQ(1)
/* External Source at INT[1] */
#define IRQ_TSI108_EXT_INT2 TSI108_IRQ(2)
/* External Source at INT[2] */
#define IRQ_TSI108_EXT_INT3 TSI108_IRQ(3)
/* External Source at INT[3] */
/* INTERNAL INTERRUPT SOURCES */
#define IRQ_TSI108_RESERVED0 TSI108_IRQ(4)
/* Reserved IRQ */
#define IRQ_TSI108_RESERVED1 TSI108_IRQ(5)
/* Reserved IRQ */
#define IRQ_TSI108_RESERVED2 TSI108_IRQ(6)
/* Reserved IRQ */
#define IRQ_TSI108_RESERVED3 TSI108_IRQ(7)
/* Reserved IRQ */
#define IRQ_TSI108_DMA0 TSI108_IRQ(8)
/* DMA0 */
#define IRQ_TSI108_DMA1 TSI108_IRQ(9)
/* DMA1 */
#define IRQ_TSI108_DMA2 TSI108_IRQ(10)
/* DMA2 */
#define IRQ_TSI108_DMA3 TSI108_IRQ(11)
/* DMA3 */
#define IRQ_TSI108_UART0 TSI108_IRQ(12)
/* UART0 */
#define IRQ_TSI108_UART1 TSI108_IRQ(13)
/* UART1 */
#define IRQ_TSI108_I2C TSI108_IRQ(14)
/* I2C */
#define IRQ_TSI108_GPIO TSI108_IRQ(15)
/* GPIO */
#define IRQ_TSI108_GIGE0 TSI108_IRQ(16)
/* GIGE0 */
#define IRQ_TSI108_GIGE1 TSI108_IRQ(17)
/* GIGE1 */
#define IRQ_TSI108_RESERVED4 TSI108_IRQ(18)
/* Reserved IRQ */
#define IRQ_TSI108_HLP TSI108_IRQ(19)
/* HLP */
#define IRQ_TSI108_SDRAM TSI108_IRQ(20)
/* SDC */
#define IRQ_TSI108_PROC_IF TSI108_IRQ(21)
/* Processor IF */
#define IRQ_TSI108_RESERVED5 TSI108_IRQ(22)
/* Reserved IRQ */
#define IRQ_TSI108_PCI TSI108_IRQ(23)
/* PCI/X block */
#define IRQ_TSI108_MBOX0 TSI108_IRQ(24)
/* Mailbox 0 register */
#define IRQ_TSI108_MBOX1 TSI108_IRQ(25)
/* Mailbox 1 register */
#define IRQ_TSI108_MBOX2 TSI108_IRQ(26)
/* Mailbox 2 register */
#define IRQ_TSI108_MBOX3 TSI108_IRQ(27)
/* Mailbox 3 register */
#define IRQ_TSI108_DBELL0 TSI108_IRQ(28)
/* Doorbell 0 */
#define IRQ_TSI108_DBELL1 TSI108_IRQ(29)
/* Doorbell 1 */
#define IRQ_TSI108_DBELL2 TSI108_IRQ(30)
/* Doorbell 2 */
#define IRQ_TSI108_DBELL3 TSI108_IRQ(31)
/* Doorbell 3 */
#define IRQ_TSI108_TIMER0 TSI108_IRQ(32)
/* Global Timer 0 */
#define IRQ_TSI108_TIMER1 TSI108_IRQ(33)
/* Global Timer 1 */
#define IRQ_TSI108_TIMER2 TSI108_IRQ(34)
/* Global Timer 2 */
#define IRQ_TSI108_TIMER3 TSI108_IRQ(35)
/* Global Timer 3 */
/*
* PCI bus INTA# - INTD# lines demultiplexor
*/
#define IRQ_PCI_INTAD_BASE TSI108_IRQ(36)
#define IRQ_PCI_INTA (IRQ_PCI_INTAD_BASE + 0)
#define IRQ_PCI_INTB (IRQ_PCI_INTAD_BASE + 1)
#define IRQ_PCI_INTC (IRQ_PCI_INTAD_BASE + 2)
#define IRQ_PCI_INTD (IRQ_PCI_INTAD_BASE + 3)
#define NUM_PCI_IRQS (4)
/* number of entries in vector dispatch table */
#define IRQ_TSI108_TAB_SIZE (TSI108_MAX_VECTORS + 1)
/* Mapping of MPIC outputs to processors' interrupt pins */
#define IDIR_INT_OUT0 0x1
#define IDIR_INT_OUT1 0x2
#define IDIR_INT_OUT2 0x4
#define IDIR_INT_OUT3 0x8
/*---------------------------------------------------------------
* IRQ line configuration parameters */
/* Interrupt delivery modes */
typedef
enum
{
TSI108_IRQ_DIRECTED
,
TSI108_IRQ_DISTRIBUTED
,
}
TSI108_IRQ_MODE
;
#endif
/* _ASM_PPC_TSI108_IRQ_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment