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
973c1fab
Commit
973c1fab
authored
Dec 11, 2006
by
Paul Mackerras
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'for_paulus' of master.kernel.org:/pub/scm/linux/kernel/git/galak/powerpc
parents
4383162c
d10f7348
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
64 additions
and
47 deletions
+64
-47
arch/powerpc/Kconfig
arch/powerpc/Kconfig
+1
-1
arch/powerpc/kernel/cputable.c
arch/powerpc/kernel/cputable.c
+2
-3
arch/powerpc/kernel/head_32.S
arch/powerpc/kernel/head_32.S
+7
-0
arch/powerpc/kernel/of_device.c
arch/powerpc/kernel/of_device.c
+1
-3
arch/powerpc/kernel/ppc_ksyms.c
arch/powerpc/kernel/ppc_ksyms.c
+1
-1
arch/powerpc/kernel/traps.c
arch/powerpc/kernel/traps.c
+2
-0
arch/powerpc/sysdev/Makefile
arch/powerpc/sysdev/Makefile
+2
-1
include/asm-powerpc/cputable.h
include/asm-powerpc/cputable.h
+8
-2
include/asm-powerpc/dcr-native.h
include/asm-powerpc/dcr-native.h
+35
-2
include/asm-powerpc/dcr.h
include/asm-powerpc/dcr.h
+2
-0
include/asm-ppc/reg_booke.h
include/asm-ppc/reg_booke.h
+2
-34
include/linux/fsl_devices.h
include/linux/fsl_devices.h
+1
-0
No files found.
arch/powerpc/Kconfig
View file @
973c1fab
...
...
@@ -707,7 +707,7 @@ config FORCE_MAX_ZONEORDER
config MATH_EMULATION
bool "Math emulation"
depends on 4xx || 8xx || E200 || E500
depends on 4xx || 8xx || E200 ||
PPC_83xx ||
E500
---help---
Some PowerPC chips designed for embedded applications do not have
a floating-point unit and therefore do not implement the
...
...
arch/powerpc/kernel/cputable.c
View file @
973c1fab
...
...
@@ -833,7 +833,7 @@ static struct cpu_spec cpu_specs[] = {
.
pvr_mask
=
0x7fff0000
,
.
pvr_value
=
0x00840000
,
.
cpu_name
=
"e300c2"
,
.
cpu_features
=
CPU_FTRS_E300
,
.
cpu_features
=
CPU_FTRS_E300
C2
,
.
cpu_user_features
=
PPC_FEATURE_32
|
PPC_FEATURE_HAS_MMU
,
.
icache_bsize
=
32
,
.
dcache_bsize
=
32
,
...
...
@@ -1136,8 +1136,7 @@ static struct cpu_spec cpu_specs[] = {
.
pvr_mask
=
0xff000fff
,
.
pvr_value
=
0x53000890
,
.
cpu_name
=
"440SPe Rev. A"
,
.
cpu_features
=
CPU_FTR_SPLIT_ID_CACHE
|
CPU_FTR_USE_TB
,
.
cpu_features
=
CPU_FTRS_44X
,
.
cpu_user_features
=
COMMON_USER_BOOKE
,
.
icache_bsize
=
32
,
.
dcache_bsize
=
32
,
...
...
arch/powerpc/kernel/head_32.S
View file @
973c1fab
...
...
@@ -437,6 +437,13 @@ Alignment:
/*
Floating
-
point
unavailable
*/
.
=
0x800
FPUnavailable
:
BEGIN_FTR_SECTION
/*
*
Certain
Freescale
cores
don
't have a FPU and treat fp instructions
*
as
a
FP
Unavailable
exception
.
Redirect
to
illegal
/
emulation
handling
.
*/
b
ProgramCheck
END_FTR_SECTION_IFSET
(
CPU_FTR_FPU_UNAVAILABLE
)
EXCEPTION_PROLOG
bne
load_up_fpu
/*
if
from
user
,
just
load
it
up
*/
addi
r3
,
r1
,
STACK_FRAME_OVERHEAD
...
...
arch/powerpc/kernel/of_device.c
View file @
973c1fab
...
...
@@ -109,9 +109,7 @@ int of_device_register(struct of_device *ofdev)
if
(
rc
)
return
rc
;
device_create_file
(
&
ofdev
->
dev
,
&
dev_attr_devspec
);
return
0
;
return
device_create_file
(
&
ofdev
->
dev
,
&
dev_attr_devspec
);
}
void
of_device_unregister
(
struct
of_device
*
ofdev
)
...
...
arch/powerpc/kernel/ppc_ksyms.c
View file @
973c1fab
...
...
@@ -208,7 +208,7 @@ EXPORT_SYMBOL(mmu_hash_lock); /* For MOL */
extern
long
*
intercept_table
;
EXPORT_SYMBOL
(
intercept_table
);
#endif
/* CONFIG_PPC_STD_MMU_32 */
#if
defined(CONFIG_40x) || defined(CONFIG_BOOKE)
#if
def CONFIG_PPC_DCR_NATIVE
EXPORT_SYMBOL
(
__mtdcr
);
EXPORT_SYMBOL
(
__mfdcr
);
#endif
arch/powerpc/kernel/traps.c
View file @
973c1fab
...
...
@@ -782,6 +782,8 @@ void __kprobes program_check_exception(struct pt_regs *regs)
unsigned
int
reason
=
get_reason
(
regs
);
extern
int
do_mathemu
(
struct
pt_regs
*
regs
);
/* We can now get here via a FP Unavailable exception if the core
* has no FPU, in that case no reason flags will be set */
#ifdef CONFIG_MATH_EMULATION
/* (reason & REASON_ILLEGAL) would be the obvious thing here,
* but there seems to be a hardware bug on the 405GP (RevD)
...
...
arch/powerpc/sysdev/Makefile
View file @
973c1fab
...
...
@@ -5,7 +5,8 @@ endif
obj-$(CONFIG_MPIC)
+=
mpic.o
obj-$(CONFIG_PPC_INDIRECT_PCI)
+=
indirect_pci.o
obj-$(CONFIG_PPC_MPC106)
+=
grackle.o
obj-$(CONFIG_PPC_DCR)
+=
dcr.o dcr-low.o
obj-$(CONFIG_PPC_DCR)
+=
dcr.o
obj-$(CONFIG_PPC_DCR_NATIVE)
+=
dcr-low.o
obj-$(CONFIG_U3_DART)
+=
dart_iommu.o
obj-$(CONFIG_MMIO_NVRAM)
+=
mmio_nvram.o
obj-$(CONFIG_FSL_SOC)
+=
fsl_soc.o
...
...
include/asm-powerpc/cputable.h
View file @
973c1fab
...
...
@@ -126,6 +126,7 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start,
#define CPU_FTR_NODSISRALIGN ASM_CONST(0x0000000000100000)
#define CPU_FTR_PPC_LE ASM_CONST(0x0000000000200000)
#define CPU_FTR_REAL_LE ASM_CONST(0x0000000000400000)
#define CPU_FTR_FPU_UNAVAILABLE ASM_CONST(0x0000000000800000)
/*
* Add the 64-bit processor unique features in the top half of the word;
...
...
@@ -296,6 +297,9 @@ extern void do_feature_fixups(unsigned long value, void *fixup_start,
#define CPU_FTRS_E300 (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | \
CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS | \
CPU_FTR_COMMON)
#define CPU_FTRS_E300C2 (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | \
CPU_FTR_USE_TB | CPU_FTR_MAYBE_CAN_NAP | CPU_FTR_HAS_HIGH_BATS | \
CPU_FTR_COMMON | CPU_FTR_FPU_UNAVAILABLE)
#define CPU_FTRS_CLASSIC32 (CPU_FTR_COMMON | CPU_FTR_SPLIT_ID_CACHE | \
CPU_FTR_USE_TB | CPU_FTR_HPTE_TABLE)
#define CPU_FTRS_8XX (CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_USE_TB)
...
...
@@ -366,7 +370,8 @@ enum {
CPU_FTRS_7450_21
|
CPU_FTRS_7450_23
|
CPU_FTRS_7455_1
|
CPU_FTRS_7455_20
|
CPU_FTRS_7455
|
CPU_FTRS_7447_10
|
CPU_FTRS_7447
|
CPU_FTRS_7447A
|
CPU_FTRS_82XX
|
CPU_FTRS_G2_LE
|
CPU_FTRS_E300
|
CPU_FTRS_CLASSIC32
|
CPU_FTRS_G2_LE
|
CPU_FTRS_E300
|
CPU_FTRS_E300C2
|
CPU_FTRS_CLASSIC32
|
#else
CPU_FTRS_GENERIC_32
|
#endif
...
...
@@ -405,7 +410,8 @@ enum {
CPU_FTRS_7450_21
&
CPU_FTRS_7450_23
&
CPU_FTRS_7455_1
&
CPU_FTRS_7455_20
&
CPU_FTRS_7455
&
CPU_FTRS_7447_10
&
CPU_FTRS_7447
&
CPU_FTRS_7447A
&
CPU_FTRS_82XX
&
CPU_FTRS_G2_LE
&
CPU_FTRS_E300
&
CPU_FTRS_CLASSIC32
&
CPU_FTRS_G2_LE
&
CPU_FTRS_E300
&
CPU_FTRS_E300C2
&
CPU_FTRS_CLASSIC32
&
#else
CPU_FTRS_GENERIC_32
&
#endif
...
...
include/asm-powerpc/dcr-native.h
View file @
973c1fab
...
...
@@ -20,8 +20,7 @@
#ifndef _ASM_POWERPC_DCR_NATIVE_H
#define _ASM_POWERPC_DCR_NATIVE_H
#ifdef __KERNEL__
#include <asm/reg.h>
#ifndef __ASSEMBLY__
typedef
struct
{}
dcr_host_t
;
...
...
@@ -32,7 +31,41 @@ typedef struct {} dcr_host_t;
#define dcr_read(host, dcr_n) mfdcr(dcr_n)
#define dcr_write(host, dcr_n, value) mtdcr(dcr_n, value)
/* Device Control Registers */
void
__mtdcr
(
int
reg
,
unsigned
int
val
);
unsigned
int
__mfdcr
(
int
reg
);
#define mfdcr(rn) \
({unsigned int rval; \
if (__builtin_constant_p(rn)) \
asm volatile("mfdcr %0," __stringify(rn) \
: "=r" (rval)); \
else \
rval = __mfdcr(rn); \
rval;})
#define mtdcr(rn, v) \
do { \
if (__builtin_constant_p(rn)) \
asm volatile("mtdcr " __stringify(rn) ",%0" \
: : "r" (v)); \
else \
__mtdcr(rn, v); \
} while (0)
/* R/W of indirect DCRs make use of standard naming conventions for DCRs */
#define mfdcri(base, reg) \
({ \
mtdcr(base ## _CFGADDR, base ## _ ## reg); \
mfdcr(base ## _CFGDATA); \
})
#define mtdcri(base, reg, data) \
do { \
mtdcr(base ## _CFGADDR, base ## _ ## reg); \
mtdcr(base ## _CFGDATA, data); \
} while (0)
#endif
/* __ASSEMBLY__ */
#endif
/* __KERNEL__ */
#endif
/* _ASM_POWERPC_DCR_NATIVE_H */
...
...
include/asm-powerpc/dcr.h
View file @
973c1fab
...
...
@@ -20,6 +20,7 @@
#ifndef _ASM_POWERPC_DCR_H
#define _ASM_POWERPC_DCR_H
#ifdef __KERNEL__
#ifdef CONFIG_PPC_DCR
#ifdef CONFIG_PPC_DCR_NATIVE
#include <asm/dcr-native.h>
...
...
@@ -38,5 +39,6 @@ extern unsigned int dcr_resource_len(struct device_node *np,
unsigned
int
index
);
#endif
/* CONFIG_PPC_MERGE */
#endif
/* CONFIG_PPC_DCR */
#endif
/* __KERNEL__ */
#endif
/* _ASM_POWERPC_DCR_H */
include/asm-ppc/reg_booke.h
View file @
973c1fab
...
...
@@ -9,41 +9,9 @@
#ifndef __ASM_PPC_REG_BOOKE_H__
#define __ASM_PPC_REG_BOOKE_H__
#ifndef __ASSEMBLY__
/* Device Control Registers */
void
__mtdcr
(
int
reg
,
unsigned
int
val
);
unsigned
int
__mfdcr
(
int
reg
);
#define mfdcr(rn) \
({unsigned int rval; \
if (__builtin_constant_p(rn)) \
asm volatile("mfdcr %0," __stringify(rn) \
: "=r" (rval)); \
else \
rval = __mfdcr(rn); \
rval;})
#define mtdcr(rn, v) \
do { \
if (__builtin_constant_p(rn)) \
asm volatile("mtdcr " __stringify(rn) ",%0" \
: : "r" (v)); \
else \
__mtdcr(rn, v); \
} while (0)
/* R/W of indirect DCRs make use of standard naming conventions for DCRs */
#define mfdcri(base, reg) \
({ \
mtdcr(base ## _CFGADDR, base ## _ ## reg); \
mfdcr(base ## _CFGDATA); \
})
#define mtdcri(base, reg, data) \
do { \
mtdcr(base ## _CFGADDR, base ## _ ## reg); \
mtdcr(base ## _CFGDATA, data); \
} while (0)
#include <asm/dcr.h>
#ifndef __ASSEMBLY__
/* Performance Monitor Registers */
#define mfpmr(rn) ({unsigned int rval; \
asm volatile("mfpmr %0," __stringify(rn) \
...
...
include/linux/fsl_devices.h
View file @
973c1fab
...
...
@@ -19,6 +19,7 @@
#define _FSL_DEVICE_H_
#include <linux/types.h>
#include <linux/phy.h>
/*
* Some conventions on how we handle peripherals on Freescale chips
...
...
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