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
nexedi
linux
Commits
3d79bc5c
Commit
3d79bc5c
authored
May 25, 2002
by
Paul Mackerras
Browse files
Options
Browse Files
Download
Plain Diff
Merge samba.org:/home/paulus/kernel/linux-2.5
into samba.org:/home/paulus/kernel/for-linus-ppc
parents
d0f0cde1
a77e3b76
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
with
140 additions
and
137 deletions
+140
-137
arch/ppc/Config.help
arch/ppc/Config.help
+8
-1
arch/ppc/boot/common/misc-simple.c
arch/ppc/boot/common/misc-simple.c
+2
-2
arch/ppc/boot/common/relocate.S
arch/ppc/boot/common/relocate.S
+3
-2
arch/ppc/boot/prep/misc.c
arch/ppc/boot/prep/misc.c
+2
-2
arch/ppc/boot/simple/chrpmap.S
arch/ppc/boot/simple/chrpmap.S
+3
-3
arch/ppc/boot/simple/direct.S
arch/ppc/boot/simple/direct.S
+4
-3
arch/ppc/boot/simple/legacy.S
arch/ppc/boot/simple/legacy.S
+3
-3
arch/ppc/boot/simple/misc-embedded.c
arch/ppc/boot/simple/misc-embedded.c
+1
-1
arch/ppc/config.in
arch/ppc/config.in
+6
-5
arch/ppc/kernel/Makefile
arch/ppc/kernel/Makefile
+3
-4
arch/ppc/kernel/i8259.c
arch/ppc/kernel/i8259.c
+36
-51
arch/ppc/kernel/open_pic.c
arch/ppc/kernel/open_pic.c
+8
-14
arch/ppc/platforms/lopec_pci.c
arch/ppc/platforms/lopec_pci.c
+1
-8
arch/ppc/platforms/lopec_setup.c
arch/ppc/platforms/lopec_setup.c
+10
-19
arch/ppc/platforms/mcpn765_setup.c
arch/ppc/platforms/mcpn765_setup.c
+2
-3
arch/ppc/platforms/pplus_setup.c
arch/ppc/platforms/pplus_setup.c
+1
-4
arch/ppc/platforms/prep_setup.c
arch/ppc/platforms/prep_setup.c
+8
-6
arch/ppc/platforms/residual.c
arch/ppc/platforms/residual.c
+35
-0
arch/ppc/platforms/sandpoint_setup.c
arch/ppc/platforms/sandpoint_setup.c
+2
-3
include/asm-ppc/i8259.h
include/asm-ppc/i8259.h
+2
-3
No files found.
arch/ppc/Config.help
View file @
3d79bc5c
...
@@ -340,9 +340,16 @@ CONFIG_PREP_RESIDUAL
...
@@ -340,9 +340,16 @@ CONFIG_PREP_RESIDUAL
other useful pieces of information. Sometimes this information is
other useful pieces of information. Sometimes this information is
not present or incorrect.
not present or incorrect.
Unless you expect to boot on a PReP system, there is no
t
need to
Unless you expect to boot on a PReP system, there is no need to
select Y.
select Y.
PReP residual data available in /proc/residual
CONFIG_PROC_PREPRESIDUAL
Enabling this option will create a /proc/residual file which allows
you to get at the residual data on PReP systems. You will need a tool
(lsresidual) to parse it. If you aren't on a PReP system, you don't
want this.
CONFIG_ADB
CONFIG_ADB
Apple Desktop Bus (ADB) support is for support of devices which
Apple Desktop Bus (ADB) support is for support of devices which
are connected to an ADB port. ADB devices tend to have 4 pins.
are connected to an ADB port. ADB devices tend to have 4 pins.
...
...
arch/ppc/boot/common/misc-simple.c
View file @
3d79bc5c
...
@@ -67,7 +67,7 @@ extern int CRT_tstc(void);
...
@@ -67,7 +67,7 @@ extern int CRT_tstc(void);
extern
unsigned
long
serial_init
(
int
chan
,
void
*
ignored
);
extern
unsigned
long
serial_init
(
int
chan
,
void
*
ignored
);
extern
void
serial_close
(
unsigned
long
com_port
);
extern
void
serial_close
(
unsigned
long
com_port
);
extern
void
gunzip
(
void
*
,
int
,
unsigned
char
*
,
int
*
);
extern
void
gunzip
(
void
*
,
int
,
unsigned
char
*
,
int
*
);
extern
void
se
tup_legacy
(
void
);
extern
void
se
rial_fixups
(
void
);
struct
bi_record
*
struct
bi_record
*
decompress_kernel
(
unsigned
long
load_addr
,
int
num_words
,
unsigned
long
cksum
)
decompress_kernel
(
unsigned
long
load_addr
,
int
num_words
,
unsigned
long
cksum
)
...
@@ -76,7 +76,7 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
...
@@ -76,7 +76,7 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum)
char
*
cp
,
ch
;
char
*
cp
,
ch
;
struct
bi_record
*
rec
,
*
birecs
;
struct
bi_record
*
rec
,
*
birecs
;
se
tup_legacy
();
se
rial_fixups
();
com_port
=
serial_init
(
0
,
NULL
);
com_port
=
serial_init
(
0
,
NULL
);
/* assume the chunk below 8M is free */
/* assume the chunk below 8M is free */
...
...
arch/ppc/boot/common/relocate.S
View file @
3d79bc5c
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
*
trini
@
mvista
.
com
*
trini
@
mvista
.
com
*
Derived
from
arch
/
ppc
/
boot
/
prep
/
head
.
S
(
Cort
Dougan
,
many
others
)
.
*
Derived
from
arch
/
ppc
/
boot
/
prep
/
head
.
S
(
Cort
Dougan
,
many
others
)
.
*
*
*
Copyright
2001
MontaVista
Software
Inc
.
*
Copyright
2001
-
2002
MontaVista
Software
Inc
.
*
*
*
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
...
@@ -188,10 +188,11 @@ start_ldr:
...
@@ -188,10 +188,11 @@ start_ldr:
bl
decompress_kernel
bl
decompress_kernel
/
*
/
*
*
Make
sure
the
kernel
knows
we
don
't have things set
in
*
Make
sure
the
kernel
knows
we
don
't have things set in
*
registers
.
--
Tom
*
registers
.
--
Tom
*/
*/
li
r4
,
0
li
r4
,
0
li
r5
,
0
li
r6
,
0
li
r6
,
0
/
*
/
*
...
...
arch/ppc/boot/prep/misc.c
View file @
3d79bc5c
...
@@ -75,7 +75,7 @@ extern void gunzip(void *, int, unsigned char *, int *);
...
@@ -75,7 +75,7 @@ extern void gunzip(void *, int, unsigned char *, int *);
extern
void
_put_MSR
(
unsigned
int
val
);
extern
void
_put_MSR
(
unsigned
int
val
);
extern
unsigned
long
serial_init
(
int
chan
,
void
*
ignored
);
extern
unsigned
long
serial_init
(
int
chan
,
void
*
ignored
);
extern
void
se
tup_legacy
(
void
);
extern
void
se
rial_fixups
(
void
);
void
void
writel
(
unsigned
int
val
,
unsigned
int
address
)
writel
(
unsigned
int
val
,
unsigned
int
address
)
...
@@ -134,7 +134,7 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
...
@@ -134,7 +134,7 @@ decompress_kernel(unsigned long load_addr, int num_words, unsigned long cksum,
int
start_multi
=
0
;
int
start_multi
=
0
;
unsigned
int
pci_viddid
,
pci_did
,
tulip_pci_base
,
tulip_base
;
unsigned
int
pci_viddid
,
pci_did
,
tulip_pci_base
,
tulip_base
;
se
tup_legacy
();
se
rial_fixups
();
#if defined(CONFIG_SERIAL_CONSOLE)
#if defined(CONFIG_SERIAL_CONSOLE)
com_port
=
serial_init
(
0
,
NULL
);
com_port
=
serial_init
(
0
,
NULL
);
#endif
/* CONFIG_SERIAL_CONSOLE */
#endif
/* CONFIG_SERIAL_CONSOLE */
...
...
arch/ppc/boot/simple/chrpmap.S
View file @
3d79bc5c
...
@@ -3,15 +3,15 @@
...
@@ -3,15 +3,15 @@
*
*
*
Author
:
Tom
Rini
<
trini
@
mvista
.
com
>
*
Author
:
Tom
Rini
<
trini
@
mvista
.
com
>
*
*
*
This
will
go
and
setup
ISA_io
to
0xFE00000
.
*
This
will
go
and
setup
ISA_io
to
0xFE00000
and
return
.
*/
*/
#include <asm/ppc_asm.h>
#include <asm/ppc_asm.h>
.
text
.
text
.
globl
se
tup_legacy
.
globl
se
rial_fixups
se
tup_legacy
:
se
rial_fixups
:
lis
r3
,
ISA_io
@
h
/*
Load
ISA_io
*/
lis
r3
,
ISA_io
@
h
/*
Load
ISA_io
*/
ori
r3
,
r3
,
ISA_io
@
l
ori
r3
,
r3
,
ISA_io
@
l
lis
r4
,
0xFE00
/*
Load
the
value
,
0xFE00000
*/
lis
r4
,
0xFE00
/*
Load
the
value
,
0xFE00000
*/
...
...
arch/ppc/boot/simple/direct.S
View file @
3d79bc5c
...
@@ -4,11 +4,12 @@
...
@@ -4,11 +4,12 @@
*
Author
:
Tom
Rini
<
trini
@
mvista
.
com
>
*
Author
:
Tom
Rini
<
trini
@
mvista
.
com
>
*
*
*
This
is
an
empty
function
for
machines
which
use
SERIAL_IO_MEM
*
This
is
an
empty
function
for
machines
which
use
SERIAL_IO_MEM
*
and
don
't need ISA_io set to anything but 0;
*
and
don
't need ISA_io set to anything but 0, or perform any other
*
serial
fixups
.
*/
*/
.
text
.
text
.
globl
se
tup_legacy
.
globl
se
rial_fixups
se
tup_legacy
:
se
rial_fixups
:
blr
blr
arch/ppc/boot/simple/legacy.S
View file @
3d79bc5c
...
@@ -3,15 +3,15 @@
...
@@ -3,15 +3,15 @@
*
*
*
Author
:
Tom
Rini
<
trini
@
mvista
.
com
>
*
Author
:
Tom
Rini
<
trini
@
mvista
.
com
>
*
*
*
This
will
go
and
setup
ISA_io
to
0x8000000
.
*
This
will
go
and
setup
ISA_io
to
0x8000000
and
return
.
*/
*/
#include <asm/ppc_asm.h>
#include <asm/ppc_asm.h>
.
text
.
text
.
globl
se
tup_legacy
.
globl
se
rial_fixups
se
tup_legacy
:
se
rial_fixups
:
lis
r3
,
ISA_io
@
h
/*
Load
ISA_io
*/
lis
r3
,
ISA_io
@
h
/*
Load
ISA_io
*/
ori
r3
,
r3
,
ISA_io
@
l
ori
r3
,
r3
,
ISA_io
@
l
lis
r4
,
0x8000
/*
Load
the
value
,
0x8000000
*/
lis
r4
,
0x8000
/*
Load
the
value
,
0x8000000
*/
...
...
arch/ppc/boot/simple/misc-embedded.c
View file @
3d79bc5c
...
@@ -54,7 +54,7 @@ char *bootrom_cmdline = "";
...
@@ -54,7 +54,7 @@ char *bootrom_cmdline = "";
char
compiled_string
[]
=
CONFIG_CMDLINE
;
char
compiled_string
[]
=
CONFIG_CMDLINE
;
#endif
#endif
char
ramroot_string
[]
=
"root=/dev/ram"
;
char
ramroot_string
[]
=
"root=/dev/ram"
;
char
netroot_string
[]
=
"root=/dev/nfs rw ip=
auto
"
;
char
netroot_string
[]
=
"root=/dev/nfs rw ip=
on
"
;
/* Serial port to use. */
/* Serial port to use. */
unsigned
long
com_port
;
unsigned
long
com_port
;
...
...
arch/ppc/config.in
View file @
3d79bc5c
...
@@ -362,6 +362,7 @@ if [ "$CONFIG_ALL_PPC" = "y" ]; then
...
@@ -362,6 +362,7 @@ if [ "$CONFIG_ALL_PPC" = "y" ]; then
bool 'Support for Open Firmware device tree in /proc' CONFIG_PROC_DEVICETREE
bool 'Support for Open Firmware device tree in /proc' CONFIG_PROC_DEVICETREE
bool 'Support for RTAS (RunTime Abstraction Services) in /proc' CONFIG_PPC_RTAS
bool 'Support for RTAS (RunTime Abstraction Services) in /proc' CONFIG_PPC_RTAS
bool 'Support for PReP Residual Data' CONFIG_PREP_RESIDUAL
bool 'Support for PReP Residual Data' CONFIG_PREP_RESIDUAL
dep_bool ' Support for reading of PReP Residual Data in /proc' CONFIG_PROC_PREPRESIDUAL $CONFIG_PREP_RESIDUAL
fi
fi
bool 'Default bootloader kernel arguments' CONFIG_CMDLINE_BOOL
bool 'Default bootloader kernel arguments' CONFIG_CMDLINE_BOOL
...
@@ -574,15 +575,15 @@ if [ "$CONFIG_8260" = "y" ]; then
...
@@ -574,15 +575,15 @@ if [ "$CONFIG_8260" = "y" ]; then
source arch/ppc/8260_io/Config.in
source arch/ppc/8260_io/Config.in
fi
fi
if [ "$CONFIG_4xx" = "y"]; then
if [ "$CONFIG_4xx" = "y"
]; then
mainmenu_option next_comment
mainmenu_option next_comment
comment 'IBM 4xx options'
comment 'IBM 4xx options'
if [ "$CONFIG_STB03xxx" = "y" ]; then
if [ "$CONFIG_STB03xxx" = "y" ]; then
bool 'STB IR Keyboard' CONFIG_STB_KB
bool 'STB IR Keyboard' CONFIG_STB_KB
bool 'SICC Serial port' CONFIG_SERIAL_SICC
bool 'SICC Serial port' CONFIG_SERIAL_SICC
if [ "$CONFIG_SERIAL_SICC" = "y" -a "$CONFIG_UART0_TTYS1" = "y" ]; then
if [ "$CONFIG_SERIAL_SICC" = "y" -a "$CONFIG_UART0_TTYS1" = "y" ]; then
define_bool CONFIG_UART1_DFLT_CONSOLE y
define_bool CONFIG_UART1_DFLT_CONSOLE y
define_bool CONFIG_SERIAL_SICC_CONSOLE y
define_bool CONFIG_SERIAL_SICC_CONSOLE y
fi
fi
fi
fi
endmenu
endmenu
...
@@ -621,8 +622,8 @@ if [ "$CONFIG_ALL_PPC" = "y" ]; then
...
@@ -621,8 +622,8 @@ if [ "$CONFIG_ALL_PPC" = "y" ]; then
fi
fi
if [ "$CONFIG_4xx" = "y" -o "$CONFIG_GT64260" = "y" \
if [ "$CONFIG_4xx" = "y" -o "$CONFIG_GT64260" = "y" \
-o "$CONFIG_LOPEC" = "y" -o "$CONFIG_MCPN765" = "y" \
-o "$CONFIG_LOPEC" = "y" -o "$CONFIG_MCPN765" = "y" \
-o "$CONFIG_P
RPMC800" = "y" -o "$CONFIG_SANDPOINT
" = "y" \
-o "$CONFIG_P
PLUS" = "y" -o "$CONFIG_PRPMC800
" = "y" \
-o "$CONFIG_ZX4500" = "y" ]; then
-o "$CONFIG_
SANDPOINT" = "y" -o "$CONFIG_
ZX4500" = "y" ]; then
bool 'Support for early boot texts over serial port' CONFIG_SERIAL_TEXT_DEBUG
bool 'Support for early boot texts over serial port' CONFIG_SERIAL_TEXT_DEBUG
fi
fi
endmenu
endmenu
arch/ppc/kernel/Makefile
View file @
3d79bc5c
...
@@ -54,19 +54,18 @@ obj-$(CONFIG_PM) += ppc4xx_pm.o
...
@@ -54,19 +54,18 @@ obj-$(CONFIG_PM) += ppc4xx_pm.o
endif
endif
obj-$(CONFIG_8xx)
+=
m8xx_setup.o ppc8xx_pic.o
obj-$(CONFIG_8xx)
+=
m8xx_setup.o ppc8xx_pic.o
ifeq
($(CONFIG_8xx),y)
ifeq
($(CONFIG_8xx),y)
obj-$(CONFIG_PCI)
+=
qspan_pci.o
obj-$(CONFIG_PCI)
+=
qspan_pci.o
i8259.o
ifn
def
CONFIG_MATH_EMULATION
ifn
eq
($(CONFIG_MATH_EMULATION),n)
obj-y
+=
softemu8xx.o
obj-y
+=
softemu8xx.o
endif
endif
endif
endif
obj-$(CONFIG_MBX)
+=
i8259.o
obj-$(CONFIG_ALL_PPC)
+=
prom_init.o prom.o open_pic.o
\
obj-$(CONFIG_ALL_PPC)
+=
prom_init.o prom.o open_pic.o
\
indirect_pci.o i8259.o
indirect_pci.o i8259.o
obj-$(CONFIG_ADIR)
+=
i8259.o indirect_pci.o pci_auto.o
\
obj-$(CONFIG_ADIR)
+=
i8259.o indirect_pci.o pci_auto.o
\
todc_time.o
todc_time.o
obj-$(CONFIG_EV64260)
+=
gt64260_common.o gt64260_pic.o
\
obj-$(CONFIG_EV64260)
+=
gt64260_common.o gt64260_pic.o
\
indirect_pci.o todc_time.o pci_auto.o
indirect_pci.o todc_time.o pci_auto.o
obj-$(CONFIG_GEMINI)
+=
open_pic.o
obj-$(CONFIG_GEMINI)
+=
open_pic.o
i8259.o
obj-$(CONFIG_K2)
+=
i8259.o indirect_pci.o todc_time.o
\
obj-$(CONFIG_K2)
+=
i8259.o indirect_pci.o todc_time.o
\
pci_auto.o
pci_auto.o
obj-$(CONFIG_LOPEC)
+=
mpc10x_common.o indirect_pci.o pci_auto.o
\
obj-$(CONFIG_LOPEC)
+=
mpc10x_common.o indirect_pci.o pci_auto.o
\
...
...
arch/ppc/kernel/i8259.c
View file @
3d79bc5c
...
@@ -21,17 +21,37 @@ static spinlock_t i8259_lock = SPIN_LOCK_UNLOCKED;
...
@@ -21,17 +21,37 @@ static spinlock_t i8259_lock = SPIN_LOCK_UNLOCKED;
int
i8259_pic_irq_offset
;
int
i8259_pic_irq_offset
;
/* Acknowledge the irq using the PCI host bridge's interrupt acknowledge
/*
* feature. (Polling is somehow broken on some IBM and Motorola PReP boxes.)
* Acknowledge the IRQ using either the PCI host bridge's interrupt
* acknowledge feature or poll. How i8259_init() is called determines
* which is called. It should be noted that polling is broken on some
* IBM and Motorola PReP boxes so we must use the int-ack feature on them.
*/
*/
int
i8259_irq
(
struct
pt_regs
*
regs
)
int
i8259_irq
(
struct
pt_regs
*
regs
)
{
{
int
irq
;
int
irq
;
spin_lock
/*_irqsave*/
(
&
i8259_lock
/*, flags*/
);
spin_lock
(
&
i8259_lock
);
/* Either int-ack or poll for the IRQ */
if
(
pci_intack
)
irq
=
*
pci_intack
;
else
{
/* Perform an interrupt acknowledge cycle on controller 1. */
outb
(
0x0C
,
0x20
);
/* prepare for poll */
irq
=
inb
(
0x20
)
&
7
;
if
(
irq
==
2
)
{
/*
* Interrupt is cascaded so perform interrupt
* acknowledge on controller 2.
*/
outb
(
0x0C
,
0xA0
);
/* prepare for poll */
irq
=
(
inb
(
0xA0
)
&
7
)
+
8
;
}
}
irq
=
*
pci_intack
;
if
(
irq
==
7
)
{
if
(
irq
==
7
)
{
/*
/*
* This may be a spurious interrupt.
* This may be a spurious interrupt.
*
*
...
@@ -39,47 +59,13 @@ int i8259_irq(struct pt_regs *regs)
...
@@ -39,47 +59,13 @@ int i8259_irq(struct pt_regs *regs)
* significant bit is not set then there is no valid
* significant bit is not set then there is no valid
* interrupt.
* interrupt.
*/
*/
if
(
~
inb
(
0x20
)
&
0x80
)
{
if
(
!
pci_intack
)
outb
(
0x0B
,
0x20
);
/* ISR register */
if
(
~
inb
(
0x20
)
&
0x80
)
irq
=
-
1
;
irq
=
-
1
;
}
}
}
spin_unlock
/*_irqrestore*/
(
&
i8259_lock
/*, flags*/
);
return
irq
;
}
/* Poke the 8259's directly using poll commands. */
spin_unlock
(
&
i8259_lock
);
int
i8259_poll
(
void
)
{
int
irq
;
spin_lock
/*_irqsave*/
(
&
i8259_lock
/*, flags*/
);
/*
* Perform an interrupt acknowledge cycle on controller 1
*/
outb
(
0x0C
,
0x20
);
/* prepare for poll */
irq
=
inb
(
0x20
)
&
7
;
if
(
irq
==
2
)
{
/*
* Interrupt is cascaded so perform interrupt
* acknowledge on controller 2
*/
outb
(
0x0C
,
0xA0
);
/* prepare for poll */
irq
=
(
inb
(
0xA0
)
&
7
)
+
8
;
}
else
if
(
irq
==
7
)
{
/*
* This may be a spurious interrupt
*
* Read the interrupt status register. If the most
* significant bit is not set then there is no valid
* interrupt
*/
outb
(
0x0b
,
0x20
);
if
(
~
inb
(
0x20
)
&
0x80
)
{
spin_unlock
/*_irqrestore*/
(
&
i8259_lock
/*, flags*/
);
return
-
1
;
}
}
spin_unlock
/*_irqrestore*/
(
&
i8259_lock
/*, flags*/
);
return
irq
;
return
irq
;
}
}
...
@@ -171,11 +157,13 @@ static struct resource pic_edgectrl_iores = {
...
@@ -171,11 +157,13 @@ static struct resource pic_edgectrl_iores = {
"8259 edge control"
,
0x4d0
,
0x4d1
,
IORESOURCE_BUSY
"8259 edge control"
,
0x4d0
,
0x4d1
,
IORESOURCE_BUSY
};
};
/* i8259_init()
/*
* i8259_init()
* intack_addr - PCI interrupt acknowledge (real) address which will return
* intack_addr - PCI interrupt acknowledge (real) address which will return
* the active irq from the 8259
* the active irq from the 8259
*/
*/
void
__init
i8259_init
(
long
intack_addr
)
void
__init
i8259_init
(
long
intack_addr
)
{
{
unsigned
long
flags
;
unsigned
long
flags
;
...
@@ -209,9 +197,6 @@ void __init i8259_init(long intack_addr)
...
@@ -209,9 +197,6 @@ void __init i8259_init(long intack_addr)
request_resource
(
&
ioport_resource
,
&
pic2_iores
);
request_resource
(
&
ioport_resource
,
&
pic2_iores
);
request_resource
(
&
ioport_resource
,
&
pic_edgectrl_iores
);
request_resource
(
&
ioport_resource
,
&
pic_edgectrl_iores
);
/* XXX remove me after board maintainers fix their i8259_init calls */
if
(
intack_addr
!=
0
)
if
(
intack_addr
==
0
)
pci_intack
=
ioremap
(
intack_addr
,
1
);
panic
(
"You must supply a PCI interrupt acknowledge address to i8259_init()
\n
"
);
pci_intack
=
ioremap
(
intack_addr
,
1
);
}
}
arch/ppc/kernel/open_pic.c
View file @
3d79bc5c
...
@@ -799,26 +799,20 @@ static void openpic_ipi_action(int cpl, void *dev_id, struct pt_regs *regs)
...
@@ -799,26 +799,20 @@ static void openpic_ipi_action(int cpl, void *dev_id, struct pt_regs *regs)
#endif
/* CONFIG_SMP */
#endif
/* CONFIG_SMP */
/* This one may be merged with PReP and CHRP */
int
int
openpic_get_irq
(
struct
pt_regs
*
regs
)
openpic_get_irq
(
struct
pt_regs
*
regs
)
{
{
/*
* Clean up needed. -VAL
*/
int
irq
=
openpic_irq
();
int
irq
=
openpic_irq
();
/* Management of the cascade should be moved out of here */
/*
* This needs to be cleaned up. We don't necessarily have
/* Yep - because openpic !=> i8259, for one thing. -VAL */
* an i8259 cascaded or even a cascade.
if
(
open_pic_irq_offset
&&
irq
==
open_pic_irq_offset
)
*/
{
if
(
open_pic_irq_offset
&&
irq
==
open_pic_irq_offset
)
{
#ifndef CONFIG_GEMINI
/* Get the IRQ from the cascade. */
irq
=
i8259_irq
(
regs
);
/* get IRQ from cascade */
irq
=
i8259_irq
(
regs
);
#endif
openpic_eoi
();
openpic_eoi
();
}
}
else
if
(
irq
==
OPENPIC_VEC_SPURIOUS
+
open_pic_irq_offset
)
if
(
irq
==
OPENPIC_VEC_SPURIOUS
+
open_pic_irq_offset
)
irq
=
-
1
;
irq
=
-
1
;
return
irq
;
return
irq
;
}
}
...
...
arch/ppc/platforms/lopec_pci.c
View file @
3d79bc5c
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Author: Dan Cox
* Author: Dan Cox
* danc@mvista.com (or, alternately, source@mvista.com)
* danc@mvista.com (or, alternately, source@mvista.com)
*
*
* Copyright 2001 MontaVista Software Inc.
* Copyright 2001
-2002
MontaVista Software Inc.
*
*
* 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
...
@@ -14,18 +14,11 @@
...
@@ -14,18 +14,11 @@
* option) any later version.
* option) any later version.
*/
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/pci.h>
#include <linux/pci.h>
#include <linux/slab.h>
#include <asm/machdep.h>
#include <asm/machdep.h>
#include <asm/byteorder.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/uaccess.h>
#include <asm/pci-bridge.h>
#include <asm/pci-bridge.h>
#include <asm/open_pic.h>
#include <asm/mpc10x.h>
#include <asm/mpc10x.h>
static
inline
int
__init
static
inline
int
__init
...
...
arch/ppc/platforms/lopec_setup.c
View file @
3d79bc5c
...
@@ -15,34 +15,23 @@
...
@@ -15,34 +15,23 @@
*/
*/
#include <linux/config.h>
#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/errno.h>
#include <linux/pci.h>
#include <linux/time.h>
#include <linux/types.h>
#include <linux/types.h>
#include <linux/major.h>
#include <linux/delay.h>
#include <linux/kdev_t.h>
#include <linux/pci_ids.h>
#include <linux/ioport.h>
#include <linux/init.h>
#include <linux/ide.h>
#include <linux/ide.h>
#include <linux/irq.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
#include <linux/blk.h>
#include <linux/console.h>
#include <linux/console.h>
#include <asm/system.h>
#include <asm/pgtable.h>
#include <asm/machdep.h>
#include <asm/page.h>
#include <asm/dma.h>
#include <asm/io.h>
#include <asm/io.h>
#include <asm/time.h>
#include <asm/delay.h>
#include <asm/irq.h>
#include <asm/open_pic.h>
#include <asm/open_pic.h>
#include <asm/i8259.h>
#include <asm/i8259.h>
#include <asm/pci-bridge.h>
#include <asm/todc.h>
#include <asm/todc.h>
#include <asm/bootinfo.h>
#include <asm/bootinfo.h>
#include <asm/mpc10x.h>
#include <asm/mpc10x.h>
#include <asm/hw_irq.h>
extern
void
lopec_find_bridges
(
void
);
extern
void
lopec_find_bridges
(
void
);
...
@@ -230,7 +219,7 @@ lopec_init_IRQ(void)
...
@@ -230,7 +219,7 @@ lopec_init_IRQ(void)
i8259_init
(
0xfef00000
);
i8259_init
(
0xfef00000
);
}
}
void
__init
static
int
__init
lopec_request_io
(
void
)
lopec_request_io
(
void
)
{
{
outb
(
0x00
,
0x4d0
);
outb
(
0x00
,
0x4d0
);
...
@@ -242,9 +231,11 @@ lopec_request_io(void)
...
@@ -242,9 +231,11 @@ lopec_request_io(void)
request_region
(
0x80
,
0x10
,
"dma page reg"
);
request_region
(
0x80
,
0x10
,
"dma page reg"
);
request_region
(
0xa0
,
0x20
,
"pic2"
);
request_region
(
0xa0
,
0x20
,
"pic2"
);
request_region
(
0xc0
,
0x20
,
"dma2"
);
request_region
(
0xc0
,
0x20
,
"dma2"
);
return
0
;
}
}
arch
_initcall
(
lopec_request_io
);
device
_initcall
(
lopec_request_io
);
static
void
__init
static
void
__init
lopec_map_io
(
void
)
lopec_map_io
(
void
)
...
...
arch/ppc/platforms/mcpn765_setup.c
View file @
3d79bc5c
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Author: Mark A. Greer
* Author: Mark A. Greer
* mgreer@mvista.com
* mgreer@mvista.com
*
*
* Copyright 2001 MontaVista Software Inc.
* Copyright 2001
-2002
MontaVista Software Inc.
*
*
* 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
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <linux/irq.h>
#include <linux/ide.h>
#include <linux/ide.h>
#include <linux/irq.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
#include <asm/system.h>
#include <asm/system.h>
...
@@ -125,7 +124,7 @@ mcpn765_setup_arch(void)
...
@@ -125,7 +124,7 @@ mcpn765_setup_arch(void)
OpenPIC_NumInitSenses
=
sizeof
(
mcpn765_openpic_initsenses
);
OpenPIC_NumInitSenses
=
sizeof
(
mcpn765_openpic_initsenses
);
printk
(
"Motorola MCG MCPN765 cPCI Non-System Board
\n
"
);
printk
(
"Motorola MCG MCPN765 cPCI Non-System Board
\n
"
);
printk
(
"MCPN765 port (
C) 2001 MontaVista Software, Inc. (source@mvista.com
)
\n
"
);
printk
(
"MCPN765 port (
MontaVista Software, Inc. (source@mvista.com)
)
\n
"
);
if
(
ppc_md
.
progress
)
if
(
ppc_md
.
progress
)
ppc_md
.
progress
(
"mcpn765_setup_arch: exit"
,
0
);
ppc_md
.
progress
(
"mcpn765_setup_arch: exit"
,
0
);
...
...
arch/ppc/platforms/pplus_setup.c
View file @
3d79bc5c
...
@@ -72,7 +72,6 @@
...
@@ -72,7 +72,6 @@
#include <asm/todc.h>
#include <asm/todc.h>
#include <asm/bootinfo.h>
#include <asm/bootinfo.h>
#undef CONFIG_SERIAL_TEXT_DEBUG
#undef DUMP_DBATS
#undef DUMP_DBATS
TODC_ALLOC
();
TODC_ALLOC
();
...
@@ -500,9 +499,7 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
...
@@ -500,9 +499,7 @@ platform_init(unsigned long r3, unsigned long r4, unsigned long r5,
#ifdef CONFIG_SERIAL_TEXT_DEBUG
#ifdef CONFIG_SERIAL_TEXT_DEBUG
ppc_md
.
progress
=
pplus_progress
;
ppc_md
.
progress
=
pplus_progress
;
#else
/* !CONFIG_SERIAL_TEXT_DEBUG */
#endif
ppc_md
.
progress
=
NULL
;
#endif
/* CONFIG_SERIAL_TEXT_DEBUG */
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
ppc_ide_md
.
default_irq
=
pplus_ide_default_irq
;
ppc_ide_md
.
default_irq
=
pplus_ide_default_irq
;
...
...
arch/ppc/platforms/prep_setup.c
View file @
3d79bc5c
...
@@ -117,9 +117,6 @@ prep_show_cpuinfo(struct seq_file *m)
...
@@ -117,9 +117,6 @@ prep_show_cpuinfo(struct seq_file *m)
{
{
extern
char
*
Motherboard_map_name
;
extern
char
*
Motherboard_map_name
;
int
cachew
;
int
cachew
;
#ifdef CONFIG_PREP_RESIDUAL
int
i
;
#endif
seq_printf
(
m
,
"machine
\t\t
: PReP %s
\n
"
,
Motherboard_map_name
);
seq_printf
(
m
,
"machine
\t\t
: PReP %s
\n
"
,
Motherboard_map_name
);
...
@@ -180,6 +177,8 @@ prep_show_cpuinfo(struct seq_file *m)
...
@@ -180,6 +177,8 @@ prep_show_cpuinfo(struct seq_file *m)
no_l2:
no_l2:
#ifdef CONFIG_PREP_RESIDUAL
#ifdef CONFIG_PREP_RESIDUAL
if
(
res
->
ResidualLength
!=
0
)
{
if
(
res
->
ResidualLength
!=
0
)
{
int
i
;
/* print info about SIMMs */
/* print info about SIMMs */
seq_printf
(
m
,
"simms
\t\t
: "
);
seq_printf
(
m
,
"simms
\t\t
: "
);
for
(
i
=
0
;
(
res
->
ActualNumMemories
)
&&
(
i
<
MAX_MEMS
);
i
++
)
{
for
(
i
=
0
;
(
res
->
ActualNumMemories
)
&&
(
i
<
MAX_MEMS
);
i
++
)
{
...
@@ -812,8 +811,8 @@ prep_map_io(void)
...
@@ -812,8 +811,8 @@ prep_map_io(void)
io_block_mapping
(
0xf0000000
,
PREP_ISA_MEM_BASE
,
0x08000000
,
_PAGE_IO
);
io_block_mapping
(
0xf0000000
,
PREP_ISA_MEM_BASE
,
0x08000000
,
_PAGE_IO
);
}
}
static
void
__init
static
int
__init
prep_
init2
(
void
)
prep_
request_io
(
void
)
{
{
#ifdef CONFIG_NVRAM
#ifdef CONFIG_NVRAM
request_region
(
PREP_NVRAM_AS0
,
0x8
,
"nvram"
);
request_region
(
PREP_NVRAM_AS0
,
0x8
,
"nvram"
);
...
@@ -822,8 +821,12 @@ prep_init2(void)
...
@@ -822,8 +821,12 @@ prep_init2(void)
request_region
(
0x40
,
0x20
,
"timer"
);
request_region
(
0x40
,
0x20
,
"timer"
);
request_region
(
0x80
,
0x10
,
"dma page reg"
);
request_region
(
0x80
,
0x10
,
"dma page reg"
);
request_region
(
0xc0
,
0x20
,
"dma2"
);
request_region
(
0xc0
,
0x20
,
"dma2"
);
return
0
;
}
}
device_initcall
(
prep_request_io
);
void
__init
void
__init
prep_init
(
unsigned
long
r3
,
unsigned
long
r4
,
unsigned
long
r5
,
prep_init
(
unsigned
long
r3
,
unsigned
long
r4
,
unsigned
long
r5
,
unsigned
long
r6
,
unsigned
long
r7
)
unsigned
long
r6
,
unsigned
long
r7
)
...
@@ -863,7 +866,6 @@ prep_init(unsigned long r3, unsigned long r4, unsigned long r5,
...
@@ -863,7 +866,6 @@ prep_init(unsigned long r3, unsigned long r4, unsigned long r5,
ppc_md
.
init_IRQ
=
prep_init_IRQ
;
ppc_md
.
init_IRQ
=
prep_init_IRQ
;
/* this gets changed later on if we have an OpenPIC -- Cort */
/* this gets changed later on if we have an OpenPIC -- Cort */
ppc_md
.
get_irq
=
i8259_irq
;
ppc_md
.
get_irq
=
i8259_irq
;
ppc_md
.
init
=
prep_init2
;
ppc_md
.
restart
=
prep_restart
;
ppc_md
.
restart
=
prep_restart
;
ppc_md
.
power_off
=
prep_power_off
;
ppc_md
.
power_off
=
prep_power_off
;
...
...
arch/ppc/platforms/residual.c
View file @
3d79bc5c
...
@@ -876,3 +876,38 @@ PnP_TAG_PACKET __init *PnP_find_large_vendor_packet(unsigned char *p,
...
@@ -876,3 +876,38 @@ PnP_TAG_PACKET __init *PnP_find_large_vendor_packet(unsigned char *p,
};
};
return
0
;
/* not found */
return
0
;
/* not found */
}
}
#ifdef CONFIG_PROC_PREPRESIDUAL
static
int
proc_prep_residual_read
(
char
*
buf
,
char
**
start
,
off_t
off
,
int
count
,
int
*
eof
,
void
*
data
)
{
int
n
;
n
=
res
->
ResidualLength
-
off
;
if
(
n
<
0
)
{
*
eof
=
1
;
n
=
0
;
}
else
{
if
(
n
>
count
)
n
=
count
;
else
*
eof
=
1
;
memcpy
(
buf
,
(
char
*
)
res
+
off
,
n
);
*
start
=
buf
;
}
return
n
;
}
void
__init
proc_prep_residual_init
(
void
)
{
if
(
res
->
ResidualLength
)
create_proc_read_entry
(
"residual"
,
S_IRUGO
,
NULL
,
proc_prep_residual_read
,
NULL
);
}
__initcall
(
proc_prep_residual_init
);
#endif
arch/ppc/platforms/sandpoint_setup.c
View file @
3d79bc5c
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
* Author: Mark A. Greer
* Author: Mark A. Greer
* mgreer@mvista.com
* mgreer@mvista.com
*
*
* Copyright 2000
, 2001
MontaVista Software Inc.
* Copyright 2000
-2002
MontaVista Software Inc.
*
*
* 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
...
@@ -71,7 +71,6 @@
...
@@ -71,7 +71,6 @@
#include <linux/delay.h>
#include <linux/delay.h>
#include <linux/irq.h>
#include <linux/irq.h>
#include <linux/ide.h>
#include <linux/ide.h>
#include <linux/irq.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
#include <asm/system.h>
#include <asm/system.h>
...
@@ -180,7 +179,7 @@ sandpoint_setup_arch(void)
...
@@ -180,7 +179,7 @@ sandpoint_setup_arch(void)
#endif
#endif
printk
(
"Motorola SPS Sandpoint Test Platform
\n
"
);
printk
(
"Motorola SPS Sandpoint Test Platform
\n
"
);
printk
(
"Sandpoint port (
C) 2000, 2001 MontaVista Software, Inc. (source@mvista.com
)
\n
"
);
printk
(
"Sandpoint port (
MontaVista Software, Inc. (source@mvista.com)
)
\n
"
);
/* The Sandpoint rom doesn't enable any caches. Do that now.
/* The Sandpoint rom doesn't enable any caches. Do that now.
* The 7450 portion will also set up the L3s once I get enough
* The 7450 portion will also set up the L3s once I get enough
...
...
include/asm-ppc/i8259.h
View file @
3d79bc5c
...
@@ -9,8 +9,7 @@
...
@@ -9,8 +9,7 @@
extern
struct
hw_interrupt_type
i8259_pic
;
extern
struct
hw_interrupt_type
i8259_pic
;
void
i8259_init
(
long
);
extern
void
i8259_init
(
long
intack_addr
);
int
i8259_irq
(
struct
pt_regs
*
regs
);
extern
int
i8259_irq
(
struct
pt_regs
*
regs
);
int
i8259_poll
(
void
);
#endif
/* _PPC_KERNEL_i8259_H */
#endif
/* _PPC_KERNEL_i8259_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