Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
linux-davinci-2.6.23
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
linux
linux-davinci-2.6.23
Commits
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 @@ label:
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 @@ label:
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