Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
edbc29d7
Commit
edbc29d7
authored
Feb 11, 2009
by
Benjamin Herrenschmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge commit 'kumar/next' into next
parents
1db8508c
a0e8618c
Changes
36
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
3171 additions
and
149 deletions
+3171
-149
Documentation/powerpc/dts-bindings/fsl/dma.txt
Documentation/powerpc/dts-bindings/fsl/dma.txt
+17
-17
Documentation/powerpc/dts-bindings/fsl/esdhc.txt
Documentation/powerpc/dts-bindings/fsl/esdhc.txt
+24
-0
arch/powerpc/Kconfig
arch/powerpc/Kconfig
+18
-1
arch/powerpc/boot/dts/gef_sbc310.dts
arch/powerpc/boot/dts/gef_sbc310.dts
+364
-0
arch/powerpc/boot/dts/mpc8315erdb.dts
arch/powerpc/boot/dts/mpc8315erdb.dts
+64
-0
arch/powerpc/boot/dts/mpc8377_mds.dts
arch/powerpc/boot/dts/mpc8377_mds.dts
+68
-3
arch/powerpc/boot/dts/mpc8377_rdb.dts
arch/powerpc/boot/dts/mpc8377_rdb.dts
+102
-0
arch/powerpc/boot/dts/mpc8378_mds.dts
arch/powerpc/boot/dts/mpc8378_mds.dts
+68
-3
arch/powerpc/boot/dts/mpc8378_rdb.dts
arch/powerpc/boot/dts/mpc8378_rdb.dts
+102
-0
arch/powerpc/boot/dts/mpc8379_mds.dts
arch/powerpc/boot/dts/mpc8379_mds.dts
+4
-3
arch/powerpc/boot/dts/mpc8379_rdb.dts
arch/powerpc/boot/dts/mpc8379_rdb.dts
+38
-0
arch/powerpc/boot/dts/tqm8540.dts
arch/powerpc/boot/dts/tqm8540.dts
+5
-0
arch/powerpc/boot/dts/tqm8541.dts
arch/powerpc/boot/dts/tqm8541.dts
+5
-0
arch/powerpc/boot/dts/tqm8548-bigflash.dts
arch/powerpc/boot/dts/tqm8548-bigflash.dts
+7
-2
arch/powerpc/boot/dts/tqm8548.dts
arch/powerpc/boot/dts/tqm8548.dts
+7
-2
arch/powerpc/boot/dts/tqm8555.dts
arch/powerpc/boot/dts/tqm8555.dts
+5
-0
arch/powerpc/boot/dts/tqm8560.dts
arch/powerpc/boot/dts/tqm8560.dts
+7
-2
arch/powerpc/configs/86xx/gef_sbc310_defconfig
arch/powerpc/configs/86xx/gef_sbc310_defconfig
+1613
-0
arch/powerpc/include/asm/reg_booke.h
arch/powerpc/include/asm/reg_booke.h
+1
-0
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/Makefile
+1
-0
arch/powerpc/kernel/cpu_setup_fsl_booke.S
arch/powerpc/kernel/cpu_setup_fsl_booke.S
+31
-0
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/cputable.c
+8
-0
arch/powerpc/kernel/head_booke.h
arch/powerpc/kernel/head_booke.h
+3
-3
arch/powerpc/kernel/head_fsl_booke.S
arch/powerpc/kernel/head_fsl_booke.S
+54
-27
arch/powerpc/mm/fsl_booke_mmu.c
arch/powerpc/mm/fsl_booke_mmu.c
+46
-47
arch/powerpc/platforms/83xx/mpc831x_rdb.c
arch/powerpc/platforms/83xx/mpc831x_rdb.c
+2
-0
arch/powerpc/platforms/83xx/mpc837x_mds.c
arch/powerpc/platforms/83xx/mpc837x_mds.c
+3
-7
arch/powerpc/platforms/83xx/mpc837x_rdb.c
arch/powerpc/platforms/83xx/mpc837x_rdb.c
+2
-0
arch/powerpc/platforms/86xx/Kconfig
arch/powerpc/platforms/86xx/Kconfig
+9
-1
arch/powerpc/platforms/86xx/Makefile
arch/powerpc/platforms/86xx/Makefile
+1
-0
arch/powerpc/platforms/86xx/gef_gpio.c
arch/powerpc/platforms/86xx/gef_gpio.c
+31
-5
arch/powerpc/platforms/86xx/gef_sbc310.c
arch/powerpc/platforms/86xx/gef_sbc310.c
+230
-0
arch/powerpc/sysdev/cpm2.c
arch/powerpc/sysdev/cpm2.c
+2
-1
arch/powerpc/sysdev/fsl_pci.c
arch/powerpc/sysdev/fsl_pci.c
+220
-24
drivers/watchdog/Kconfig
drivers/watchdog/Kconfig
+1
-1
include/linux/pci_ids.h
include/linux/pci_ids.h
+8
-0
No files found.
Documentation/powerpc/dts-bindings/fsl/dma.txt
View file @
edbc29d7
...
@@ -35,30 +35,30 @@ Example:
...
@@ -35,30 +35,30 @@ Example:
#address-cells = <1>;
#address-cells = <1>;
#size-cells = <1>;
#size-cells = <1>;
compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
compatible = "fsl,mpc8349-dma", "fsl,elo-dma";
reg = <82a8 4>;
reg = <
0x
82a8 4>;
ranges = <0
8100
1a4>;
ranges = <0
0x8100 0x
1a4>;
interrupt-parent = <&ipic>;
interrupt-parent = <&ipic>;
interrupts = <
47
8>;
interrupts = <
71
8>;
cell-index = <0>;
cell-index = <0>;
dma-channel@0 {
dma-channel@0 {
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
cell-index = <0>;
cell-index = <0>;
reg = <0 80>;
reg = <0
0x
80>;
};
};
dma-channel@80 {
dma-channel@80 {
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
cell-index = <1>;
cell-index = <1>;
reg = <
80
80>;
reg = <
0x80 0x
80>;
};
};
dma-channel@100 {
dma-channel@100 {
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
cell-index = <2>;
cell-index = <2>;
reg = <
100
80>;
reg = <
0x100 0x
80>;
};
};
dma-channel@180 {
dma-channel@180 {
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
compatible = "fsl,mpc8349-dma-channel", "fsl,elo-dma-channel";
cell-index = <3>;
cell-index = <3>;
reg = <
180
80>;
reg = <
0x180 0x
80>;
};
};
};
};
...
@@ -93,36 +93,36 @@ Example:
...
@@ -93,36 +93,36 @@ Example:
#address-cells = <1>;
#address-cells = <1>;
#size-cells = <1>;
#size-cells = <1>;
compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
compatible = "fsl,mpc8540-dma", "fsl,eloplus-dma";
reg = <21300 4>;
reg = <
0x
21300 4>;
ranges = <0
21100
200>;
ranges = <0
0x21100 0x
200>;
cell-index = <0>;
cell-index = <0>;
dma-channel@0 {
dma-channel@0 {
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
reg = <0 80>;
reg = <0
0x
80>;
cell-index = <0>;
cell-index = <0>;
interrupt-parent = <&mpic>;
interrupt-parent = <&mpic>;
interrupts = <
14
2>;
interrupts = <
20
2>;
};
};
dma-channel@80 {
dma-channel@80 {
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
reg = <
80
80>;
reg = <
0x80 0x
80>;
cell-index = <1>;
cell-index = <1>;
interrupt-parent = <&mpic>;
interrupt-parent = <&mpic>;
interrupts = <
15
2>;
interrupts = <
21
2>;
};
};
dma-channel@100 {
dma-channel@100 {
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
reg = <
100
80>;
reg = <
0x100 0x
80>;
cell-index = <2>;
cell-index = <2>;
interrupt-parent = <&mpic>;
interrupt-parent = <&mpic>;
interrupts = <
16
2>;
interrupts = <
22
2>;
};
};
dma-channel@180 {
dma-channel@180 {
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
compatible = "fsl,mpc8540-dma-channel", "fsl,eloplus-dma-channel";
reg = <
180
80>;
reg = <
0x180 0x
80>;
cell-index = <3>;
cell-index = <3>;
interrupt-parent = <&mpic>;
interrupt-parent = <&mpic>;
interrupts = <
17
2>;
interrupts = <
23
2>;
};
};
};
};
...
...
Documentation/powerpc/dts-bindings/fsl/esdhc.txt
0 → 100644
View file @
edbc29d7
* Freescale Enhanced Secure Digital Host Controller (eSDHC)
The Enhanced Secure Digital Host Controller provides an interface
for MMC, SD, and SDIO types of memory cards.
Required properties:
- compatible : should be
"fsl,<chip>-esdhc", "fsl,mpc8379-esdhc" for MPC83xx processors.
"fsl,<chip>-esdhc", "fsl,mpc8536-esdhc" for MPC85xx processors.
- reg : should contain eSDHC registers location and length.
- interrupts : should contain eSDHC interrupt.
- interrupt-parent : interrupt source phandle.
- clock-frequency : specifies eSDHC base clock frequency.
Example:
sdhci@2e000 {
compatible = "fsl,mpc8378-esdhc", "fsl,mpc8379-esdhc";
reg = <0x2e000 0x1000>;
interrupts = <42 0x8>;
interrupt-parent = <&ipic>;
/* Filled in by U-Boot */
clock-frequency = <0>;
};
arch/powerpc/Kconfig
View file @
edbc29d7
...
@@ -594,6 +594,7 @@ config FSL_SOC
...
@@ -594,6 +594,7 @@ config FSL_SOC
config FSL_PCI
config FSL_PCI
bool
bool
select PPC_INDIRECT_PCI
select PPC_INDIRECT_PCI
select PCI_QUIRKS
config 4xx_SOC
config 4xx_SOC
bool
bool
...
@@ -730,6 +731,22 @@ config LOWMEM_SIZE
...
@@ -730,6 +731,22 @@ config LOWMEM_SIZE
hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
hex "Maximum low memory size (in bytes)" if LOWMEM_SIZE_BOOL
default "0x30000000"
default "0x30000000"
config LOWMEM_CAM_NUM_BOOL
bool "Set number of CAMs to use to map low memory"
depends on ADVANCED_OPTIONS && FSL_BOOKE
help
This option allows you to set the maximum number of CAM slots that
will be used to map low memory. There are a limited number of slots
available and even more limited number that will fit in the L1 MMU.
However, using more entries will allow mapping more low memory. This
can be useful in optimizing the layout of kernel virtual memory.
Say N here unless you know what you are doing.
config LOWMEM_CAM_NUM
int "Number of CAMs to use to map low memory" if LOWMEM_CAM_NUM_BOOL
default 3
config RELOCATABLE
config RELOCATABLE
bool "Build a relocatable kernel (EXPERIMENTAL)"
bool "Build a relocatable kernel (EXPERIMENTAL)"
depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
depends on EXPERIMENTAL && ADVANCED_OPTIONS && FLATMEM && FSL_BOOKE
...
@@ -794,7 +811,7 @@ config PHYSICAL_START
...
@@ -794,7 +811,7 @@ config PHYSICAL_START
config PHYSICAL_ALIGN
config PHYSICAL_ALIGN
hex
hex
default "0x
10
000000" if FSL_BOOKE
default "0x
04
000000" if FSL_BOOKE
help
help
This value puts the alignment restrictions on physical address
This value puts the alignment restrictions on physical address
where kernel is loaded and run from. Kernel is compiled for an
where kernel is loaded and run from. Kernel is compiled for an
...
...
arch/powerpc/boot/dts/gef_sbc310.dts
0 → 100644
View file @
edbc29d7
/*
*
GE
Fanuc
SBC310
Device
Tree
Source
*
*
Copyright
2008
GE
Fanuc
Intelligent
Platforms
Embedded
Systems
,
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
.
*
*
Based
on
:
SBS
CM6
Device
Tree
Source
*
Copyright
2007
SBS
Technologies
GmbH
&
Co
.
KG
*
And
:
mpc8641_hpcn
.
dts
(
MPC8641
HPCN
Device
Tree
Source
)
*
Copyright
2006
Freescale
Semiconductor
Inc
.
*/
/*
*
Compiled
with
dtc
-
I
dts
-
O
dtb
-
o
gef_sbc310
.
dtb
gef_sbc310
.
dts
*/
/
dts
-
v1
/;
/
{
model
=
"GEF_SBC310"
;
compatible
=
"gef,sbc310"
;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
aliases
{
ethernet0
=
&
enet0
;
ethernet1
=
&
enet1
;
serial0
=
&
serial0
;
serial1
=
&
serial1
;
pci0
=
&
pci0
;
};
cpus
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
PowerPC
,
8641
@
0
{
device_type
=
"cpu"
;
reg
=
<
0
>;
d
-
cache
-
line
-
size
=
<
32
>;
//
32
bytes
i
-
cache
-
line
-
size
=
<
32
>;
//
32
bytes
d
-
cache
-
size
=
<
32768
>;
//
L1
,
32
K
i
-
cache
-
size
=
<
32768
>;
//
L1
,
32
K
timebase
-
frequency
=
<
0
>;
//
From
uboot
bus
-
frequency
=
<
0
>;
//
From
uboot
clock
-
frequency
=
<
0
>;
//
From
uboot
};
PowerPC
,
8641
@
1
{
device_type
=
"cpu"
;
reg
=
<
1
>;
d
-
cache
-
line
-
size
=
<
32
>;
//
32
bytes
i
-
cache
-
line
-
size
=
<
32
>;
//
32
bytes
d
-
cache
-
size
=
<
32768
>;
//
L1
,
32
K
i
-
cache
-
size
=
<
32768
>;
//
L1
,
32
K
timebase
-
frequency
=
<
0
>;
//
From
uboot
bus
-
frequency
=
<
0
>;
//
From
uboot
clock
-
frequency
=
<
0
>;
//
From
uboot
};
};
memory
{
device_type
=
"memory"
;
reg
=
<
0x0
0x40000000
>;
//
set
by
uboot
};
localbus
@
fef05000
{
#
address
-
cells
=
<
2
>;
#
size
-
cells
=
<
1
>;
compatible
=
"fsl,mpc8641-localbus"
,
"simple-bus"
;
reg
=
<
0xfef05000
0x1000
>;
interrupts
=
<
19
2
>;
interrupt
-
parent
=
<&
mpic
>;
ranges
=
<
0
0
0xff000000
0x01000000
//
16
MB
Boot
flash
1
0
0xe0000000
0x08000000
//
Paged
Flash
0
2
0
0xe8000000
0x08000000
//
Paged
Flash
1
3
0
0xfc100000
0x00020000
//
NVRAM
4
0
0xfc000000
0x00010000
>;
//
FPGA
/*
flash
@
0
,
0
is
a
mirror
of
part
of
the
memory
in
flash
@
1
,
0
flash
@
0
,
0
{
compatible
=
"cfi-flash"
;
reg
=
<
0
0
0x01000000
>;
bank
-
width
=
<
2
>;
device
-
width
=
<
2
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
partition
@
0
{
label
=
"firmware"
;
reg
=
<
0x00000000
0x01000000
>;
read
-
only
;
};
};
*/
flash
@
1
,
0
{
compatible
=
"cfi-flash"
;
reg
=
<
1
0
0x8000000
>;
bank
-
width
=
<
2
>;
device
-
width
=
<
2
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
partition
@
0
{
label
=
"user"
;
reg
=
<
0x00000000
0x07800000
>;
};
partition
@
7800000
{
label
=
"firmware"
;
reg
=
<
0x07800000
0x00800000
>;
read
-
only
;
};
};
fpga
@
4
,
0
{
compatible
=
"gef,fpga-regs"
;
reg
=
<
0x4
0x0
0x40
>;
};
wdt
@
4
,
2000
{
#
interrupt
-
cells
=
<
2
>;
device_type
=
"watchdog"
;
compatible
=
"gef,fpga-wdt"
;
reg
=
<
0x4
0x2000
0x8
>;
interrupts
=
<
0x1a
0x4
>;
interrupt
-
parent
=
<&
gef_pic
>;
};
/*
wdt
@
4
,
2010
{
#
interrupt
-
cells
=
<
2
>;
device_type
=
"watchdog"
;
compatible
=
"gef,fpga-wdt"
;
reg
=
<
0x4
0x2010
0x8
>;
interrupts
=
<
0x1b
0x4
>;
interrupt
-
parent
=
<&
gef_pic
>;
};
*/
gef_pic
:
pic
@
4
,
4000
{
#
interrupt
-
cells
=
<
1
>;
interrupt
-
controller
;
compatible
=
"gef,fpga-pic"
;
reg
=
<
0x4
0x4000
0x20
>;
interrupts
=
<
0x8
0x9
>;
interrupt
-
parent
=
<&
mpic
>;
};
gef_gpio
:
gpio
@
4
,
8000
{
#
gpio
-
cells
=
<
2
>;
compatible
=
"gef,sbc310-gpio"
;
reg
=
<
0x4
0x8000
0x24
>;
gpio
-
controller
;
};
};
soc
@
fef00000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
#
interrupt
-
cells
=
<
2
>;
device_type
=
"soc"
;
compatible
=
"simple-bus"
;
ranges
=
<
0x0
0xfef00000
0x00100000
>;
reg
=
<
0xfef00000
0x100000
>;
//
CCSRBAR
1
M
bus
-
frequency
=
<
33333333
>;
i2c1
:
i2c
@
3000
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
compatible
=
"fsl-i2c"
;
reg
=
<
0x3000
0x100
>;
interrupts
=
<
0x2b
0x2
>;
interrupt
-
parent
=
<&
mpic
>;
dfsrr
;
rtc
@
51
{
compatible
=
"epson,rx8581"
;
reg
=
<
0x00000051
>;
};
};
i2c2
:
i2c
@
3100
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
compatible
=
"fsl-i2c"
;
reg
=
<
0x3100
0x100
>;
interrupts
=
<
0x2b
0x2
>;
interrupt
-
parent
=
<&
mpic
>;
dfsrr
;
hwmon
@
48
{
compatible
=
"national,lm92"
;
reg
=
<
0x48
>;
};
hwmon
@
4
c
{
compatible
=
"adi,adt7461"
;
reg
=
<
0x4c
>;
};
eti
@
6
b
{
compatible
=
"dallas,ds1682"
;
reg
=
<
0x6b
>;
};
};
dma
@
21300
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
1
>;
compatible
=
"fsl,mpc8641-dma"
,
"fsl,eloplus-dma"
;
reg
=
<
0x21300
0x4
>;
ranges
=
<
0x0
0x21100
0x200
>;
cell
-
index
=
<
0
>;
dma
-
channel
@
0
{
compatible
=
"fsl,mpc8641-dma-channel"
,
"fsl,eloplus-dma-channel"
;
reg
=
<
0x0
0x80
>;
cell
-
index
=
<
0
>;
interrupt
-
parent
=
<&
mpic
>;
interrupts
=
<
20
2
>;
};
dma
-
channel
@
80
{
compatible
=
"fsl,mpc8641-dma-channel"
,
"fsl,eloplus-dma-channel"
;
reg
=
<
0x80
0x80
>;
cell
-
index
=
<
1
>;
interrupt
-
parent
=
<&
mpic
>;
interrupts
=
<
21
2
>;
};
dma
-
channel
@
100
{
compatible
=
"fsl,mpc8641-dma-channel"
,
"fsl,eloplus-dma-channel"
;
reg
=
<
0x100
0x80
>;
cell
-
index
=
<
2
>;
interrupt
-
parent
=
<&
mpic
>;
interrupts
=
<
22
2
>;
};
dma
-
channel
@
180
{
compatible
=
"fsl,mpc8641-dma-channel"
,
"fsl,eloplus-dma-channel"
;
reg
=
<
0x180
0x80
>;
cell
-
index
=
<
3
>;
interrupt
-
parent
=
<&
mpic
>;
interrupts
=
<
23
2
>;
};
};
mdio
@
24520
{
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
compatible
=
"fsl,gianfar-mdio"
;
reg
=
<
0x24520
0x20
>;
phy0
:
ethernet
-
phy
@
0
{
interrupt
-
parent
=
<&
gef_pic
>;
interrupts
=
<
0x9
0x4
>;
reg
=
<
1
>;
};
phy2
:
ethernet
-
phy
@
2
{
interrupt
-
parent
=
<&
gef_pic
>;
interrupts
=
<
0x8
0x4
>;
reg
=
<
3
>;
};
};
enet0
:
ethernet
@
24000
{
device_type
=
"network"
;
model
=
"eTSEC"
;
compatible
=
"gianfar"
;
reg
=
<
0x24000
0x1000
>;
local
-
mac
-
address
=
[
00
00
00
00
00
00
];
interrupts
=
<
0x1d
0x2
0x1e
0x2
0x22
0x2
>;
interrupt
-
parent
=
<&
mpic
>;
phy
-
handle
=
<&
phy0
>;
phy
-
connection
-
type
=
"gmii"
;
};
enet1
:
ethernet
@
26000
{
device_type
=
"network"
;
model
=
"eTSEC"
;
compatible
=
"gianfar"
;
reg
=
<
0x26000
0x1000
>;
local
-
mac
-
address
=
[
00
00
00
00
00
00
];
interrupts
=
<
0x1f
0x2
0x20
0x2
0x21
0x2
>;
interrupt
-
parent
=
<&
mpic
>;
phy
-
handle
=
<&
phy2
>;
phy
-
connection
-
type
=
"gmii"
;
};
serial0
:
serial
@
4500
{
cell
-
index
=
<
0
>;
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
0x4500
0x100
>;
clock
-
frequency
=
<
0
>;
interrupts
=
<
0x2a
0x2
>;
interrupt
-
parent
=
<&
mpic
>;
};
serial1
:
serial
@
4600
{
cell
-
index
=
<
1
>;
device_type
=
"serial"
;
compatible
=
"ns16550"
;
reg
=
<
0x4600
0x100
>;
clock
-
frequency
=
<
0
>;
interrupts
=
<
0x1c
0x2
>;
interrupt
-
parent
=
<&
mpic
>;
};
mpic
:
pic
@
40000
{
clock
-
frequency
=
<
0
>;
interrupt
-
controller
;
#
address
-
cells
=
<
0
>;
#
interrupt
-
cells
=
<
2
>;
reg
=
<
0x40000
0x40000
>;
compatible
=
"chrp,open-pic"
;
device_type
=
"open-pic"
;
};
global
-
utilities
@
e0000
{
compatible
=
"fsl,mpc8641-guts"
;
reg
=
<
0xe0000
0x1000
>;
fsl
,
has
-
rstcr
;
};
};
pci0
:
pcie
@
fef08000
{
compatible
=
"fsl,mpc8641-pcie"
;
device_type
=
"pci"
;
#
interrupt
-
cells
=
<
1
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
reg
=
<
0xfef08000
0x1000
>;
bus
-
range
=
<
0x0
0xff
>;
ranges
=
<
0x02000000
0x0
0x80000000
0x80000000
0x0
0x40000000
0x01000000
0x0
0x00000000
0xfe000000
0x0
0x00400000
>;
clock
-
frequency
=
<
33333333
>;
interrupt
-
parent
=
<&
mpic
>;
interrupts
=
<
0x18
0x2
>;
interrupt
-
map
-
mask
=
<
0xf800
0x0
0x0
0x7
>;
interrupt
-
map
=
<
0x0000
0x0
0x0
0x1
&
mpic
0x0
0x2
0x0000
0x0
0x0
0x2
&
mpic
0x1
0x2
0x0000
0x0
0x0
0x3
&
mpic
0x2
0x2
0x0000
0x0
0x0
0x4
&
mpic
0x3
0x2
>;
pcie
@
0
{
reg
=
<
0
0
0
0
0
>;
#
size
-
cells
=
<
2
>;
#
address
-
cells
=
<
3
>;
device_type
=
"pci"
;
ranges
=
<
0x02000000
0x0
0x80000000
0x02000000
0x0
0x80000000
0x0
0x40000000
0x01000000
0x0
0x00000000
0x01000000
0x0
0x00000000
0x0
0x00400000
>;
};
};
};
arch/powerpc/boot/dts/mpc8315erdb.dts
View file @
edbc29d7
...
@@ -22,6 +22,8 @@ aliases {
...
@@ -22,6 +22,8 @@ aliases {
serial0
=
&
serial0
;
serial0
=
&
serial0
;
serial1
=
&
serial1
;
serial1
=
&
serial1
;
pci0
=
&
pci0
;
pci0
=
&
pci0
;
pci1
=
&
pci1
;
pci2
=
&
pci2
;
};
};
cpus
{
cpus
{
...
@@ -349,4 +351,66 @@ pci0: pci@e0008500 {
...
@@ -349,4 +351,66 @@ pci0: pci@e0008500 {
compatible
=
"fsl,mpc8349-pci"
;
compatible
=
"fsl,mpc8349-pci"
;
device_type
=
"pci"
;
device_type
=
"pci"
;
};
};
pci1
:
pcie
@
e0009000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8315-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe0009000
0x00001000
>;
ranges
=
<
0x02000000
0
0xa0000000
0xa0000000
0
0x10000000
0x01000000
0
0x00000000
0xb1000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
1
8
0
0
0
2
&
ipic
1
8
0
0
0
3
&
ipic
1
8
0
0
0
4
&
ipic
1
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xa0000000
0x02000000
0
0xa0000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
pci2
:
pcie
@
e000a000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8315-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe000a000
0x00001000
>;
ranges
=
<
0x02000000
0
0xc0000000
0xc0000000
0
0x10000000
0x01000000
0
0x00000000
0xd1000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
2
8
0
0
0
2
&
ipic
2
8
0
0
0
3
&
ipic
2
8
0
0
0
4
&
ipic
2
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xc0000000
0x02000000
0
0xc0000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
};
};
arch/powerpc/boot/dts/mpc8377_mds.dts
View file @
edbc29d7
...
@@ -23,6 +23,8 @@ aliases {
...
@@ -23,6 +23,8 @@ aliases {
serial0
=
&
serial0
;
serial0
=
&
serial0
;
serial1
=
&
serial1
;
serial1
=
&
serial1
;
pci0
=
&
pci0
;
pci0
=
&
pci0
;
pci1
=
&
pci1
;
pci2
=
&
pci2
;
};
};
cpus
{
cpus
{
...
@@ -311,12 +313,13 @@ crypto@30000 {
...
@@ -311,12 +313,13 @@ crypto@30000 {
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
};
};
sdhc
@
2e000
{
sdhci
@
2e000
{
model
=
"eSDHC"
;
compatible
=
"fsl,mpc8377-esdhc"
,
"fsl,mpc8379-esdhc"
;
compatible
=
"fsl,esdhc"
;
reg
=
<
0x2e000
0x1000
>;
reg
=
<
0x2e000
0x1000
>;
interrupts
=
<
42
0x8
>;
interrupts
=
<
42
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
interrupt
-
parent
=
<&
ipic
>;
/*
Filled
in
by
U
-
Boot
*/
clock
-
frequency
=
<
0
>;
};
};
sata
@
18000
{
sata
@
18000
{
...
@@ -409,4 +412,66 @@ pci0: pci@e0008500 {
...
@@ -409,4 +412,66 @@ pci0: pci@e0008500 {
compatible
=
"fsl,mpc8349-pci"
;
compatible
=
"fsl,mpc8349-pci"
;
device_type
=
"pci"
;
device_type
=
"pci"
;
};
};
pci1
:
pcie
@
e0009000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8377-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe0009000
0x00001000
>;
ranges
=
<
0x02000000
0
0xa8000000
0xa8000000
0
0x10000000
0x01000000
0
0x00000000
0xb8000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
1
8
0
0
0
2
&
ipic
1
8
0
0
0
3
&
ipic
1
8
0
0
0
4
&
ipic
1
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xa8000000
0x02000000
0
0xa8000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
pci2
:
pcie
@
e000a000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8377-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe000a000
0x00001000
>;
ranges
=
<
0x02000000
0
0xc8000000
0xc8000000
0
0x10000000
0x01000000
0
0x00000000
0xd8000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
2
8
0
0
0
2
&
ipic
2
8
0
0
0
3
&
ipic
2
8
0
0
0
4
&
ipic
2
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xc8000000
0x02000000
0
0xc8000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
};
};
arch/powerpc/boot/dts/mpc8377_rdb.dts
View file @
edbc29d7
...
@@ -22,6 +22,8 @@ aliases {
...
@@ -22,6 +22,8 @@ aliases {
serial0
=
&
serial0
;
serial0
=
&
serial0
;
serial1
=
&
serial1
;
serial1
=
&
serial1
;
pci0
=
&
pci0
;
pci0
=
&
pci0
;
pci1
=
&
pci1
;
pci2
=
&
pci2
;
};
};
cpus
{
cpus
{
...
@@ -107,6 +109,24 @@ wdt@200 {
...
@@ -107,6 +109,24 @@ wdt@200 {
reg
=
<
0x200
0x100
>;
reg
=
<
0x200
0x100
>;
};
};
gpio1
:
gpio
-
controller
@
c00
{
#
gpio
-
cells
=
<
2
>;
compatible
=
"fsl,mpc8377-gpio"
,
"fsl,mpc8349-gpio"
;
reg
=
<
0xc00
0x100
>;
interrupts
=
<
74
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
gpio
-
controller
;
};
gpio2
:
gpio
-
controller
@
d00
{
#
gpio
-
cells
=
<
2
>;
compatible
=
"fsl,mpc8377-gpio"
,
"fsl,mpc8349-gpio"
;
reg
=
<
0xd00
0x100
>;
interrupts
=
<
75
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
gpio
-
controller
;
};
i2c
@
3000
{
i2c
@
3000
{
#
address
-
cells
=
<
1
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
#
size
-
cells
=
<
0
>;
...
@@ -116,6 +136,17 @@ i2c@3000 {
...
@@ -116,6 +136,17 @@ i2c@3000 {
interrupts
=
<
14
0x8
>;
interrupts
=
<
14
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
interrupt
-
parent
=
<&
ipic
>;
dfsrr
;
dfsrr
;
dtt
@
48
{
compatible
=
"national,lm75"
;
reg
=
<
0x48
>;
};
at24
@
50
{
compatible
=
"at24,24c256"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1339"
;
compatible
=
"dallas,ds1339"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
@@ -289,6 +320,15 @@ crypto@30000 {
...
@@ -289,6 +320,15 @@ crypto@30000 {
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
};
};
sdhci
@
2e000
{
compatible
=
"fsl,mpc8377-esdhc"
,
"fsl,mpc8379-esdhc"
;
reg
=
<
0x2e000
0x1000
>;
interrupts
=
<
42
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
/*
Filled
in
by
U
-
Boot
*/
clock
-
frequency
=
<
0
>;
};
sata
@
18000
{
sata
@
18000
{
compatible
=
"fsl,mpc8377-sata"
,
"fsl,pq-sata"
;
compatible
=
"fsl,mpc8377-sata"
,
"fsl,pq-sata"
;
reg
=
<
0x18000
0x1000
>;
reg
=
<
0x18000
0x1000
>;
...
@@ -350,4 +390,66 @@ pci0: pci@e0008500 {
...
@@ -350,4 +390,66 @@ pci0: pci@e0008500 {
compatible
=
"fsl,mpc8349-pci"
;
compatible
=
"fsl,mpc8349-pci"
;
device_type
=
"pci"
;
device_type
=
"pci"
;
};
};
pci1
:
pcie
@
e0009000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8377-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe0009000
0x00001000
>;
ranges
=
<
0x02000000
0
0xa8000000
0xa8000000
0
0x10000000
0x01000000
0
0x00000000
0xb8000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
1
8
0
0
0
2
&
ipic
1
8
0
0
0
3
&
ipic
1
8
0
0
0
4
&
ipic
1
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xa8000000
0x02000000
0
0xa8000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
pci2
:
pcie
@
e000a000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8377-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe000a000
0x00001000
>;
ranges
=
<
0x02000000
0
0xc8000000
0xc8000000
0
0x10000000
0x01000000
0
0x00000000
0xd8000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
2
8
0
0
0
2
&
ipic
2
8
0
0
0
3
&
ipic
2
8
0
0
0
4
&
ipic
2
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xc8000000
0x02000000
0
0xc8000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
};
};
arch/powerpc/boot/dts/mpc8378_mds.dts
View file @
edbc29d7
...
@@ -23,6 +23,8 @@ aliases {
...
@@ -23,6 +23,8 @@ aliases {
serial0
=
&
serial0
;
serial0
=
&
serial0
;
serial1
=
&
serial1
;
serial1
=
&
serial1
;
pci0
=
&
pci0
;
pci0
=
&
pci0
;
pci1
=
&
pci1
;
pci2
=
&
pci2
;
};
};
cpus
{
cpus
{
...
@@ -311,12 +313,13 @@ crypto@30000 {
...
@@ -311,12 +313,13 @@ crypto@30000 {
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
};
};
sdhc
@
2e000
{
sdhci
@
2e000
{
model
=
"eSDHC"
;
compatible
=
"fsl,mpc8378-esdhc"
,
"fsl,mpc8379-esdhc"
;
compatible
=
"fsl,esdhc"
;
reg
=
<
0x2e000
0x1000
>;
reg
=
<
0x2e000
0x1000
>;
interrupts
=
<
42
0x8
>;
interrupts
=
<
42
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
interrupt
-
parent
=
<&
ipic
>;
/*
Filled
in
by
U
-
Boot
*/
clock
-
frequency
=
<
0
>;
};
};
/*
IPIC
/*
IPIC
...
@@ -395,4 +398,66 @@ pci0: pci@e0008500 {
...
@@ -395,4 +398,66 @@ pci0: pci@e0008500 {
compatible
=
"fsl,mpc8349-pci"
;
compatible
=
"fsl,mpc8349-pci"
;
device_type
=
"pci"
;
device_type
=
"pci"
;
};
};
pci1
:
pcie
@
e0009000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8378-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe0009000
0x00001000
>;
ranges
=
<
0x02000000
0
0xa8000000
0xa8000000
0
0x10000000
0x01000000
0
0x00000000
0xb8000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
1
8
0
0
0
2
&
ipic
1
8
0
0
0
3
&
ipic
1
8
0
0
0
4
&
ipic
1
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xa8000000
0x02000000
0
0xa8000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
pci2
:
pcie
@
e000a000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8378-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe000a000
0x00001000
>;
ranges
=
<
0x02000000
0
0xc8000000
0xc8000000
0
0x10000000
0x01000000
0
0x00000000
0xd8000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
2
8
0
0
0
2
&
ipic
2
8
0
0
0
3
&
ipic
2
8
0
0
0
4
&
ipic
2
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xc8000000
0x02000000
0
0xc8000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
};
};
arch/powerpc/boot/dts/mpc8378_rdb.dts
View file @
edbc29d7
...
@@ -22,6 +22,8 @@ aliases {
...
@@ -22,6 +22,8 @@ aliases {
serial0
=
&
serial0
;
serial0
=
&
serial0
;
serial1
=
&
serial1
;
serial1
=
&
serial1
;
pci0
=
&
pci0
;
pci0
=
&
pci0
;
pci1
=
&
pci1
;
pci2
=
&
pci2
;
};
};
cpus
{
cpus
{
...
@@ -107,6 +109,24 @@ wdt@200 {
...
@@ -107,6 +109,24 @@ wdt@200 {
reg
=
<
0x200
0x100
>;
reg
=
<
0x200
0x100
>;
};
};
gpio1
:
gpio
-
controller
@
c00
{
#
gpio
-
cells
=
<
2
>;
compatible
=
"fsl,mpc8378-gpio"
,
"fsl,mpc8349-gpio"
;
reg
=
<
0xc00
0x100
>;
interrupts
=
<
74
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
gpio
-
controller
;
};
gpio2
:
gpio
-
controller
@
d00
{
#
gpio
-
cells
=
<
2
>;
compatible
=
"fsl,mpc8378-gpio"
,
"fsl,mpc8349-gpio"
;
reg
=
<
0xd00
0x100
>;
interrupts
=
<
75
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
gpio
-
controller
;
};
i2c
@
3000
{
i2c
@
3000
{
#
address
-
cells
=
<
1
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
#
size
-
cells
=
<
0
>;
...
@@ -116,6 +136,17 @@ i2c@3000 {
...
@@ -116,6 +136,17 @@ i2c@3000 {
interrupts
=
<
14
0x8
>;
interrupts
=
<
14
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
interrupt
-
parent
=
<&
ipic
>;
dfsrr
;
dfsrr
;
dtt
@
48
{
compatible
=
"national,lm75"
;
reg
=
<
0x48
>;
};
at24
@
50
{
compatible
=
"at24,24c256"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1339"
;
compatible
=
"dallas,ds1339"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
@@ -287,6 +318,15 @@ crypto@30000 {
...
@@ -287,6 +318,15 @@ crypto@30000 {
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
};
};
sdhci
@
2e000
{
compatible
=
"fsl,mpc8378-esdhc"
,
"fsl,mpc8379-esdhc"
;
reg
=
<
0x2e000
0x1000
>;
interrupts
=
<
42
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
/*
Filled
in
by
U
-
Boot
*/
clock
-
frequency
=
<
0
>;
};
/*
IPIC
/*
IPIC
*
interrupts
cell
=
<
intr
#,
sense
>
*
interrupts
cell
=
<
intr
#,
sense
>
*
sense
values
match
linux
IORESOURCE_IRQ_
*
defines
:
*
sense
values
match
linux
IORESOURCE_IRQ_
*
defines
:
...
@@ -334,4 +374,66 @@ pci0: pci@e0008500 {
...
@@ -334,4 +374,66 @@ pci0: pci@e0008500 {
compatible
=
"fsl,mpc8349-pci"
;
compatible
=
"fsl,mpc8349-pci"
;
device_type
=
"pci"
;
device_type
=
"pci"
;
};
};
pci1
:
pcie
@
e0009000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8378-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe0009000
0x00001000
>;
ranges
=
<
0x02000000
0
0xa8000000
0xa8000000
0
0x10000000
0x01000000
0
0x00000000
0xb8000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
1
8
0
0
0
2
&
ipic
1
8
0
0
0
3
&
ipic
1
8
0
0
0
4
&
ipic
1
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xa8000000
0x02000000
0
0xa8000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
pci2
:
pcie
@
e000a000
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
#
interrupt
-
cells
=
<
1
>;
device_type
=
"pci"
;
compatible
=
"fsl,mpc8378-pcie"
,
"fsl,mpc8314-pcie"
;
reg
=
<
0xe000a000
0x00001000
>;
ranges
=
<
0x02000000
0
0xc8000000
0xc8000000
0
0x10000000
0x01000000
0
0x00000000
0xd8000000
0
0x00800000
>;
bus
-
range
=
<
0
255
>;
interrupt
-
map
-
mask
=
<
0xf800
0
0
7
>;
interrupt
-
map
=
<
0
0
0
1
&
ipic
2
8
0
0
0
2
&
ipic
2
8
0
0
0
3
&
ipic
2
8
0
0
0
4
&
ipic
2
8
>;
clock
-
frequency
=
<
0
>;
pcie
@
0
{
#
address
-
cells
=
<
3
>;
#
size
-
cells
=
<
2
>;
device_type
=
"pci"
;
reg
=
<
0
0
0
0
0
>;
ranges
=
<
0x02000000
0
0xc8000000
0x02000000
0
0xc8000000
0
0x10000000
0x01000000
0
0x00000000
0x01000000
0
0x00000000
0
0x00800000
>;
};
};
};
};
arch/powerpc/boot/dts/mpc8379_mds.dts
View file @
edbc29d7
...
@@ -310,12 +310,13 @@ crypto@30000 {
...
@@ -310,12 +310,13 @@ crypto@30000 {
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
};
};
sdhc
@
2e000
{
sdhci
@
2e000
{
model
=
"eSDHC"
;
compatible
=
"fsl,mpc8379-esdhc"
;
compatible
=
"fsl,esdhc"
;
reg
=
<
0x2e000
0x1000
>;
reg
=
<
0x2e000
0x1000
>;
interrupts
=
<
42
0x8
>;
interrupts
=
<
42
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
interrupt
-
parent
=
<&
ipic
>;
/*
Filled
in
by
U
-
Boot
*/
clock
-
frequency
=
<
0
>;
};
};
sata
@
18000
{
sata
@
18000
{
...
...
arch/powerpc/boot/dts/mpc8379_rdb.dts
View file @
edbc29d7
...
@@ -107,6 +107,24 @@ wdt@200 {
...
@@ -107,6 +107,24 @@ wdt@200 {
reg
=
<
0x200
0x100
>;
reg
=
<
0x200
0x100
>;
};
};
gpio1
:
gpio
-
controller
@
c00
{
#
gpio
-
cells
=
<
2
>;
compatible
=
"fsl,mpc8379-gpio"
,
"fsl,mpc8349-gpio"
;
reg
=
<
0xc00
0x100
>;
interrupts
=
<
74
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
gpio
-
controller
;
};
gpio2
:
gpio
-
controller
@
d00
{
#
gpio
-
cells
=
<
2
>;
compatible
=
"fsl,mpc8379-gpio"
,
"fsl,mpc8349-gpio"
;
reg
=
<
0xd00
0x100
>;
interrupts
=
<
75
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
gpio
-
controller
;
};
i2c
@
3000
{
i2c
@
3000
{
#
address
-
cells
=
<
1
>;
#
address
-
cells
=
<
1
>;
#
size
-
cells
=
<
0
>;
#
size
-
cells
=
<
0
>;
...
@@ -116,6 +134,17 @@ i2c@3000 {
...
@@ -116,6 +134,17 @@ i2c@3000 {
interrupts
=
<
14
0x8
>;
interrupts
=
<
14
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
interrupt
-
parent
=
<&
ipic
>;
dfsrr
;
dfsrr
;
dtt
@
48
{
compatible
=
"national,lm75"
;
reg
=
<
0x48
>;
};
at24
@
50
{
compatible
=
"at24,24c256"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1339"
;
compatible
=
"dallas,ds1339"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
@@ -288,6 +317,15 @@ crypto@30000 {
...
@@ -288,6 +317,15 @@ crypto@30000 {
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
fsl
,
descriptor
-
types
-
mask
=
<
0x3ab0ebf
>;
};
};
sdhci
@
2e000
{
compatible
=
"fsl,mpc8379-esdhc"
;
reg
=
<
0x2e000
0x1000
>;
interrupts
=
<
42
0x8
>;
interrupt
-
parent
=
<&
ipic
>;
/*
Filled
in
by
U
-
Boot
*/
clock
-
frequency
=
<
0
>;
};
sata
@
18000
{
sata
@
18000
{
compatible
=
"fsl,mpc8379-sata"
,
"fsl,pq-sata"
;
compatible
=
"fsl,mpc8379-sata"
,
"fsl,pq-sata"
;
reg
=
<
0x18000
0x1000
>;
reg
=
<
0x18000
0x1000
>;
...
...
arch/powerpc/boot/dts/tqm8540.dts
View file @
edbc29d7
...
@@ -84,6 +84,11 @@ i2c@3000 {
...
@@ -84,6 +84,11 @@ i2c@3000 {
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
dfsrr
;
dfsrr
;
dtt
@
50
{
compatible
=
"national,lm75"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1337"
;
compatible
=
"dallas,ds1337"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
...
arch/powerpc/boot/dts/tqm8541.dts
View file @
edbc29d7
...
@@ -83,6 +83,11 @@ i2c@3000 {
...
@@ -83,6 +83,11 @@ i2c@3000 {
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
dfsrr
;
dfsrr
;
dtt
@
50
{
compatible
=
"national,lm75"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1337"
;
compatible
=
"dallas,ds1337"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
...
arch/powerpc/boot/dts/tqm8548-bigflash.dts
View file @
edbc29d7
...
@@ -85,6 +85,11 @@ i2c@3000 {
...
@@ -85,6 +85,11 @@ i2c@3000 {
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
dfsrr
;
dfsrr
;
dtt
@
50
{
compatible
=
"national,lm75"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1337"
;
compatible
=
"dallas,ds1337"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
@@ -365,14 +370,14 @@ partition@7f80000 {
...
@@ -365,14 +370,14 @@ partition@7f80000 {
can0
@
2
,
0
{
can0
@
2
,
0
{
compatible
=
"intel,82527"
;
//
Bosch
CC770
compatible
=
"intel,82527"
;
//
Bosch
CC770
reg
=
<
2
0x0
0x100
>;
reg
=
<
2
0x0
0x100
>;
interrupts
=
<
4
0
>;
interrupts
=
<
4
1
>;
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
};
};
can1
@
2
,
100
{
can1
@
2
,
100
{
compatible
=
"intel,82527"
;
//
Bosch
CC770
compatible
=
"intel,82527"
;
//
Bosch
CC770
reg
=
<
2
0x100
0x100
>;
reg
=
<
2
0x100
0x100
>;
interrupts
=
<
4
0
>;
interrupts
=
<
4
1
>;
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
};
};
...
...
arch/powerpc/boot/dts/tqm8548.dts
View file @
edbc29d7
...
@@ -85,6 +85,11 @@ i2c@3000 {
...
@@ -85,6 +85,11 @@ i2c@3000 {
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
dfsrr
;
dfsrr
;
dtt
@
50
{
compatible
=
"national,lm75"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1337"
;
compatible
=
"dallas,ds1337"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
@@ -365,14 +370,14 @@ partition@7f80000 {
...
@@ -365,14 +370,14 @@ partition@7f80000 {
can0
@
2
,
0
{
can0
@
2
,
0
{
compatible
=
"intel,82527"
;
//
Bosch
CC770
compatible
=
"intel,82527"
;
//
Bosch
CC770
reg
=
<
2
0x0
0x100
>;
reg
=
<
2
0x0
0x100
>;
interrupts
=
<
4
0
>;
interrupts
=
<
4
1
>;
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
};
};
can1
@
2
,
100
{
can1
@
2
,
100
{
compatible
=
"intel,82527"
;
//
Bosch
CC770
compatible
=
"intel,82527"
;
//
Bosch
CC770
reg
=
<
2
0x100
0x100
>;
reg
=
<
2
0x100
0x100
>;
interrupts
=
<
4
0
>;
interrupts
=
<
4
1
>;
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
};
};
...
...
arch/powerpc/boot/dts/tqm8555.dts
View file @
edbc29d7
...
@@ -83,6 +83,11 @@ i2c@3000 {
...
@@ -83,6 +83,11 @@ i2c@3000 {
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
dfsrr
;
dfsrr
;
dtt
@
50
{
compatible
=
"national,lm75"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1337"
;
compatible
=
"dallas,ds1337"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
...
arch/powerpc/boot/dts/tqm8560.dts
View file @
edbc29d7
...
@@ -85,6 +85,11 @@ i2c@3000 {
...
@@ -85,6 +85,11 @@ i2c@3000 {
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
dfsrr
;
dfsrr
;
dtt
@
50
{
compatible
=
"national,lm75"
;
reg
=
<
0x50
>;
};
rtc
@
68
{
rtc
@
68
{
compatible
=
"dallas,ds1337"
;
compatible
=
"dallas,ds1337"
;
reg
=
<
0x68
>;
reg
=
<
0x68
>;
...
@@ -335,14 +340,14 @@ partition@7f80000 {
...
@@ -335,14 +340,14 @@ partition@7f80000 {
can0
@
2
,
0
{
can0
@
2
,
0
{
compatible
=
"intel,82527"
;
//
Bosch
CC770
compatible
=
"intel,82527"
;
//
Bosch
CC770
reg
=
<
2
0x0
0x100
>;
reg
=
<
2
0x0
0x100
>;
interrupts
=
<
4
0
>;
interrupts
=
<
4
1
>;
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
};
};
can1
@
2
,
100
{
can1
@
2
,
100
{
compatible
=
"intel,82527"
;
//
Bosch
CC770
compatible
=
"intel,82527"
;
//
Bosch
CC770
reg
=
<
2
0x100
0x100
>;
reg
=
<
2
0x100
0x100
>;
interrupts
=
<
4
0
>;
interrupts
=
<
4
1
>;
interrupt
-
parent
=
<&
mpic
>;
interrupt
-
parent
=
<&
mpic
>;
};
};
};
};
...
...
arch/powerpc/configs/86xx/gef_sbc310_defconfig
0 → 100644
View file @
edbc29d7
This diff is collapsed.
Click to expand it.
arch/powerpc/include/asm/reg_booke.h
View file @
edbc29d7
...
@@ -110,6 +110,7 @@
...
@@ -110,6 +110,7 @@
#define SPRN_L1CSR0 0x3F2
/* L1 Cache Control and Status Register 0 */
#define SPRN_L1CSR0 0x3F2
/* L1 Cache Control and Status Register 0 */
#define SPRN_L1CSR1 0x3F3
/* L1 Cache Control and Status Register 1 */
#define SPRN_L1CSR1 0x3F3
/* L1 Cache Control and Status Register 1 */
#define SPRN_MMUCSR0 0x3F4
/* MMU Control and Status Register 0 */
#define SPRN_MMUCSR0 0x3F4
/* MMU Control and Status Register 0 */
#define SPRN_MMUCFG 0x3F7
/* MMU Configuration Register */
#define SPRN_PIT 0x3DB
/* Programmable Interval Timer */
#define SPRN_PIT 0x3DB
/* Programmable Interval Timer */
#define SPRN_BUCSR 0x3F5
/* Branch Unit Control and Status */
#define SPRN_BUCSR 0x3F5
/* Branch Unit Control and Status */
#define SPRN_L2CSR0 0x3F9
/* L2 Data Cache Control and Status Register 0 */
#define SPRN_L2CSR0 0x3F9
/* L2 Data Cache Control and Status Register 0 */
...
...
arch/powerpc/kernel/Makefile
View file @
edbc29d7
...
@@ -61,6 +61,7 @@ obj-$(CONFIG_HIBERNATION) += swsusp.o suspend.o \
...
@@ -61,6 +61,7 @@ obj-$(CONFIG_HIBERNATION) += swsusp.o suspend.o \
obj64-$(CONFIG_HIBERNATION)
+=
swsusp_asm64.o
obj64-$(CONFIG_HIBERNATION)
+=
swsusp_asm64.o
obj-$(CONFIG_MODULES)
+=
module.o module_
$(CONFIG_WORD_SIZE)
.o
obj-$(CONFIG_MODULES)
+=
module.o module_
$(CONFIG_WORD_SIZE)
.o
obj-$(CONFIG_44x)
+=
cpu_setup_44x.o
obj-$(CONFIG_44x)
+=
cpu_setup_44x.o
obj-$(CONFIG_FSL_BOOKE)
+=
cpu_setup_fsl_booke.o
extra-$(CONFIG_PPC_STD_MMU)
:=
head_32.o
extra-$(CONFIG_PPC_STD_MMU)
:=
head_32.o
extra-$(CONFIG_PPC64)
:=
head_64.o
extra-$(CONFIG_PPC64)
:=
head_64.o
...
...
arch/powerpc/kernel/cpu_setup_fsl_booke.S
0 → 100644
View file @
edbc29d7
/*
*
This
file
contains
low
level
CPU
setup
functions
.
*
Kumar
Gala
<
galak
@
kernel
.
crashing
.
org
>
*
Copyright
2009
Freescale
Semiconductor
,
Inc
.
*
*
Based
on
cpu_setup_6xx
code
by
*
Benjamin
Herrenschmidt
<
benh
@
kernel
.
crashing
.
org
>
*
*
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
.
*
*/
#include <asm/processor.h>
#include <asm/cputable.h>
#include <asm/ppc_asm.h>
_GLOBAL
(
__setup_cpu_e200
)
/
*
enable
dedicated
debug
exception
handling
resources
(
Debug
APU
)
*/
mfspr
r3
,
SPRN_HID0
ori
r3
,
r3
,
HID0_DAPUEN
@
l
mtspr
SPRN_HID0
,
r3
b
__setup_e200_ivors
_GLOBAL
(
__setup_cpu_e500v1
)
_GLOBAL
(
__setup_cpu_e500v2
)
b
__setup_e500_ivors
_GLOBAL
(
__setup_cpu_e500mc
)
b
__setup_e500mc_ivors
arch/powerpc/kernel/cputable.c
View file @
edbc29d7
...
@@ -35,6 +35,10 @@ const char *powerpc_base_platform;
...
@@ -35,6 +35,10 @@ const char *powerpc_base_platform;
* and ppc64
* and ppc64
*/
*/
#ifdef CONFIG_PPC32
#ifdef CONFIG_PPC32
extern
void
__setup_cpu_e200
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_e500v1
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_e500v2
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_e500mc
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_440ep
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_440ep
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_440epx
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_440epx
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_440gx
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
extern
void
__setup_cpu_440gx
(
unsigned
long
offset
,
struct
cpu_spec
*
spec
);
...
@@ -1687,6 +1691,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
...
@@ -1687,6 +1691,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
PPC_FEATURE_UNIFIED_CACHE
,
PPC_FEATURE_UNIFIED_CACHE
,
.
mmu_features
=
MMU_FTR_TYPE_FSL_E
,
.
mmu_features
=
MMU_FTR_TYPE_FSL_E
,
.
dcache_bsize
=
32
,
.
dcache_bsize
=
32
,
.
cpu_setup
=
__setup_cpu_e200
,
.
machine_check
=
machine_check_e200
,
.
machine_check
=
machine_check_e200
,
.
platform
=
"ppc5554"
,
.
platform
=
"ppc5554"
,
}
}
...
@@ -1706,6 +1711,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
...
@@ -1706,6 +1711,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
.
num_pmcs
=
4
,
.
num_pmcs
=
4
,
.
oprofile_cpu_type
=
"ppc/e500"
,
.
oprofile_cpu_type
=
"ppc/e500"
,
.
oprofile_type
=
PPC_OPROFILE_FSL_EMB
,
.
oprofile_type
=
PPC_OPROFILE_FSL_EMB
,
.
cpu_setup
=
__setup_cpu_e500v1
,
.
machine_check
=
machine_check_e500
,
.
machine_check
=
machine_check_e500
,
.
platform
=
"ppc8540"
,
.
platform
=
"ppc8540"
,
},
},
...
@@ -1724,6 +1730,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
...
@@ -1724,6 +1730,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
.
num_pmcs
=
4
,
.
num_pmcs
=
4
,
.
oprofile_cpu_type
=
"ppc/e500"
,
.
oprofile_cpu_type
=
"ppc/e500"
,
.
oprofile_type
=
PPC_OPROFILE_FSL_EMB
,
.
oprofile_type
=
PPC_OPROFILE_FSL_EMB
,
.
cpu_setup
=
__setup_cpu_e500v2
,
.
machine_check
=
machine_check_e500
,
.
machine_check
=
machine_check_e500
,
.
platform
=
"ppc8548"
,
.
platform
=
"ppc8548"
,
},
},
...
@@ -1739,6 +1746,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
...
@@ -1739,6 +1746,7 @@ static struct cpu_spec __initdata cpu_specs[] = {
.
num_pmcs
=
4
,
.
num_pmcs
=
4
,
.
oprofile_cpu_type
=
"ppc/e500"
,
/* xxx - galak, e500mc? */
.
oprofile_cpu_type
=
"ppc/e500"
,
/* xxx - galak, e500mc? */
.
oprofile_type
=
PPC_OPROFILE_FSL_EMB
,
.
oprofile_type
=
PPC_OPROFILE_FSL_EMB
,
.
cpu_setup
=
__setup_cpu_e500mc
,
.
machine_check
=
machine_check_e500
,
.
machine_check
=
machine_check_e500
,
.
platform
=
"ppce500mc"
,
.
platform
=
"ppce500mc"
,
},
},
...
...
arch/powerpc/kernel/head_booke.h
View file @
edbc29d7
...
@@ -70,10 +70,10 @@
...
@@ -70,10 +70,10 @@
/* only on e500mc/e200 */
/* only on e500mc/e200 */
#define DEBUG_STACK_BASE dbgirq_ctx
#define DEBUG_STACK_BASE dbgirq_ctx
#ifdef CONFIG_PPC_E500MC
#ifdef CONFIG_E200
#define DEBUG_SPRG SPRN_SPRG9
#else
#define DEBUG_SPRG SPRN_SPRG6W
#define DEBUG_SPRG SPRN_SPRG6W
#else
#define DEBUG_SPRG SPRN_SPRG9
#endif
#endif
#define EXC_LVL_FRAME_OVERHEAD (THREAD_SIZE - INT_FRAME_SIZE - EXC_LVL_SIZE)
#define EXC_LVL_FRAME_OVERHEAD (THREAD_SIZE - INT_FRAME_SIZE - EXC_LVL_SIZE)
...
...
arch/powerpc/kernel/head_fsl_booke.S
View file @
edbc29d7
...
@@ -103,10 +103,15 @@ invstr: mflr r6 /* Make it accessible */
...
@@ -103,10 +103,15 @@ invstr: mflr r6 /* Make it accessible */
or
r7
,
r7
,
r4
or
r7
,
r7
,
r4
mtspr
SPRN_MAS6
,
r7
mtspr
SPRN_MAS6
,
r7
tlbsx
0
,
r6
/*
search
MSR
[
IS
],
SPID
=
PID0
*/
tlbsx
0
,
r6
/*
search
MSR
[
IS
],
SPID
=
PID0
*/
#ifndef CONFIG_E200
mfspr
r7
,
SPRN_MAS1
mfspr
r7
,
SPRN_MAS1
andis
.
r7
,
r7
,
MAS1_VALID
@
h
andis
.
r7
,
r7
,
MAS1_VALID
@
h
bne
match_TLB
bne
match_TLB
mfspr
r7
,
SPRN_MMUCFG
rlwinm
r7
,
r7
,
21
,
28
,
31
/*
extract
MMUCFG
[
NPIDS
]
*/
cmpwi
r7
,
3
bne
match_TLB
/*
skip
if
NPIDS
!=
3
*/
mfspr
r7
,
SPRN_PID1
mfspr
r7
,
SPRN_PID1
slwi
r7
,
r7
,
16
slwi
r7
,
r7
,
16
or
r7
,
r7
,
r4
or
r7
,
r7
,
r4
...
@@ -120,7 +125,7 @@ invstr: mflr r6 /* Make it accessible */
...
@@ -120,7 +125,7 @@ invstr: mflr r6 /* Make it accessible */
or
r7
,
r7
,
r4
or
r7
,
r7
,
r4
mtspr
SPRN_MAS6
,
r7
mtspr
SPRN_MAS6
,
r7
tlbsx
0
,
r6
/*
Fall
through
,
we
had
to
match
*/
tlbsx
0
,
r6
/*
Fall
through
,
we
had
to
match
*/
#endif
match_TLB
:
match_TLB
:
mfspr
r7
,
SPRN_MAS0
mfspr
r7
,
SPRN_MAS0
rlwinm
r3
,
r7
,
16
,
20
,
31
/*
Extract
MAS0
(
Entry
)
*/
rlwinm
r3
,
r7
,
16
,
20
,
31
/*
Extract
MAS0
(
Entry
)
*/
...
@@ -215,14 +220,19 @@ skpinv: addi r6,r6,1 /* Increment */
...
@@ -215,14 +220,19 @@ skpinv: addi r6,r6,1 /* Increment */
/*
4.
Clear
out
PIDs
&
Search
info
*/
/*
4.
Clear
out
PIDs
&
Search
info
*/
li
r6
,
0
li
r6
,
0
mtspr
SPRN_MAS6
,
r6
mtspr
SPRN_PID0
,
r6
mtspr
SPRN_PID0
,
r6
#ifndef CONFIG_E200
mfspr
r7
,
SPRN_MMUCFG
rlwinm
r7
,
r7
,
21
,
28
,
31
/*
extract
MMUCFG
[
NPIDS
]
*/
cmpwi
r7
,
3
bne
2
f
/*
skip
if
NPIDS
!=
3
*/
mtspr
SPRN_PID1
,
r6
mtspr
SPRN_PID1
,
r6
mtspr
SPRN_PID2
,
r6
mtspr
SPRN_PID2
,
r6
#endif
mtspr
SPRN_MAS6
,
r6
/*
5.
Invalidate
mapping
we
started
in
*/
/*
5.
Invalidate
mapping
we
started
in
*/
2
:
lis
r7
,
0x1000
/*
Set
MAS0
(
TLBSEL
)
=
1
*/
lis
r7
,
0x1000
/*
Set
MAS0
(
TLBSEL
)
=
1
*/
rlwimi
r7
,
r3
,
16
,
4
,
15
/*
Setup
MAS0
=
TLBSEL
|
ESEL
(
r3
)
*/
rlwimi
r7
,
r3
,
16
,
4
,
15
/*
Setup
MAS0
=
TLBSEL
|
ESEL
(
r3
)
*/
mtspr
SPRN_MAS0
,
r7
mtspr
SPRN_MAS0
,
r7
...
@@ -298,19 +308,7 @@ skpinv: addi r6,r6,1 /* Increment */
...
@@ -298,19 +308,7 @@ skpinv: addi r6,r6,1 /* Increment */
SET_IVOR
(12,
WatchdogTimer
)
;
SET_IVOR
(12,
WatchdogTimer
)
;
SET_IVOR
(13,
DataTLBError
)
;
SET_IVOR
(13,
DataTLBError
)
;
SET_IVOR
(14,
InstructionTLBError
)
;
SET_IVOR
(14,
InstructionTLBError
)
;
SET_IVOR
(15,
DebugDebug
)
;
#if defined(CONFIG_E500) && !defined(CONFIG_PPC_E500MC)
SET_IVOR
(15,
DebugCrit
)
;
SET_IVOR
(15,
DebugCrit
)
;
#endif
SET_IVOR
(32,
SPEUnavailable
)
;
SET_IVOR
(33,
SPEFloatingPointData
)
;
SET_IVOR
(34,
SPEFloatingPointRound
)
;
#ifndef CONFIG_E200
SET_IVOR
(35,
PerformanceMonitor
)
;
#endif
#ifdef CONFIG_PPC_E500MC
SET_IVOR
(36,
Doorbell
)
;
#endif
/
*
Establish
the
interrupt
vector
base
*/
/
*
Establish
the
interrupt
vector
base
*/
lis
r4
,
interrupt_base
@
h
/*
IVPR
only
uses
the
high
16
-
bits
*/
lis
r4
,
interrupt_base
@
h
/*
IVPR
only
uses
the
high
16
-
bits
*/
...
@@ -329,12 +327,6 @@ skpinv: addi r6,r6,1 /* Increment */
...
@@ -329,12 +327,6 @@ skpinv: addi r6,r6,1 /* Increment */
oris
r2
,
r2
,
HID0_DOZE
@
h
oris
r2
,
r2
,
HID0_DOZE
@
h
mtspr
SPRN_HID0
,
r2
mtspr
SPRN_HID0
,
r2
#endif
#endif
#ifdef CONFIG_E200
/
*
enable
dedicated
debug
exception
handling
resources
(
Debug
APU
)
*/
mfspr
r2
,
SPRN_HID0
ori
r2
,
r2
,
HID0_DAPUEN
@
l
mtspr
SPRN_HID0
,
r2
#endif
#if !defined(CONFIG_BDI_SWITCH)
#if !defined(CONFIG_BDI_SWITCH)
/
*
/
*
...
@@ -706,15 +698,11 @@ interrupt_base:
...
@@ -706,15 +698,11 @@ interrupt_base:
/
*
Performance
Monitor
*/
/
*
Performance
Monitor
*/
EXCEPTION
(0
x2060
,
PerformanceMonitor
,
performance_monitor_exception
,
EXC_XFER_STD
)
EXCEPTION
(0
x2060
,
PerformanceMonitor
,
performance_monitor_exception
,
EXC_XFER_STD
)
#ifdef CONFIG_PPC_E500MC
EXCEPTION
(0
x2070
,
Doorbell
,
unknown_exception
,
EXC_XFER_STD
)
EXCEPTION
(0
x2070
,
Doorbell
,
unknown_exception
,
EXC_XFER_STD
)
#endif
/
*
Debug
Interrupt
*/
/
*
Debug
Interrupt
*/
DEBUG_DEBUG_EXCEPTION
DEBUG_DEBUG_EXCEPTION
#if defined(CONFIG_E500) && !defined(CONFIG_PPC_E500MC)
DEBUG_CRIT_EXCEPTION
DEBUG_CRIT_EXCEPTION
#endif
/*
/*
*
Local
functions
*
Local
functions
...
@@ -897,6 +885,45 @@ KernelSPE:
...
@@ -897,6 +885,45 @@ KernelSPE:
*
Global
functions
*
Global
functions
*/
*/
/*
Adjust
or
setup
IVORs
for
e200
*/
_GLOBAL
(
__setup_e200_ivors
)
li
r3
,
DebugDebug
@
l
mtspr
SPRN_IVOR15
,
r3
li
r3
,
SPEUnavailable
@
l
mtspr
SPRN_IVOR32
,
r3
li
r3
,
SPEFloatingPointData
@
l
mtspr
SPRN_IVOR33
,
r3
li
r3
,
SPEFloatingPointRound
@
l
mtspr
SPRN_IVOR34
,
r3
sync
blr
/*
Adjust
or
setup
IVORs
for
e500v1
/
v2
*/
_GLOBAL
(
__setup_e500_ivors
)
li
r3
,
DebugCrit
@
l
mtspr
SPRN_IVOR15
,
r3
li
r3
,
SPEUnavailable
@
l
mtspr
SPRN_IVOR32
,
r3
li
r3
,
SPEFloatingPointData
@
l
mtspr
SPRN_IVOR33
,
r3
li
r3
,
SPEFloatingPointRound
@
l
mtspr
SPRN_IVOR34
,
r3
li
r3
,
PerformanceMonitor
@
l
mtspr
SPRN_IVOR35
,
r3
sync
blr
/*
Adjust
or
setup
IVORs
for
e500mc
*/
_GLOBAL
(
__setup_e500mc_ivors
)
li
r3
,
DebugDebug
@
l
mtspr
SPRN_IVOR15
,
r3
li
r3
,
PerformanceMonitor
@
l
mtspr
SPRN_IVOR35
,
r3
li
r3
,
Doorbell
@
l
mtspr
SPRN_IVOR36
,
r3
sync
blr
/*
/*
*
extern
void
loadcam_entry
(
unsigned
int
index
)
*
extern
void
loadcam_entry
(
unsigned
int
index
)
*
*
...
...
arch/powerpc/mm/fsl_booke_mmu.c
View file @
edbc29d7
...
@@ -56,10 +56,14 @@
...
@@ -56,10 +56,14 @@
extern
void
loadcam_entry
(
unsigned
int
index
);
extern
void
loadcam_entry
(
unsigned
int
index
);
unsigned
int
tlbcam_index
;
unsigned
int
tlbcam_index
;
static
unsigned
long
__cam0
,
__cam1
,
__cam2
;
static
unsigned
long
cam
[
CONFIG_LOWMEM_CAM_NUM
]
;
#define NUM_TLBCAMS (16)
#define NUM_TLBCAMS (16)
#if defined(CONFIG_LOWMEM_CAM_NUM_BOOL) && (CONFIG_LOWMEM_CAM_NUM >= NUM_TLBCAMS)
#error "LOWMEM_CAM_NUM must be less than NUM_TLBCAMS"
#endif
struct
tlbcam
TLBCAM
[
NUM_TLBCAMS
];
struct
tlbcam
TLBCAM
[
NUM_TLBCAMS
];
struct
tlbcamrange
{
struct
tlbcamrange
{
...
@@ -152,19 +156,19 @@ void invalidate_tlbcam_entry(int index)
...
@@ -152,19 +156,19 @@ void invalidate_tlbcam_entry(int index)
loadcam_entry
(
index
);
loadcam_entry
(
index
);
}
}
void
__init
cam_mapin_ram
(
unsigned
long
cam0
,
unsigned
long
cam1
,
unsigned
long
__init
mmu_mapin_ram
(
void
)
unsigned
long
cam2
)
{
{
settlbcam
(
0
,
PAGE_OFFSET
,
memstart_addr
,
cam0
,
_PAGE_KERNEL
,
0
)
;
unsigned
long
virt
=
PAGE_OFFSET
;
tlbcam_index
++
;
phys_addr_t
phys
=
memstart_addr
;
if
(
cam1
)
{
tlbcam_index
++
;
while
(
cam
[
tlbcam_index
]
&&
tlbcam_index
<
ARRAY_SIZE
(
cam
))
{
settlbcam
(
1
,
PAGE_OFFSET
+
cam0
,
memstart_addr
+
cam0
,
cam1
,
_PAGE_KERNEL
,
0
);
settlbcam
(
tlbcam_index
,
virt
,
phys
,
cam
[
tlbcam_index
]
,
_PAGE_KERNEL
,
0
);
}
virt
+=
cam
[
tlbcam_index
];
if
(
cam2
)
{
phys
+=
cam
[
tlbcam_index
];
tlbcam_index
++
;
tlbcam_index
++
;
settlbcam
(
2
,
PAGE_OFFSET
+
cam0
+
cam1
,
memstart_addr
+
cam0
+
cam1
,
cam2
,
_PAGE_KERNEL
,
0
);
}
}
return
virt
-
PAGE_OFFSET
;
}
}
/*
/*
...
@@ -175,51 +179,46 @@ void __init MMU_init_hw(void)
...
@@ -175,51 +179,46 @@ void __init MMU_init_hw(void)
flush_instruction_cache
();
flush_instruction_cache
();
}
}
unsigned
long
__init
mmu_mapin_ram
(
void
)
{
cam_mapin_ram
(
__cam0
,
__cam1
,
__cam2
);
return
__cam0
+
__cam1
+
__cam2
;
}
void
__init
void
__init
adjust_total_lowmem
(
void
)
adjust_total_lowmem
(
void
)
{
{
phys_addr_t
max_lowmem_size
=
__max_low_memory
;
phys_addr_t
cam_max_size
=
0x10000000
;
phys_addr_t
ram
;
phys_addr_t
ram
;
unsigned
int
max_cam
=
(
mfspr
(
SPRN_TLB1CFG
)
>>
16
)
&
0xff
;
char
buf
[
ARRAY_SIZE
(
cam
)
*
5
+
1
],
*
p
=
buf
;
int
i
;
unsigned
long
virt
=
PAGE_OFFSET
&
0xffffffffUL
;
unsigned
long
phys
=
memstart_addr
&
0xffffffffUL
;
/* adjust CAM size to max_lowmem_size */
/* Convert (4^max) kB to (2^max) bytes */
if
(
max_lowmem_size
<
cam_max_size
)
max_cam
=
max_cam
*
2
+
10
;
cam_max_size
=
max_lowmem_size
;
/* adjust lowmem size to
max_lowmem_size
*/
/* adjust lowmem size to
__max_low_memory
*/
ram
=
min
(
max_lowmem_size
,
total_lowmem
);
ram
=
min
(
(
phys_addr_t
)
__max_low_memory
,
(
phys_addr_t
)
total_lowmem
);
/* Calculate CAM values */
/* Calculate CAM values */
__cam0
=
1UL
<<
2
*
(
__ilog2
(
ram
)
/
2
);
__max_low_memory
=
0
;
if
(
__cam0
>
cam_max_size
)
for
(
i
=
0
;
ram
&&
i
<
ARRAY_SIZE
(
cam
);
i
++
)
{
__cam0
=
cam_max_size
;
unsigned
int
camsize
=
__ilog2
(
ram
)
&
~
1U
;
ram
-=
__cam0
;
unsigned
int
align
=
__ffs
(
virt
|
phys
)
&
~
1U
;
if
(
ram
)
{
__cam1
=
1UL
<<
2
*
(
__ilog2
(
ram
)
/
2
);
if
(
camsize
>
align
)
if
(
__cam1
>
cam_max_size
)
camsize
=
align
;
__cam1
=
cam_max_size
;
if
(
camsize
>
max_cam
)
ram
-=
__cam1
;
camsize
=
max_cam
;
}
if
(
ram
)
{
cam
[
i
]
=
1UL
<<
camsize
;
__cam2
=
1UL
<<
2
*
(
__ilog2
(
ram
)
/
2
);
ram
-=
cam
[
i
];
if
(
__cam2
>
cam_max_size
)
__max_low_memory
+=
cam
[
i
];
__cam2
=
cam_max_size
;
virt
+=
cam
[
i
];
ram
-=
__cam2
;
phys
+=
cam
[
i
];
p
+=
sprintf
(
p
,
"%lu/"
,
cam
[
i
]
>>
20
);
}
}
for
(;
i
<
ARRAY_SIZE
(
cam
);
i
++
)
p
+=
sprintf
(
p
,
"0/"
);
p
[
-
1
]
=
'\0'
;
printk
(
KERN_INFO
"Memory CAM mapping: CAM0=%ldMb, CAM1=%ldMb,"
pr_info
(
"Memory CAM mapping: %s Mb, residual: %ldMb
\n
"
,
buf
,
" CAM2=%ldMb residual: %ldMb
\n
"
,
(
total_lowmem
-
__max_low_memory
)
>>
20
);
__cam0
>>
20
,
__cam1
>>
20
,
__cam2
>>
20
,
(
long
int
)((
total_lowmem
-
__cam0
-
__cam1
-
__cam2
)
>>
20
));
__max_low_memory
=
__cam0
+
__cam1
+
__cam2
;
__initial_memory_limit_addr
=
memstart_addr
+
__max_low_memory
;
__initial_memory_limit_addr
=
memstart_addr
+
__max_low_memory
;
}
}
arch/powerpc/platforms/83xx/mpc831x_rdb.c
View file @
edbc29d7
...
@@ -38,6 +38,8 @@ static void __init mpc831x_rdb_setup_arch(void)
...
@@ -38,6 +38,8 @@ static void __init mpc831x_rdb_setup_arch(void)
#ifdef CONFIG_PCI
#ifdef CONFIG_PCI
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8349-pci"
)
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8349-pci"
)
mpc83xx_add_bridge
(
np
);
mpc83xx_add_bridge
(
np
);
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8314-pcie"
)
mpc83xx_add_bridge
(
np
);
#endif
#endif
mpc831x_usb_cfg
();
mpc831x_usb_cfg
();
}
}
...
...
arch/powerpc/platforms/83xx/mpc837x_mds.c
View file @
edbc29d7
...
@@ -84,14 +84,10 @@ static void __init mpc837x_mds_setup_arch(void)
...
@@ -84,14 +84,10 @@ static void __init mpc837x_mds_setup_arch(void)
ppc_md
.
progress
(
"mpc837x_mds_setup_arch()"
,
0
);
ppc_md
.
progress
(
"mpc837x_mds_setup_arch()"
,
0
);
#ifdef CONFIG_PCI
#ifdef CONFIG_PCI
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8349-pci"
)
{
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8349-pci"
)
if
(
!
of_device_is_available
(
np
))
{
mpc83xx_add_bridge
(
np
);
pr_warning
(
"%s: disabled by the firmware.
\n
"
,
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8314-pcie"
)
np
->
full_name
);
continue
;
}
mpc83xx_add_bridge
(
np
);
mpc83xx_add_bridge
(
np
);
}
#endif
#endif
mpc837xmds_usb_cfg
();
mpc837xmds_usb_cfg
();
}
}
...
...
arch/powerpc/platforms/83xx/mpc837x_rdb.c
View file @
edbc29d7
...
@@ -38,6 +38,8 @@ static void __init mpc837x_rdb_setup_arch(void)
...
@@ -38,6 +38,8 @@ static void __init mpc837x_rdb_setup_arch(void)
#ifdef CONFIG_PCI
#ifdef CONFIG_PCI
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8349-pci"
)
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8349-pci"
)
mpc83xx_add_bridge
(
np
);
mpc83xx_add_bridge
(
np
);
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8314-pcie"
)
mpc83xx_add_bridge
(
np
);
#endif
#endif
mpc837x_usb_cfg
();
mpc837x_usb_cfg
();
}
}
...
...
arch/powerpc/platforms/86xx/Kconfig
View file @
edbc29d7
...
@@ -31,6 +31,14 @@ config MPC8610_HPCD
...
@@ -31,6 +31,14 @@ config MPC8610_HPCD
help
help
This option enables support for the MPC8610 HPCD board.
This option enables support for the MPC8610 HPCD board.
config GEF_SBC310
bool "GE Fanuc SBC310"
select DEFAULT_UIMAGE
select GENERIC_GPIO
select ARCH_REQUIRE_GPIOLIB
help
This option enables support for GE Fanuc's SBC310.
config GEF_SBC610
config GEF_SBC610
bool "GE Fanuc SBC610"
bool "GE Fanuc SBC610"
select DEFAULT_UIMAGE
select DEFAULT_UIMAGE
...
@@ -48,7 +56,7 @@ config MPC8641
...
@@ -48,7 +56,7 @@ config MPC8641
select FSL_PCI if PCI
select FSL_PCI if PCI
select PPC_UDBG_16550
select PPC_UDBG_16550
select MPIC
select MPIC
default y if MPC8641_HPCN || SBC8641D || GEF_SBC610
default y if MPC8641_HPCN || SBC8641D || GEF_SBC610
|| GEF_SBC310
config MPC8610
config MPC8610
bool
bool
...
...
arch/powerpc/platforms/86xx/Makefile
View file @
edbc29d7
...
@@ -9,3 +9,4 @@ obj-$(CONFIG_SBC8641D) += sbc8641d.o
...
@@ -9,3 +9,4 @@ obj-$(CONFIG_SBC8641D) += sbc8641d.o
obj-$(CONFIG_MPC8610_HPCD)
+=
mpc8610_hpcd.o
obj-$(CONFIG_MPC8610_HPCD)
+=
mpc8610_hpcd.o
gef-gpio-$(CONFIG_GPIOLIB)
+=
gef_gpio.o
gef-gpio-$(CONFIG_GPIOLIB)
+=
gef_gpio.o
obj-$(CONFIG_GEF_SBC610)
+=
gef_sbc610.o gef_pic.o
$
(
gef-gpio-y
)
obj-$(CONFIG_GEF_SBC610)
+=
gef_sbc610.o gef_pic.o
$
(
gef-gpio-y
)
obj-$(CONFIG_GEF_SBC310)
+=
gef_sbc310.o gef_pic.o
$
(
gef-gpio-y
)
arch/powerpc/platforms/86xx/gef_gpio.c
View file @
edbc29d7
...
@@ -37,8 +37,6 @@
...
@@ -37,8 +37,6 @@
#define GEF_GPIO_OVERRUN 0x1C
#define GEF_GPIO_OVERRUN 0x1C
#define GEF_GPIO_MODE 0x20
#define GEF_GPIO_MODE 0x20
#define NUM_GPIO 19
static
void
_gef_gpio_set
(
void
__iomem
*
reg
,
unsigned
int
offset
,
int
value
)
static
void
_gef_gpio_set
(
void
__iomem
*
reg
,
unsigned
int
offset
,
int
value
)
{
{
unsigned
int
data
;
unsigned
int
data
;
...
@@ -103,10 +101,10 @@ static void gef_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
...
@@ -103,10 +101,10 @@ static void gef_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
static
int
__init
gef_gpio_init
(
void
)
static
int
__init
gef_gpio_init
(
void
)
{
{
struct
device_node
*
np
;
struct
device_node
*
np
;
int
retval
;
struct
of_mm_gpio_chip
*
gef_gpio_chip
;
for_each_compatible_node
(
np
,
NULL
,
"gef,sbc610-gpio"
)
{
for_each_compatible_node
(
np
,
NULL
,
"gef,sbc610-gpio"
)
{
int
retval
;
struct
of_mm_gpio_chip
*
gef_gpio_chip
;
pr_debug
(
"%s: Initialising GEF GPIO
\n
"
,
np
->
full_name
);
pr_debug
(
"%s: Initialising GEF GPIO
\n
"
,
np
->
full_name
);
...
@@ -120,7 +118,35 @@ static int __init gef_gpio_init(void)
...
@@ -120,7 +118,35 @@ static int __init gef_gpio_init(void)
/* Setup pointers to chip functions */
/* Setup pointers to chip functions */
gef_gpio_chip
->
of_gc
.
gpio_cells
=
2
;
gef_gpio_chip
->
of_gc
.
gpio_cells
=
2
;
gef_gpio_chip
->
of_gc
.
gc
.
ngpio
=
NUM_GPIO
;
gef_gpio_chip
->
of_gc
.
gc
.
ngpio
=
19
;
gef_gpio_chip
->
of_gc
.
gc
.
direction_input
=
gef_gpio_dir_in
;
gef_gpio_chip
->
of_gc
.
gc
.
direction_output
=
gef_gpio_dir_out
;
gef_gpio_chip
->
of_gc
.
gc
.
get
=
gef_gpio_get
;
gef_gpio_chip
->
of_gc
.
gc
.
set
=
gef_gpio_set
;
/* This function adds a memory mapped GPIO chip */
retval
=
of_mm_gpiochip_add
(
np
,
gef_gpio_chip
);
if
(
retval
)
{
kfree
(
gef_gpio_chip
);
pr_err
(
"%s: Unable to add GPIO
\n
"
,
np
->
full_name
);
}
}
for_each_compatible_node
(
np
,
NULL
,
"gef,sbc310-gpio"
)
{
pr_debug
(
"%s: Initialising GEF GPIO
\n
"
,
np
->
full_name
);
/* Allocate chip structure */
gef_gpio_chip
=
kzalloc
(
sizeof
(
*
gef_gpio_chip
),
GFP_KERNEL
);
if
(
!
gef_gpio_chip
)
{
pr_err
(
"%s: Unable to allocate structure
\n
"
,
np
->
full_name
);
continue
;
}
/* Setup pointers to chip functions */
gef_gpio_chip
->
of_gc
.
gpio_cells
=
2
;
gef_gpio_chip
->
of_gc
.
gc
.
ngpio
=
6
;
gef_gpio_chip
->
of_gc
.
gc
.
direction_input
=
gef_gpio_dir_in
;
gef_gpio_chip
->
of_gc
.
gc
.
direction_input
=
gef_gpio_dir_in
;
gef_gpio_chip
->
of_gc
.
gc
.
direction_output
=
gef_gpio_dir_out
;
gef_gpio_chip
->
of_gc
.
gc
.
direction_output
=
gef_gpio_dir_out
;
gef_gpio_chip
->
of_gc
.
gc
.
get
=
gef_gpio_get
;
gef_gpio_chip
->
of_gc
.
gc
.
get
=
gef_gpio_get
;
...
...
arch/powerpc/platforms/86xx/gef_sbc310.c
0 → 100644
View file @
edbc29d7
/*
* GE Fanuc SBC310 board support
*
* Author: Martyn Welch <martyn.welch@gefanuc.com>
*
* Copyright 2008 GE Fanuc Intelligent Platforms Embedded Systems, 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.
*
* Based on: mpc86xx_hpcn.c (MPC86xx HPCN board specific routines)
* Copyright 2006 Freescale Semiconductor Inc.
*
* NEC fixup adapted from arch/mips/pci/fixup-lm2e.c
*/
#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/mpc86xx.h>
#include <asm/prom.h>
#include <mm/mmu_decl.h>
#include <asm/udbg.h>
#include <asm/mpic.h>
#include <sysdev/fsl_pci.h>
#include <sysdev/fsl_soc.h>
#include "mpc86xx.h"
#include "gef_pic.h"
#undef DEBUG
#ifdef DEBUG
#define DBG (fmt...) do { printk(KERN_ERR "SBC310: " fmt); } while (0)
#else
#define DBG (fmt...) do { } while (0)
#endif
void
__iomem
*
sbc310_regs
;
static
void
__init
gef_sbc310_init_irq
(
void
)
{
struct
device_node
*
cascade_node
=
NULL
;
mpc86xx_init_irq
();
/*
* There is a simple interrupt handler in the main FPGA, this needs
* to be cascaded into the MPIC
*/
cascade_node
=
of_find_compatible_node
(
NULL
,
NULL
,
"gef,fpga-pic"
);
if
(
!
cascade_node
)
{
printk
(
KERN_WARNING
"SBC310: No FPGA PIC
\n
"
);
return
;
}
gef_pic_init
(
cascade_node
);
of_node_put
(
cascade_node
);
}
static
void
__init
gef_sbc310_setup_arch
(
void
)
{
struct
device_node
*
regs
;
#ifdef CONFIG_PCI
struct
device_node
*
np
;
for_each_compatible_node
(
np
,
"pci"
,
"fsl,mpc8641-pcie"
)
{
fsl_add_bridge
(
np
,
1
);
}
#endif
printk
(
KERN_INFO
"GE Fanuc Intelligent Platforms SBC310 6U VPX SBC
\n
"
);
#ifdef CONFIG_SMP
mpc86xx_smp_init
();
#endif
/* Remap basic board registers */
regs
=
of_find_compatible_node
(
NULL
,
NULL
,
"gef,fpga-regs"
);
if
(
regs
)
{
sbc310_regs
=
of_iomap
(
regs
,
0
);
if
(
sbc310_regs
==
NULL
)
printk
(
KERN_WARNING
"Unable to map board registers
\n
"
);
of_node_put
(
regs
);
}
}
/* Return the PCB revision */
static
unsigned
int
gef_sbc310_get_board_id
(
void
)
{
unsigned
int
reg
;
reg
=
ioread32
(
sbc310_regs
);
return
reg
&
0xff
;
}
/* Return the PCB revision */
static
unsigned
int
gef_sbc310_get_pcb_rev
(
void
)
{
unsigned
int
reg
;
reg
=
ioread32
(
sbc310_regs
);
return
(
reg
>>
8
)
&
0xff
;
}
/* Return the board (software) revision */
static
unsigned
int
gef_sbc310_get_board_rev
(
void
)
{
unsigned
int
reg
;
reg
=
ioread32
(
sbc310_regs
);
return
(
reg
>>
16
)
&
0xff
;
}
/* Return the FPGA revision */
static
unsigned
int
gef_sbc310_get_fpga_rev
(
void
)
{
unsigned
int
reg
;
reg
=
ioread32
(
sbc310_regs
);
return
(
reg
>>
24
)
&
0xf
;
}
static
void
gef_sbc310_show_cpuinfo
(
struct
seq_file
*
m
)
{
uint
svid
=
mfspr
(
SPRN_SVR
);
seq_printf
(
m
,
"Vendor
\t\t
: GE Fanuc Intelligent Platforms
\n
"
);
seq_printf
(
m
,
"Board ID
\t
: 0x%2.2x
\n
"
,
gef_sbc310_get_board_id
());
seq_printf
(
m
,
"Revision
\t
: %u%c
\n
"
,
gef_sbc310_get_pcb_rev
(),
(
'A'
+
gef_sbc310_get_board_rev
()
-
1
));
seq_printf
(
m
,
"FPGA Revision
\t
: %u
\n
"
,
gef_sbc310_get_fpga_rev
());
seq_printf
(
m
,
"SVR
\t\t
: 0x%x
\n
"
,
svid
);
}
static
void
__init
gef_sbc310_nec_fixup
(
struct
pci_dev
*
pdev
)
{
unsigned
int
val
;
printk
(
KERN_INFO
"Running NEC uPD720101 Fixup
\n
"
);
/* Ensure only ports 1 & 2 are enabled */
pci_read_config_dword
(
pdev
,
0xe0
,
&
val
);
pci_write_config_dword
(
pdev
,
0xe0
,
(
val
&
~
7
)
|
0x2
);
/* System clock is 48-MHz Oscillator and EHCI Enabled. */
pci_write_config_dword
(
pdev
,
0xe4
,
1
<<
5
);
}
DECLARE_PCI_FIXUP_HEADER
(
PCI_VENDOR_ID_NEC
,
PCI_DEVICE_ID_NEC_USB
,
gef_sbc310_nec_fixup
);
/*
* Called very early, device-tree isn't unflattened
*
* This function is called to determine whether the BSP is compatible with the
* supplied device-tree, which is assumed to be the correct one for the actual
* board. It is expected thati, in the future, a kernel may support multiple
* boards.
*/
static
int
__init
gef_sbc310_probe
(
void
)
{
unsigned
long
root
=
of_get_flat_dt_root
();
if
(
of_flat_dt_is_compatible
(
root
,
"gef,sbc310"
))
return
1
;
return
0
;
}
static
long
__init
mpc86xx_time_init
(
void
)
{
unsigned
int
temp
;
/* Set the time base to zero */
mtspr
(
SPRN_TBWL
,
0
);
mtspr
(
SPRN_TBWU
,
0
);
temp
=
mfspr
(
SPRN_HID0
);
temp
|=
HID0_TBEN
;
mtspr
(
SPRN_HID0
,
temp
);
asm
volatile
(
"isync"
);
return
0
;
}
static
__initdata
struct
of_device_id
of_bus_ids
[]
=
{
{
.
compatible
=
"simple-bus"
,
},
{},
};
static
int
__init
declare_of_platform_devices
(
void
)
{
printk
(
KERN_DEBUG
"Probe platform devices
\n
"
);
of_platform_bus_probe
(
NULL
,
of_bus_ids
,
NULL
);
return
0
;
}
machine_device_initcall
(
gef_sbc310
,
declare_of_platform_devices
);
define_machine
(
gef_sbc310
)
{
.
name
=
"GE Fanuc SBC310"
,
.
probe
=
gef_sbc310_probe
,
.
setup_arch
=
gef_sbc310_setup_arch
,
.
init_IRQ
=
gef_sbc310_init_irq
,
.
show_cpuinfo
=
gef_sbc310_show_cpuinfo
,
.
get_irq
=
mpic_get_irq
,
.
restart
=
fsl_rstcr_restart
,
.
time_init
=
mpc86xx_time_init
,
.
calibrate_decr
=
generic_calibrate_decr
,
.
progress
=
udbg_progress
,
#ifdef CONFIG_PCI
.
pcibios_fixup_bus
=
fsl_pcibios_fixup_bus
,
#endif
};
arch/powerpc/sysdev/cpm2.c
View file @
edbc29d7
...
@@ -129,7 +129,8 @@ void __cpm2_setbrg(uint brg, uint rate, uint clk, int div16, int src)
...
@@ -129,7 +129,8 @@ void __cpm2_setbrg(uint brg, uint rate, uint clk, int div16, int src)
brg
-=
4
;
brg
-=
4
;
}
}
bp
+=
brg
;
bp
+=
brg
;
val
=
(((
clk
/
rate
)
-
1
)
<<
1
)
|
CPM_BRG_EN
|
src
;
/* Round the clock divider to the nearest integer. */
val
=
(((
clk
*
2
/
rate
)
-
1
)
&
~
1
)
|
CPM_BRG_EN
|
src
;
if
(
div16
)
if
(
div16
)
val
|=
CPM_BRG_DIV16
;
val
|=
CPM_BRG_DIV16
;
...
...
arch/powerpc/sysdev/fsl_pci.c
View file @
edbc29d7
/*
/*
* MPC83xx/85xx/86xx PCI/PCIE support routing.
* MPC83xx/85xx/86xx PCI/PCIE support routing.
*
*
* Copyright 2007,2008 Freescale Semiconductor, Inc
* Copyright 2007-2009 Freescale Semiconductor, Inc.
* Copyright 2008-2009 MontaVista Software, Inc.
*
*
* Initial author: Xianghua Xiao <x.xiao@freescale.com>
* Initial author: Xianghua Xiao <x.xiao@freescale.com>
* Recode: ZHANG WEI <wei.zhang@freescale.com>
* Recode: ZHANG WEI <wei.zhang@freescale.com>
* Rewrite the routing for Frescale PCI and PCI Express
* Rewrite the routing for Frescale PCI and PCI Express
* Roy Zang <tie-fei.zang@freescale.com>
* Roy Zang <tie-fei.zang@freescale.com>
* MPC83xx PCI-Express support:
* Tony Li <tony.li@freescale.com>
* Anton Vorontsov <avorontsov@ru.mvista.com>
*
*
* This program is free software; you can redistribute it and/or modify it
* 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
* under the terms of the GNU General Public License as published by the
...
@@ -27,6 +31,29 @@
...
@@ -27,6 +31,29 @@
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_soc.h>
#include <sysdev/fsl_pci.h>
#include <sysdev/fsl_pci.h>
static
int
fsl_pcie_bus_fixup
;
static
void
__init
quirk_fsl_pcie_header
(
struct
pci_dev
*
dev
)
{
/* if we aren't a PCIe don't bother */
if
(
!
pci_find_capability
(
dev
,
PCI_CAP_ID_EXP
))
return
;
dev
->
class
=
PCI_CLASS_BRIDGE_PCI
<<
8
;
fsl_pcie_bus_fixup
=
1
;
return
;
}
static
int
__init
fsl_pcie_check_link
(
struct
pci_controller
*
hose
)
{
u32
val
;
early_read_config_dword
(
hose
,
0
,
0
,
PCIE_LTSSM
,
&
val
);
if
(
val
<
PCIE_LTSSM_L0
)
return
1
;
return
0
;
}
#if defined(CONFIG_PPC_85xx) || defined(CONFIG_PPC_86xx)
#if defined(CONFIG_PPC_85xx) || defined(CONFIG_PPC_86xx)
static
int
__init
setup_one_atmu
(
struct
ccsr_pci
__iomem
*
pci
,
static
int
__init
setup_one_atmu
(
struct
ccsr_pci
__iomem
*
pci
,
unsigned
int
index
,
const
struct
resource
*
res
,
unsigned
int
index
,
const
struct
resource
*
res
,
...
@@ -159,28 +186,6 @@ static void __init setup_pci_pcsrbar(struct pci_controller *hose)
...
@@ -159,28 +186,6 @@ static void __init setup_pci_pcsrbar(struct pci_controller *hose)
#endif
#endif
}
}
static
int
fsl_pcie_bus_fixup
;
static
void
__init
quirk_fsl_pcie_header
(
struct
pci_dev
*
dev
)
{
/* if we aren't a PCIe don't bother */
if
(
!
pci_find_capability
(
dev
,
PCI_CAP_ID_EXP
))
return
;
dev
->
class
=
PCI_CLASS_BRIDGE_PCI
<<
8
;
fsl_pcie_bus_fixup
=
1
;
return
;
}
static
int
__init
fsl_pcie_check_link
(
struct
pci_controller
*
hose
)
{
u32
val
;
early_read_config_dword
(
hose
,
0
,
0
,
PCIE_LTSSM
,
&
val
);
if
(
val
<
PCIE_LTSSM_L0
)
return
1
;
return
0
;
}
void
fsl_pcibios_fixup_bus
(
struct
pci_bus
*
bus
)
void
fsl_pcibios_fixup_bus
(
struct
pci_bus
*
bus
)
{
{
struct
pci_controller
*
hose
=
(
struct
pci_controller
*
)
bus
->
sysdata
;
struct
pci_controller
*
hose
=
(
struct
pci_controller
*
)
bus
->
sysdata
;
...
@@ -294,8 +299,184 @@ DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8610, quirk_fsl_pcie_header);
...
@@ -294,8 +299,184 @@ DECLARE_PCI_FIXUP_HEADER(0x1957, PCI_DEVICE_ID_MPC8610, quirk_fsl_pcie_header);
#endif
/* CONFIG_PPC_85xx || CONFIG_PPC_86xx */
#endif
/* CONFIG_PPC_85xx || CONFIG_PPC_86xx */
#if defined(CONFIG_PPC_83xx) || defined(CONFIG_PPC_MPC512x)
#if defined(CONFIG_PPC_83xx) || defined(CONFIG_PPC_MPC512x)
DECLARE_PCI_FIXUP_HEADER
(
0x1957
,
PCI_DEVICE_ID_MPC8314E
,
quirk_fsl_pcie_header
);
DECLARE_PCI_FIXUP_HEADER
(
0x1957
,
PCI_DEVICE_ID_MPC8314
,
quirk_fsl_pcie_header
);
DECLARE_PCI_FIXUP_HEADER
(
0x1957
,
PCI_DEVICE_ID_MPC8315E
,
quirk_fsl_pcie_header
);
DECLARE_PCI_FIXUP_HEADER
(
0x1957
,
PCI_DEVICE_ID_MPC8315
,
quirk_fsl_pcie_header
);
DECLARE_PCI_FIXUP_HEADER
(
0x1957
,
PCI_DEVICE_ID_MPC8377E
,
quirk_fsl_pcie_header
);
DECLARE_PCI_FIXUP_HEADER
(
0x1957
,
PCI_DEVICE_ID_MPC8377
,
quirk_fsl_pcie_header
);
DECLARE_PCI_FIXUP_HEADER
(
0x1957
,
PCI_DEVICE_ID_MPC8378E
,
quirk_fsl_pcie_header
);
DECLARE_PCI_FIXUP_HEADER
(
0x1957
,
PCI_DEVICE_ID_MPC8378
,
quirk_fsl_pcie_header
);
struct
mpc83xx_pcie_priv
{
void
__iomem
*
cfg_type0
;
void
__iomem
*
cfg_type1
;
u32
dev_base
;
};
/*
* With the convention of u-boot, the PCIE outbound window 0 serves
* as configuration transactions outbound.
*/
#define PEX_OUTWIN0_BAR 0xCA4
#define PEX_OUTWIN0_TAL 0xCA8
#define PEX_OUTWIN0_TAH 0xCAC
static
int
mpc83xx_pcie_exclude_device
(
struct
pci_bus
*
bus
,
unsigned
int
devfn
)
{
struct
pci_controller
*
hose
=
bus
->
sysdata
;
if
(
hose
->
indirect_type
&
PPC_INDIRECT_TYPE_NO_PCIE_LINK
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
/*
* Workaround for the HW bug: for Type 0 configure transactions the
* PCI-E controller does not check the device number bits and just
* assumes that the device number bits are 0.
*/
if
(
bus
->
number
==
hose
->
first_busno
||
bus
->
primary
==
hose
->
first_busno
)
{
if
(
devfn
&
0xf8
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
}
if
(
ppc_md
.
pci_exclude_device
)
{
if
(
ppc_md
.
pci_exclude_device
(
hose
,
bus
->
number
,
devfn
))
return
PCIBIOS_DEVICE_NOT_FOUND
;
}
return
PCIBIOS_SUCCESSFUL
;
}
static
void
__iomem
*
mpc83xx_pcie_remap_cfg
(
struct
pci_bus
*
bus
,
unsigned
int
devfn
,
int
offset
)
{
struct
pci_controller
*
hose
=
bus
->
sysdata
;
struct
mpc83xx_pcie_priv
*
pcie
=
hose
->
dn
->
data
;
u8
bus_no
=
bus
->
number
-
hose
->
first_busno
;
u32
dev_base
=
bus_no
<<
24
|
devfn
<<
16
;
int
ret
;
ret
=
mpc83xx_pcie_exclude_device
(
bus
,
devfn
);
if
(
ret
)
return
NULL
;
offset
&=
0xfff
;
/* Type 0 */
if
(
bus
->
number
==
hose
->
first_busno
)
return
pcie
->
cfg_type0
+
offset
;
if
(
pcie
->
dev_base
==
dev_base
)
goto
mapped
;
out_le32
(
pcie
->
cfg_type0
+
PEX_OUTWIN0_TAL
,
dev_base
);
pcie
->
dev_base
=
dev_base
;
mapped:
return
pcie
->
cfg_type1
+
offset
;
}
static
int
mpc83xx_pcie_read_config
(
struct
pci_bus
*
bus
,
unsigned
int
devfn
,
int
offset
,
int
len
,
u32
*
val
)
{
void
__iomem
*
cfg_addr
;
cfg_addr
=
mpc83xx_pcie_remap_cfg
(
bus
,
devfn
,
offset
);
if
(
!
cfg_addr
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
switch
(
len
)
{
case
1
:
*
val
=
in_8
(
cfg_addr
);
break
;
case
2
:
*
val
=
in_le16
(
cfg_addr
);
break
;
default:
*
val
=
in_le32
(
cfg_addr
);
break
;
}
return
PCIBIOS_SUCCESSFUL
;
}
static
int
mpc83xx_pcie_write_config
(
struct
pci_bus
*
bus
,
unsigned
int
devfn
,
int
offset
,
int
len
,
u32
val
)
{
void
__iomem
*
cfg_addr
;
cfg_addr
=
mpc83xx_pcie_remap_cfg
(
bus
,
devfn
,
offset
);
if
(
!
cfg_addr
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
switch
(
len
)
{
case
1
:
out_8
(
cfg_addr
,
val
);
break
;
case
2
:
out_le16
(
cfg_addr
,
val
);
break
;
default:
out_le32
(
cfg_addr
,
val
);
break
;
}
return
PCIBIOS_SUCCESSFUL
;
}
static
struct
pci_ops
mpc83xx_pcie_ops
=
{
.
read
=
mpc83xx_pcie_read_config
,
.
write
=
mpc83xx_pcie_write_config
,
};
static
int
__init
mpc83xx_pcie_setup
(
struct
pci_controller
*
hose
,
struct
resource
*
reg
)
{
struct
mpc83xx_pcie_priv
*
pcie
;
u32
cfg_bar
;
int
ret
=
-
ENOMEM
;
pcie
=
zalloc_maybe_bootmem
(
sizeof
(
*
pcie
),
GFP_KERNEL
);
if
(
!
pcie
)
return
ret
;
pcie
->
cfg_type0
=
ioremap
(
reg
->
start
,
resource_size
(
reg
));
if
(
!
pcie
->
cfg_type0
)
goto
err0
;
cfg_bar
=
in_le32
(
pcie
->
cfg_type0
+
PEX_OUTWIN0_BAR
);
if
(
!
cfg_bar
)
{
/* PCI-E isn't configured. */
ret
=
-
ENODEV
;
goto
err1
;
}
pcie
->
cfg_type1
=
ioremap
(
cfg_bar
,
0x1000
);
if
(
!
pcie
->
cfg_type1
)
goto
err1
;
WARN_ON
(
hose
->
dn
->
data
);
hose
->
dn
->
data
=
pcie
;
hose
->
ops
=
&
mpc83xx_pcie_ops
;
out_le32
(
pcie
->
cfg_type0
+
PEX_OUTWIN0_TAH
,
0
);
out_le32
(
pcie
->
cfg_type0
+
PEX_OUTWIN0_TAL
,
0
);
if
(
fsl_pcie_check_link
(
hose
))
hose
->
indirect_type
|=
PPC_INDIRECT_TYPE_NO_PCIE_LINK
;
return
0
;
err1:
iounmap
(
pcie
->
cfg_type0
);
err0:
kfree
(
pcie
);
return
ret
;
}
int
__init
mpc83xx_add_bridge
(
struct
device_node
*
dev
)
int
__init
mpc83xx_add_bridge
(
struct
device_node
*
dev
)
{
{
int
ret
;
int
len
;
int
len
;
struct
pci_controller
*
hose
;
struct
pci_controller
*
hose
;
struct
resource
rsrc_reg
;
struct
resource
rsrc_reg
;
...
@@ -303,6 +484,11 @@ int __init mpc83xx_add_bridge(struct device_node *dev)
...
@@ -303,6 +484,11 @@ int __init mpc83xx_add_bridge(struct device_node *dev)
const
int
*
bus_range
;
const
int
*
bus_range
;
int
primary
;
int
primary
;
if
(
!
of_device_is_available
(
dev
))
{
pr_warning
(
"%s: disabled by the firmware.
\n
"
,
dev
->
full_name
);
return
-
ENODEV
;
}
pr_debug
(
"Adding PCI host bridge %s
\n
"
,
dev
->
full_name
);
pr_debug
(
"Adding PCI host bridge %s
\n
"
,
dev
->
full_name
);
/* Fetch host bridge registers address */
/* Fetch host bridge registers address */
...
@@ -350,7 +536,14 @@ int __init mpc83xx_add_bridge(struct device_node *dev)
...
@@ -350,7 +536,14 @@ int __init mpc83xx_add_bridge(struct device_node *dev)
hose
->
first_busno
=
bus_range
?
bus_range
[
0
]
:
0
;
hose
->
first_busno
=
bus_range
?
bus_range
[
0
]
:
0
;
hose
->
last_busno
=
bus_range
?
bus_range
[
1
]
:
0xff
;
hose
->
last_busno
=
bus_range
?
bus_range
[
1
]
:
0xff
;
setup_indirect_pci
(
hose
,
rsrc_cfg
.
start
,
rsrc_cfg
.
start
+
4
,
0
);
if
(
of_device_is_compatible
(
dev
,
"fsl,mpc8314-pcie"
))
{
ret
=
mpc83xx_pcie_setup
(
hose
,
&
rsrc_reg
);
if
(
ret
)
goto
err0
;
}
else
{
setup_indirect_pci
(
hose
,
rsrc_cfg
.
start
,
rsrc_cfg
.
start
+
4
,
0
);
}
printk
(
KERN_INFO
"Found FSL PCI host bridge at 0x%016llx. "
printk
(
KERN_INFO
"Found FSL PCI host bridge at 0x%016llx. "
"Firmware bus number: %d->%d
\n
"
,
"Firmware bus number: %d->%d
\n
"
,
...
@@ -365,5 +558,8 @@ int __init mpc83xx_add_bridge(struct device_node *dev)
...
@@ -365,5 +558,8 @@ int __init mpc83xx_add_bridge(struct device_node *dev)
pci_process_bridge_OF_ranges
(
hose
,
dev
,
primary
);
pci_process_bridge_OF_ranges
(
hose
,
dev
,
primary
);
return
0
;
return
0
;
err0:
pcibios_free_controller
(
hose
);
return
ret
;
}
}
#endif
/* CONFIG_PPC_83xx */
#endif
/* CONFIG_PPC_83xx */
drivers/watchdog/Kconfig
View file @
edbc29d7
...
@@ -772,7 +772,7 @@ config TXX9_WDT
...
@@ -772,7 +772,7 @@ config TXX9_WDT
config GEF_WDT
config GEF_WDT
tristate "GE Fanuc Watchdog Timer"
tristate "GE Fanuc Watchdog Timer"
depends on GEF_SBC610
depends on GEF_SBC610
|| GEF_SBC310
---help---
---help---
Watchdog timer found in a number of GE Fanuc single board computers.
Watchdog timer found in a number of GE Fanuc single board computers.
...
...
include/linux/pci_ids.h
View file @
edbc29d7
...
@@ -2217,6 +2217,14 @@
...
@@ -2217,6 +2217,14 @@
#define PCI_DEVICE_ID_TDI_EHCI 0x0101
#define PCI_DEVICE_ID_TDI_EHCI 0x0101
#define PCI_VENDOR_ID_FREESCALE 0x1957
#define PCI_VENDOR_ID_FREESCALE 0x1957
#define PCI_DEVICE_ID_MPC8315E 0x00b4
#define PCI_DEVICE_ID_MPC8315 0x00b5
#define PCI_DEVICE_ID_MPC8314E 0x00b6
#define PCI_DEVICE_ID_MPC8314 0x00b7
#define PCI_DEVICE_ID_MPC8378E 0x00c4
#define PCI_DEVICE_ID_MPC8378 0x00c5
#define PCI_DEVICE_ID_MPC8377E 0x00c6
#define PCI_DEVICE_ID_MPC8377 0x00c7
#define PCI_DEVICE_ID_MPC8548E 0x0012
#define PCI_DEVICE_ID_MPC8548E 0x0012
#define PCI_DEVICE_ID_MPC8548 0x0013
#define PCI_DEVICE_ID_MPC8548 0x0013
#define PCI_DEVICE_ID_MPC8543E 0x0014
#define PCI_DEVICE_ID_MPC8543E 0x0014
...
...
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