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
292dcc86
Commit
292dcc86
authored
Oct 02, 2005
by
Paul Mackerras
Browse files
Options
Browse Files
Download
Plain Diff
Merge
rsync://ozlabs.org/sfr-git/for-paulus/
parents
c0c0d996
eeb2d218
Changes
50
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
50 changed files
with
953 additions
and
1810 deletions
+953
-1810
arch/powerpc/Kconfig
arch/powerpc/Kconfig
+9
-3
arch/powerpc/Kconfig.debug
arch/powerpc/Kconfig.debug
+1
-1
arch/powerpc/Makefile
arch/powerpc/Makefile
+16
-12
arch/powerpc/kernel/Makefile
arch/powerpc/kernel/Makefile
+17
-3
arch/powerpc/kernel/asm-offsets.c
arch/powerpc/kernel/asm-offsets.c
+117
-103
arch/powerpc/kernel/head.S
arch/powerpc/kernel/head.S
+42
-42
arch/powerpc/kernel/head_44x.S
arch/powerpc/kernel/head_44x.S
+7
-7
arch/powerpc/kernel/head_4xx.S
arch/powerpc/kernel/head_4xx.S
+26
-26
arch/powerpc/kernel/head_64.S
arch/powerpc/kernel/head_64.S
+6
-3
arch/powerpc/kernel/head_8xx.S
arch/powerpc/kernel/head_8xx.S
+21
-21
arch/powerpc/kernel/head_fsl_booke.S
arch/powerpc/kernel/head_fsl_booke.S
+12
-12
arch/powerpc/kernel/idle_power4.S
arch/powerpc/kernel/idle_power4.S
+2
-3
arch/powerpc/kernel/ppc_ksyms.c
arch/powerpc/kernel/ppc_ksyms.c
+8
-8
arch/powerpc/kernel/traps.c
arch/powerpc/kernel/traps.c
+305
-102
arch/powerpc/kernel/vmlinux.lds
arch/powerpc/kernel/vmlinux.lds
+0
-174
arch/powerpc/kernel/vmlinux.lds.S
arch/powerpc/kernel/vmlinux.lds.S
+176
-14
arch/powerpc/platforms/iseries/call_sm.h
arch/powerpc/platforms/iseries/call_sm.h
+3
-4
arch/powerpc/platforms/iseries/ipl_parms.h
arch/powerpc/platforms/iseries/ipl_parms.h
+3
-4
arch/powerpc/platforms/iseries/irq.c
arch/powerpc/platforms/iseries/irq.c
+2
-1
arch/powerpc/platforms/iseries/irq.h
arch/powerpc/platforms/iseries/irq.h
+3
-3
arch/powerpc/platforms/iseries/lpardata.c
arch/powerpc/platforms/iseries/lpardata.c
+5
-5
arch/powerpc/platforms/iseries/lparmap.c
arch/powerpc/platforms/iseries/lparmap.c
+0
-0
arch/powerpc/platforms/iseries/lpevents.c
arch/powerpc/platforms/iseries/lpevents.c
+2
-0
arch/powerpc/platforms/iseries/main_store.h
arch/powerpc/platforms/iseries/main_store.h
+3
-4
arch/powerpc/platforms/iseries/pci.c
arch/powerpc/platforms/iseries/pci.c
+2
-1
arch/powerpc/platforms/iseries/proc.c
arch/powerpc/platforms/iseries/proc.c
+3
-2
arch/powerpc/platforms/iseries/processor_vpd.h
arch/powerpc/platforms/iseries/processor_vpd.h
+3
-4
arch/powerpc/platforms/iseries/release_data.h
arch/powerpc/platforms/iseries/release_data.h
+3
-4
arch/powerpc/platforms/iseries/setup.c
arch/powerpc/platforms/iseries/setup.c
+5
-5
arch/powerpc/platforms/iseries/spcomm_area.h
arch/powerpc/platforms/iseries/spcomm_area.h
+3
-4
arch/powerpc/platforms/iseries/vpd_areas.h
arch/powerpc/platforms/iseries/vpd_areas.h
+3
-4
arch/ppc/kernel/Makefile
arch/ppc/kernel/Makefile
+2
-0
arch/ppc/kernel/fpu.S
arch/ppc/kernel/fpu.S
+0
-133
arch/ppc/kernel/head.S
arch/ppc/kernel/head.S
+42
-42
arch/ppc/kernel/head_44x.S
arch/ppc/kernel/head_44x.S
+7
-7
arch/ppc/kernel/head_4xx.S
arch/ppc/kernel/head_4xx.S
+26
-26
arch/ppc/kernel/head_8xx.S
arch/ppc/kernel/head_8xx.S
+21
-21
arch/ppc/kernel/head_booke.h
arch/ppc/kernel/head_booke.h
+2
-2
arch/ppc/kernel/head_fsl_booke.S
arch/ppc/kernel/head_fsl_booke.S
+12
-12
arch/ppc/kernel/ppc_ksyms.c
arch/ppc/kernel/ppc_ksyms.c
+8
-8
arch/ppc/kernel/traps.c
arch/ppc/kernel/traps.c
+10
-10
arch/ppc/kernel/vector.S
arch/ppc/kernel/vector.S
+0
-217
arch/ppc/syslib/ibm44x_common.c
arch/ppc/syslib/ibm44x_common.c
+1
-1
arch/ppc/syslib/ppc4xx_setup.c
arch/ppc/syslib/ppc4xx_setup.c
+1
-1
arch/ppc64/Makefile
arch/ppc64/Makefile
+1
-1
arch/ppc64/kernel/Makefile
arch/ppc64/kernel/Makefile
+8
-8
arch/ppc64/kernel/traps.c
arch/ppc64/kernel/traps.c
+0
-568
arch/ppc64/kernel/vector.S
arch/ppc64/kernel/vector.S
+0
-172
include/asm-powerpc/system.h
include/asm-powerpc/system.h
+3
-1
include/asm-ppc/system.h
include/asm-ppc/system.h
+1
-1
No files found.
arch/powerpc/Kconfig
View file @
292dcc86
...
...
@@ -142,8 +142,8 @@ config POWER4
def_bool y
config PPC_FPU
bool
def
ault y if PPC64
depends on PPC32
def
_bool y
config BOOKE
bool
...
...
@@ -317,7 +317,7 @@ config PPC_BPA
config PPC_OF
bool
depends on PPC_MULTIPLATFORM
# for now
depends on PPC_MULTIPLATFORM
|| PPC_ISERIES
default y
config XICS
...
...
@@ -833,6 +833,12 @@ config PIN_TLB
depends on ADVANCED_OPTIONS && 8xx
endmenu
if PPC64
config KERNEL_START
hex
default "0xc000000000000000"
endif
source "net/Kconfig"
source "drivers/Kconfig"
...
...
arch/powerpc/Kconfig.debug
View file @
292dcc86
...
...
@@ -55,7 +55,7 @@ config BDI_SWITCH
config BOOTX_TEXT
bool "Support for early boot text console (BootX or OpenFirmware only)"
depends PPC_OF
depends PPC_OF
&& !PPC_ISERIES
help
Say Y here to see progress messages from the boot firmware in text
mode. Requires either BootX or Open Firmware.
...
...
arch/powerpc/Makefile
View file @
292dcc86
...
...
@@ -121,16 +121,17 @@ head-$(CONFIG_FSL_BOOKE) := arch/powerpc/kernel/head_fsl_booke.o
ifeq
($(CONFIG_PPC32),y)
head-$(CONFIG_6xx)
+=
arch
/powerpc/kernel/idle_6xx.o
head-$(CONFIG_POWER4)
+=
arch
/powerpc/kernel/idle_power4.o
head-$(CONFIG_PPC_FPU)
+=
arch
/powerpc/kernel/fpu.o
endif
core-y
+=
arch
/powerpc/kernel/
\
arch
/
$(OLDARCH)
/kernel/
\
arch
/powerpc/mm/
\
arch
/powerpc/lib/
\
arch
/powerpc/sysdev/
\
arch
/powerpc/platforms/
core-y
+=
arch
/powerpc/kernel/
core-y
+=
arch
/
$(OLDARCH)
/kernel/
core-$(CONFIG_PPC32)
+=
arch
/powerpc/mm/
core-$(CONFIG_PPC64)
+=
arch
/
$(OLDARCH)
/mm/
core-$(CONFIG_PPC32)
+=
arch
/powerpc/lib/
libs-$(CONFIG_PPC64)
+=
arch
/
$(OLDARCH)
/lib/
core-y
+=
arch
/powerpc/sysdev/
core-y
+=
arch
/powerpc/platforms/
core-$(CONFIG_PPC32)
+=
arch
/ppc/syslib/
core-$(CONFIG_MATH_EMULATION)
+=
arch
/ppc/math-emu/
core-$(CONFIG_XMON)
+=
arch
/powerpc/xmon/
...
...
@@ -141,17 +142,20 @@ drivers-$(CONFIG_CPM2) += arch/ppc/8260_io/
drivers-$(CONFIG_OPROFILE)
+=
arch
/powerpc/oprofile/
BOOT_TARGETS
=
zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm
.PHONY
:
$(BOOT_TARGETS)
all
:
uImage zImage
defaultimage-$(CONFIG_PPC32)
:=
uImage zImage
defaultimage-$(CONFIG_PPC_ISERIES)
:=
vmlinux
KBUILD_IMAGE
:=
$
(
defaultimage-y
)
all
:
$(KBUILD_IMAGE)
CPPFLAGS_vmlinux.lds
:=
-Upowerpc
# All the instructions talk about "make bzImage".
bzImage
:
zImage
BOOT_TARGETS
=
zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm
.PHONY
:
$(BOOT_TARGETS)
boot
:=
arch
/
$(OLDARCH)
/boot
$(BOOT_TARGETS)
:
vmlinux
...
...
arch/powerpc/kernel/Makefile
View file @
292dcc86
...
...
@@ -2,17 +2,31 @@
# Makefile for the linux kernel.
#
ifeq
($(CONFIG_PPC64),y)
EXTRA_CFLAGS
+=
-mno-minimal-toc
endif
ifeq
($(CONFIG_PPC32),y)
extra-$(CONFIG_PPC_STD_MMU)
:=
head.o
extra_$(CONFIG_PPC64)
:=
head_64.o
endif
extra-$(CONFIG_PPC64)
:=
head_64.o
extra-$(CONFIG_40x)
:=
head_4xx.o
extra-$(CONFIG_44x)
:=
head_44x.o
extra-$(CONFIG_FSL_BOOKE)
:=
head_fsl_booke.o
extra-$(CONFIG_8xx)
:=
head_8xx.o
extra-$(CONFIG_6xx)
+=
idle_6xx.o
extra-$(CONFIG_POWER4)
+=
idle_power4.o
extra-$(CONFIG_PPC_FPU)
+=
fpu.o
extra-y
+=
vmlinux.lds
obj-y
:=
semaphore.o traps.o process.o
obj-y
:=
traps.o
obj-$(CONFIG_PPC32)
+=
semaphore.o process.o
obj-$(CONFIG_PPC64)
+=
idle_power4.o
ifeq
($(CONFIG_PPC32),y)
obj-$(CONFIG_MODULES)
+=
ppc_ksyms.o
endif
obj-$(CONFIG_ALTIVEC)
+=
vecemu.o vector.o
ifeq
($(CONFIG_PPC_ISERIES),y)
arch/powerpc/kernel/head_64.o
:
arch/powerpc/platforms/iseries/lparmap.s
AFLAGS_head_64.o
+=
-Iarch
/powerpc/platforms/iseries
endif
arch/powerpc/kernel/asm-offsets.c
View file @
292dcc86
This diff is collapsed.
Click to expand it.
arch/powerpc/kernel/head.S
View file @
292dcc86
...
...
@@ -349,12 +349,12 @@ i##n: \
/*
System
reset
*/
/*
core99
pmac
starts
the
seconary
here
by
changing
the
vector
,
and
putting
it
back
to
what
it
was
(
UnknownE
xception
)
when
done
.
*/
putting
it
back
to
what
it
was
(
unknown_e
xception
)
when
done
.
*/
#if defined(CONFIG_GEMINI) && defined(CONFIG_SMP)
.
=
0x100
b
__secondary_start_gemini
#else
EXCEPTION
(0
x100
,
Reset
,
UnknownE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x100
,
Reset
,
unknown_e
xception
,
EXC_XFER_STD
)
#endif
/*
Machine
check
*/
...
...
@@ -389,7 +389,7 @@ i##n: \
cmpwi
cr1
,
r4
,
0
bne
cr1
,
1
f
#endif
EXC_XFER_STD
(0
x200
,
MachineCheckE
xception
)
EXC_XFER_STD
(0
x200
,
machine_check_e
xception
)
#ifdef CONFIG_PPC_CHRP
1
:
b
machine_check_in_rtas
#endif
...
...
@@ -456,10 +456,10 @@ Alignment:
mfspr
r5
,
SPRN_DSISR
stw
r5
,
_DSISR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE
(0
x600
,
AlignmentE
xception
)
EXC_XFER_EE
(0
x600
,
alignment_e
xception
)
/*
Program
check
exception
*/
EXCEPTION
(0
x700
,
ProgramCheck
,
ProgramCheckE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x700
,
ProgramCheck
,
program_check_e
xception
,
EXC_XFER_STD
)
/*
Floating
-
point
unavailable
*/
.
=
0x800
...
...
@@ -472,8 +472,8 @@ FPUnavailable:
/*
Decrementer
*/
EXCEPTION
(0
x900
,
Decrementer
,
timer_interrupt
,
EXC_XFER_LITE
)
EXCEPTION
(0
xa00
,
Trap_0a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xb00
,
Trap_0b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xa00
,
Trap_0a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xb00
,
Trap_0b
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
System
call
*/
.
=
0xc00
...
...
@@ -482,8 +482,8 @@ SystemCall:
EXC_XFER_EE_LITE
(0
xc00
,
DoSyscall
)
/*
Single
step
-
not
used
on
601
*/
EXCEPTION
(0
xd00
,
SingleStep
,
SingleStepE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
xe00
,
Trap_0e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xd00
,
SingleStep
,
single_step_e
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
xe00
,
Trap_0e
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
*
The
Altivec
unavailable
trap
is
at
0x0f20
.
Foo
.
...
...
@@ -502,7 +502,7 @@ SystemCall:
Trap_0f
:
EXCEPTION_PROLOG
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE
(0
xf00
,
UnknownE
xception
)
EXC_XFER_EE
(0
xf00
,
unknown_e
xception
)
/*
*
Handle
TLB
miss
for
instruction
on
603
/
60
3
e
.
...
...
@@ -702,44 +702,44 @@ DataStoreTLBMiss:
rfi
#ifndef CONFIG_ALTIVEC
#define
AltivecAssistException UnknownE
xception
#define
altivec_assist_exception unknown_e
xception
#endif
EXCEPTION
(0
x1300
,
Trap_13
,
InstructionBreakpoint
,
EXC_XFER_EE
)
EXCEPTION
(0
x1300
,
Trap_13
,
instruction_breakpoint_exception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1400
,
SMI
,
SMIException
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
unknown_e
xception
,
EXC_XFER_EE
)
#ifdef CONFIG_POWER4
EXCEPTION
(0
x1600
,
Trap_16
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
AltivecAssistE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
altivec_assist_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
TAUException
,
EXC_XFER_STD
)
#else /* !CONFIG_POWER4 */
EXCEPTION
(0
x1600
,
Trap_16
,
AltivecAssistE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
altivec_assist_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
TAUException
,
EXC_XFER_STD
)
EXCEPTION
(0
x1800
,
Trap_18
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif /* CONFIG_POWER4 */
EXCEPTION
(0
x1900
,
Trap_19
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1a00
,
Trap_1a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1b00
,
Trap_1b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1c00
,
Trap_1c
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1d00
,
Trap_1d
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1e00
,
Trap_1e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1f00
,
Trap_1f
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1a00
,
Trap_1a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1b00
,
Trap_1b
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1c00
,
Trap_1c
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1d00
,
Trap_1d
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1e00
,
Trap_1e
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1f00
,
Trap_1f
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2000
,
RunMode
,
RunModeException
,
EXC_XFER_EE
)
EXCEPTION
(0
x2100
,
Trap_21
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2200
,
Trap_22
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2300
,
Trap_23
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2400
,
Trap_24
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2500
,
Trap_25
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2600
,
Trap_26
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2700
,
Trap_27
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2800
,
Trap_28
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2900
,
Trap_29
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2a00
,
Trap_2a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2b00
,
Trap_2b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2c00
,
Trap_2c
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2d00
,
Trap_2d
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2e00
,
Trap_2e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2f00
,
MOLTrampoline
,
UnknownE
xception
,
EXC_XFER_EE_LITE
)
EXCEPTION
(0
x2100
,
Trap_21
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2200
,
Trap_22
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2300
,
Trap_23
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2400
,
Trap_24
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2500
,
Trap_25
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2600
,
Trap_26
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2700
,
Trap_27
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2800
,
Trap_28
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2900
,
Trap_29
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2a00
,
Trap_2a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2b00
,
Trap_2b
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2c00
,
Trap_2c
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2d00
,
Trap_2d
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2e00
,
Trap_2e
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2f00
,
MOLTrampoline
,
unknown_e
xception
,
EXC_XFER_EE_LITE
)
.
globl
mol_trampoline
.
set
mol_trampoline
,
i0x2f00
...
...
@@ -751,7 +751,7 @@ AltiVecUnavailable:
#ifdef CONFIG_ALTIVEC
bne
load_up_altivec
/*
if
from
user
,
just
load
it
up
*/
#endif /* CONFIG_ALTIVEC */
EXC_XFER_EE_LITE
(0
xf20
,
AltivecUnavailE
xception
)
EXC_XFER_EE_LITE
(0
xf20
,
altivec_unavailable_e
xception
)
#ifdef CONFIG_PPC64BRIDGE
DataAccess
:
...
...
@@ -767,12 +767,12 @@ DataSegment:
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
mfspr
r4
,
SPRN_DAR
stw
r4
,
_DAR
(
r11
)
EXC_XFER_STD
(0
x380
,
UnknownE
xception
)
EXC_XFER_STD
(0
x380
,
unknown_e
xception
)
InstructionSegment
:
EXCEPTION_PROLOG
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_STD
(0
x480
,
UnknownE
xception
)
EXC_XFER_STD
(0
x480
,
unknown_e
xception
)
#endif /* CONFIG_PPC64BRIDGE */
#ifdef CONFIG_ALTIVEC
...
...
arch/powerpc/kernel/head_44x.S
View file @
292dcc86
...
...
@@ -309,13 +309,13 @@ skpinv: addi r4,r4,1 /* Increment */
interrupt_base
:
/
*
Critical
Input
Interrupt
*/
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInput
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInput
,
unknown_e
xception
)
/
*
Machine
Check
Interrupt
*/
#ifdef CONFIG_440A
MCHECK_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
MCHECK_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
#else
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
#endif
/
*
Data
Storage
Interrupt
*/
...
...
@@ -442,7 +442,7 @@ interrupt_base:
#ifdef CONFIG_PPC_FPU
FP_UNAVAILABLE_EXCEPTION
#else
EXCEPTION
(0
x2010
,
FloatingPointUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2010
,
FloatingPointUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif
/
*
System
Call
Interrupt
*/
...
...
@@ -451,21 +451,21 @@ interrupt_base:
EXC_XFER_EE_LITE
(0
x0c00
,
DoSyscall
)
/
*
Auxillary
Processor
Unavailable
Interrupt
*/
EXCEPTION
(0
x2020
,
AuxillaryProcessorUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2020
,
AuxillaryProcessorUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Decrementer
Interrupt
*/
DECREMENTER_EXCEPTION
/
*
Fixed
Internal
Timer
Interrupt
*/
/
*
TODO
:
Add
FIT
support
*/
EXCEPTION
(0
x1010
,
FixedIntervalTimer
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1010
,
FixedIntervalTimer
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Watchdog
Timer
Interrupt
*/
/
*
TODO
:
Add
watchdog
support
*/
#ifdef CONFIG_BOOKE_WDT
CRITICAL_EXCEPTION
(0
x1020
,
WatchdogTimer
,
WatchdogException
)
#else
CRITICAL_EXCEPTION
(0
x1020
,
WatchdogTimer
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x1020
,
WatchdogTimer
,
unknown_e
xception
)
#endif
/
*
Data
TLB
Error
Interrupt
*/
...
...
arch/powerpc/kernel/head_4xx.S
View file @
292dcc86
...
...
@@ -245,12 +245,12 @@ label:
/*
*
0x0100
-
Critical
Interrupt
Exception
*/
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInterrupt
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInterrupt
,
unknown_e
xception
)
/*
*
0x0200
-
Machine
Check
Exception
*/
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
/*
*
0x0300
-
Data
Storage
Exception
...
...
@@ -405,7 +405,7 @@ label:
mfspr
r4
,
SPRN_DEAR
/*
Grab
the
DEAR
and
save
it
*/
stw
r4
,
_DEAR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE
(0
x600
,
AlignmentE
xception
)
EXC_XFER_EE
(0
x600
,
alignment_e
xception
)
/*
0
x0700
-
Program
Exception
*/
START_EXCEPTION
(0
x0700
,
ProgramCheck
)
...
...
@@ -413,21 +413,21 @@ label:
mfspr
r4
,
SPRN_ESR
/*
Grab
the
ESR
and
save
it
*/
stw
r4
,
_ESR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_STD
(0
x700
,
ProgramCheckE
xception
)
EXC_XFER_STD
(0
x700
,
program_check_e
xception
)
EXCEPTION
(0
x0800
,
Trap_08
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0900
,
Trap_09
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0A00
,
Trap_0A
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0B00
,
Trap_0B
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0800
,
Trap_08
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0900
,
Trap_09
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0A00
,
Trap_0A
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0B00
,
Trap_0B
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
0
x0C00
-
System
Call
Exception
*/
START_EXCEPTION
(0
x0C00
,
SystemCall
)
NORMAL_EXCEPTION_PROLOG
EXC_XFER_EE_LITE
(0
xc00
,
DoSyscall
)
EXCEPTION
(0
x0D00
,
Trap_0D
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0E00
,
Trap_0E
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0F00
,
Trap_0F
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0D00
,
Trap_0D
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0E00
,
Trap_0E
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0F00
,
Trap_0F
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
0
x1000
-
Programmable
Interval
Timer
(
PIT
)
Exception
*/
START_EXCEPTION
(0
x1000
,
Decrementer
)
...
...
@@ -444,14 +444,14 @@ label:
/*
0
x1010
-
Fixed
Interval
Timer
(
FIT
)
Exception
*/
STND_EXCEPTION
(0
x1010
,
FITException
,
UnknownE
xception
)
STND_EXCEPTION
(0
x1010
,
FITException
,
unknown_e
xception
)
/*
0
x1020
-
Watchdog
Timer
(
WDT
)
Exception
*/
#ifdef CONFIG_BOOKE_WDT
CRITICAL_EXCEPTION
(0
x1020
,
WDTException
,
WatchdogException
)
#else
CRITICAL_EXCEPTION
(0
x1020
,
WDTException
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x1020
,
WDTException
,
unknown_e
xception
)
#endif
#endif
...
...
@@ -656,25 +656,25 @@ label:
mfspr
r10
,
SPRN_SPRG0
b
InstructionAccess
EXCEPTION
(0
x1300
,
Trap_13
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1400
,
Trap_14
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1300
,
Trap_13
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1400
,
Trap_14
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
unknown_e
xception
,
EXC_XFER_EE
)
#ifdef CONFIG_IBM405_ERR51
/
*
405
GP
errata
51
*/
START_EXCEPTION
(0
x1700
,
Trap_17
)
b
DTLBMiss
#else
EXCEPTION
(0
x1700
,
Trap_17
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif
EXCEPTION
(0
x1800
,
Trap_18
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1A00
,
Trap_1A
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1B00
,
Trap_1B
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1C00
,
Trap_1C
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1D00
,
Trap_1D
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1E00
,
Trap_1E
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1F00
,
Trap_1F
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1A00
,
Trap_1A
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1B00
,
Trap_1B
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1C00
,
Trap_1C
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1D00
,
Trap_1D
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1E00
,
Trap_1E
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1F00
,
Trap_1F
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
Check
for
a
single
step
debug
exception
while
in
an
exception
*
handler
before
state
has
been
saved
.
This
is
to
catch
the
case
...
...
arch/powerpc/kernel/head_64.S
View file @
292dcc86
...
...
@@ -1253,7 +1253,7 @@ unrecov_slb:
*
*
On
iSeries
,
the
hypervisor
must
fill
in
at
least
one
entry
before
*
we
get
control
(
with
relocate
on
)
.
The
address
is
give
to
the
hv
*
as
a
page
number
(
see
xLparMap
in
LparD
ata
.
c
),
so
this
must
be
at
a
*
as
a
page
number
(
see
xLparMap
in
lpard
ata
.
c
),
so
this
must
be
at
a
*
fixed
address
(
the
linker
can
't compute (u64)&initial_stab >>
*
PAGE_SHIFT
)
.
*/
...
...
@@ -1364,6 +1364,7 @@ _STATIC(__start_initialization_iSeries)
addi
r2
,
r2
,
0x4000
bl
.
iSeries_early_setup
bl
.
early_setup
/
*
relocation
is
on
at
this
point
*/
...
...
@@ -1970,20 +1971,22 @@ _GLOBAL(hmt_start_secondary)
blr
#endif
#if defined(CONFIG_KEXEC) ||
(defined(CONFIG_SMP) && !defined(CONFIG_PPC_ISERIES)
)
#if defined(CONFIG_KEXEC) ||
defined(CONFIG_SMP
)
_GLOBAL
(
smp_release_cpus
)
/
*
All
secondary
cpus
are
spinning
on
a
common
*
spinloop
,
release
them
all
now
so
they
can
start
*
to
spin
on
their
individual
paca
spinloops
.
*
For
non
SMP
kernels
,
the
secondary
cpus
never
*
get
out
of
the
common
spinloop
.
*
XXX
This
does
nothing
useful
on
iSeries
,
secondaries
are
*
already
waiting
on
their
paca
.
*/
li
r3
,
1
LOADADDR
(
r5
,
__secondary_hold_spinloop
)
std
r3
,
0
(
r5
)
sync
blr
#endif /* CONFIG_SMP
&& !CONFIG_PPC_ISERIES
*/
#endif /* CONFIG_SMP */
/*
...
...
arch/powerpc/kernel/head_8xx.S
View file @
292dcc86
...
...
@@ -203,7 +203,7 @@ i##n: \
ret_from_except
)
/*
System
reset
*/
EXCEPTION
(0
x100
,
Reset
,
UnknownE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x100
,
Reset
,
unknown_e
xception
,
EXC_XFER_STD
)
/*
Machine
check
*/
.
=
0x200
...
...
@@ -214,7 +214,7 @@ MachineCheck:
mfspr
r5
,
SPRN_DSISR
stw
r5
,
_DSISR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_STD
(0
x200
,
MachineCheckE
xception
)
EXC_XFER_STD
(0
x200
,
machine_check_e
xception
)
/*
Data
access
exception
.
*
This
is
"never generated"
by
the
MPC8xx
.
We
jump
to
it
for
other
...
...
@@ -252,20 +252,20 @@ Alignment:
mfspr
r5
,
SPRN_DSISR
stw
r5
,
_DSISR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE
(0
x600
,
AlignmentE
xception
)
EXC_XFER_EE
(0
x600
,
alignment_e
xception
)
/*
Program
check
exception
*/
EXCEPTION
(0
x700
,
ProgramCheck
,
ProgramCheckE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x700
,
ProgramCheck
,
program_check_e
xception
,
EXC_XFER_STD
)
/*
No
FPU
on
MPC8xx
.
This
exception
is
not
supposed
to
happen
.
*/
EXCEPTION
(0
x800
,
FPUnavailable
,
UnknownE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x800
,
FPUnavailable
,
unknown_e
xception
,
EXC_XFER_STD
)
/*
Decrementer
*/
EXCEPTION
(0
x900
,
Decrementer
,
timer_interrupt
,
EXC_XFER_LITE
)
EXCEPTION
(0
xa00
,
Trap_0a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xb00
,
Trap_0b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xa00
,
Trap_0a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xb00
,
Trap_0b
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
System
call
*/
.
=
0xc00
...
...
@@ -274,9 +274,9 @@ SystemCall:
EXC_XFER_EE_LITE
(0
xc00
,
DoSyscall
)
/*
Single
step
-
not
used
on
601
*/
EXCEPTION
(0
xd00
,
SingleStep
,
SingleStepE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
xe00
,
Trap_0e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xf00
,
Trap_0f
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xd00
,
SingleStep
,
single_step_e
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
xe00
,
Trap_0e
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xf00
,
Trap_0f
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
On
the
MPC8xx
,
this
is
a
software
emulation
interrupt
.
It
occurs
*
for
all
unimplemented
and
illegal
instructions
.
...
...
@@ -540,22 +540,22 @@ DataTLBError:
#endif
b
DataAccess
EXCEPTION
(0
x1500
,
Trap_15
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1a00
,
Trap_1a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1b00
,
Trap_1b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1a00
,
Trap_1a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1b00
,
Trap_1b
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
On
the
MPC8xx
,
these
next
four
traps
are
used
for
development
*
support
of
breakpoints
and
such
.
Someday
I
will
get
around
to
*
using
them
.
*/
EXCEPTION
(0
x1c00
,
Trap_1c
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1d00
,
Trap_1d
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1e00
,
Trap_1e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1f00
,
Trap_1f
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1c00
,
Trap_1c
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1d00
,
Trap_1d
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1e00
,
Trap_1e
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1f00
,
Trap_1f
,
unknown_e
xception
,
EXC_XFER_EE
)
.
=
0x2000
...
...
arch/powerpc/kernel/head_fsl_booke.S
View file @
292dcc86
...
...
@@ -426,14 +426,14 @@ skpinv: addi r6,r6,1 /* Increment */
interrupt_base
:
/
*
Critical
Input
Interrupt
*/
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInput
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInput
,
unknown_e
xception
)
/
*
Machine
Check
Interrupt
*/
#ifdef CONFIG_E200
/
*
no
RFMCI
,
MCSRRs
on
E200
*/
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
#else
MCHECK_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
MCHECK_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
#endif
/
*
Data
Storage
Interrupt
*/
...
...
@@ -542,9 +542,9 @@ interrupt_base:
#else
#ifdef CONFIG_E200
/
*
E200
treats
'normal'
floating
point
instructions
as
FP
Unavail
exception
*/
EXCEPTION
(0
x0800
,
FloatingPointUnavailable
,
ProgramCheckE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0800
,
FloatingPointUnavailable
,
program_check_e
xception
,
EXC_XFER_EE
)
#else
EXCEPTION
(0
x0800
,
FloatingPointUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0800
,
FloatingPointUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif
#endif
...
...
@@ -554,20 +554,20 @@ interrupt_base:
EXC_XFER_EE_LITE
(0
x0c00
,
DoSyscall
)
/
*
Auxillary
Processor
Unavailable
Interrupt
*/
EXCEPTION
(0
x2900
,
AuxillaryProcessorUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2900
,
AuxillaryProcessorUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Decrementer
Interrupt
*/
DECREMENTER_EXCEPTION
/
*
Fixed
Internal
Timer
Interrupt
*/
/
*
TODO
:
Add
FIT
support
*/
EXCEPTION
(0
x3100
,
FixedIntervalTimer
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x3100
,
FixedIntervalTimer
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Watchdog
Timer
Interrupt
*/
#ifdef CONFIG_BOOKE_WDT
CRITICAL_EXCEPTION
(0
x3200
,
WatchdogTimer
,
WatchdogException
)
#else
CRITICAL_EXCEPTION
(0
x3200
,
WatchdogTimer
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x3200
,
WatchdogTimer
,
unknown_e
xception
)
#endif
/
*
Data
TLB
Error
Interrupt
*/
...
...
@@ -696,21 +696,21 @@ interrupt_base:
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE_LITE
(0
x2010
,
KernelSPE
)
#else
EXCEPTION
(0
x2020
,
SPEUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2020
,
SPEUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif /* CONFIG_SPE */
/
*
SPE
Floating
Point
Data
*/
#ifdef CONFIG_SPE
EXCEPTION
(0
x2030
,
SPEFloatingPointData
,
SPEFloatingPointException
,
EXC_XFER_EE
)
;
#else
EXCEPTION
(0
x2040
,
SPEFloatingPointData
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2040
,
SPEFloatingPointData
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif /* CONFIG_SPE */
/
*
SPE
Floating
Point
Round
*/
EXCEPTION
(0
x2050
,
SPEFloatingPointRound
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2050
,
SPEFloatingPointRound
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Performance
Monitor
*/
EXCEPTION
(0
x2060
,
PerformanceMonitor
,
PerformanceMonitorE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x2060
,
PerformanceMonitor
,
performance_monitor_e
xception
,
EXC_XFER_STD
)
/
*
Debug
Interrupt
*/
...
...
arch/p
pc64
/kernel/idle_power4.S
→
arch/p
owerpc
/kernel/idle_power4.S
View file @
292dcc86
...
...
@@ -63,8 +63,8 @@ END_FTR_SECTION_IFCLR(CPU_FTR_CAN_NAP)
beq
1
f
mtmsrd
r7
/*
out
of
line
this
?
*/
blr
1
:
/
*
Go
to
NAP
now
*/
1
:
/
*
Go
to
NAP
now
*/
BEGIN_FTR_SECTION
DSSALL
sync
...
...
@@ -76,4 +76,3 @@ END_FTR_SECTION_IFSET(CPU_FTR_ALTIVEC)
isync
sync
blr
arch/powerpc/kernel/ppc_ksyms.c
View file @
292dcc86
...
...
@@ -53,10 +53,10 @@
extern
void
transfer_to_handler
(
void
);
extern
void
do_IRQ
(
struct
pt_regs
*
regs
);
extern
void
MachineCheckE
xception
(
struct
pt_regs
*
regs
);
extern
void
AlignmentE
xception
(
struct
pt_regs
*
regs
);
extern
void
ProgramCheckE
xception
(
struct
pt_regs
*
regs
);
extern
void
SingleStepE
xception
(
struct
pt_regs
*
regs
);
extern
void
machine_check_e
xception
(
struct
pt_regs
*
regs
);
extern
void
alignment_e
xception
(
struct
pt_regs
*
regs
);
extern
void
program_check_e
xception
(
struct
pt_regs
*
regs
);
extern
void
single_step_e
xception
(
struct
pt_regs
*
regs
);
extern
int
do_signal
(
sigset_t
*
,
struct
pt_regs
*
);
extern
int
pmac_newworld
;
extern
int
sys_sigreturn
(
struct
pt_regs
*
regs
);
...
...
@@ -72,10 +72,10 @@ EXPORT_SYMBOL(clear_user_page);
EXPORT_SYMBOL
(
do_signal
);
EXPORT_SYMBOL
(
transfer_to_handler
);
EXPORT_SYMBOL
(
do_IRQ
);
EXPORT_SYMBOL
(
MachineCheckE
xception
);
EXPORT_SYMBOL
(
AlignmentE
xception
);
EXPORT_SYMBOL
(
ProgramCheckE
xception
);
EXPORT_SYMBOL
(
SingleStepE
xception
);
EXPORT_SYMBOL
(
machine_check_e
xception
);
EXPORT_SYMBOL
(
alignment_e
xception
);
EXPORT_SYMBOL
(
program_check_e
xception
);
EXPORT_SYMBOL
(
single_step_e
xception
);
EXPORT_SYMBOL
(
sys_sigreturn
);
EXPORT_SYMBOL
(
ppc_n_lost_interrupts
);
EXPORT_SYMBOL
(
ppc_lost_interrupts
);
...
...
arch/powerpc/kernel/traps.c
View file @
292dcc86
This diff is collapsed.
Click to expand it.
arch/powerpc/kernel/vmlinux.lds
deleted
100644 → 0
View file @
c0c0d996
/* Align . to a 8 byte boundary equals to maximum function alignment. */
/* sched.text is aling to function alignment to secure we have same
* address even at second ld pass when generating System.map */
/* spinlock.text is aling to function alignment to secure we have same
* address even at second ld pass when generating System.map */
/* DWARF debug sections.
Symbols in the DWARF debugging sections are relative to
the beginning of the section so we begin them at 0. */
/* Stabs debugging sections. */
OUTPUT_ARCH(powerpc:common)
jiffies = jiffies_64 + 4;
SECTIONS
{
/* Read-only sections, merged into text segment: */
. = + SIZEOF_HEADERS;
.interp : { *(.interp) }
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
.dynstr : { *(.dynstr) }
.rel.text : { *(.rel.text) }
.rela.text : { *(.rela.text) }
.rel.data : { *(.rel.data) }
.rela.data : { *(.rela.data) }
.rel.rodata : { *(.rel.rodata) }
.rela.rodata : { *(.rela.rodata) }
.rel.got : { *(.rel.got) }
.rela.got : { *(.rela.got) }
.rel.ctors : { *(.rel.ctors) }
.rela.ctors : { *(.rela.ctors) }
.rel.dtors : { *(.rel.dtors) }
.rela.dtors : { *(.rela.dtors) }
.rel.bss : { *(.rel.bss) }
.rela.bss : { *(.rela.bss) }
.rel.plt : { *(.rel.plt) }
.rela.plt : { *(.rela.plt) }
/* .init : { *(.init) } =0*/
.plt : { *(.plt) }
.text :
{
*(.text)
. = ALIGN(8); __sched_text_start = .; *(.sched.text) __sched_text_end = .;
. = ALIGN(8); __lock_text_start = .; *(.spinlock.text) __lock_text_end = .;
*(.fixup)
*(.got1)
__got2_start = .;
*(.got2)
__got2_end = .;
}
_etext = .;
PROVIDE (etext = .);
.rodata : AT(ADDR(.rodata) - 0) { *(.rodata) *(.rodata.*) *(__vermagic) } .rodata1 : AT(ADDR(.rodata1) - 0) { *(.rodata1) } .pci_fixup : AT(ADDR(.pci_fixup) - 0) { __start_pci_fixups_early = .; *(.pci_fixup_early) __end_pci_fixups_early = .; __start_pci_fixups_header = .; *(.pci_fixup_header) __end_pci_fixups_header = .; __start_pci_fixups_final = .; *(.pci_fixup_final) __end_pci_fixups_final = .; __start_pci_fixups_enable = .; *(.pci_fixup_enable) __end_pci_fixups_enable = .; } __ksymtab : AT(ADDR(__ksymtab) - 0) { __start___ksymtab = .; *(__ksymtab) __stop___ksymtab = .; } __ksymtab_gpl : AT(ADDR(__ksymtab_gpl) - 0) { __start___ksymtab_gpl = .; *(__ksymtab_gpl) __stop___ksymtab_gpl = .; } __kcrctab : AT(ADDR(__kcrctab) - 0) { __start___kcrctab = .; *(__kcrctab) __stop___kcrctab = .; } __kcrctab_gpl : AT(ADDR(__kcrctab_gpl) - 0) { __start___kcrctab_gpl = .; *(__kcrctab_gpl) __stop___kcrctab_gpl = .; } __ksymtab_strings : AT(ADDR(__ksymtab_strings) - 0) { *(__ksymtab_strings) } __param : AT(ADDR(__param) - 0) { __start___param = .; *(__param) __stop___param = .; }
.fini : { *(.fini) } =0
.ctors : { *(.ctors) }
.dtors : { *(.dtors) }
.fixup : { *(.fixup) }
__ex_table : {
__start___ex_table = .;
*(__ex_table)
__stop___ex_table = .;
}
__bug_table : {
__start___bug_table = .;
*(__bug_table)
__stop___bug_table = .;
}
/* Read-write section, merged into data segment: */
. = ALIGN(4096);
.data :
{
*(.data)
*(.data1)
*(.sdata)
*(.sdata2)
*(.got.plt) *(.got)
*(.dynamic)
CONSTRUCTORS
}
. = ALIGN(4096);
__nosave_begin = .;
.data_nosave : { *(.data.nosave) }
. = ALIGN(4096);
__nosave_end = .;
. = ALIGN(32);
.data.cacheline_aligned : { *(.data.cacheline_aligned) }
_edata = .;
PROVIDE (edata = .);
. = ALIGN(8192);
.data.init_task : { *(.data.init_task) }
. = ALIGN(4096);
__init_begin = .;
.init.text : {
_sinittext = .;
*(.init.text)
_einittext = .;
}
/* .exit.text is discarded at runtime, not link time,
to deal with references from __bug_table */
.exit.text : { *(.exit.text) }
.init.data : {
*(.init.data);
__vtop_table_begin = .;
*(.vtop_fixup);
__vtop_table_end = .;
__ptov_table_begin = .;
*(.ptov_fixup);
__ptov_table_end = .;
}
. = ALIGN(16);
__setup_start = .;
.init.setup : { *(.init.setup) }
__setup_end = .;
__initcall_start = .;
.initcall.init : {
*(.initcall1.init)
*(.initcall2.init)
*(.initcall3.init)
*(.initcall4.init)
*(.initcall5.init)
*(.initcall6.init)
*(.initcall7.init)
}
__initcall_end = .;
__con_initcall_start = .;
.con_initcall.init : { *(.con_initcall.init) }
__con_initcall_end = .;
.security_initcall.init : AT(ADDR(.security_initcall.init) - 0) { __security_initcall_start = .; *(.security_initcall.init) __security_initcall_end = .; }
__start___ftr_fixup = .;
__ftr_fixup : { *(__ftr_fixup) }
__stop___ftr_fixup = .;
. = ALIGN(32);
__per_cpu_start = .;
.data.percpu : { *(.data.percpu) }
__per_cpu_end = .;
. = ALIGN(4096);
__initramfs_start = .;
.init.ramfs : { *(.init.ramfs) }
__initramfs_end = .;
. = ALIGN(4096);
__init_end = .;
. = ALIGN(4096);
_sextratext = .;
_eextratext = .;
__bss_start = .;
.bss :
{
*(.sbss) *(.scommon)
*(.dynbss)
*(.bss)
*(COMMON)
}
__bss_stop = .;
_end = . ;
PROVIDE (end = .);
/* Sections to be discarded. */
/DISCARD/ : {
*(.exitcall.exit)
*(.exit.data)
}
}
arch/powerpc/kernel/vmlinux.lds.S
View file @
292dcc86
#include <linux/config.h>
#ifdef CONFIG_PPC64
#include <asm/page.h>
#endif
#include <asm-generic/vmlinux.lds.h>
#ifdef CONFIG_PPC64
OUTPUT_ARCH
(
powerpc
:
common64
)
jiffies
=
jiffies_64
;
#else
OUTPUT_ARCH
(
powerpc
:
common
)
jiffies
=
jiffies_64
+
4
;
#endif
SECTIONS
{
/
*
Sections
to
be
discarded
.
*/
/
DISCARD
/
:
{
*(.
exitcall.exit
)
#ifdef CONFIG_PPC32
*(.
exit.data
)
#endif
}
/
*
Read
-
only
sections
,
merged
into
text
segment
:
*/
#ifdef CONFIG_PPC32
.
=
+
SIZEOF_HEADERS
;
.
interp
:
{
*(
.
interp
)
}
.
hash
:
{
*(
.
hash
)
}
...
...
@@ -28,17 +47,30 @@ SECTIONS
.
rela.plt
:
{
*(
.
rela
.
plt
)
}
/*
.
init
:
{
*(
.
init
)
}
=
0
*/
.
plt
:
{
*(
.
plt
)
}
.
text
:
{
#endif
.
text
:
{
#ifdef CONFIG_PPC64
*(.
text
.
text
.
*)
#else
*(.
text
)
#endif
SCHED_TEXT
LOCK_TEXT
#ifdef CONFIG_PPC64
KPROBES_TEXT
#endif
*(.
fixup
)
#ifdef CONFIG_PPC32
*(.
got1
)
__got2_start
=
.
;
*(.
got2
)
__got2_end
=
.
;
#else
.
=
ALIGN
(
PAGE_SIZE
)
;
_etext
=
.
;
#endif
}
#ifdef CONFIG_PPC32
_etext
=
.
;
PROVIDE
(
etext
=
.
)
;
...
...
@@ -48,6 +80,7 @@ SECTIONS
.
dtors
:
{
*(
.
dtors
)
}
.
fixup
:
{
*(
.
fixup
)
}
#endif
__ex_table
:
{
__start___ex_table
=
.
;
...
...
@@ -61,6 +94,17 @@ SECTIONS
__stop___bug_table
=
.
;
}
#ifdef CONFIG_PPC64
__ftr_fixup
:
{
__start___ftr_fixup
=
.
;
*(
__ftr_fixup
)
__stop___ftr_fixup
=
.
;
}
RODATA
#endif
#ifdef CONFIG_PPC32
/
*
Read
-
write
section
,
merged
into
data
segment
:
*/
.
=
ALIGN
(
4096
)
;
.
data
:
...
...
@@ -90,16 +134,25 @@ SECTIONS
.
data.
init_task
:
{
*(
.
data
.
init_task
)
}
.
=
ALIGN
(
4096
)
;
#else
/
*
will
be
freed
after
init
*/
.
=
ALIGN
(
PAGE_SIZE
)
;
#endif
__init_begin
=
.
;
.
init.text
:
{
_sinittext
=
.
;
*(.
init.text
)
_einittext
=
.
;
}
#ifdef CONFIG_PPC32
/
*
.
exit
.
text
is
discarded
at
runtime
,
not
link
time
,
to
deal
with
references
from
__bug_table
*/
.
exit.text
:
{
*(
.
exit
.
text
)
}
#endif
.
init.data
:
{
#ifdef CONFIG_PPC64
*(.
init.data
)
#else
*(.
init.data
)
;
__vtop_table_begin
=
.
;
*(.
vtop_fixup
)
;
...
...
@@ -107,13 +160,31 @@ SECTIONS
__ptov_table_begin
=
.
;
*(.
ptov_fixup
)
;
__ptov_table_end
=
.
;
#endif
}
.
=
ALIGN
(
16
)
;
#ifdef CONFIG_PPC32
__setup_start
=
.
;
.
init.setup
:
{
*(
.
init
.
setup
)
}
#endif
.
init.setup
:
{
#ifdef CONFIG_PPC64
__setup_start
=
.
;
#endif
*(.
init.setup
)
#ifdef CONFIG_PPC64
__setup_end
=
.
;
#endif
}
#ifdef CONFIG_PPC32
__setup_end
=
.
;
__initcall_start
=
.
;
#endif
.
initcall.init
:
{
#ifdef CONFIG_PPC64
__initcall_start
=
.
;
#endif
*(.
initcall1.init
)
*(.
initcall2.init
)
*(.
initcall3.init
)
...
...
@@ -121,27 +192,109 @@ SECTIONS
*(.
initcall5.init
)
*(.
initcall6.init
)
*(.
initcall7.init
)
#ifdef CONFIG_PPC64
__initcall_end
=
.
;
#endif
}
#ifdef CONFIG_PPC32
__initcall_end
=
.
;
__con_initcall_start
=
.
;
.
con_initcall
.
init
:
{
*(
.
con_initcall
.
init
)
}
#endif
.
con_initcall
.
init
:
{
#ifdef CONFIG_PPC64
__con_initcall_start
=
.
;
#endif
*(.
con_initcall
.
init
)
#ifdef CONFIG_PPC64
__con_initcall_end
=
.
;
#endif
}
#ifdef CONFIG_PPC32
__con_initcall_end
=
.
;
#endif
SECURITY_INIT
#ifdef CONFIG_PPC32
__start___ftr_fixup
=
.
;
__ftr_fixup
:
{
*(
__ftr_fixup
)
}
__stop___ftr_fixup
=
.
;
#else
.
=
ALIGN
(
PAGE_SIZE
)
;
.
init.ramfs
:
{
__initramfs_start
=
.
;
*(.
init.ramfs
)
__initramfs_end
=
.
;
}
#endif
#ifdef CONFIG_PPC32
.
=
ALIGN
(
32
)
;
__per_cpu_start
=
.
;
.
data.percpu
:
{
*(
.
data
.
percpu
)
}
#endif
.
data.percpu
:
{
#ifdef CONFIG_PPC64
__per_cpu_start
=
.
;
#endif
*(.
data.percpu
)
#ifdef CONFIG_PPC64
__per_cpu_end
=
.
;
#endif
}
#ifdef CONFIG_PPC32
__per_cpu_end
=
.
;
#endif
#ifdef CONFIG_PPC64
.
=
ALIGN
(
PAGE_SIZE
)
;
.
=
ALIGN
(
16384
)
;
__init_end
=
.
;
/
*
freed
after
init
ends
here
*/
/
*
Read
/
write
sections
*/
.
=
ALIGN
(
PAGE_SIZE
)
;
.
=
ALIGN
(
16384
)
;
/
*
The
initial
task
and
kernel
stack
*/
.
data.
init_task
:
{
*(.
data.
init_task
)
}
.
=
ALIGN
(
PAGE_SIZE
)
;
.
data.
page_aligned
:
{
*(.
data.
page_aligned
)
}
.
data.
cacheline_aligned
:
{
*(.
data.
cacheline_aligned
)
}
.
data
:
{
*(.
data
.
data
.
rel
*
.
toc1
)
*(.
branch_lt
)
}
.
opd
:
{
*(.
opd
)
}
.
got
:
{
__toc_start
=
.
;
*(.
got
)
*(.
toc
)
.
=
ALIGN
(
PAGE_SIZE
)
;
_edata
=
.
;
}
.
=
ALIGN
(
PAGE_SIZE
)
;
#else
.
=
ALIGN
(
4096
)
;
__initramfs_start
=
.
;
.
init.ramfs
:
{
*(
.
init
.
ramfs
)
}
.
init.ramfs
:
{
*(.
init.ramfs
)
}
__initramfs_end
=
.
;
.
=
ALIGN
(
4096
)
;
...
...
@@ -152,21 +305,30 @@ SECTIONS
_eextratext
=
.
;
__bss_start
=
.
;
.
bss
:
{
#endif
.
bss
:
{
#ifdef CONFIG_PPC64
__bss_start
=
.
;
#else
*(.
sbss
)
*(
.
scommon
)
*(.
dynbss
)
#endif
*(.
bss
)
#ifdef CONFIG_PPC32
*(
COMMON
)
#else
__bss_stop
=
.
;
#endif
}
#ifdef CONFIG_PPC32
__bss_stop
=
.
;
#endif
#ifdef CONFIG_PPC64
.
=
ALIGN
(
PAGE_SIZE
)
;
#endif
_end
=
.
;
#ifdef CONFIG_PPC32
PROVIDE
(
end
=
.
)
;
/
*
Sections
to
be
discarded
.
*/
/
DISCARD
/
:
{
*(.
exitcall.exit
)
*(.
exit.data
)
}
#endif
}
include/asm-ppc64/iSeries/HvCallS
m.h
→
arch/powerpc/platforms/iseries/call_s
m.h
View file @
292dcc86
/*
* HvCallSm.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -16,8 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _
HVCALL
SM_H
#define _
HVCALL
SM_H
#ifndef _
ISERIES_CALL_
SM_H
#define _
ISERIES_CALL_
SM_H
/*
* This file contains the "hypervisor call" interface which is used to
...
...
@@ -35,4 +34,4 @@ static inline u64 HvCallSm_get64BitsOfAccessMap(HvLpIndex lpIndex,
return
HvCall2
(
HvCallSmGet64BitsOfAccessMap
,
lpIndex
,
indexIntoBitMap
);
}
#endif
/* _
HVCALL
SM_H */
#endif
/* _
ISERIES_CALL_
SM_H */
include/asm-ppc64/iSeries/ItIplParmsReal
.h
→
arch/powerpc/platforms/iseries/ipl_parms
.h
View file @
292dcc86
/*
* ItIplParmsReal.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -16,8 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _I
TIPLPARMSREAL
_H
#define _I
TIPLPARMSREAL
_H
#ifndef _I
SERIES_IPL_PARMS
_H
#define _I
SERIES_IPL_PARMS
_H
/*
* This struct maps the IPL Parameters DMA'd from the SP.
...
...
@@ -68,4 +67,4 @@ struct ItIplParmsReal {
extern
struct
ItIplParmsReal
xItIplParmsReal
;
#endif
/* _I
TIPLPARMSREAL
_H */
#endif
/* _I
SERIES_IPL_PARMS
_H */
arch/powerpc/platforms/iseries/irq.c
View file @
292dcc86
...
...
@@ -40,7 +40,8 @@
#include <asm/iSeries/HvLpEvent.h>
#include <asm/iSeries/HvCallPci.h>
#include <asm/iSeries/HvCallXm.h>
#include <asm/iSeries/iSeries_irq.h>
#include "irq.h"
/* This maps virtual irq numbers to real irqs */
unsigned
int
virt_irq_to_real_map
[
NR_IRQS
];
...
...
include/asm-ppc64/iSeries/iSeries_
irq.h
→
arch/powerpc/platforms/iseries/
irq.h
View file @
292dcc86
#ifndef _
_ISERIES_IRQ_H__
#define _
_ISERIES_IRQ_H__
#ifndef _
ISERIES_IRQ_H
#define _
ISERIES_IRQ_H
extern
void
iSeries_init_IRQ
(
void
);
extern
int
iSeries_allocate_IRQ
(
HvBusNumber
,
HvSubBusNumber
,
HvAgentId
);
extern
void
iSeries_activate_IRQs
(
void
);
#endif
/* _
_ISERIES_IRQ_H__
*/
#endif
/* _
ISERIES_IRQ_H
*/
arch/powerpc/platforms/iseries/lpardata.c
View file @
292dcc86
...
...
@@ -19,15 +19,15 @@
#include <asm/lppaca.h>
#include <asm/iSeries/ItLpRegSave.h>
#include <asm/paca.h>
#include <asm/iSeries/HvReleaseData.h>
#include <asm/iSeries/LparMap.h>
#include <asm/iSeries/ItVpdAreas.h>
#include <asm/iSeries/ItIplParmsReal.h>
#include <asm/iSeries/ItExtVpdPanel.h>
#include <asm/iSeries/ItLpQueue.h>
#include <asm/iSeries/IoHriProcessorVpd.h>
#include <asm/iSeries/ItSpCommArea.h>
#include "vpd_areas.h"
#include "spcomm_area.h"
#include "ipl_parms.h"
#include "processor_vpd.h"
#include "release_data.h"
/* The HvReleaseData is the root of the information shared between
* the hypervisor and Linux.
...
...
arch/p
pc64/kernel
/lparmap.c
→
arch/p
owerpc/platforms/iseries
/lparmap.c
View file @
292dcc86
File moved
arch/powerpc/platforms/iseries/lpevents.c
View file @
292dcc86
...
...
@@ -13,6 +13,8 @@
#include <linux/bootmem.h>
#include <linux/seq_file.h>
#include <linux/proc_fs.h>
#include <linux/module.h>
#include <asm/system.h>
#include <asm/paca.h>
#include <asm/iSeries/ItLpQueue.h>
...
...
include/asm-ppc64/iSeries/IoHriMainS
tore.h
→
arch/powerpc/platforms/iseries/main_s
tore.h
View file @
292dcc86
/*
* IoHriMainStore.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -17,8 +16,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _I
OHRIMAIN
STORE_H
#define _I
OHRIMAIN
STORE_H
#ifndef _I
SERIES_MAIN_
STORE_H
#define _I
SERIES_MAIN_
STORE_H
/* Main Store Vpd for Condor,iStar,sStar */
struct
IoHriMainStoreSegment4
{
...
...
@@ -163,4 +162,4 @@ struct IoHriMainStoreSegment5 {
extern
u64
xMsVpd
[];
#endif
/* _I
OHRIMAIN
STORE_H */
#endif
/* _I
SERIES_MAIN_
STORE_H */
arch/powerpc/platforms/iseries/pci.c
View file @
292dcc86
...
...
@@ -37,12 +37,13 @@
#include <asm/iSeries/HvCallPci.h>
#include <asm/iSeries/HvCallXm.h>
#include <asm/iSeries/iSeries_irq.h>
#include <asm/iSeries/iSeries_pci.h>
#include <asm/iSeries/mf.h>
#include <asm/ppc-pci.h>
#include "irq.h"
extern
unsigned
long
io_page_mask
;
/*
...
...
arch/powerpc/platforms/iseries/proc.c
View file @
292dcc86
...
...
@@ -26,8 +26,9 @@
#include <asm/lppaca.h>
#include <asm/iSeries/ItLpQueue.h>
#include <asm/iSeries/HvCallXm.h>
#include <asm/iSeries/IoHriMainStore.h>
#include <asm/iSeries/IoHriProcessorVpd.h>
#include "processor_vpd.h"
#include "main_store.h"
static
int
__init
iseries_proc_create
(
void
)
{
...
...
include/asm-ppc64/iSeries/IoHriProcessorV
pd.h
→
arch/powerpc/platforms/iseries/processor_v
pd.h
View file @
292dcc86
/*
* IoHriProcessorVpd.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -16,8 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _I
OHRIPROCESSOR
VPD_H
#define _I
OHRIPROCESSOR
VPD_H
#ifndef _I
SERIES_PROCESSOR_
VPD_H
#define _I
SERIES_PROCESSOR_
VPD_H
#include <asm/types.h>
...
...
@@ -83,4 +82,4 @@ struct IoHriProcessorVpd {
extern
struct
IoHriProcessorVpd
xIoHriProcessorVpd
[];
#endif
/* _I
OHRIPROCESSOR
VPD_H */
#endif
/* _I
SERIES_PROCESSOR_
VPD_H */
include/asm-ppc64/iSeries/HvReleaseD
ata.h
→
arch/powerpc/platforms/iseries/release_d
ata.h
View file @
292dcc86
/*
* HvReleaseData.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -16,8 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _
HVRELEASE
DATA_H
#define _
HVRELEASE
DATA_H
#ifndef _
ISERIES_RELEASE_
DATA_H
#define _
ISERIES_RELEASE_
DATA_H
/*
* This control block contains the critical information about the
...
...
@@ -61,4 +60,4 @@ struct HvReleaseData {
extern
struct
HvReleaseData
hvReleaseData
;
#endif
/* _
HVRELEASE
DATA_H */
#endif
/* _
ISERIES_RELEASE_
DATA_H */
arch/powerpc/platforms/iseries/setup.c
View file @
292dcc86
...
...
@@ -48,18 +48,18 @@
#include <asm/iSeries/HvCallHpt.h>
#include <asm/iSeries/HvLpConfig.h>
#include <asm/iSeries/HvCallEvent.h>
#include <asm/iSeries/HvCallSm.h>
#include <asm/iSeries/HvCallXm.h>
#include <asm/iSeries/ItLpQueue.h>
#include <asm/iSeries/IoHriMainStore.h>
#include <asm/iSeries/mf.h>
#include <asm/iSeries/HvLpEvent.h>
#include <asm/iSeries/iSeries_irq.h>
#include <asm/iSeries/IoHriProcessorVpd.h>
#include <asm/iSeries/ItVpdAreas.h>
#include <asm/iSeries/LparMap.h>
#include "setup.h"
#include "irq.h"
#include "vpd_areas.h"
#include "processor_vpd.h"
#include "main_store.h"
#include "call_sm.h"
extern
void
hvlog
(
char
*
fmt
,
...);
...
...
include/asm-ppc64/iSeries/ItSpCommA
rea.h
→
arch/powerpc/platforms/iseries/spcomm_a
rea.h
View file @
292dcc86
/*
* ItSpCommArea.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -17,8 +16,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _I
TSPCOMM
AREA_H
#define _I
TSPCOMM
AREA_H
#ifndef _I
SERIES_SPCOMM_
AREA_H
#define _I
SERIES_SPCOMM_
AREA_H
struct
SpCommArea
{
...
...
@@ -34,4 +33,4 @@ struct SpCommArea {
extern
struct
SpCommArea
xSpCommArea
;
#endif
/* _I
TSPCOMM
AREA_H */
#endif
/* _I
SERIES_SPCOMM_
AREA_H */
include/asm-ppc64/iSeries/ItVpdA
reas.h
→
arch/powerpc/platforms/iseries/vpd_a
reas.h
View file @
292dcc86
/*
* ItVpdAreas.h
* Copyright (C) 2001 Mike Corrigan IBM Corporation
*
* This program is free software; you can redistribute it and/or modify
...
...
@@ -16,8 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef _I
TVPD
AREAS_H
#define _I
TVPD
AREAS_H
#ifndef _I
SERIES_VPD_
AREAS_H
#define _I
SERIES_VPD_
AREAS_H
/*
* This file defines the address and length of all of the VPD area passed to
...
...
@@ -86,4 +85,4 @@ struct ItVpdAreas {
extern
struct
ItVpdAreas
itVpdAreas
;
#endif
/* _I
TVPD
AREAS_H */
#endif
/* _I
SERIES_VPD_
AREAS_H */
arch/ppc/kernel/Makefile
View file @
292dcc86
...
...
@@ -38,6 +38,8 @@ endif
# These are here while we do the architecture merge
vecemu-y
+=
../../powerpc/kernel/vecemu.o
vector-y
+=
../../powerpc/kernel/vector.o
fpu-y
+=
../../powerpc/kernel/fpu.o
else
obj-y
:=
entry.o irq.o idle.o time.o misc.o
\
...
...
arch/ppc/kernel/fpu.S
deleted
100644 → 0
View file @
c0c0d996
/*
*
FPU
support
code
,
moved
here
from
head
.
S
so
that
it
can
be
used
*
by
chips
which
use
other
head
-
whatever
.
S
files
.
*
*
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 <linux/config.h>
#include <asm/processor.h>
#include <asm/page.h>
#include <asm/mmu.h>
#include <asm/pgtable.h>
#include <asm/cputable.h>
#include <asm/cache.h>
#include <asm/thread_info.h>
#include <asm/ppc_asm.h>
#include <asm/asm-offsets.h>
/*
*
This
task
wants
to
use
the
FPU
now
.
*
On
UP
,
disable
FP
for
the
task
which
had
the
FPU
previously
,
*
and
save
its
floating
-
point
registers
in
its
thread_struct
.
*
Load
up
this
task
's FP registers from its thread_struct,
*
enable
the
FPU
for
the
current
task
and
return
to
the
task
.
*/
.
globl
load_up_fpu
load_up_fpu
:
mfmsr
r5
ori
r5
,
r5
,
MSR_FP
#ifdef CONFIG_PPC64BRIDGE
clrldi
r5
,
r5
,
1
/*
turn
off
64
-
bit
mode
*/
#endif /* CONFIG_PPC64BRIDGE */
SYNC
MTMSRD
(
r5
)
/*
enable
use
of
fpu
now
*/
isync
/*
*
For
SMP
,
we
don
't do lazy FPU switching because it just gets too
*
horrendously
complex
,
especially
when
a
task
switches
from
one
CPU
*
to
another
.
Instead
we
call
giveup_fpu
in
switch_to
.
*/
#ifndef CONFIG_SMP
tophys
(
r6
,0)
/*
get
__pa
constant
*/
addis
r3
,
r6
,
last_task_used_math
@
ha
lwz
r4
,
last_task_used_math
@
l
(
r3
)
cmpwi
0
,
r4
,
0
beq
1
f
add
r4
,
r4
,
r6
addi
r4
,
r4
,
THREAD
/*
want
last_task_used_math
->
thread
*/
SAVE_32FPRS
(0,
r4
)
mffs
fr0
stfd
fr0
,
THREAD_FPSCR
-
4
(
r4
)
lwz
r5
,
PT_REGS
(
r4
)
add
r5
,
r5
,
r6
lwz
r4
,
_MSR
-
STACK_FRAME_OVERHEAD
(
r5
)
li
r10
,
MSR_FP|MSR_FE0|MSR_FE1
andc
r4
,
r4
,
r10
/*
disable
FP
for
previous
task
*/
stw
r4
,
_MSR
-
STACK_FRAME_OVERHEAD
(
r5
)
1
:
#endif /* CONFIG_SMP */
/
*
enable
use
of
FP
after
return
*/
mfspr
r5
,
SPRN_SPRG3
/*
current
task
's THREAD (phys) */
lwz
r4
,
THREAD_FPEXC_MODE
(
r5
)
ori
r9
,
r9
,
MSR_FP
/*
enable
FP
for
current
*/
or
r9
,
r9
,
r4
lfd
fr0
,
THREAD_FPSCR
-
4
(
r5
)
mtfsf
0xff
,
fr0
REST_32FPRS
(0,
r5
)
#ifndef CONFIG_SMP
subi
r4
,
r5
,
THREAD
sub
r4
,
r4
,
r6
stw
r4
,
last_task_used_math
@
l
(
r3
)
#endif /* CONFIG_SMP */
/
*
restore
registers
and
return
*/
/
*
we
haven
't used ctr or xer or lr */
b
fast_exception_return
/*
*
FP
unavailable
trap
from
kernel
-
print
a
message
,
but
let
*
the
task
use
FP
in
the
kernel
until
it
returns
to
user
mode
.
*/
.
globl
KernelFP
KernelFP
:
lwz
r3
,
_MSR
(
r1
)
ori
r3
,
r3
,
MSR_FP
stw
r3
,
_MSR
(
r1
)
/*
enable
use
of
FP
after
return
*/
lis
r3
,
86
f
@
h
ori
r3
,
r3
,
86
f
@
l
mr
r4
,
r2
/*
current
*/
lwz
r5
,
_NIP
(
r1
)
bl
printk
b
ret_from_except
86
:
.
string
"floating point used in kernel (task=%p, pc=%x)\n"
.
align
4
,
0
/*
*
giveup_fpu
(
tsk
)
*
Disable
FP
for
the
task
given
as
the
argument
,
*
and
save
the
floating
-
point
registers
in
its
thread_struct
.
*
Enables
the
FPU
for
use
in
the
kernel
on
return
.
*/
.
globl
giveup_fpu
giveup_fpu
:
mfmsr
r5
ori
r5
,
r5
,
MSR_FP
SYNC_601
ISYNC_601
MTMSRD
(
r5
)
/*
enable
use
of
fpu
now
*/
SYNC_601
isync
cmpwi
0
,
r3
,
0
beqlr
-
/*
if
no
previous
owner
,
done
*/
addi
r3
,
r3
,
THREAD
/*
want
THREAD
of
task
*/
lwz
r5
,
PT_REGS
(
r3
)
cmpwi
0
,
r5
,
0
SAVE_32FPRS
(0,
r3
)
mffs
fr0
stfd
fr0
,
THREAD_FPSCR
-
4
(
r3
)
beq
1
f
lwz
r4
,
_MSR
-
STACK_FRAME_OVERHEAD
(
r5
)
li
r3
,
MSR_FP|MSR_FE0|MSR_FE1
andc
r4
,
r4
,
r3
/*
disable
FP
for
previous
task
*/
stw
r4
,
_MSR
-
STACK_FRAME_OVERHEAD
(
r5
)
1
:
#ifndef CONFIG_SMP
li
r5
,
0
lis
r4
,
last_task_used_math
@
ha
stw
r5
,
last_task_used_math
@
l
(
r4
)
#endif /* CONFIG_SMP */
blr
arch/ppc/kernel/head.S
View file @
292dcc86
...
...
@@ -349,12 +349,12 @@ i##n: \
/*
System
reset
*/
/*
core99
pmac
starts
the
seconary
here
by
changing
the
vector
,
and
putting
it
back
to
what
it
was
(
UnknownE
xception
)
when
done
.
*/
putting
it
back
to
what
it
was
(
unknown_e
xception
)
when
done
.
*/
#if defined(CONFIG_GEMINI) && defined(CONFIG_SMP)
.
=
0x100
b
__secondary_start_gemini
#else
EXCEPTION
(0
x100
,
Reset
,
UnknownE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x100
,
Reset
,
unknown_e
xception
,
EXC_XFER_STD
)
#endif
/*
Machine
check
*/
...
...
@@ -389,7 +389,7 @@ i##n: \
cmpwi
cr1
,
r4
,
0
bne
cr1
,
1
f
#endif
EXC_XFER_STD
(0
x200
,
MachineCheckE
xception
)
EXC_XFER_STD
(0
x200
,
machine_check_e
xception
)
#ifdef CONFIG_PPC_CHRP
1
:
b
machine_check_in_rtas
#endif
...
...
@@ -456,10 +456,10 @@ Alignment:
mfspr
r5
,
SPRN_DSISR
stw
r5
,
_DSISR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE
(0
x600
,
AlignmentE
xception
)
EXC_XFER_EE
(0
x600
,
alignment_e
xception
)
/*
Program
check
exception
*/
EXCEPTION
(0
x700
,
ProgramCheck
,
ProgramCheckE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x700
,
ProgramCheck
,
program_check_e
xception
,
EXC_XFER_STD
)
/*
Floating
-
point
unavailable
*/
.
=
0x800
...
...
@@ -472,8 +472,8 @@ FPUnavailable:
/*
Decrementer
*/
EXCEPTION
(0
x900
,
Decrementer
,
timer_interrupt
,
EXC_XFER_LITE
)
EXCEPTION
(0
xa00
,
Trap_0a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xb00
,
Trap_0b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xa00
,
Trap_0a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xb00
,
Trap_0b
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
System
call
*/
.
=
0xc00
...
...
@@ -482,8 +482,8 @@ SystemCall:
EXC_XFER_EE_LITE
(0
xc00
,
DoSyscall
)
/*
Single
step
-
not
used
on
601
*/
EXCEPTION
(0
xd00
,
SingleStep
,
SingleStepE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
xe00
,
Trap_0e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xd00
,
SingleStep
,
single_step_e
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
xe00
,
Trap_0e
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
*
The
Altivec
unavailable
trap
is
at
0x0f20
.
Foo
.
...
...
@@ -502,7 +502,7 @@ SystemCall:
Trap_0f
:
EXCEPTION_PROLOG
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE
(0
xf00
,
UnknownE
xception
)
EXC_XFER_EE
(0
xf00
,
unknown_e
xception
)
/*
*
Handle
TLB
miss
for
instruction
on
603
/
60
3
e
.
...
...
@@ -702,44 +702,44 @@ DataStoreTLBMiss:
rfi
#ifndef CONFIG_ALTIVEC
#define
AltivecAssistException UnknownE
xception
#define
altivec_assist_exception unknown_e
xception
#endif
EXCEPTION
(0
x1300
,
Trap_13
,
InstructionBreakpoint
,
EXC_XFER_EE
)
EXCEPTION
(0
x1300
,
Trap_13
,
instruction_breakpoint_exception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1400
,
SMI
,
SMIException
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
unknown_e
xception
,
EXC_XFER_EE
)
#ifdef CONFIG_POWER4
EXCEPTION
(0
x1600
,
Trap_16
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
AltivecAssistE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
altivec_assist_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
TAUException
,
EXC_XFER_STD
)
#else /* !CONFIG_POWER4 */
EXCEPTION
(0
x1600
,
Trap_16
,
AltivecAssistE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
altivec_assist_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
TAUException
,
EXC_XFER_STD
)
EXCEPTION
(0
x1800
,
Trap_18
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif /* CONFIG_POWER4 */
EXCEPTION
(0
x1900
,
Trap_19
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1a00
,
Trap_1a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1b00
,
Trap_1b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1c00
,
Trap_1c
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1d00
,
Trap_1d
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1e00
,
Trap_1e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1f00
,
Trap_1f
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1a00
,
Trap_1a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1b00
,
Trap_1b
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1c00
,
Trap_1c
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1d00
,
Trap_1d
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1e00
,
Trap_1e
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1f00
,
Trap_1f
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2000
,
RunMode
,
RunModeException
,
EXC_XFER_EE
)
EXCEPTION
(0
x2100
,
Trap_21
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2200
,
Trap_22
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2300
,
Trap_23
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2400
,
Trap_24
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2500
,
Trap_25
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2600
,
Trap_26
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2700
,
Trap_27
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2800
,
Trap_28
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2900
,
Trap_29
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2a00
,
Trap_2a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2b00
,
Trap_2b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2c00
,
Trap_2c
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2d00
,
Trap_2d
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2e00
,
Trap_2e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2f00
,
MOLTrampoline
,
UnknownE
xception
,
EXC_XFER_EE_LITE
)
EXCEPTION
(0
x2100
,
Trap_21
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2200
,
Trap_22
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2300
,
Trap_23
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2400
,
Trap_24
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2500
,
Trap_25
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2600
,
Trap_26
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2700
,
Trap_27
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2800
,
Trap_28
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2900
,
Trap_29
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2a00
,
Trap_2a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2b00
,
Trap_2b
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2c00
,
Trap_2c
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2d00
,
Trap_2d
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2e00
,
Trap_2e
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2f00
,
MOLTrampoline
,
unknown_e
xception
,
EXC_XFER_EE_LITE
)
.
globl
mol_trampoline
.
set
mol_trampoline
,
i0x2f00
...
...
@@ -751,7 +751,7 @@ AltiVecUnavailable:
#ifdef CONFIG_ALTIVEC
bne
load_up_altivec
/*
if
from
user
,
just
load
it
up
*/
#endif /* CONFIG_ALTIVEC */
EXC_XFER_EE_LITE
(0
xf20
,
AltivecUnavailE
xception
)
EXC_XFER_EE_LITE
(0
xf20
,
altivec_unavailable_e
xception
)
#ifdef CONFIG_PPC64BRIDGE
DataAccess
:
...
...
@@ -767,12 +767,12 @@ DataSegment:
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
mfspr
r4
,
SPRN_DAR
stw
r4
,
_DAR
(
r11
)
EXC_XFER_STD
(0
x380
,
UnknownE
xception
)
EXC_XFER_STD
(0
x380
,
unknown_e
xception
)
InstructionSegment
:
EXCEPTION_PROLOG
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_STD
(0
x480
,
UnknownE
xception
)
EXC_XFER_STD
(0
x480
,
unknown_e
xception
)
#endif /* CONFIG_PPC64BRIDGE */
#ifdef CONFIG_ALTIVEC
...
...
arch/ppc/kernel/head_44x.S
View file @
292dcc86
...
...
@@ -309,13 +309,13 @@ skpinv: addi r4,r4,1 /* Increment */
interrupt_base
:
/
*
Critical
Input
Interrupt
*/
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInput
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInput
,
unknown_e
xception
)
/
*
Machine
Check
Interrupt
*/
#ifdef CONFIG_440A
MCHECK_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
MCHECK_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
#else
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
#endif
/
*
Data
Storage
Interrupt
*/
...
...
@@ -442,7 +442,7 @@ interrupt_base:
#ifdef CONFIG_PPC_FPU
FP_UNAVAILABLE_EXCEPTION
#else
EXCEPTION
(0
x2010
,
FloatingPointUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2010
,
FloatingPointUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif
/
*
System
Call
Interrupt
*/
...
...
@@ -451,21 +451,21 @@ interrupt_base:
EXC_XFER_EE_LITE
(0
x0c00
,
DoSyscall
)
/
*
Auxillary
Processor
Unavailable
Interrupt
*/
EXCEPTION
(0
x2020
,
AuxillaryProcessorUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2020
,
AuxillaryProcessorUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Decrementer
Interrupt
*/
DECREMENTER_EXCEPTION
/
*
Fixed
Internal
Timer
Interrupt
*/
/
*
TODO
:
Add
FIT
support
*/
EXCEPTION
(0
x1010
,
FixedIntervalTimer
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1010
,
FixedIntervalTimer
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Watchdog
Timer
Interrupt
*/
/
*
TODO
:
Add
watchdog
support
*/
#ifdef CONFIG_BOOKE_WDT
CRITICAL_EXCEPTION
(0
x1020
,
WatchdogTimer
,
WatchdogException
)
#else
CRITICAL_EXCEPTION
(0
x1020
,
WatchdogTimer
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x1020
,
WatchdogTimer
,
unknown_e
xception
)
#endif
/
*
Data
TLB
Error
Interrupt
*/
...
...
arch/ppc/kernel/head_4xx.S
View file @
292dcc86
...
...
@@ -245,12 +245,12 @@ label:
/*
*
0x0100
-
Critical
Interrupt
Exception
*/
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInterrupt
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInterrupt
,
unknown_e
xception
)
/*
*
0x0200
-
Machine
Check
Exception
*/
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
/*
*
0x0300
-
Data
Storage
Exception
...
...
@@ -405,7 +405,7 @@ label:
mfspr
r4
,
SPRN_DEAR
/*
Grab
the
DEAR
and
save
it
*/
stw
r4
,
_DEAR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE
(0
x600
,
AlignmentE
xception
)
EXC_XFER_EE
(0
x600
,
alignment_e
xception
)
/*
0
x0700
-
Program
Exception
*/
START_EXCEPTION
(0
x0700
,
ProgramCheck
)
...
...
@@ -413,21 +413,21 @@ label:
mfspr
r4
,
SPRN_ESR
/*
Grab
the
ESR
and
save
it
*/
stw
r4
,
_ESR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_STD
(0
x700
,
ProgramCheckE
xception
)
EXC_XFER_STD
(0
x700
,
program_check_e
xception
)
EXCEPTION
(0
x0800
,
Trap_08
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0900
,
Trap_09
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0A00
,
Trap_0A
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0B00
,
Trap_0B
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0800
,
Trap_08
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0900
,
Trap_09
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0A00
,
Trap_0A
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0B00
,
Trap_0B
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
0
x0C00
-
System
Call
Exception
*/
START_EXCEPTION
(0
x0C00
,
SystemCall
)
NORMAL_EXCEPTION_PROLOG
EXC_XFER_EE_LITE
(0
xc00
,
DoSyscall
)
EXCEPTION
(0
x0D00
,
Trap_0D
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0E00
,
Trap_0E
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0F00
,
Trap_0F
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0D00
,
Trap_0D
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0E00
,
Trap_0E
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0F00
,
Trap_0F
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
0
x1000
-
Programmable
Interval
Timer
(
PIT
)
Exception
*/
START_EXCEPTION
(0
x1000
,
Decrementer
)
...
...
@@ -444,14 +444,14 @@ label:
/*
0
x1010
-
Fixed
Interval
Timer
(
FIT
)
Exception
*/
STND_EXCEPTION
(0
x1010
,
FITException
,
UnknownE
xception
)
STND_EXCEPTION
(0
x1010
,
FITException
,
unknown_e
xception
)
/*
0
x1020
-
Watchdog
Timer
(
WDT
)
Exception
*/
#ifdef CONFIG_BOOKE_WDT
CRITICAL_EXCEPTION
(0
x1020
,
WDTException
,
WatchdogException
)
#else
CRITICAL_EXCEPTION
(0
x1020
,
WDTException
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x1020
,
WDTException
,
unknown_e
xception
)
#endif
#endif
...
...
@@ -656,25 +656,25 @@ label:
mfspr
r10
,
SPRN_SPRG0
b
InstructionAccess
EXCEPTION
(0
x1300
,
Trap_13
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1400
,
Trap_14
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1300
,
Trap_13
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1400
,
Trap_14
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
unknown_e
xception
,
EXC_XFER_EE
)
#ifdef CONFIG_IBM405_ERR51
/
*
405
GP
errata
51
*/
START_EXCEPTION
(0
x1700
,
Trap_17
)
b
DTLBMiss
#else
EXCEPTION
(0
x1700
,
Trap_17
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif
EXCEPTION
(0
x1800
,
Trap_18
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1A00
,
Trap_1A
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1B00
,
Trap_1B
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1C00
,
Trap_1C
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1D00
,
Trap_1D
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1E00
,
Trap_1E
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1F00
,
Trap_1F
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1A00
,
Trap_1A
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1B00
,
Trap_1B
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1C00
,
Trap_1C
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1D00
,
Trap_1D
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1E00
,
Trap_1E
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1F00
,
Trap_1F
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
Check
for
a
single
step
debug
exception
while
in
an
exception
*
handler
before
state
has
been
saved
.
This
is
to
catch
the
case
...
...
arch/ppc/kernel/head_8xx.S
View file @
292dcc86
...
...
@@ -203,7 +203,7 @@ i##n: \
ret_from_except
)
/*
System
reset
*/
EXCEPTION
(0
x100
,
Reset
,
UnknownE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x100
,
Reset
,
unknown_e
xception
,
EXC_XFER_STD
)
/*
Machine
check
*/
.
=
0x200
...
...
@@ -214,7 +214,7 @@ MachineCheck:
mfspr
r5
,
SPRN_DSISR
stw
r5
,
_DSISR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_STD
(0
x200
,
MachineCheckE
xception
)
EXC_XFER_STD
(0
x200
,
machine_check_e
xception
)
/*
Data
access
exception
.
*
This
is
"never generated"
by
the
MPC8xx
.
We
jump
to
it
for
other
...
...
@@ -252,20 +252,20 @@ Alignment:
mfspr
r5
,
SPRN_DSISR
stw
r5
,
_DSISR
(
r11
)
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE
(0
x600
,
AlignmentE
xception
)
EXC_XFER_EE
(0
x600
,
alignment_e
xception
)
/*
Program
check
exception
*/
EXCEPTION
(0
x700
,
ProgramCheck
,
ProgramCheckE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x700
,
ProgramCheck
,
program_check_e
xception
,
EXC_XFER_STD
)
/*
No
FPU
on
MPC8xx
.
This
exception
is
not
supposed
to
happen
.
*/
EXCEPTION
(0
x800
,
FPUnavailable
,
UnknownE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x800
,
FPUnavailable
,
unknown_e
xception
,
EXC_XFER_STD
)
/*
Decrementer
*/
EXCEPTION
(0
x900
,
Decrementer
,
timer_interrupt
,
EXC_XFER_LITE
)
EXCEPTION
(0
xa00
,
Trap_0a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xb00
,
Trap_0b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xa00
,
Trap_0a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xb00
,
Trap_0b
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
System
call
*/
.
=
0xc00
...
...
@@ -274,9 +274,9 @@ SystemCall:
EXC_XFER_EE_LITE
(0
xc00
,
DoSyscall
)
/*
Single
step
-
not
used
on
601
*/
EXCEPTION
(0
xd00
,
SingleStep
,
SingleStepE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
xe00
,
Trap_0e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xf00
,
Trap_0f
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xd00
,
SingleStep
,
single_step_e
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
xe00
,
Trap_0e
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
xf00
,
Trap_0f
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
On
the
MPC8xx
,
this
is
a
software
emulation
interrupt
.
It
occurs
*
for
all
unimplemented
and
illegal
instructions
.
...
...
@@ -540,22 +540,22 @@ DataTLBError:
#endif
b
DataAccess
EXCEPTION
(0
x1500
,
Trap_15
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1a00
,
Trap_1a
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1b00
,
Trap_1b
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1500
,
Trap_15
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1600
,
Trap_16
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1700
,
Trap_17
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1800
,
Trap_18
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1900
,
Trap_19
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1a00
,
Trap_1a
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1b00
,
Trap_1b
,
unknown_e
xception
,
EXC_XFER_EE
)
/*
On
the
MPC8xx
,
these
next
four
traps
are
used
for
development
*
support
of
breakpoints
and
such
.
Someday
I
will
get
around
to
*
using
them
.
*/
EXCEPTION
(0
x1c00
,
Trap_1c
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1d00
,
Trap_1d
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1e00
,
Trap_1e
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1f00
,
Trap_1f
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1c00
,
Trap_1c
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1d00
,
Trap_1d
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1e00
,
Trap_1e
,
unknown_e
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x1f00
,
Trap_1f
,
unknown_e
xception
,
EXC_XFER_EE
)
.
=
0x2000
...
...
arch/ppc/kernel/head_booke.h
View file @
292dcc86
...
...
@@ -335,7 +335,7 @@
mfspr r4,SPRN_DEAR;
/* Grab the DEAR and save it */
\
stw r4,_DEAR(r11); \
addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_EE(0x0600,
AlignmentE
xception)
EXC_XFER_EE(0x0600,
alignment_e
xception)
#define PROGRAM_EXCEPTION \
START_EXCEPTION(Program) \
...
...
@@ -343,7 +343,7 @@
mfspr r4,SPRN_ESR;
/* Grab the ESR and save it */
\
stw r4,_ESR(r11); \
addi r3,r1,STACK_FRAME_OVERHEAD; \
EXC_XFER_STD(0x0700,
ProgramCheckE
xception)
EXC_XFER_STD(0x0700,
program_check_e
xception)
#define DECREMENTER_EXCEPTION \
START_EXCEPTION(Decrementer) \
...
...
arch/ppc/kernel/head_fsl_booke.S
View file @
292dcc86
...
...
@@ -426,14 +426,14 @@ skpinv: addi r6,r6,1 /* Increment */
interrupt_base
:
/
*
Critical
Input
Interrupt
*/
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInput
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x0100
,
CriticalInput
,
unknown_e
xception
)
/
*
Machine
Check
Interrupt
*/
#ifdef CONFIG_E200
/
*
no
RFMCI
,
MCSRRs
on
E200
*/
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
CRITICAL_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
#else
MCHECK_EXCEPTION
(0
x0200
,
MachineCheck
,
MachineCheckE
xception
)
MCHECK_EXCEPTION
(0
x0200
,
MachineCheck
,
machine_check_e
xception
)
#endif
/
*
Data
Storage
Interrupt
*/
...
...
@@ -542,9 +542,9 @@ interrupt_base:
#else
#ifdef CONFIG_E200
/
*
E200
treats
'normal'
floating
point
instructions
as
FP
Unavail
exception
*/
EXCEPTION
(0
x0800
,
FloatingPointUnavailable
,
ProgramCheckE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0800
,
FloatingPointUnavailable
,
program_check_e
xception
,
EXC_XFER_EE
)
#else
EXCEPTION
(0
x0800
,
FloatingPointUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x0800
,
FloatingPointUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif
#endif
...
...
@@ -554,20 +554,20 @@ interrupt_base:
EXC_XFER_EE_LITE
(0
x0c00
,
DoSyscall
)
/
*
Auxillary
Processor
Unavailable
Interrupt
*/
EXCEPTION
(0
x2900
,
AuxillaryProcessorUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2900
,
AuxillaryProcessorUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Decrementer
Interrupt
*/
DECREMENTER_EXCEPTION
/
*
Fixed
Internal
Timer
Interrupt
*/
/
*
TODO
:
Add
FIT
support
*/
EXCEPTION
(0
x3100
,
FixedIntervalTimer
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x3100
,
FixedIntervalTimer
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Watchdog
Timer
Interrupt
*/
#ifdef CONFIG_BOOKE_WDT
CRITICAL_EXCEPTION
(0
x3200
,
WatchdogTimer
,
WatchdogException
)
#else
CRITICAL_EXCEPTION
(0
x3200
,
WatchdogTimer
,
UnknownE
xception
)
CRITICAL_EXCEPTION
(0
x3200
,
WatchdogTimer
,
unknown_e
xception
)
#endif
/
*
Data
TLB
Error
Interrupt
*/
...
...
@@ -696,21 +696,21 @@ interrupt_base:
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
EXC_XFER_EE_LITE
(0
x2010
,
KernelSPE
)
#else
EXCEPTION
(0
x2020
,
SPEUnavailable
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2020
,
SPEUnavailable
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif /* CONFIG_SPE */
/
*
SPE
Floating
Point
Data
*/
#ifdef CONFIG_SPE
EXCEPTION
(0
x2030
,
SPEFloatingPointData
,
SPEFloatingPointException
,
EXC_XFER_EE
)
;
#else
EXCEPTION
(0
x2040
,
SPEFloatingPointData
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2040
,
SPEFloatingPointData
,
unknown_e
xception
,
EXC_XFER_EE
)
#endif /* CONFIG_SPE */
/
*
SPE
Floating
Point
Round
*/
EXCEPTION
(0
x2050
,
SPEFloatingPointRound
,
UnknownE
xception
,
EXC_XFER_EE
)
EXCEPTION
(0
x2050
,
SPEFloatingPointRound
,
unknown_e
xception
,
EXC_XFER_EE
)
/
*
Performance
Monitor
*/
EXCEPTION
(0
x2060
,
PerformanceMonitor
,
PerformanceMonitorE
xception
,
EXC_XFER_STD
)
EXCEPTION
(0
x2060
,
PerformanceMonitor
,
performance_monitor_e
xception
,
EXC_XFER_STD
)
/
*
Debug
Interrupt
*/
...
...
arch/ppc/kernel/ppc_ksyms.c
View file @
292dcc86
...
...
@@ -53,10 +53,10 @@
extern
void
transfer_to_handler
(
void
);
extern
void
do_IRQ
(
struct
pt_regs
*
regs
);
extern
void
MachineCheckE
xception
(
struct
pt_regs
*
regs
);
extern
void
AlignmentE
xception
(
struct
pt_regs
*
regs
);
extern
void
ProgramCheckE
xception
(
struct
pt_regs
*
regs
);
extern
void
SingleStepE
xception
(
struct
pt_regs
*
regs
);
extern
void
machine_check_e
xception
(
struct
pt_regs
*
regs
);
extern
void
alignment_e
xception
(
struct
pt_regs
*
regs
);
extern
void
program_check_e
xception
(
struct
pt_regs
*
regs
);
extern
void
single_step_e
xception
(
struct
pt_regs
*
regs
);
extern
int
do_signal
(
sigset_t
*
,
struct
pt_regs
*
);
extern
int
pmac_newworld
;
extern
int
sys_sigreturn
(
struct
pt_regs
*
regs
);
...
...
@@ -72,10 +72,10 @@ EXPORT_SYMBOL(clear_user_page);
EXPORT_SYMBOL
(
do_signal
);
EXPORT_SYMBOL
(
transfer_to_handler
);
EXPORT_SYMBOL
(
do_IRQ
);
EXPORT_SYMBOL
(
MachineCheckE
xception
);
EXPORT_SYMBOL
(
AlignmentE
xception
);
EXPORT_SYMBOL
(
ProgramCheckE
xception
);
EXPORT_SYMBOL
(
SingleStepE
xception
);
EXPORT_SYMBOL
(
machine_check_e
xception
);
EXPORT_SYMBOL
(
alignment_e
xception
);
EXPORT_SYMBOL
(
program_check_e
xception
);
EXPORT_SYMBOL
(
single_step_e
xception
);
EXPORT_SYMBOL
(
sys_sigreturn
);
EXPORT_SYMBOL
(
ppc_n_lost_interrupts
);
EXPORT_SYMBOL
(
ppc_lost_interrupts
);
...
...
arch/ppc/kernel/traps.c
View file @
292dcc86
...
...
@@ -74,7 +74,7 @@ void (*debugger_fault_handler)(struct pt_regs *regs);
DEFINE_SPINLOCK
(
die_lock
);
void
die
(
const
char
*
str
,
struct
pt_regs
*
fp
,
long
err
)
int
die
(
const
char
*
str
,
struct
pt_regs
*
fp
,
long
err
)
{
static
int
die_counter
;
int
nl
=
0
;
...
...
@@ -232,7 +232,7 @@ platform_machine_check(struct pt_regs *regs)
{
}
void
MachineCheckE
xception
(
struct
pt_regs
*
regs
)
void
machine_check_e
xception
(
struct
pt_regs
*
regs
)
{
unsigned
long
reason
=
get_mc_reason
(
regs
);
...
...
@@ -393,14 +393,14 @@ void SMIException(struct pt_regs *regs)
#endif
}
void
UnknownE
xception
(
struct
pt_regs
*
regs
)
void
unknown_e
xception
(
struct
pt_regs
*
regs
)
{
printk
(
"Bad trap at PC: %lx, MSR: %lx, vector=%lx %s
\n
"
,
regs
->
nip
,
regs
->
msr
,
regs
->
trap
,
print_tainted
());
_exception
(
SIGTRAP
,
regs
,
0
,
0
);
}
void
InstructionBreakpoint
(
struct
pt_regs
*
regs
)
void
instruction_breakpoint_exception
(
struct
pt_regs
*
regs
)
{
if
(
debugger_iabr_match
(
regs
))
return
;
...
...
@@ -622,7 +622,7 @@ int check_bug_trap(struct pt_regs *regs)
return
0
;
}
void
ProgramCheckE
xception
(
struct
pt_regs
*
regs
)
void
program_check_e
xception
(
struct
pt_regs
*
regs
)
{
unsigned
int
reason
=
get_reason
(
regs
);
extern
int
do_mathemu
(
struct
pt_regs
*
regs
);
...
...
@@ -701,7 +701,7 @@ void ProgramCheckException(struct pt_regs *regs)
_exception
(
SIGILL
,
regs
,
ILL_ILLOPC
,
regs
->
nip
);
}
void
SingleStepE
xception
(
struct
pt_regs
*
regs
)
void
single_step_e
xception
(
struct
pt_regs
*
regs
)
{
regs
->
msr
&=
~
(
MSR_SE
|
MSR_BE
);
/* Turn off 'trace' bits */
if
(
debugger_sstep
(
regs
))
...
...
@@ -709,7 +709,7 @@ void SingleStepException(struct pt_regs *regs)
_exception
(
SIGTRAP
,
regs
,
TRAP_TRACE
,
0
);
}
void
AlignmentE
xception
(
struct
pt_regs
*
regs
)
void
alignment_e
xception
(
struct
pt_regs
*
regs
)
{
int
fixed
;
...
...
@@ -814,7 +814,7 @@ void TAUException(struct pt_regs *regs)
}
#endif
/* CONFIG_INT_TAU */
void
AltivecUnavailE
xception
(
struct
pt_regs
*
regs
)
void
altivec_unavailable_e
xception
(
struct
pt_regs
*
regs
)
{
static
int
kernel_altivec_count
;
...
...
@@ -835,7 +835,7 @@ void AltivecUnavailException(struct pt_regs *regs)
}
#ifdef CONFIG_ALTIVEC
void
AltivecAssistE
xception
(
struct
pt_regs
*
regs
)
void
altivec_assist_e
xception
(
struct
pt_regs
*
regs
)
{
int
err
;
...
...
@@ -872,7 +872,7 @@ void AltivecAssistException(struct pt_regs *regs)
#endif
/* CONFIG_ALTIVEC */
#ifdef CONFIG_E500
void
PerformanceMonitorE
xception
(
struct
pt_regs
*
regs
)
void
performance_monitor_e
xception
(
struct
pt_regs
*
regs
)
{
perf_irq
(
regs
);
}
...
...
arch/ppc/kernel/vector.S
deleted
100644 → 0
View file @
c0c0d996
#include <asm/ppc_asm.h>
#include <asm/processor.h>
/*
*
The
routines
below
are
in
assembler
so
we
can
closely
control
the
*
usage
of
floating
-
point
registers
.
These
routines
must
be
called
*
with
preempt
disabled
.
*/
.
data
fpzero
:
.
long
0
fpone
:
.
long
0x3f800000
/*
1
.0
in
single
-
precision
FP
*/
fphalf
:
.
long
0x3f000000
/*
0
.5
in
single
-
precision
FP
*/
.
text
/*
*
Internal
routine
to
enable
floating
point
and
set
FPSCR
to
0
.
*
Don
't call it from C; it doesn'
t
use
the
normal
calling
convention
.
*/
fpenable
:
mfmsr
r10
ori
r11
,
r10
,
MSR_FP
mtmsr
r11
isync
stfd
fr0
,
24
(
r1
)
stfd
fr1
,
16
(
r1
)
stfd
fr31
,
8
(
r1
)
lis
r11
,
fpzero
@
ha
mffs
fr31
lfs
fr1
,
fpzero
@
l
(
r11
)
mtfsf
0xff
,
fr1
blr
fpdisable
:
mtfsf
0xff
,
fr31
lfd
fr31
,
8
(
r1
)
lfd
fr1
,
16
(
r1
)
lfd
fr0
,
24
(
r1
)
mtmsr
r10
isync
blr
/*
*
Vector
add
,
floating
point
.
*/
.
globl
vaddfp
vaddfp
:
stwu
r1
,-
32
(
r1
)
mflr
r0
stw
r0
,
36
(
r1
)
bl
fpenable
li
r0
,
4
mtctr
r0
li
r6
,
0
1
:
lfsx
fr0
,
r4
,
r6
lfsx
fr1
,
r5
,
r6
fadds
fr0
,
fr0
,
fr1
stfsx
fr0
,
r3
,
r6
addi
r6
,
r6
,
4
bdnz
1
b
bl
fpdisable
lwz
r0
,
36
(
r1
)
mtlr
r0
addi
r1
,
r1
,
32
blr
/*
*
Vector
subtract
,
floating
point
.
*/
.
globl
vsubfp
vsubfp
:
stwu
r1
,-
32
(
r1
)
mflr
r0
stw
r0
,
36
(
r1
)
bl
fpenable
li
r0
,
4
mtctr
r0
li
r6
,
0
1
:
lfsx
fr0
,
r4
,
r6
lfsx
fr1
,
r5
,
r6
fsubs
fr0
,
fr0
,
fr1
stfsx
fr0
,
r3
,
r6
addi
r6
,
r6
,
4
bdnz
1
b
bl
fpdisable
lwz
r0
,
36
(
r1
)
mtlr
r0
addi
r1
,
r1
,
32
blr
/*
*
Vector
multiply
and
add
,
floating
point
.
*/
.
globl
vmaddfp
vmaddfp
:
stwu
r1
,-
48
(
r1
)
mflr
r0
stw
r0
,
52
(
r1
)
bl
fpenable
stfd
fr2
,
32
(
r1
)
li
r0
,
4
mtctr
r0
li
r7
,
0
1
:
lfsx
fr0
,
r4
,
r7
lfsx
fr1
,
r5
,
r7
lfsx
fr2
,
r6
,
r7
fmadds
fr0
,
fr0
,
fr2
,
fr1
stfsx
fr0
,
r3
,
r7
addi
r7
,
r7
,
4
bdnz
1
b
lfd
fr2
,
32
(
r1
)
bl
fpdisable
lwz
r0
,
52
(
r1
)
mtlr
r0
addi
r1
,
r1
,
48
blr
/*
*
Vector
negative
multiply
and
subtract
,
floating
point
.
*/
.
globl
vnmsubfp
vnmsubfp
:
stwu
r1
,-
48
(
r1
)
mflr
r0
stw
r0
,
52
(
r1
)
bl
fpenable
stfd
fr2
,
32
(
r1
)
li
r0
,
4
mtctr
r0
li
r7
,
0
1
:
lfsx
fr0
,
r4
,
r7
lfsx
fr1
,
r5
,
r7
lfsx
fr2
,
r6
,
r7
fnmsubs
fr0
,
fr0
,
fr2
,
fr1
stfsx
fr0
,
r3
,
r7
addi
r7
,
r7
,
4
bdnz
1
b
lfd
fr2
,
32
(
r1
)
bl
fpdisable
lwz
r0
,
52
(
r1
)
mtlr
r0
addi
r1
,
r1
,
48
blr
/*
*
Vector
reciprocal
estimate
.
We
just
compute
1
.0
/
x
.
*
r3
->
destination
,
r4
->
source
.
*/
.
globl
vrefp
vrefp
:
stwu
r1
,-
32
(
r1
)
mflr
r0
stw
r0
,
36
(
r1
)
bl
fpenable
lis
r9
,
fpone
@
ha
li
r0
,
4
lfs
fr1
,
fpone
@
l
(
r9
)
mtctr
r0
li
r6
,
0
1
:
lfsx
fr0
,
r4
,
r6
fdivs
fr0
,
fr1
,
fr0
stfsx
fr0
,
r3
,
r6
addi
r6
,
r6
,
4
bdnz
1
b
bl
fpdisable
lwz
r0
,
36
(
r1
)
mtlr
r0
addi
r1
,
r1
,
32
blr
/*
*
Vector
reciprocal
square
-
root
estimate
,
floating
point
.
*
We
use
the
frsqrte
instruction
for
the
initial
estimate
followed
*
by
2
iterations
of
Newton
-
Raphson
to
get
sufficient
accuracy
.
*
r3
->
destination
,
r4
->
source
.
*/
.
globl
vrsqrtefp
vrsqrtefp
:
stwu
r1
,-
48
(
r1
)
mflr
r0
stw
r0
,
52
(
r1
)
bl
fpenable
stfd
fr2
,
32
(
r1
)
stfd
fr3
,
40
(
r1
)
stfd
fr4
,
48
(
r1
)
stfd
fr5
,
56
(
r1
)
lis
r9
,
fpone
@
ha
lis
r8
,
fphalf
@
ha
li
r0
,
4
lfs
fr4
,
fpone
@
l
(
r9
)
lfs
fr5
,
fphalf
@
l
(
r8
)
mtctr
r0
li
r6
,
0
1
:
lfsx
fr0
,
r4
,
r6
frsqrte
fr1
,
fr0
/*
r
=
frsqrte
(
s
)
*/
fmuls
fr3
,
fr1
,
fr0
/*
r
*
s
*/
fmuls
fr2
,
fr1
,
fr5
/*
r
*
0
.5
*/
fnmsubs
fr3
,
fr1
,
fr3
,
fr4
/*
1
-
s
*
r
*
r
*/
fmadds
fr1
,
fr2
,
fr3
,
fr1
/*
r
=
r
+
0
.5
*
r
*
(
1
-
s
*
r
*
r
)
*/
fmuls
fr3
,
fr1
,
fr0
/*
r
*
s
*/
fmuls
fr2
,
fr1
,
fr5
/*
r
*
0
.5
*/
fnmsubs
fr3
,
fr1
,
fr3
,
fr4
/*
1
-
s
*
r
*
r
*/
fmadds
fr1
,
fr2
,
fr3
,
fr1
/*
r
=
r
+
0
.5
*
r
*
(
1
-
s
*
r
*
r
)
*/
stfsx
fr1
,
r3
,
r6
addi
r6
,
r6
,
4
bdnz
1
b
lfd
fr5
,
56
(
r1
)
lfd
fr4
,
48
(
r1
)
lfd
fr3
,
40
(
r1
)
lfd
fr2
,
32
(
r1
)
bl
fpdisable
lwz
r0
,
36
(
r1
)
mtlr
r0
addi
r1
,
r1
,
32
blr
arch/ppc/syslib/ibm44x_common.c
View file @
292dcc86
...
...
@@ -178,7 +178,7 @@ void __init ibm44x_platform_init(void)
#endif
}
/* Called from
MachineCheckE
xception */
/* Called from
machine_check_e
xception */
void
platform_machine_check
(
struct
pt_regs
*
regs
)
{
printk
(
"PLB0: BEAR=0x%08x%08x ACR= 0x%08x BESR= 0x%08x
\n
"
,
...
...
arch/ppc/syslib/ppc4xx_setup.c
View file @
292dcc86
...
...
@@ -279,7 +279,7 @@ ppc4xx_init(unsigned long r3, unsigned long r4, unsigned long r5,
#endif
/* defined(CONFIG_PCI) && defined(CONFIG_IDE) */
}
/* Called from
MachineCheckE
xception */
/* Called from
machine_check_e
xception */
void
platform_machine_check
(
struct
pt_regs
*
regs
)
{
#if defined(DCRN_PLB0_BEAR)
...
...
arch/ppc64/Makefile
View file @
292dcc86
...
...
@@ -82,7 +82,7 @@ CFLAGS += $(call cc-option,-funit-at-a-time)
head-y
:=
arch
/ppc64/kernel/head.o
libs-y
+=
arch
/ppc64/lib/
core-y
+=
arch
/ppc64/kernel/
core-y
+=
arch
/ppc64/kernel/
arch
/powerpc/kernel/
core-y
+=
arch
/ppc64/mm/
core-y
+=
arch
/powerpc/platforms/
core-$(CONFIG_XMON)
+=
arch
/ppc64/xmon/
...
...
arch/ppc64/kernel/Makefile
View file @
292dcc86
...
...
@@ -3,14 +3,16 @@
#
EXTRA_CFLAGS
+=
-mno-minimal-toc
ifneq
($(CONFIG_PPC_MERGE),y)
extra-y
:=
head.o vmlinux.lds
endif
obj-y
:=
setup.o entry.o
traps.o
irq.o idle.o dma.o
\
obj-y
:=
setup.o entry.o irq.o idle.o dma.o
\
time.o process.o signal.o syscalls.o misc.o ptrace.o
\
align.o semaphore.o bitops.o pacaData.o
\
udbg.o binfmt_elf32.o sys_ppc32.o ioctl32.o
\
ptrace32.o signal32.o rtc.o init_task.o
\
lmb.o cputable.o cpu_setup_power4.o
idle_power4.o
\
lmb.o cputable.o cpu_setup_power4.o
\
iommu.o sysfs.o vdso.o pmc.o firmware.o prom.o
obj-y
+=
vdso32/ vdso64/
...
...
@@ -64,15 +66,13 @@ obj-$(CONFIG_PPC_BPA) += pSeries_smp.o
obj-$(CONFIG_PPC_MAPLE)
+=
smp-tbsync.o
endif
obj-$(CONFIG_ALTIVEC)
+=
vecemu.o vector.o
obj-$(CONFIG_KPROBES)
+=
kprobes.o
CFLAGS_ioctl32.o
+=
-Ifs
/
ifneq
($(CONFIG_PPC_MERGE),y)
ifeq
($(CONFIG_PPC_ISERIES),y)
arch/ppc64/kernel/head.o
:
arch/ppc64/kernel/lparmap.s
AFLAGS_head.o
+=
-Iarch
/ppc64/kernel
arch/ppc64/kernel/head.o
:
arch/powerpc/platforms/iseries/lparmap.s
AFLAGS_head.o
+=
-Iarch
/powerpc/platforms/iseries
endif
endif
# These are here while we do the architecture merge
vecemu-y
+=
../../powerpc/kernel/vecemu.o
arch/ppc64/kernel/traps.c
deleted
100644 → 0
View file @
c0c0d996
This diff is collapsed.
Click to expand it.
arch/ppc64/kernel/vector.S
deleted
100644 → 0
View file @
c0c0d996
#include <asm/ppc_asm.h>
#include <asm/processor.h>
/*
*
The
routines
below
are
in
assembler
so
we
can
closely
control
the
*
usage
of
floating
-
point
registers
.
These
routines
must
be
called
*
with
preempt
disabled
.
*/
.
section
".toc"
,
"aw"
fpzero
:
.
tc
FD_0_0
[
TC
],
0
fpone
:
.
tc
FD_3ff00000_0
[
TC
],
0x3ff0000000000000
/*
1
.0
*/
fphalf
:
.
tc
FD_3fe00000_0
[
TC
],
0x3fe0000000000000
/*
0
.5
*/
.
text
/*
*
Internal
routine
to
enable
floating
point
and
set
FPSCR
to
0
.
*
Don
't call it from C; it doesn'
t
use
the
normal
calling
convention
.
*/
fpenable
:
mfmsr
r10
ori
r11
,
r10
,
MSR_FP
mtmsr
r11
isync
stfd
fr31
,-
8
(
r1
)
stfd
fr0
,-
16
(
r1
)
stfd
fr1
,-
24
(
r1
)
mffs
fr31
lfd
fr1
,
fpzero
@
toc
(
r2
)
mtfsf
0xff
,
fr1
blr
fpdisable
:
mtlr
r12
mtfsf
0xff
,
fr31
lfd
fr1
,-
24
(
r1
)
lfd
fr0
,-
16
(
r1
)
lfd
fr31
,-
8
(
r1
)
mtmsr
r10
isync
blr
/*
*
Vector
add
,
floating
point
.
*/
_GLOBAL
(
vaddfp
)
mflr
r12
bl
fpenable
li
r0
,
4
mtctr
r0
li
r6
,
0
1
:
lfsx
fr0
,
r4
,
r6
lfsx
fr1
,
r5
,
r6
fadds
fr0
,
fr0
,
fr1
stfsx
fr0
,
r3
,
r6
addi
r6
,
r6
,
4
bdnz
1
b
b
fpdisable
/*
*
Vector
subtract
,
floating
point
.
*/
_GLOBAL
(
vsubfp
)
mflr
r12
bl
fpenable
li
r0
,
4
mtctr
r0
li
r6
,
0
1
:
lfsx
fr0
,
r4
,
r6
lfsx
fr1
,
r5
,
r6
fsubs
fr0
,
fr0
,
fr1
stfsx
fr0
,
r3
,
r6
addi
r6
,
r6
,
4
bdnz
1
b
b
fpdisable
/*
*
Vector
multiply
and
add
,
floating
point
.
*/
_GLOBAL
(
vmaddfp
)
mflr
r12
bl
fpenable
stfd
fr2
,-
32
(
r1
)
li
r0
,
4
mtctr
r0
li
r7
,
0
1
:
lfsx
fr0
,
r4
,
r7
lfsx
fr1
,
r5
,
r7
lfsx
fr2
,
r6
,
r7
fmadds
fr0
,
fr0
,
fr2
,
fr1
stfsx
fr0
,
r3
,
r7
addi
r7
,
r7
,
4
bdnz
1
b
lfd
fr2
,-
32
(
r1
)
b
fpdisable
/*
*
Vector
negative
multiply
and
subtract
,
floating
point
.
*/
_GLOBAL
(
vnmsubfp
)
mflr
r12
bl
fpenable
stfd
fr2
,-
32
(
r1
)
li
r0
,
4
mtctr
r0
li
r7
,
0
1
:
lfsx
fr0
,
r4
,
r7
lfsx
fr1
,
r5
,
r7
lfsx
fr2
,
r6
,
r7
fnmsubs
fr0
,
fr0
,
fr2
,
fr1
stfsx
fr0
,
r3
,
r7
addi
r7
,
r7
,
4
bdnz
1
b
lfd
fr2
,-
32
(
r1
)
b
fpdisable
/*
*
Vector
reciprocal
estimate
.
We
just
compute
1
.0
/
x
.
*
r3
->
destination
,
r4
->
source
.
*/
_GLOBAL
(
vrefp
)
mflr
r12
bl
fpenable
li
r0
,
4
lfd
fr1
,
fpone
@
toc
(
r2
)
mtctr
r0
li
r6
,
0
1
:
lfsx
fr0
,
r4
,
r6
fdivs
fr0
,
fr1
,
fr0
stfsx
fr0
,
r3
,
r6
addi
r6
,
r6
,
4
bdnz
1
b
b
fpdisable
/*
*
Vector
reciprocal
square
-
root
estimate
,
floating
point
.
*
We
use
the
frsqrte
instruction
for
the
initial
estimate
followed
*
by
2
iterations
of
Newton
-
Raphson
to
get
sufficient
accuracy
.
*
r3
->
destination
,
r4
->
source
.
*/
_GLOBAL
(
vrsqrtefp
)
mflr
r12
bl
fpenable
stfd
fr2
,-
32
(
r1
)
stfd
fr3
,-
40
(
r1
)
stfd
fr4
,-
48
(
r1
)
stfd
fr5
,-
56
(
r1
)
li
r0
,
4
lfd
fr4
,
fpone
@
toc
(
r2
)
lfd
fr5
,
fphalf
@
toc
(
r2
)
mtctr
r0
li
r6
,
0
1
:
lfsx
fr0
,
r4
,
r6
frsqrte
fr1
,
fr0
/*
r
=
frsqrte
(
s
)
*/
fmuls
fr3
,
fr1
,
fr0
/*
r
*
s
*/
fmuls
fr2
,
fr1
,
fr5
/*
r
*
0
.5
*/
fnmsubs
fr3
,
fr1
,
fr3
,
fr4
/*
1
-
s
*
r
*
r
*/
fmadds
fr1
,
fr2
,
fr3
,
fr1
/*
r
=
r
+
0
.5
*
r
*
(
1
-
s
*
r
*
r
)
*/
fmuls
fr3
,
fr1
,
fr0
/*
r
*
s
*/
fmuls
fr2
,
fr1
,
fr5
/*
r
*
0
.5
*/
fnmsubs
fr3
,
fr1
,
fr3
,
fr4
/*
1
-
s
*
r
*
r
*/
fmadds
fr1
,
fr2
,
fr3
,
fr1
/*
r
=
r
+
0
.5
*
r
*
(
1
-
s
*
r
*
r
)
*/
stfsx
fr1
,
r3
,
r6
addi
r6
,
r6
,
4
bdnz
1
b
lfd
fr5
,-
56
(
r1
)
lfd
fr4
,-
48
(
r1
)
lfd
fr3
,-
40
(
r1
)
lfd
fr2
,-
32
(
r1
)
b
fpdisable
include/asm-powerpc/system.h
View file @
292dcc86
...
...
@@ -118,10 +118,10 @@ extern void _set_L3CR(unsigned long);
#endif
extern
void
via_cuda_init
(
void
);
extern
void
pmac_nvram_init
(
void
);
extern
void
read_rtc_time
(
void
);
extern
void
pmac_find_display
(
void
);
extern
void
giveup_fpu
(
struct
task_struct
*
);
extern
void
disable_kernel_fp
(
void
);
extern
void
enable_kernel_fp
(
void
);
extern
void
flush_fp_to_thread
(
struct
task_struct
*
);
extern
void
enable_kernel_altivec
(
void
);
...
...
@@ -346,5 +346,7 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new,
#define arch_align_stack(x) (x)
extern
unsigned
long
reloc_offset
(
void
);
#endif
/* __KERNEL__ */
#endif
/* _ASM_POWERPC_SYSTEM_H */
include/asm-ppc/system.h
View file @
292dcc86
...
...
@@ -87,7 +87,7 @@ extern void cacheable_memzero(void *p, unsigned int nb);
extern
void
*
cacheable_memcpy
(
void
*
,
const
void
*
,
unsigned
int
);
extern
int
do_page_fault
(
struct
pt_regs
*
,
unsigned
long
,
unsigned
long
);
extern
void
bad_page_fault
(
struct
pt_regs
*
,
unsigned
long
,
int
);
extern
void
die
(
const
char
*
,
struct
pt_regs
*
,
long
);
extern
int
die
(
const
char
*
,
struct
pt_regs
*
,
long
);
extern
void
_exception
(
int
,
struct
pt_regs
*
,
int
,
unsigned
long
);
#ifdef CONFIG_BOOKE_WDT
extern
u32
booke_wdt_enabled
;
...
...
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