Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
8b200abd
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
8b200abd
编写于
11月 16, 2005
作者:
J
Jeff Garzik
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master'
上级
7bdd7208
0db169f9
变更
50
隐藏空白更改
内联
并排
Showing
50 changed file
with
857 addition
and
406 deletion
+857
-406
arch/powerpc/Makefile
arch/powerpc/Makefile
+7
-18
arch/powerpc/boot/Makefile
arch/powerpc/boot/Makefile
+3
-2
arch/powerpc/boot/README
arch/powerpc/boot/README
+0
-0
arch/powerpc/boot/addRamDisk.c
arch/powerpc/boot/addRamDisk.c
+0
-0
arch/powerpc/boot/addnote.c
arch/powerpc/boot/addnote.c
+0
-0
arch/powerpc/boot/crt0.S
arch/powerpc/boot/crt0.S
+0
-0
arch/powerpc/boot/div64.S
arch/powerpc/boot/div64.S
+0
-0
arch/powerpc/boot/elf.h
arch/powerpc/boot/elf.h
+0
-0
arch/powerpc/boot/install.sh
arch/powerpc/boot/install.sh
+0
-0
arch/powerpc/boot/main.c
arch/powerpc/boot/main.c
+81
-41
arch/powerpc/boot/page.h
arch/powerpc/boot/page.h
+0
-0
arch/powerpc/boot/ppc_asm.h
arch/powerpc/boot/ppc_asm.h
+0
-0
arch/powerpc/boot/prom.c
arch/powerpc/boot/prom.c
+0
-0
arch/powerpc/boot/prom.h
arch/powerpc/boot/prom.h
+0
-0
arch/powerpc/boot/stdio.h
arch/powerpc/boot/stdio.h
+0
-0
arch/powerpc/boot/string.S
arch/powerpc/boot/string.S
+0
-0
arch/powerpc/boot/string.h
arch/powerpc/boot/string.h
+0
-0
arch/powerpc/boot/zImage.lds
arch/powerpc/boot/zImage.lds
+0
-0
arch/powerpc/configs/cell_defconfig
arch/powerpc/configs/cell_defconfig
+115
-60
arch/powerpc/configs/g5_defconfig
arch/powerpc/configs/g5_defconfig
+32
-21
arch/powerpc/configs/iseries_defconfig
arch/powerpc/configs/iseries_defconfig
+109
-50
arch/powerpc/configs/maple_defconfig
arch/powerpc/configs/maple_defconfig
+103
-52
arch/powerpc/configs/pseries_defconfig
arch/powerpc/configs/pseries_defconfig
+2
-2
arch/powerpc/kernel/pci_64.c
arch/powerpc/kernel/pci_64.c
+66
-4
arch/powerpc/kernel/rtas_pci.c
arch/powerpc/kernel/rtas_pci.c
+5
-63
arch/powerpc/kernel/setup-common.c
arch/powerpc/kernel/setup-common.c
+1
-0
arch/powerpc/kernel/smp.c
arch/powerpc/kernel/smp.c
+4
-3
arch/powerpc/kernel/vdso32/cacheflush.S
arch/powerpc/kernel/vdso32/cacheflush.S
+2
-0
arch/powerpc/kernel/vdso32/datapage.S
arch/powerpc/kernel/vdso32/datapage.S
+2
-1
arch/powerpc/kernel/vdso32/gettimeofday.S
arch/powerpc/kernel/vdso32/gettimeofday.S
+4
-0
arch/powerpc/kernel/vdso64/cacheflush.S
arch/powerpc/kernel/vdso64/cacheflush.S
+2
-0
arch/powerpc/kernel/vdso64/datapage.S
arch/powerpc/kernel/vdso64/datapage.S
+2
-1
arch/powerpc/kernel/vdso64/gettimeofday.S
arch/powerpc/kernel/vdso64/gettimeofday.S
+4
-0
arch/powerpc/mm/lmb.c
arch/powerpc/mm/lmb.c
+18
-15
arch/powerpc/platforms/iseries/pci.c
arch/powerpc/platforms/iseries/pci.c
+1
-2
arch/powerpc/platforms/maple/pci.c
arch/powerpc/platforms/maple/pci.c
+1
-15
arch/powerpc/platforms/powermac/feature.c
arch/powerpc/platforms/powermac/feature.c
+8
-0
arch/powerpc/platforms/powermac/pci.c
arch/powerpc/platforms/powermac/pci.c
+32
-30
arch/powerpc/platforms/pseries/smp.c
arch/powerpc/platforms/pseries/smp.c
+1
-0
arch/ppc/kernel/setup.c
arch/ppc/kernel/setup.c
+13
-1
arch/ppc/mm/init.c
arch/ppc/mm/init.c
+11
-12
arch/ppc/xmon/start.c
arch/ppc/xmon/start.c
+4
-1
drivers/media/dvb/cinergyT2/cinergyT2.c
drivers/media/dvb/cinergyT2/cinergyT2.c
+5
-4
fs/compat_ioctl.c
fs/compat_ioctl.c
+133
-0
include/asm-powerpc/ppc-pci.h
include/asm-powerpc/ppc-pci.h
+0
-1
include/asm-powerpc/vdso.h
include/asm-powerpc/vdso.h
+1
-1
include/asm-ppc/pgalloc.h
include/asm-ppc/pgalloc.h
+1
-1
include/asm-ppc64/pci-bridge.h
include/asm-ppc64/pci-bridge.h
+10
-4
include/linux/compat_ioctl.h
include/linux/compat_ioctl.h
+67
-0
sound/ppc/tumbler.c
sound/ppc/tumbler.c
+7
-1
未找到文件。
arch/powerpc/Makefile
浏览文件 @
8b200abd
...
...
@@ -14,10 +14,6 @@
HAS_BIARCH
:=
$(
call
cc-option-yn,
-m32
)
ifeq
($(CONFIG_PPC64),y)
OLDARCH
:=
ppc64
SZ
:=
64
# Set default 32 bits cross compilers for vdso and boot wrapper
CROSS32_COMPILE
?=
...
...
@@ -37,6 +33,10 @@ endif
export
CROSS32CC
CROSS32AS
CROSS32LD
CROSS32OBJCOPY
ifeq
($(CONFIG_PPC64),y)
OLDARCH
:=
ppc64
SZ
:=
64
new_nm
:=
$(
shell
if
$(NM)
--help
2>&1 |
grep
--
'--synthetic'
>
/dev/null
;
then
echo
y
;
else
echo
n
;
fi
)
ifeq
($(new_nm),y)
...
...
@@ -139,7 +139,7 @@ drivers-$(CONFIG_CPM2) += arch/ppc/8260_io/
drivers-$(CONFIG_OPROFILE)
+=
arch
/powerpc/oprofile/
defaultimage-$(CONFIG_PPC32)
:=
uImage
zImage
defaultimage-$(CONFIG_PPC32)
:=
zImage
defaultimage-$(CONFIG_PPC_ISERIES)
:=
vmlinux
defaultimage-$(CONFIG_PPC_PSERIES)
:=
zImage
KBUILD_IMAGE
:=
$
(
defaultimage-y
)
...
...
@@ -154,23 +154,13 @@ BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm
.PHONY
:
$(BOOT_TARGETS)
boot
:=
arch
/
$(
OLD
ARCH)
/boot
boot
:=
arch
/
$(ARCH)
/boot
# urk
ifeq
($(CONFIG_PPC64),y)
$(BOOT_TARGETS)
:
vmlinux
$(Q)$(MAKE)
ARCH
=
ppc64
$(build)
=
$(boot)
$(
patsubst
%,
$(boot)
/%,
$@
)
else
$(BOOT_TARGETS)
:
vmlinux
$(Q)$(MAKE)
ARCH
=
ppc
$(build)
=
$(boot)
$@
endif
uImage
:
vmlinux
$(Q)$(MAKE)
ARCH
=
$(OLDARCH)
$(build)
=
$(boot)
/images
$(boot)
/images/
$@
define
archhelp
@echo
'* zImage - Compressed kernel image (arch/$(ARCH)/boot/images/zImage.*)'
@echo
' uImage - Create a bootable image for U-Boot / PPCBoot'
@echo
'* zImage - Compressed kernel image (arch/$(ARCH)/boot/zImage.*)'
@echo
' install - Install kernel using'
@echo
' (your) ~/bin/installkernel or'
@echo
' (distribution) /sbin/installkernel or'
...
...
@@ -180,7 +170,6 @@ endef
archclean
:
$(Q)$(MAKE)
$(clean)
=
$(boot)
# Temporary hack until we have migrated to asm-powerpc
$(Q)
rm
-rf
arch
/
$(ARCH)
/include
archprepare
:
checkbin
...
...
arch/p
pc64
/boot/Makefile
→
arch/p
owerpc
/boot/Makefile
浏览文件 @
8b200abd
...
...
@@ -22,7 +22,8 @@
HOSTCC
:=
gcc
BOOTCFLAGS
:=
$(HOSTCFLAGS)
-fno-builtin
-nostdinc
-isystem
$(
shell
$(CROSS32CC)
-print-file-name
=
include
)
-fPIC
BOOTCFLAGS
:=
$(HOSTCFLAGS)
-fno-builtin
-nostdinc
-isystem
\
$(
shell
$(CROSS32CC)
-print-file-name
=
include
)
-fPIC
BOOTAFLAGS
:=
-D__ASSEMBLY__
$(BOOTCFLAGS)
-traditional
-nostdinc
BOOTLFLAGS
:=
-T
$(srctree)
/
$(src)
/zImage.lds
OBJCOPYFLAGS
:=
contents,alloc,load,readonly,data
...
...
@@ -98,7 +99,7 @@ quiet_cmd_ramdisk = RAMDISK $@
cmd_ramdisk
=
$(obj)
/addRamDisk
$(obj)
/ramdisk.image.gz
$<
$@
quiet_cmd_stripvm
=
STRIP
$@
cmd_stripvm
=
$(STRIP)
-s
$<
-o
$@
cmd_stripvm
=
$(STRIP)
-s
-R
.comment
$<
-o
$@
vmlinux.strip
:
vmlinux
$(
call
if_changed,stripvm
)
...
...
arch/p
pc64
/boot/README
→
arch/p
owerpc
/boot/README
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/addRamDisk.c
→
arch/p
owerpc
/boot/addRamDisk.c
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/addnote.c
→
arch/p
owerpc
/boot/addnote.c
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/crt0.S
→
arch/p
owerpc
/boot/crt0.S
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/div64.S
→
arch/p
owerpc
/boot/div64.S
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/elf.h
→
arch/p
owerpc
/boot/elf.h
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/install.sh
→
arch/p
owerpc
/boot/install.sh
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/main.c
→
arch/p
owerpc
/boot/main.c
浏览文件 @
8b200abd
...
...
@@ -42,6 +42,8 @@ static struct addr_range vmlinux;
static
struct
addr_range
vmlinuz
;
static
struct
addr_range
initrd
;
static
unsigned
long
elfoffset
;
static
char
scratch
[
46912
];
/* scratch space for gunzip, from zlib_inflate_workspacesize() */
static
char
elfheader
[
256
];
...
...
@@ -131,13 +133,70 @@ static unsigned long try_claim(unsigned long size)
return
addr
;
}
static
int
is_elf64
(
void
*
hdr
)
{
Elf64_Ehdr
*
elf64
=
hdr
;
Elf64_Phdr
*
elf64ph
;
unsigned
int
i
;
if
(
!
(
elf64
->
e_ident
[
EI_MAG0
]
==
ELFMAG0
&&
elf64
->
e_ident
[
EI_MAG1
]
==
ELFMAG1
&&
elf64
->
e_ident
[
EI_MAG2
]
==
ELFMAG2
&&
elf64
->
e_ident
[
EI_MAG3
]
==
ELFMAG3
&&
elf64
->
e_ident
[
EI_CLASS
]
==
ELFCLASS64
&&
elf64
->
e_ident
[
EI_DATA
]
==
ELFDATA2MSB
&&
elf64
->
e_type
==
ET_EXEC
&&
elf64
->
e_machine
==
EM_PPC64
))
return
0
;
elf64ph
=
(
Elf64_Phdr
*
)((
unsigned
long
)
elf64
+
(
unsigned
long
)
elf64
->
e_phoff
);
for
(
i
=
0
;
i
<
(
unsigned
int
)
elf64
->
e_phnum
;
i
++
,
elf64ph
++
)
if
(
elf64ph
->
p_type
==
PT_LOAD
&&
elf64ph
->
p_offset
!=
0
)
break
;
if
(
i
>=
(
unsigned
int
)
elf64
->
e_phnum
)
return
0
;
elfoffset
=
(
unsigned
long
)
elf64ph
->
p_offset
;
vmlinux
.
size
=
(
unsigned
long
)
elf64ph
->
p_filesz
+
elfoffset
;
vmlinux
.
memsize
=
(
unsigned
long
)
elf64ph
->
p_memsz
+
elfoffset
;
return
1
;
}
static
int
is_elf32
(
void
*
hdr
)
{
Elf32_Ehdr
*
elf32
=
hdr
;
Elf32_Phdr
*
elf32ph
;
unsigned
int
i
;
if
(
!
(
elf32
->
e_ident
[
EI_MAG0
]
==
ELFMAG0
&&
elf32
->
e_ident
[
EI_MAG1
]
==
ELFMAG1
&&
elf32
->
e_ident
[
EI_MAG2
]
==
ELFMAG2
&&
elf32
->
e_ident
[
EI_MAG3
]
==
ELFMAG3
&&
elf32
->
e_ident
[
EI_CLASS
]
==
ELFCLASS32
&&
elf32
->
e_ident
[
EI_DATA
]
==
ELFDATA2MSB
&&
elf32
->
e_type
==
ET_EXEC
&&
elf32
->
e_machine
==
EM_PPC
))
return
0
;
elf32
=
(
Elf32_Ehdr
*
)
elfheader
;
elf32ph
=
(
Elf32_Phdr
*
)
((
unsigned
long
)
elf32
+
elf32
->
e_phoff
);
for
(
i
=
0
;
i
<
elf32
->
e_phnum
;
i
++
,
elf32ph
++
)
if
(
elf32ph
->
p_type
==
PT_LOAD
&&
elf32ph
->
p_offset
!=
0
)
break
;
if
(
i
>=
elf32
->
e_phnum
)
return
0
;
elfoffset
=
elf32ph
->
p_offset
;
vmlinux
.
size
=
elf32ph
->
p_filesz
+
elf32ph
->
p_offset
;
vmlinux
.
memsize
=
elf32ph
->
p_memsz
+
elf32ph
->
p_offset
;
return
1
;
}
void
start
(
unsigned
long
a1
,
unsigned
long
a2
,
void
*
promptr
,
void
*
sp
)
{
unsigned
long
i
;
int
len
;
kernel_entry_t
kernel_entry
;
Elf64_Ehdr
*
elf64
;
Elf64_Phdr
*
elf64ph
;
memset
(
__bss_start
,
0
,
_end
-
__bss_start
);
...
...
@@ -153,6 +212,22 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
printf
(
"
\n\r
zImage starting: loaded at 0x%p (sp: 0x%p)
\n\r
"
,
_start
,
sp
);
vmlinuz
.
addr
=
(
unsigned
long
)
_vmlinux_start
;
vmlinuz
.
size
=
(
unsigned
long
)(
_vmlinux_end
-
_vmlinux_start
);
/* gunzip the ELF header of the kernel */
if
(
*
(
unsigned
short
*
)
vmlinuz
.
addr
==
0x1f8b
)
{
len
=
vmlinuz
.
size
;
gunzip
(
elfheader
,
sizeof
(
elfheader
),
(
unsigned
char
*
)
vmlinuz
.
addr
,
&
len
);
}
else
memcpy
(
elfheader
,
(
const
void
*
)
vmlinuz
.
addr
,
sizeof
(
elfheader
));
if
(
!
is_elf64
(
elfheader
)
&&
!
is_elf32
(
elfheader
))
{
printf
(
"Error: not a valid PPC32 or PPC64 ELF file!
\n\r
"
);
exit
();
}
/*
* The first available claim_base must be above the end of the
* the loaded kernel wrapper file (_start to _end includes the
...
...
@@ -172,46 +247,11 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
claim_base
=
PROG_START
;
#endif
vmlinuz
.
addr
=
(
unsigned
long
)
_vmlinux_start
;
vmlinuz
.
size
=
(
unsigned
long
)(
_vmlinux_end
-
_vmlinux_start
);
/* gunzip the ELF header of the kernel */
if
(
*
(
unsigned
short
*
)
vmlinuz
.
addr
==
0x1f8b
)
{
len
=
vmlinuz
.
size
;
gunzip
(
elfheader
,
sizeof
(
elfheader
),
(
unsigned
char
*
)
vmlinuz
.
addr
,
&
len
);
}
else
memcpy
(
elfheader
,
(
const
void
*
)
vmlinuz
.
addr
,
sizeof
(
elfheader
));
elf64
=
(
Elf64_Ehdr
*
)
elfheader
;
if
(
elf64
->
e_ident
[
EI_MAG0
]
!=
ELFMAG0
||
elf64
->
e_ident
[
EI_MAG1
]
!=
ELFMAG1
||
elf64
->
e_ident
[
EI_MAG2
]
!=
ELFMAG2
||
elf64
->
e_ident
[
EI_MAG3
]
!=
ELFMAG3
||
elf64
->
e_ident
[
EI_CLASS
]
!=
ELFCLASS64
||
elf64
->
e_ident
[
EI_DATA
]
!=
ELFDATA2MSB
||
elf64
->
e_type
!=
ET_EXEC
||
elf64
->
e_machine
!=
EM_PPC64
)
{
printf
(
"Error: not a valid PPC64 ELF file!
\n\r
"
);
exit
();
}
elf64ph
=
(
Elf64_Phdr
*
)((
unsigned
long
)
elf64
+
(
unsigned
long
)
elf64
->
e_phoff
);
for
(
i
=
0
;
i
<
(
unsigned
int
)
elf64
->
e_phnum
;
i
++
,
elf64ph
++
)
{
if
(
elf64ph
->
p_type
==
PT_LOAD
&&
elf64ph
->
p_offset
!=
0
)
break
;
}
vmlinux
.
size
=
(
unsigned
long
)
elf64ph
->
p_filesz
+
(
unsigned
long
)
elf64ph
->
p_offset
;
/* We need to claim the memsize plus the file offset since gzip
* will expand the header (file offset), then the kernel, then
* possible rubbish we don't care about. But the kernel bss must
* be claimed (it will be zero'd by the kernel itself)
*/
vmlinux
.
memsize
=
(
unsigned
long
)
elf64ph
->
p_memsz
+
(
unsigned
long
)
elf64ph
->
p_offset
;
printf
(
"Allocating 0x%lx bytes for kernel ...
\n\r
"
,
vmlinux
.
memsize
);
vmlinux
.
addr
=
try_claim
(
vmlinux
.
memsize
);
if
(
vmlinux
.
addr
==
0
)
{
...
...
@@ -254,9 +294,9 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
/* Skip over the ELF header */
#ifdef DEBUG
printf
(
"... skipping 0x%lx bytes of ELF header
\n\r
"
,
(
unsigned
long
)
elf64ph
->
p_
offset
);
elf
offset
);
#endif
vmlinux
.
addr
+=
(
unsigned
long
)
elf64ph
->
p_
offset
;
vmlinux
.
addr
+=
elf
offset
;
flush_cache
((
void
*
)
vmlinux
.
addr
,
vmlinux
.
size
);
...
...
@@ -272,7 +312,7 @@ void start(unsigned long a1, unsigned long a2, void *promptr, void *sp)
(
unsigned
long
)
prom
,
NULL
);
#endif
kernel_entry
(
a1
,
a2
,
prom
,
NULL
);
kernel_entry
(
a1
,
a2
,
prom
,
NULL
);
printf
(
"Error: Linux kernel returned to zImage bootloader!
\n\r
"
);
...
...
arch/p
pc64
/boot/page.h
→
arch/p
owerpc
/boot/page.h
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/ppc_asm.h
→
arch/p
owerpc
/boot/ppc_asm.h
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/prom.c
→
arch/p
owerpc
/boot/prom.c
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/prom.h
→
arch/p
owerpc
/boot/prom.h
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/stdio.h
→
arch/p
owerpc
/boot/stdio.h
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/string.S
→
arch/p
owerpc
/boot/string.S
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/string.h
→
arch/p
owerpc
/boot/string.h
浏览文件 @
8b200abd
文件已移动
arch/p
pc64
/boot/zImage.lds
→
arch/p
owerpc
/boot/zImage.lds
浏览文件 @
8b200abd
文件已移动
arch/powerpc/configs/cell_defconfig
浏览文件 @
8b200abd
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
4-rc4
# T
hu Oct 20 08:29:1
0 2005
# Linux kernel version: 2.6.1
5-rc1
# T
ue Nov 15 14:36:2
0 2005
#
CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_
GENERIC_ISA_DMA
=y
CONFIG_
PPC
=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_FORCE_MAX_ZONEORDER=13
#
# Processor support
#
# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
CONFIG_PPC_FPU=y
CONFIG_ALTIVEC=y
CONFIG_PPC_STD_MMU=y
CONFIG_SMP=y
CONFIG_NR_CPUS=4
#
# Code maturity level options
...
...
@@ -66,31 +81,69 @@ CONFIG_OBSOLETE_MODPARM=y
# CONFIG_MODULE_SRCVERSION_ALL is not set
# CONFIG_KMOD is not set
CONFIG_STOP_MACHINE=y
CONFIG_SYSVIPC_COMPAT=y
#
# Block layer
#
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
#
# CONFIG_PPC_ISERIES is not set
CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_PPC_ISERIES is not set
# CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set
# CONFIG_PPC_PSERIES is not set
CONFIG_PPC_BPA=y
# CONFIG_PPC_PMAC is not set
# CONFIG_PPC_MAPLE is not set
CONFIG_PPC=y
CONFIG_PPC64=y
CONFIG_PPC_CELL=y
CONFIG_PPC_OF=y
CONFIG_BPA_IIC=y
CONFIG_ALTIVEC=y
CONFIG_KEXEC=y
# CONFIG_U3_DART is not set
# CONFIG_BOOTX_TEXT is not set
# CONFIG_POWER4_ONLY is not set
CONFIG_PPC_RTAS=y
# CONFIG_RTAS_ERROR_LOGGING is not set
CONFIG_RTAS_PROC=y
CONFIG_RTAS_FLASH=y
CONFIG_MMIO_NVRAM=y
CONFIG_CELL_IIC=y
# CONFIG_PPC_MPC106 is not set
# CONFIG_GENERIC_TBSYNC is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
#
# Kernel options
#
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
# CONFIG_IOMMU_VMERGE is not set
CONFIG_SMP=y
CONFIG_NR_CPUS=4
CONFIG_KEXEC=y
CONFIG_IRQ_ALL_CPUS=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
...
...
@@ -98,30 +151,21 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_NUMA is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_PPC_64K_PAGES is not set
CONFIG_SCHED_SMT=y
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
CONFIG_PREEMPT_BKL=y
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_GENERIC_HARDIRQS=y
CONFIG_PPC_RTAS=y
CONFIG_RTAS_PROC=y
CONFIG_RTAS_FLASH=y
CONFIG_SECCOMP=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_PROC_DEVICETREE=y
# CONFIG_CMDLINE_BOOL is not set
# CONFIG_PM is not set
CONFIG_SECCOMP=y
CONFIG_ISA_DMA_API=y
#
# Bus
O
ptions
# Bus
o
ptions
#
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_I8259 is not set
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_LEGACY_PROC=y
...
...
@@ -136,6 +180,7 @@ CONFIG_PCI_LEGACY_PROC=y
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set
CONFIG_KERNEL_START=0xc000000000000000
#
# Networking
...
...
@@ -183,6 +228,10 @@ CONFIG_INET6_TUNNEL=m
CONFIG_IPV6_TUNNEL=m
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set
#
...
...
@@ -284,6 +333,10 @@ CONFIG_IP_NF_ARP_MANGLE=m
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y
...
...
@@ -345,14 +398,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=131072
CONFIG_BLK_DEV_INITRD=y
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set
#
...
...
@@ -442,6 +487,7 @@ CONFIG_IDEDMA_AUTO=y
#
# Macintosh device drivers
#
# CONFIG_WINDFARM is not set
#
# Network device support
...
...
@@ -495,7 +541,6 @@ CONFIG_SKGE=m
# CONFIG_SK98LIN is not set
# CONFIG_TIGON3 is not set
# CONFIG_BNX2 is not set
# CONFIG_SPIDER_NET is not set
# CONFIG_MV643XX_ETH is not set
#
...
...
@@ -625,7 +670,7 @@ CONFIG_WATCHDOG=y
# Watchdog Device Drivers
#
# CONFIG_SOFT_WATCHDOG is not set
CONFIG_WATCHDOG_RTAS=y
# CONFIG_WATCHDOG_RTAS is not set
#
# PCI-based Watchdog Cards
...
...
@@ -633,6 +678,8 @@ CONFIG_WATCHDOG_RTAS=y
# CONFIG_PCIPCWATCHDOG is not set
# CONFIG_WDTPCI is not set
# CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
...
...
@@ -649,6 +696,7 @@ CONFIG_WATCHDOG_RTAS=y
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
#
# I2C support
...
...
@@ -699,6 +747,7 @@ CONFIG_I2C_ALGOBIT=y
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_RTC_X1205_I2C is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
...
...
@@ -756,6 +805,10 @@ CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# USB Gadget Support
#
...
...
@@ -943,9 +996,24 @@ CONFIG_NLS_ISO8859_15=m
# CONFIG_NLS_UTF8 is not set
#
# Profiling support
# Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
#
# Kernel hacking
...
...
@@ -962,13 +1030,14 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_KPROBES is not set
# CONFIG_DEBUG_STACK_USAGE is not set
CONFIG_DEBUGGER=y
# CONFIG_XMON is not set
# CONFIG_PPCDBG is not set
CONFIG_IRQSTACKS=y
# CONFIG_BOOTX_TEXT is not set
#
# Security options
...
...
@@ -1008,17 +1077,3 @@ CONFIG_CRYPTO_DEFLATE=m
#
# Hardware crypto devices
#
#
# Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=m
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
arch/powerpc/configs/g5_defconfig
浏览文件 @
8b200abd
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
4
#
Mon Nov 7 13:37:59
2005
# Linux kernel version: 2.6.1
5-rc1
#
Tue Nov 15 14:39:20
2005
#
CONFIG_PPC64=y
CONFIG_64BIT=y
...
...
@@ -82,6 +82,23 @@ CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
#
# Block layer
#
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
#
...
...
@@ -137,6 +154,7 @@ CONFIG_IRQ_ALL_CPUS=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
...
...
@@ -144,7 +162,7 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_SPLIT_PTLOCK_CPUS=4
CONFIG_SPLIT_PTLOCK_CPUS=4
096
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set
CONFIG_PROC_DEVICETREE=y
...
...
@@ -215,6 +233,10 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set
#
...
...
@@ -382,19 +404,6 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
# CONFIG_ATA_OVER_ETH is not set
#
...
...
@@ -656,7 +665,6 @@ CONFIG_SUNGEM=y
# CONFIG_NET_TULIP is not set
# CONFIG_HP100 is not set
# CONFIG_NET_PCI is not set
# CONFIG_FEC_8XX is not set
#
# Ethernet (1000 Mbit)
...
...
@@ -710,6 +718,7 @@ CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
...
...
@@ -804,6 +813,8 @@ CONFIG_LEGACY_PTY_COUNT=256
#
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
...
...
@@ -917,7 +928,6 @@ CONFIG_FB=y
CONFIG_FB_CFB_FILLRECT=y
CONFIG_FB_CFB_COPYAREA=y
CONFIG_FB_CFB_IMAGEBLIT=y
CONFIG_FB_SOFT_CURSOR=y
CONFIG_FB_MACMODES=y
CONFIG_FB_MODE_HELPERS=y
CONFIG_FB_TILEBLITTING=y
...
...
@@ -932,6 +942,7 @@ CONFIG_FB_OF=y
# CONFIG_FB_ASILIANT is not set
# CONFIG_FB_IMSTT is not set
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_S1D13XXX is not set
CONFIG_FB_NVIDIA=y
CONFIG_FB_NVIDIA_I2C=y
# CONFIG_FB_RIVA is not set
...
...
@@ -950,7 +961,6 @@ CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_S1D13XXX is not set
# CONFIG_FB_VIRTUAL is not set
#
...
...
@@ -959,6 +969,7 @@ CONFIG_FB_RADEON_I2C=y
# CONFIG_VGA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
...
...
@@ -1474,10 +1485,11 @@ CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
#
#
Profiling s
upport
#
Instrumentation S
upport
#
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
# CONFIG_KPROBES is not set
#
# Kernel hacking
...
...
@@ -1497,7 +1509,6 @@ CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
# CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_DEBUG_STACKOVERFLOW is not set
# CONFIG_KPROBES is not set
# CONFIG_DEBUG_STACK_USAGE is not set
# CONFIG_DEBUGGER is not set
CONFIG_IRQSTACKS=y
...
...
arch/powerpc/configs/iseries_defconfig
浏览文件 @
8b200abd
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
4-rc4
# T
hu Oct 20 08:30:56
2005
# Linux kernel version: 2.6.1
5-rc1
# T
ue Nov 15 14:38:09
2005
#
CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_
GENERIC_ISA_DMA
=y
CONFIG_
PPC
=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_FORCE_MAX_ZONEORDER=13
#
# Processor support
#
# CONFIG_POWER4_ONLY is not set
CONFIG_POWER3=y
CONFIG_POWER4=y
CONFIG_PPC_FPU=y
# CONFIG_ALTIVEC is not set
CONFIG_PPC_STD_MMU=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
#
# Code maturity level options
...
...
@@ -68,22 +83,60 @@ CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
CONFIG_SYSVIPC_COMPAT=y
#
# Block layer
#
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
#
CONFIG_PPC_ISERIES=y
# CONFIG_PPC_MULTIPLATFORM is not set
CONFIG_PPC=y
CONFIG_PPC64=y
CONFIG_PPC_ISERIES=y
# CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set
# CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set
CONFIG_IBMVIO=y
# CONFIG_POWER4_ONLY is not set
# CONFIG_PPC_MPC106 is not set
# CONFIG_GENERIC_TBSYNC is not set
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
#
# Kernel options
#
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
CONFIG_IRQ_ALL_CPUS=y
CONFIG_LPARCFG=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
...
...
@@ -91,26 +144,20 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_NUMA is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_GENERIC_HARDIRQS=y
CONFIG_LPARCFG=y
CONFIG_PROC_DEVICETREE=y
# CONFIG_PM is not set
CONFIG_SECCOMP=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_ISA_DMA_API=y
#
# Bus
O
ptions
# Bus
o
ptions
#
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_I8259 is not set
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_LEGACY_PROC=y
...
...
@@ -125,6 +172,7 @@ CONFIG_PCI_LEGACY_PROC=y
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set
CONFIG_KERNEL_START=0xc000000000000000
#
# Networking
...
...
@@ -166,6 +214,10 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set
#
# Core Netfilter Configuration
#
# CONFIG_NETFILTER_NETLINK is not set
#
...
...
@@ -265,6 +317,10 @@ CONFIG_LLC=y
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
CONFIG_NET_CLS_ROUTE=y
...
...
@@ -326,14 +382,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=65536
CONFIG_BLK_DEV_INITRD=y
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set
#
...
...
@@ -377,6 +425,7 @@ CONFIG_SCSI_FC_ATTRS=y
#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_ACARD is not set
...
...
@@ -454,6 +503,7 @@ CONFIG_DM_ZERO=m
#
# Macintosh device drivers
#
# CONFIG_WINDFARM is not set
#
# Network device support
...
...
@@ -561,6 +611,7 @@ CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
# CONFIG_PPP_MPPE is not set
CONFIG_PPPOE=m
# CONFIG_SLIP is not set
# CONFIG_NET_FC is not set
...
...
@@ -643,6 +694,8 @@ CONFIG_LEGACY_PTY_COUNT=256
#
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
...
...
@@ -660,6 +713,7 @@ CONFIG_MAX_RAW_DEVS=256
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
#
# I2C support
...
...
@@ -712,6 +766,10 @@ CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
# CONFIG_USB is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# USB Gadget Support
#
...
...
@@ -917,10 +975,25 @@ CONFIG_VIOTAPE=m
CONFIG_VIOPATH=y
#
# Profiling support
# Library routines
#
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
#
# Instrumentation Support
#
CONFIG_PROFILING=y
CONFIG_OPROFILE=y
# CONFIG_KPROBES is not set
#
# Kernel hacking
...
...
@@ -937,11 +1010,11 @@ CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_KPROBES is not set
CONFIG_DEBUG_STACK_USAGE=y
# CONFIG_DEBUGGER is not set
# CONFIG_PPCDBG is not set
CONFIG_IRQSTACKS=y
#
...
...
@@ -982,17 +1055,3 @@ CONFIG_CRYPTO_TEST=m
#
# Hardware crypto devices
#
#
# Library routines
#
CONFIG_CRC_CCITT=m
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=m
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=m
CONFIG_TEXTSEARCH_BM=m
CONFIG_TEXTSEARCH_FSM=m
arch/powerpc/configs/maple_defconfig
浏览文件 @
8b200abd
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
4-rc4
# T
hu Oct 20 08:31:24
2005
# Linux kernel version: 2.6.1
5-rc1
# T
ue Nov 15 14:38:58
2005
#
CONFIG_PPC64=y
CONFIG_64BIT=y
CONFIG_PPC_MERGE=y
CONFIG_MMU=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_RWSEM_XCHGADD_ALGORITHM=y
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_
GENERIC_ISA_DMA
=y
CONFIG_
PPC
=y
CONFIG_EARLY_PRINTK=y
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_FORCE_MAX_ZONEORDER=13
#
# Processor support
#
CONFIG_POWER4_ONLY=y
CONFIG_POWER4=y
CONFIG_PPC_FPU=y
# CONFIG_ALTIVEC is not set
CONFIG_PPC_STD_MMU=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
#
# Code maturity level options
...
...
@@ -67,32 +81,67 @@ CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
CONFIG_KMOD=y
CONFIG_STOP_MACHINE=y
CONFIG_SYSVIPC_COMPAT=y
#
# Block layer
#
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
CONFIG_DEFAULT_AS=y
# CONFIG_DEFAULT_DEADLINE is not set
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="anticipatory"
#
# Platform support
#
# CONFIG_PPC_ISERIES is not set
CONFIG_PPC_MULTIPLATFORM=y
# CONFIG_PPC_ISERIES is not set
# CONFIG_EMBEDDED6xx is not set
# CONFIG_APUS is not set
# CONFIG_PPC_PSERIES is not set
# CONFIG_PPC_BPA is not set
# CONFIG_PPC_PMAC is not set
CONFIG_PPC_MAPLE=y
CONFIG_PPC=y
CONFIG_PPC64=y
# CONFIG_PPC_CELL is not set
CONFIG_PPC_OF=y
CONFIG_MPIC=y
# CONFIG_ALTIVEC is not set
CONFIG_KEXEC=y
CONFIG_U3_DART=y
CONFIG_MPIC=y
# CONFIG_PPC_RTAS is not set
# CONFIG_MMIO_NVRAM is not set
CONFIG_MPIC_BROKEN_U3=y
CONFIG_BOOTX_TEXT=y
CONFIG_POWER4_ONLY=y
# CONFIG_PPC_MPC106 is not set
CONFIG_GENERIC_TBSYNC=y
# CONFIG_CPU_FREQ is not set
# CONFIG_WANT_EARLY_SERIAL is not set
#
# Kernel options
#
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_KEXEC=y
CONFIG_IRQ_ALL_CPUS=y
# CONFIG_NUMA is not set
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
...
...
@@ -100,27 +149,21 @@ CONFIG_FLATMEM_MANUAL=y
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
# CONFIG_NUMA is not set
CONFIG_SPLIT_PTLOCK_CPUS=4096
# CONFIG_PPC_64K_PAGES is not set
# CONFIG_SCHED_SMT is not set
CONFIG_PREEMPT_NONE=y
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT is not set
# CONFIG_PREEMPT_BKL is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_GENERIC_HARDIRQS=y
CONFIG_SECCOMP=y
CONFIG_BINFMT_ELF=y
# CONFIG_BINFMT_MISC is not set
CONFIG_PROC_DEVICETREE=y
# CONFIG_CMDLINE_BOOL is not set
# CONFIG_PM is not set
CONFIG_SECCOMP=y
CONFIG_ISA_DMA_API=y
#
# Bus
O
ptions
# Bus
o
ptions
#
CONFIG_GENERIC_ISA_DMA=y
# CONFIG_PPC_I8259 is not set
# CONFIG_PPC_INDIRECT_PCI is not set
CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
CONFIG_PCI_LEGACY_PROC=y
...
...
@@ -135,6 +178,7 @@ CONFIG_PCI_LEGACY_PROC=y
# PCI Hotplug Support
#
# CONFIG_HOTPLUG_PCI is not set
CONFIG_KERNEL_START=0xc000000000000000
#
# Networking
...
...
@@ -193,6 +237,10 @@ CONFIG_TCP_CONG_BIC=y
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
...
...
@@ -254,14 +302,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=8192
# CONFIG_BLK_DEV_INITRD is not set
# CONFIG_CDROM_PKTCDVD is not set
#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_ATA_OVER_ETH is not set
#
...
...
@@ -351,6 +391,7 @@ CONFIG_IDEDMA_AUTO=y
#
# Macintosh device drivers
#
# CONFIG_WINDFARM is not set
#
# Network device support
...
...
@@ -533,6 +574,8 @@ CONFIG_LEGACY_PTY_COUNT=256
#
# CONFIG_WATCHDOG is not set
# CONFIG_RTC is not set
CONFIG_GEN_RTC=y
# CONFIG_GEN_RTC_X is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
...
...
@@ -549,6 +592,7 @@ CONFIG_LEGACY_PTY_COUNT=256
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
#
# I2C support
...
...
@@ -599,6 +643,7 @@ CONFIG_I2C_AMD8111=y
# CONFIG_SENSORS_PCF8591 is not set
# CONFIG_SENSORS_RTC8564 is not set
# CONFIG_SENSORS_MAX6875 is not set
# CONFIG_RTC_X1205_I2C is not set
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
...
...
@@ -681,12 +726,15 @@ CONFIG_USB_UHCI_HCD=y
#
# USB Device Class drivers
#
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#
#
# may also be needed; see USB_STORAGE Help for more information
#
# CONFIG_USB_STORAGE is not set
...
...
@@ -776,6 +824,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
# CONFIG_USB_SERIAL_KLSI is not set
# CONFIG_USB_SERIAL_KOBIL_SCT is not set
# CONFIG_USB_SERIAL_MCT_U232 is not set
# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set
# CONFIG_USB_SERIAL_PL2303 is not set
# CONFIG_USB_SERIAL_HP4X is not set
# CONFIG_USB_SERIAL_SAFE is not set
...
...
@@ -985,9 +1034,19 @@ CONFIG_NLS_DEFAULT="utf-8"
CONFIG_NLS_UTF8=y
#
# Profiling support
# Library routines
#
CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
# CONFIG_KPROBES is not set
#
# Kernel hacking
...
...
@@ -1004,14 +1063,15 @@ CONFIG_DEBUG_SPINLOCK_SLEEP=y
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
CONFIG_DEBUG_FS=y
# CONFIG_DEBUG_VM is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_DEBUG_STACKOVERFLOW=y
# CONFIG_KPROBES is not set
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_DEBUGGER=y
CONFIG_XMON=y
CONFIG_XMON_DEFAULT=y
# CONFIG_PPCDBG is not set
# CONFIG_IRQSTACKS is not set
CONFIG_BOOTX_TEXT=y
#
# Security options
...
...
@@ -1051,12 +1111,3 @@ CONFIG_CRYPTO_DES=y
#
# Hardware crypto devices
#
#
# Library routines
#
CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_ZLIB_INFLATE=y
arch/powerpc/configs/pseries_defconfig
浏览文件 @
8b200abd
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.15-rc1
#
Mon Nov 14 15:27:00
2005
#
Tue Nov 15 14:36:55
2005
#
CONFIG_PPC64=y
CONFIG_64BIT=y
...
...
@@ -144,7 +144,7 @@ CONFIG_FORCE_MAX_ZONEORDER=13
CONFIG_IOMMU_VMERGE=y
CONFIG_HOTPLUG_CPU=y
CONFIG_KEXEC=y
# CONFIG_IRQ_ALL_CPUS is not set
CONFIG_IRQ_ALL_CPUS=y
CONFIG_PPC_SPLPAR=y
CONFIG_EEH=y
CONFIG_SCANLOG=m
...
...
arch/powerpc/kernel/pci_64.c
浏览文件 @
8b200abd
...
...
@@ -30,10 +30,10 @@
#include <asm/byteorder.h>
#include <asm/irq.h>
#include <asm/machdep.h>
#include <asm/udbg.h>
#include <asm/ppc-pci.h>
#ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt)
#else
#define DBG(fmt...)
...
...
@@ -187,7 +187,7 @@ static DEFINE_SPINLOCK(hose_spinlock);
/*
* pci_controller(phb) initialized common variables.
*/
void
__devinit
pci_setup_pci_controller
(
struct
pci_controller
*
hose
)
static
void
__devinit
pci_setup_pci_controller
(
struct
pci_controller
*
hose
)
{
memset
(
hose
,
0
,
sizeof
(
struct
pci_controller
));
...
...
@@ -197,6 +197,65 @@ void __devinit pci_setup_pci_controller(struct pci_controller *hose)
spin_unlock
(
&
hose_spinlock
);
}
static
void
add_linux_pci_domain
(
struct
device_node
*
dev
,
struct
pci_controller
*
phb
)
{
struct
property
*
of_prop
;
unsigned
int
size
;
of_prop
=
(
struct
property
*
)
get_property
(
dev
,
"linux,pci-domain"
,
&
size
);
if
(
of_prop
!=
NULL
)
return
;
WARN_ON
(
of_prop
&&
size
<
sizeof
(
int
));
if
(
of_prop
&&
size
<
sizeof
(
int
))
of_prop
=
NULL
;
size
=
sizeof
(
struct
property
)
+
sizeof
(
int
);
if
(
of_prop
==
NULL
)
{
if
(
mem_init_done
)
of_prop
=
kmalloc
(
size
,
GFP_KERNEL
);
else
of_prop
=
alloc_bootmem
(
size
);
}
memset
(
of_prop
,
0
,
sizeof
(
struct
property
));
of_prop
->
name
=
"linux,pci-domain"
;
of_prop
->
length
=
sizeof
(
int
);
of_prop
->
value
=
(
unsigned
char
*
)
&
of_prop
[
1
];
*
((
int
*
)
of_prop
->
value
)
=
phb
->
global_number
;
prom_add_property
(
dev
,
of_prop
);
}
struct
pci_controller
*
pcibios_alloc_controller
(
struct
device_node
*
dev
)
{
struct
pci_controller
*
phb
;
if
(
mem_init_done
)
phb
=
kmalloc
(
sizeof
(
struct
pci_controller
),
GFP_KERNEL
);
else
phb
=
alloc_bootmem
(
sizeof
(
struct
pci_controller
));
if
(
phb
==
NULL
)
return
NULL
;
pci_setup_pci_controller
(
phb
);
phb
->
arch_data
=
dev
;
phb
->
is_dynamic
=
mem_init_done
;
if
(
dev
)
add_linux_pci_domain
(
dev
,
phb
);
return
phb
;
}
void
pcibios_free_controller
(
struct
pci_controller
*
phb
)
{
if
(
phb
->
arch_data
)
{
struct
device_node
*
np
=
phb
->
arch_data
;
int
*
domain
=
(
int
*
)
get_property
(
np
,
"linux,pci-domain"
,
NULL
);
if
(
domain
)
*
domain
=
-
1
;
}
if
(
phb
->
is_dynamic
)
kfree
(
phb
);
}
static
void
__init
pcibios_claim_one_bus
(
struct
pci_bus
*
b
)
{
struct
pci_dev
*
dev
;
...
...
@@ -907,9 +966,10 @@ void __devinit pci_process_bridge_OF_ranges(struct pci_controller *hose,
* (size depending on dev->n_addr_cells)
* cells 4+5 or 5+6: the size of the range
*/
rlen
=
0
;
hose
->
io_base_phys
=
0
;
ranges
=
(
unsigned
int
*
)
get_property
(
dev
,
"ranges"
,
&
rlen
);
if
(
ranges
==
NULL
)
return
;
hose
->
io_base_phys
=
0
;
while
((
rlen
-=
np
*
sizeof
(
unsigned
int
))
>=
0
)
{
res
=
NULL
;
pci_space
=
ranges
[
0
];
...
...
@@ -1107,6 +1167,8 @@ int remap_bus_range(struct pci_bus *bus)
if
(
get_bus_io_range
(
bus
,
&
start_phys
,
&
start_virt
,
&
size
))
return
1
;
if
(
start_phys
==
0
)
return
1
;
printk
(
"mapping IO %lx -> %lx, size: %lx
\n
"
,
start_phys
,
start_virt
,
size
);
if
(
__ioremap_explicit
(
start_phys
,
start_virt
,
size
,
_PAGE_NO_CACHE
|
_PAGE_GUARDED
))
...
...
arch/powerpc/kernel/rtas_pci.c
浏览文件 @
8b200abd
...
...
@@ -304,75 +304,18 @@ static int __devinit setup_phb(struct device_node *dev,
struct
pci_controller
*
phb
,
unsigned
int
addr_size_words
)
{
pci_setup_pci_controller
(
phb
);
if
(
is_python
(
dev
))
python_countermeasures
(
dev
,
addr_size_words
);
if
(
phb_set_bus_ranges
(
dev
,
phb
))
return
1
;
phb
->
arch_data
=
dev
;
phb
->
ops
=
&
rtas_pci_ops
;
phb
->
buid
=
get_phb_buid
(
dev
);
return
0
;
}
static
void
__devinit
add_linux_pci_domain
(
struct
device_node
*
dev
,
struct
pci_controller
*
phb
,
struct
property
*
of_prop
)
{
memset
(
of_prop
,
0
,
sizeof
(
struct
property
));
of_prop
->
name
=
"linux,pci-domain"
;
of_prop
->
length
=
sizeof
(
phb
->
global_number
);
of_prop
->
value
=
(
unsigned
char
*
)
&
of_prop
[
1
];
memcpy
(
of_prop
->
value
,
&
phb
->
global_number
,
sizeof
(
phb
->
global_number
));
prom_add_property
(
dev
,
of_prop
);
}
static
struct
pci_controller
*
__init
alloc_phb
(
struct
device_node
*
dev
,
unsigned
int
addr_size_words
)
{
struct
pci_controller
*
phb
;
struct
property
*
of_prop
;
phb
=
alloc_bootmem
(
sizeof
(
struct
pci_controller
));
if
(
phb
==
NULL
)
return
NULL
;
of_prop
=
alloc_bootmem
(
sizeof
(
struct
property
)
+
sizeof
(
phb
->
global_number
));
if
(
!
of_prop
)
return
NULL
;
if
(
setup_phb
(
dev
,
phb
,
addr_size_words
))
return
NULL
;
add_linux_pci_domain
(
dev
,
phb
,
of_prop
);
return
phb
;
}
static
struct
pci_controller
*
__devinit
alloc_phb_dynamic
(
struct
device_node
*
dev
,
unsigned
int
addr_size_words
)
{
struct
pci_controller
*
phb
;
phb
=
(
struct
pci_controller
*
)
kmalloc
(
sizeof
(
struct
pci_controller
),
GFP_KERNEL
);
if
(
phb
==
NULL
)
return
NULL
;
if
(
setup_phb
(
dev
,
phb
,
addr_size_words
))
return
NULL
;
phb
->
is_dynamic
=
1
;
/* TODO: linux,pci-domain? */
return
phb
;
}
unsigned
long
__init
find_and_init_phbs
(
void
)
{
struct
device_node
*
node
;
...
...
@@ -397,10 +340,10 @@ unsigned long __init find_and_init_phbs(void)
if
(
node
->
type
==
NULL
||
strcmp
(
node
->
type
,
"pci"
)
!=
0
)
continue
;
phb
=
alloc_phb
(
node
,
root_size_cells
);
phb
=
pcibios_alloc_controller
(
node
);
if
(
!
phb
)
continue
;
setup_phb
(
node
,
phb
,
root_size_cells
);
pci_process_bridge_OF_ranges
(
phb
,
node
,
0
);
pci_setup_phb_io
(
phb
,
index
==
0
);
#ifdef CONFIG_PPC_PSERIES
...
...
@@ -446,10 +389,10 @@ struct pci_controller * __devinit init_phb_dynamic(struct device_node *dn)
root_size_cells
=
prom_n_size_cells
(
root
);
primary
=
list_empty
(
&
hose_list
);
phb
=
alloc_phb_dynamic
(
dn
,
root_size_cells
);
phb
=
pcibios_alloc_controller
(
dn
);
if
(
!
phb
)
return
NULL
;
setup_phb
(
dn
,
phb
,
root_size_cells
);
pci_process_bridge_OF_ranges
(
phb
,
dn
,
primary
);
pci_setup_phb_io_dynamic
(
phb
,
primary
);
...
...
@@ -505,8 +448,7 @@ int pcibios_remove_root_bus(struct pci_controller *phb)
}
list_del
(
&
phb
->
list_node
);
if
(
phb
->
is_dynamic
)
kfree
(
phb
);
pcibios_free_controller
(
phb
);
return
0
;
}
...
...
arch/powerpc/kernel/setup-common.c
浏览文件 @
8b200abd
...
...
@@ -59,6 +59,7 @@
#undef DEBUG
#ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt)
#else
#define DBG(fmt...)
...
...
arch/powerpc/kernel/smp.c
浏览文件 @
8b200abd
...
...
@@ -49,15 +49,16 @@
#include <asm/paca.h>
#endif
int
smp_hw_index
[
NR_CPUS
];
struct
thread_info
*
secondary_ti
;
#ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt)
#else
#define DBG(fmt...)
#endif
int
smp_hw_index
[
NR_CPUS
];
struct
thread_info
*
secondary_ti
;
cpumask_t
cpu_possible_map
=
CPU_MASK_NONE
;
cpumask_t
cpu_online_map
=
CPU_MASK_NONE
;
cpumask_t
cpu_sibling_map
[
NR_CPUS
]
=
{
[
0
...
NR_CPUS
-
1
]
=
CPU_MASK_NONE
};
...
...
arch/powerpc/kernel/vdso32/cacheflush.S
浏览文件 @
8b200abd
...
...
@@ -35,6 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
subf
r8
,
r6
,
r4
/*
compute
length
*/
add
r8
,
r8
,
r5
/*
ensure
we
get
enough
*/
srwi
.
r8
,
r8
,
7
/*
compute
line
count
*/
crclr
cr0
*
4
+
so
beqlr
/*
nothing
to
do
?
*/
mtctr
r8
mr
r3
,
r6
...
...
@@ -58,6 +59,7 @@ V_FUNCTION_END(__kernel_sync_dicache)
*/
V_FUNCTION_BEGIN
(
__kernel_sync_dicache_p5
)
.
cfi_startproc
crclr
cr0
*
4
+
so
sync
isync
li
r3
,
0
...
...
arch/powerpc/kernel/vdso32/datapage.S
浏览文件 @
8b200abd
...
...
@@ -54,7 +54,6 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
.
cfi_startproc
mflr
r12
.
cfi_register
lr
,
r12
mr
r4
,
r3
bl
__get_datapage
@
local
mtlr
r12
...
...
@@ -63,6 +62,7 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
beqlr
li
r0
,
__NR_syscalls
stw
r0
,
0
(
r4
)
crclr
cr0
*
4
+
so
blr
.
cfi_endproc
V_FUNCTION_END
(
__kernel_get_syscall_map
)
...
...
@@ -80,6 +80,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq)
lwz
r4
,(
CFG_TB_TICKS_PER_SEC
+
4
)(
r3
)
lwz
r3
,
CFG_TB_TICKS_PER_SEC
(
r3
)
mtlr
r12
crclr
cr0
*
4
+
so
blr
.
cfi_endproc
V_FUNCTION_END
(
__kernel_get_tbfreq
)
arch/powerpc/kernel/vdso32/gettimeofday.S
浏览文件 @
8b200abd
...
...
@@ -59,6 +59,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday)
stw
r5
,
TZONE_TZ_DSTTIME
(
r11
)
1
:
mtlr
r12
crclr
cr0
*
4
+
so
li
r3
,
0
blr
...
...
@@ -117,6 +118,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
mulli
r5
,
r5
,
1000
stw
r5
,
TSPC32_TV_NSEC
(
r11
)
mtlr
r12
crclr
cr0
*
4
+
so
li
r3
,
0
blr
...
...
@@ -185,6 +187,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
stw
r4
,
TSPC32_TV_NSEC
(
r11
)
mtlr
r12
crclr
cr0
*
4
+
so
li
r3
,
0
blr
...
...
@@ -219,6 +222,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres)
li
r3
,
0
cmpli
cr0
,
r4
,
0
crclr
cr0
*
4
+
so
beqlr
lis
r5
,
CLOCK_REALTIME_RES
@
h
ori
r5
,
r5
,
CLOCK_REALTIME_RES
@
l
...
...
arch/powerpc/kernel/vdso64/cacheflush.S
浏览文件 @
8b200abd
...
...
@@ -35,6 +35,7 @@ V_FUNCTION_BEGIN(__kernel_sync_dicache)
subf
r8
,
r6
,
r4
/*
compute
length
*/
add
r8
,
r8
,
r5
/*
ensure
we
get
enough
*/
srwi
.
r8
,
r8
,
7
/*
compute
line
count
*/
crclr
cr0
*
4
+
so
beqlr
/*
nothing
to
do
?
*/
mtctr
r8
mr
r3
,
r6
...
...
@@ -58,6 +59,7 @@ V_FUNCTION_END(__kernel_sync_dicache)
*/
V_FUNCTION_BEGIN
(
__kernel_sync_dicache_p5
)
.
cfi_startproc
crclr
cr0
*
4
+
so
sync
isync
li
r3
,
0
...
...
arch/powerpc/kernel/vdso64/datapage.S
浏览文件 @
8b200abd
...
...
@@ -54,12 +54,12 @@ V_FUNCTION_BEGIN(__kernel_get_syscall_map)
.
cfi_startproc
mflr
r12
.
cfi_register
lr
,
r12
mr
r4
,
r3
bl
V_LOCAL_FUNC
(
__get_datapage
)
mtlr
r12
addi
r3
,
r3
,
CFG_SYSCALL_MAP64
cmpli
cr0
,
r4
,
0
crclr
cr0
*
4
+
so
beqlr
li
r0
,
__NR_syscalls
stw
r0
,
0
(
r4
)
...
...
@@ -80,6 +80,7 @@ V_FUNCTION_BEGIN(__kernel_get_tbfreq)
bl
V_LOCAL_FUNC
(
__get_datapage
)
ld
r3
,
CFG_TB_TICKS_PER_SEC
(
r3
)
mtlr
r12
crclr
cr0
*
4
+
so
blr
.
cfi_endproc
V_FUNCTION_END
(
__kernel_get_tbfreq
)
arch/powerpc/kernel/vdso64/gettimeofday.S
浏览文件 @
8b200abd
...
...
@@ -52,6 +52,7 @@ V_FUNCTION_BEGIN(__kernel_gettimeofday)
stw
r4
,
TZONE_TZ_MINWEST
(
r10
)
stw
r5
,
TZONE_TZ_DSTTIME
(
r10
)
1
:
mtlr
r12
crclr
cr0
*
4
+
so
li
r3
,
0
/*
always
success
*/
blr
.
cfi_endproc
...
...
@@ -99,6 +100,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
std
r0
,
TSPC64_TV_NSEC
(
r11
)
/*
store
nsec
in
tp
*/
mtlr
r12
crclr
cr0
*
4
+
so
li
r3
,
0
blr
...
...
@@ -159,6 +161,7 @@ V_FUNCTION_BEGIN(__kernel_clock_gettime)
std
r7
,
TSPC64_TV_NSEC
(
r11
)
mtlr
r12
crclr
cr0
*
4
+
so
li
r3
,
0
blr
...
...
@@ -193,6 +196,7 @@ V_FUNCTION_BEGIN(__kernel_clock_getres)
li
r3
,
0
cmpli
cr0
,
r4
,
0
crclr
cr0
*
4
+
so
beqlr
lis
r5
,
CLOCK_REALTIME_RES
@
h
ori
r5
,
r5
,
CLOCK_REALTIME_RES
@
l
...
...
arch/powerpc/mm/lmb.c
浏览文件 @
8b200abd
...
...
@@ -22,35 +22,38 @@
#include "mmu_decl.h"
/* for __max_low_memory */
#endif
struct
lmb
lmb
;
#undef DEBUG
#ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt)
#else
#define DBG(fmt...)
#endif
struct
lmb
lmb
;
void
lmb_dump_all
(
void
)
{
#ifdef DEBUG
unsigned
long
i
;
udbg_printf
(
"lmb_dump_all:
\n
"
);
udbg_printf
(
" memory.cnt = 0x%lx
\n
"
,
lmb
.
memory
.
cnt
);
udbg_printf
(
" memory.size = 0x%lx
\n
"
,
lmb
.
memory
.
size
);
DBG
(
"lmb_dump_all:
\n
"
);
DBG
(
" memory.cnt = 0x%lx
\n
"
,
lmb
.
memory
.
cnt
);
DBG
(
" memory.size = 0x%lx
\n
"
,
lmb
.
memory
.
size
);
for
(
i
=
0
;
i
<
lmb
.
memory
.
cnt
;
i
++
)
{
udbg_printf
(
" memory.region[0x%x].base = 0x%lx
\n
"
,
DBG
(
" memory.region[0x%x].base = 0x%lx
\n
"
,
i
,
lmb
.
memory
.
region
[
i
].
base
);
udbg_printf
(
" .size = 0x%lx
\n
"
,
DBG
(
" .size = 0x%lx
\n
"
,
lmb
.
memory
.
region
[
i
].
size
);
}
udbg_printf
(
"
\n
reserved.cnt = 0x%lx
\n
"
,
lmb
.
reserved
.
cnt
);
udbg_printf
(
" reserved.size = 0x%lx
\n
"
,
lmb
.
reserved
.
size
);
DBG
(
"
\n
reserved.cnt = 0x%lx
\n
"
,
lmb
.
reserved
.
cnt
);
DBG
(
" reserved.size = 0x%lx
\n
"
,
lmb
.
reserved
.
size
);
for
(
i
=
0
;
i
<
lmb
.
reserved
.
cnt
;
i
++
)
{
udbg_printf
(
" reserved.region[0x%x].base = 0x%lx
\n
"
,
DBG
(
" reserved.region[0x%x].base = 0x%lx
\n
"
,
i
,
lmb
.
reserved
.
region
[
i
].
base
);
udbg_printf
(
" .size = 0x%lx
\n
"
,
DBG
(
" .size = 0x%lx
\n
"
,
lmb
.
reserved
.
region
[
i
].
size
);
}
#endif
/* DEBUG */
...
...
arch/powerpc/platforms/iseries/pci.c
浏览文件 @
8b200abd
...
...
@@ -244,10 +244,9 @@ unsigned long __init find_and_init_phbs(void)
if
(
ret
==
0
)
{
printk
(
"bus %d appears to exist
\n
"
,
bus
);
phb
=
(
struct
pci_controller
*
)
kmalloc
(
sizeof
(
struct
pci_controller
),
GFP_KERNE
L
);
phb
=
pcibios_alloc_controller
(
NUL
L
);
if
(
phb
==
NULL
)
return
-
ENOMEM
;
pci_setup_pci_controller
(
phb
);
phb
->
pci_mem_offset
=
phb
->
local_number
=
bus
;
phb
->
first_busno
=
bus
;
...
...
arch/powerpc/platforms/maple/pci.c
浏览文件 @
8b200abd
...
...
@@ -326,26 +326,12 @@ static int __init add_bridge(struct device_node *dev)
dev
->
full_name
);
}
hose
=
alloc_bootmem
(
sizeof
(
struct
pci_controller
)
);
hose
=
pcibios_alloc_controller
(
dev
);
if
(
hose
==
NULL
)
return
-
ENOMEM
;
pci_setup_pci_controller
(
hose
);
hose
->
arch_data
=
dev
;
hose
->
first_busno
=
bus_range
?
bus_range
[
0
]
:
0
;
hose
->
last_busno
=
bus_range
?
bus_range
[
1
]
:
0xff
;
of_prop
=
alloc_bootmem
(
sizeof
(
struct
property
)
+
sizeof
(
hose
->
global_number
));
if
(
of_prop
)
{
memset
(
of_prop
,
0
,
sizeof
(
struct
property
));
of_prop
->
name
=
"linux,pci-domain"
;
of_prop
->
length
=
sizeof
(
hose
->
global_number
);
of_prop
->
value
=
(
unsigned
char
*
)
&
of_prop
[
1
];
memcpy
(
of_prop
->
value
,
&
hose
->
global_number
,
sizeof
(
hose
->
global_number
));
prom_add_property
(
dev
,
of_prop
);
}
disp_name
=
NULL
;
if
(
device_is_compatible
(
dev
,
"u3-agp"
))
{
setup_u3_agp
(
hose
);
...
...
arch/powerpc/platforms/powermac/feature.c
浏览文件 @
8b200abd
...
...
@@ -2362,6 +2362,14 @@ static struct pmac_mb_def pmac_mb_defs[] = {
PMAC_TYPE_UNKNOWN_INTREPID
,
intrepid_features
,
PMAC_MB_MAY_SLEEP
|
PMAC_MB_HAS_FW_POWER
|
PMAC_MB_MOBILE
,
},
{
"PowerBook5,8"
,
"PowerBook G4 15
\"
"
,
PMAC_TYPE_UNKNOWN_INTREPID
,
intrepid_features
,
PMAC_MB_MAY_SLEEP
|
PMAC_MB_HAS_FW_POWER
|
PMAC_MB_MOBILE
,
},
{
"PowerBook5,9"
,
"PowerBook G4 17
\"
"
,
PMAC_TYPE_UNKNOWN_INTREPID
,
intrepid_features
,
PMAC_MB_MAY_SLEEP
|
PMAC_MB_HAS_FW_POWER
|
PMAC_MB_MOBILE
,
},
{
"PowerBook6,1"
,
"PowerBook G4 12
\"
"
,
PMAC_TYPE_UNKNOWN_INTREPID
,
intrepid_features
,
PMAC_MB_MAY_SLEEP
|
PMAC_MB_HAS_FW_POWER
|
PMAC_MB_MOBILE
,
...
...
arch/powerpc/platforms/powermac/pci.c
浏览文件 @
8b200abd
...
...
@@ -640,15 +640,16 @@ static void __init setup_u3_ht(struct pci_controller* hose)
* the reg address cell, we shall fix that by killing struct
* reg_property and using some accessor functions instead
*/
hose
->
cfg_data
=
(
volatile
unsigned
char
*
)
ioremap
(
0xf2000000
,
0x02000000
);
hose
->
cfg_data
=
(
volatile
unsigned
char
*
)
ioremap
(
0xf2000000
,
0x02000000
);
/*
* /ht node doesn't expose a "ranges" property, so we "remove"
regions that
*
have been allocated to AGP. So far, this version of the code doesn't assign
*
any of the 0xfxxxxxxx "fine" memory regions to /ht.
*
We need to fix that sooner or later by either parsing all child "ranges"
*
properties or figuring out the U3 address space decoding logic and
* then read its configuration register (if any).
* /ht node doesn't expose a "ranges" property, so we "remove"
*
regions that have been allocated to AGP. So far, this version of
*
the code doesn't assign any of the 0xfxxxxxxx "fine" memory regions
*
to /ht. We need to fix that sooner or later by either parsing all
*
child "ranges" properties or figuring out the U3 address space
*
decoding logic and
then read its configuration register (if any).
*/
hose
->
io_base_phys
=
0xf4000000
;
hose
->
pci_io_size
=
0x00400000
;
...
...
@@ -671,10 +672,10 @@ static void __init setup_u3_ht(struct pci_controller* hose)
return
;
}
/* We "remove" the AGP resources from the resources allocated to HT,
that
*
is we create "holes". However, that code does assumptions that so far
*
happen to be true (cross fingers...), typically that resources in the
* AGP node are properly ordered
/* We "remove" the AGP resources from the resources allocated to HT,
*
that is we create "holes". However, that code does assumptions
*
that so far happen to be true (cross fingers...), typically that
*
resources in the
AGP node are properly ordered
*/
cur
=
0
;
for
(
i
=
0
;
i
<
3
;
i
++
)
{
...
...
@@ -684,23 +685,30 @@ static void __init setup_u3_ht(struct pci_controller* hose)
/* We don't care about "fine" resources */
if
(
res
->
start
>=
0xf0000000
)
continue
;
/* Check if it's just a matter of "shrinking" us in one direction */
/* Check if it's just a matter of "shrinking" us in one
* direction
*/
if
(
hose
->
mem_resources
[
cur
].
start
==
res
->
start
)
{
DBG
(
"U3/HT: shrink start of %d, %08lx -> %08lx
\n
"
,
cur
,
hose
->
mem_resources
[
cur
].
start
,
res
->
end
+
1
);
cur
,
hose
->
mem_resources
[
cur
].
start
,
res
->
end
+
1
);
hose
->
mem_resources
[
cur
].
start
=
res
->
end
+
1
;
continue
;
}
if
(
hose
->
mem_resources
[
cur
].
end
==
res
->
end
)
{
DBG
(
"U3/HT: shrink end of %d, %08lx -> %08lx
\n
"
,
cur
,
hose
->
mem_resources
[
cur
].
end
,
res
->
start
-
1
);
cur
,
hose
->
mem_resources
[
cur
].
end
,
res
->
start
-
1
);
hose
->
mem_resources
[
cur
].
end
=
res
->
start
-
1
;
continue
;
}
/* No, it's not the case, we need a hole */
if
(
cur
==
2
)
{
/* not enough resources for a hole, we drop part of the range */
printk
(
KERN_WARNING
"Running out of resources for /ht host !
\n
"
);
/* not enough resources for a hole, we drop part
* of the range
*/
printk
(
KERN_WARNING
"Running out of resources"
" for /ht host !
\n
"
);
hose
->
mem_resources
[
cur
].
end
=
res
->
start
-
1
;
continue
;
}
...
...
@@ -714,17 +722,6 @@ static void __init setup_u3_ht(struct pci_controller* hose)
hose
->
mem_resources
[
cur
-
1
].
end
=
res
->
start
-
1
;
}
}
/* XXX this needs to be converged between ppc32 and ppc64... */
static
struct
pci_controller
*
__init
pcibios_alloc_controller
(
void
)
{
struct
pci_controller
*
hose
;
hose
=
alloc_bootmem
(
sizeof
(
struct
pci_controller
));
if
(
hose
)
pci_setup_pci_controller
(
hose
);
return
hose
;
}
#endif
/*
...
...
@@ -756,11 +753,16 @@ static int __init add_bridge(struct device_node *dev)
#endif
bus_range
=
(
int
*
)
get_property
(
dev
,
"bus-range"
,
&
len
);
if
(
bus_range
==
NULL
||
len
<
2
*
sizeof
(
int
))
{
printk
(
KERN_WARNING
"Can't get bus-range for %s, assume
bus 0
\n
"
,
dev
->
full_name
);
printk
(
KERN_WARNING
"Can't get bus-range for %s, assume
"
" bus 0
\n
"
,
dev
->
full_name
);
}
/* XXX Different prototypes, to be merged */
#ifdef CONFIG_PPC64
hose
=
pcibios_alloc_controller
(
dev
);
#else
hose
=
pcibios_alloc_controller
();
#endif
if
(
!
hose
)
return
-
ENOMEM
;
hose
->
arch_data
=
dev
;
...
...
@@ -768,7 +770,7 @@ static int __init add_bridge(struct device_node *dev)
hose
->
last_busno
=
bus_range
?
bus_range
[
1
]
:
0xff
;
disp_name
=
NULL
;
#ifdef CONFIG_P
OWER
4
#ifdef CONFIG_P
PC6
4
if
(
device_is_compatible
(
dev
,
"u3-agp"
))
{
setup_u3_agp
(
hose
);
disp_name
=
"U3-AGP"
;
...
...
arch/powerpc/platforms/pseries/smp.c
浏览文件 @
8b200abd
...
...
@@ -51,6 +51,7 @@
#include "plpar_wrappers.h"
#ifdef DEBUG
#include <asm/udbg.h>
#define DBG(fmt...) udbg_printf(fmt)
#else
#define DBG(fmt...)
...
...
arch/ppc/kernel/setup.c
浏览文件 @
8b200abd
...
...
@@ -602,7 +602,19 @@ void parse_bootinfo(struct bi_record *rec)
#endif
/* CONFIG_BLK_DEV_INITRD */
#ifdef CONFIG_PPC_MULTIPLATFORM
case
BI_MACHTYPE
:
_machine
=
data
[
0
];
/* Machine types changed with the merge. Since the
* bootinfo are now deprecated, we can just hard code
* the appropriate conversion here for when we are
* called with yaboot which passes us a machine type
* this way.
*/
switch
(
data
[
0
])
{
case
1
:
_machine
=
_MACH_prep
;
break
;
case
2
:
_machine
=
_MACH_Pmac
;
break
;
case
4
:
_machine
=
_MACH_chrp
;
break
;
default:
_machine
=
data
[
0
];
}
break
;
#endif
case
BI_MEMSIZE
:
...
...
arch/ppc/mm/init.c
浏览文件 @
8b200abd
...
...
@@ -597,21 +597,20 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
if
(
pfn_valid
(
pfn
))
{
struct
page
*
page
=
pfn_to_page
(
pfn
);
if
(
!
PageReserved
(
page
)
&&
!
test_bit
(
PG_arch_1
,
&
page
->
flags
))
{
if
(
vma
->
vm_mm
==
current
->
active_mm
)
{
#ifdef CONFIG_8xx
/* On 8xx, cache control instructions (particularly
* "dcbst" from flush_dcache_icache) fault as write
* operation if there is an unpopulated TLB entry
* for the address in question. To workaround that,
* we invalidate the TLB here, thus avoiding dcbst
* misbehaviour.
*/
_tlbie
(
address
);
/* On 8xx, the TLB handlers work in 2 stages:
* First, a zeroed entry is loaded by TLBMiss handler,
* which causes the TLBError handler to be triggered.
* That means the zeroed TLB has to be invalidated
* whenever a page miss occurs.
*/
_tlbie
(
address
);
#endif
if
(
!
PageReserved
(
page
)
&&
!
test_bit
(
PG_arch_1
,
&
page
->
flags
))
{
if
(
vma
->
vm_mm
==
current
->
active_mm
)
__flush_dcache_icache
((
void
*
)
address
);
}
else
else
flush_dcache_icache_page
(
page
);
set_bit
(
PG_arch_1
,
&
page
->
flags
);
}
...
...
arch/ppc/xmon/start.c
浏览文件 @
8b200abd
...
...
@@ -184,7 +184,9 @@ xmon_map_scc(void)
sccc
=
base
+
(
addr
&
~
PAGE_MASK
);
sccd
=
sccc
+
0x10
;
}
else
{
}
#ifdef CONFIG_PPC_CHRP
else
{
base
=
(
volatile
unsigned
char
*
)
isa_io_base
;
if
(
_machine
==
_MACH_chrp
)
base
=
(
volatile
unsigned
char
*
)
...
...
@@ -200,6 +202,7 @@ xmon_map_scc(void)
RXRDY
=
1
;
DLAB
=
0x80
;
}
#endif
/* CONFIG_PPC_CHRP */
#elif defined(CONFIG_GEMINI)
/* should already be mapped by the kernel boot */
sccc
=
(
volatile
unsigned
char
*
)
0xffeffb0d
;
...
...
drivers/media/dvb/cinergyT2/cinergyT2.c
浏览文件 @
8b200abd
...
...
@@ -276,7 +276,7 @@ static void cinergyt2_free_stream_urbs (struct cinergyt2 *cinergyt2)
if
(
cinergyt2
->
stream_urb
[
i
])
usb_free_urb
(
cinergyt2
->
stream_urb
[
i
]);
pci_free_consistent
(
NULL
,
STREAM_URB_COUNT
*
STREAM_BUF_SIZE
,
usb_buffer_free
(
cinergyt2
->
udev
,
STREAM_URB_COUNT
*
STREAM_BUF_SIZE
,
cinergyt2
->
streambuf
,
cinergyt2
->
streambuf_dmahandle
);
}
...
...
@@ -284,9 +284,8 @@ static int cinergyt2_alloc_stream_urbs (struct cinergyt2 *cinergyt2)
{
int
i
;
cinergyt2
->
streambuf
=
pci_alloc_consistent
(
NULL
,
STREAM_URB_COUNT
*
STREAM_BUF_SIZE
,
&
cinergyt2
->
streambuf_dmahandle
);
cinergyt2
->
streambuf
=
usb_buffer_alloc
(
cinergyt2
->
udev
,
STREAM_URB_COUNT
*
STREAM_BUF_SIZE
,
SLAB_KERNEL
,
&
cinergyt2
->
streambuf_dmahandle
);
if
(
!
cinergyt2
->
streambuf
)
{
dprintk
(
1
,
"failed to alloc consistent stream memory area, bailing out!
\n
"
);
return
-
ENOMEM
;
...
...
@@ -780,6 +779,8 @@ static int cinergyt2_register_rc(struct cinergyt2 *cinergyt2)
input_register_device
(
cinergyt2
->
rc_input_dev
);
schedule_delayed_work
(
&
cinergyt2
->
rc_query_work
,
HZ
/
2
);
return
0
;
}
static
void
cinergyt2_unregister_rc
(
struct
cinergyt2
*
cinergyt2
)
...
...
fs/compat_ioctl.c
浏览文件 @
8b200abd
...
...
@@ -121,6 +121,11 @@
#include <linux/hiddev.h>
#include <linux/dvb/audio.h>
#include <linux/dvb/dmx.h>
#include <linux/dvb/frontend.h>
#include <linux/dvb/video.h>
#undef INCLUDES
#endif
...
...
@@ -413,6 +418,128 @@ static int do_video_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
return
err
;
}
struct
compat_dmx_event
{
dmx_event_t
event
;
compat_time_t
timeStamp
;
union
{
dmx_scrambling_status_t
scrambling
;
}
u
;
};
static
int
do_dmx_get_event
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
dmx_event
kevent
;
mm_segment_t
old_fs
=
get_fs
();
int
err
;
set_fs
(
KERNEL_DS
);
err
=
sys_ioctl
(
fd
,
cmd
,
(
unsigned
long
)
&
kevent
);
set_fs
(
old_fs
);
if
(
!
err
)
{
struct
compat_dmx_event
__user
*
up
=
compat_ptr
(
arg
);
err
=
put_user
(
kevent
.
event
,
&
up
->
event
);
err
|=
put_user
(
kevent
.
timeStamp
,
&
up
->
timeStamp
);
err
|=
put_user
(
kevent
.
u
.
scrambling
,
&
up
->
u
.
scrambling
);
if
(
err
)
err
=
-
EFAULT
;
}
return
err
;
}
struct
compat_video_event
{
int32_t
type
;
compat_time_t
timestamp
;
union
{
video_size_t
size
;
unsigned
int
frame_rate
;
}
u
;
};
static
int
do_video_get_event
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
video_event
kevent
;
mm_segment_t
old_fs
=
get_fs
();
int
err
;
set_fs
(
KERNEL_DS
);
err
=
sys_ioctl
(
fd
,
cmd
,
(
unsigned
long
)
&
kevent
);
set_fs
(
old_fs
);
if
(
!
err
)
{
struct
compat_video_event
__user
*
up
=
compat_ptr
(
arg
);
err
=
put_user
(
kevent
.
type
,
&
up
->
type
);
err
|=
put_user
(
kevent
.
timestamp
,
&
up
->
timestamp
);
err
|=
put_user
(
kevent
.
u
.
size
.
w
,
&
up
->
u
.
size
.
w
);
err
|=
put_user
(
kevent
.
u
.
size
.
h
,
&
up
->
u
.
size
.
h
);
err
|=
put_user
(
kevent
.
u
.
size
.
aspect_ratio
,
&
up
->
u
.
size
.
aspect_ratio
);
if
(
err
)
err
=
-
EFAULT
;
}
return
err
;
}
struct
compat_video_still_picture
{
compat_uptr_t
iFrame
;
int32_t
size
;
};
static
int
do_video_stillpicture
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
compat_video_still_picture
__user
*
up
;
struct
video_still_picture
__user
*
up_native
;
compat_uptr_t
fp
;
int32_t
size
;
int
err
;
up
=
(
struct
compat_video_still_picture
__user
*
)
arg
;
err
=
get_user
(
fp
,
&
up
->
iFrame
);
err
|=
get_user
(
size
,
&
up
->
size
);
if
(
err
)
return
-
EFAULT
;
up_native
=
compat_alloc_user_space
(
sizeof
(
struct
video_still_picture
));
put_user
(
compat_ptr
(
fp
),
&
up_native
->
iFrame
);
put_user
(
size
,
&
up_native
->
size
);
err
=
sys_ioctl
(
fd
,
cmd
,
(
unsigned
long
)
up_native
);
return
err
;
}
struct
compat_video_spu_palette
{
int
length
;
compat_uptr_t
palette
;
};
static
int
do_video_set_spu_palette
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
struct
compat_video_spu_palette
__user
*
up
;
struct
video_spu_palette
__user
*
up_native
;
compat_uptr_t
palp
;
int
length
,
err
;
up
=
(
struct
compat_video_spu_palette
__user
*
)
arg
;
err
=
get_user
(
palp
,
&
up
->
palette
);
err
|=
get_user
(
length
,
&
up
->
length
);
up_native
=
compat_alloc_user_space
(
sizeof
(
struct
video_spu_palette
));
put_user
(
compat_ptr
(
palp
),
&
up_native
->
palette
);
put_user
(
length
,
&
up_native
->
length
);
err
=
sys_ioctl
(
fd
,
cmd
,
(
unsigned
long
)
up_native
);
return
err
;
}
#ifdef CONFIG_NET
static
int
do_siocgstamp
(
unsigned
int
fd
,
unsigned
int
cmd
,
unsigned
long
arg
)
{
...
...
@@ -2954,5 +3081,11 @@ HANDLE_IOCTL(NCP_IOC_GETPRIVATEDATA_32, do_ncp_getprivatedata)
HANDLE_IOCTL
(
NCP_IOC_SETPRIVATEDATA_32
,
do_ncp_setprivatedata
)
#endif
/* dvb */
HANDLE_IOCTL
(
DMX_GET_EVENT
,
do_dmx_get_event
)
HANDLE_IOCTL
(
VIDEO_GET_EVENT
,
do_video_get_event
)
HANDLE_IOCTL
(
VIDEO_STILLPICTURE
,
do_video_stillpicture
)
HANDLE_IOCTL
(
VIDEO_SET_SPU_PALETTE
,
do_video_set_spu_palette
)
#undef DECLARES
#endif
include/asm-powerpc/ppc-pci.h
浏览文件 @
8b200abd
...
...
@@ -14,7 +14,6 @@
extern
unsigned
long
isa_io_base
;
extern
void
pci_setup_pci_controller
(
struct
pci_controller
*
hose
);
extern
void
pci_setup_phb_io
(
struct
pci_controller
*
hose
,
int
primary
);
extern
void
pci_setup_phb_io_dynamic
(
struct
pci_controller
*
hose
,
int
primary
);
...
...
include/asm-powerpc/vdso.h
浏览文件 @
8b200abd
...
...
@@ -11,7 +11,7 @@
#define VDSO32_MBASE VDSO32_LBASE
#define VDSO64_MBASE VDSO64_LBASE
#define VDSO_VERSION_STRING LINUX_2.6.1
2
#define VDSO_VERSION_STRING LINUX_2.6.1
5
/* Define if 64 bits VDSO has procedure descriptors */
#undef VDS64_HAS_DESCRIPTORS
...
...
include/asm-ppc/pgalloc.h
浏览文件 @
8b200abd
...
...
@@ -28,7 +28,7 @@ extern void pgd_free(pgd_t *pgd);
#define pmd_populate_kernel(mm, pmd, pte) \
(pmd_val(*(pmd)) = (unsigned long)pte | _PMD_PRESENT)
#define pmd_populate(mm, pmd, pte) \
(pmd_val(*(pmd)) = (unsigned long)
page_to_virt
(pte) | _PMD_PRESENT)
(pmd_val(*(pmd)) = (unsigned long)
lowmem_page_address
(pte) | _PMD_PRESENT)
#endif
extern
pte_t
*
pte_alloc_one_kernel
(
struct
mm_struct
*
mm
,
unsigned
long
addr
);
...
...
include/asm-ppc64/pci-bridge.h
浏览文件 @
8b200abd
...
...
@@ -61,12 +61,14 @@ struct pci_dn {
int
busno
;
/* for pci devices */
int
bussubno
;
/* for pci devices */
int
devfn
;
/* for pci devices */
#ifdef CONFIG_PPC_PSERIES
int
eeh_mode
;
/* See eeh.h for possible EEH_MODEs */
int
eeh_config_addr
;
int
eeh_check_count
;
/* # times driver ignored error */
int
eeh_freeze_count
;
/* # times this device froze up. */
int
eeh_is_bridge
;
/* device is pci-to-pci bridge */
#endif
int
pci_ext_config_space
;
/* for pci devices */
struct
pci_controller
*
phb
;
/* for pci devices */
struct
iommu_table
*
iommu_table
;
/* for phb's or bridges */
...
...
@@ -74,9 +76,9 @@ struct pci_dn {
struct
device_node
*
node
;
/* back-pointer to the device_node */
#ifdef CONFIG_PPC_ISERIES
struct
list_head
Device_List
;
int
Irq
;
/* Assigned IRQ */
int
Flags
;
/* Possible flags(disable/bist)*/
u8
LogicalSlot
;
/* Hv Slot Index for Tces */
int
Irq
;
/* Assigned IRQ */
int
Flags
;
/* Possible flags(disable/bist)*/
u8
LogicalSlot
;
/* Hv Slot Index for Tces */
#endif
u32
config_space
[
16
];
/* saved PCI config space */
};
...
...
@@ -136,6 +138,10 @@ static inline struct pci_controller *pci_bus_to_host(struct pci_bus *bus)
return
PCI_DN
(
busdn
)
->
phb
;
}
extern
struct
pci_controller
*
pcibios_alloc_controller
(
struct
device_node
*
dev
);
extern
void
pcibios_free_controller
(
struct
pci_controller
*
phb
);
/* Return values for ppc_md.pci_probe_mode function */
#define PCI_PROBE_NONE -1
/* Don't look at this bus at all */
#define PCI_PROBE_NORMAL 0
/* Do normal PCI probing */
...
...
include/linux/compat_ioctl.h
浏览文件 @
8b200abd
...
...
@@ -795,3 +795,70 @@ COMPATIBLE_IOCTL(HIDIOCGFLAG)
COMPATIBLE_IOCTL
(
HIDIOCSFLAG
)
COMPATIBLE_IOCTL
(
HIDIOCGCOLLECTIONINDEX
)
COMPATIBLE_IOCTL
(
HIDIOCGCOLLECTIONINFO
)
/* dvb */
COMPATIBLE_IOCTL
(
AUDIO_STOP
)
COMPATIBLE_IOCTL
(
AUDIO_PLAY
)
COMPATIBLE_IOCTL
(
AUDIO_PAUSE
)
COMPATIBLE_IOCTL
(
AUDIO_CONTINUE
)
COMPATIBLE_IOCTL
(
AUDIO_SELECT_SOURCE
)
COMPATIBLE_IOCTL
(
AUDIO_SET_MUTE
)
COMPATIBLE_IOCTL
(
AUDIO_SET_AV_SYNC
)
COMPATIBLE_IOCTL
(
AUDIO_SET_BYPASS_MODE
)
COMPATIBLE_IOCTL
(
AUDIO_CHANNEL_SELECT
)
COMPATIBLE_IOCTL
(
AUDIO_GET_STATUS
)
COMPATIBLE_IOCTL
(
AUDIO_GET_CAPABILITIES
)
COMPATIBLE_IOCTL
(
AUDIO_CLEAR_BUFFER
)
COMPATIBLE_IOCTL
(
AUDIO_SET_ID
)
COMPATIBLE_IOCTL
(
AUDIO_SET_MIXER
)
COMPATIBLE_IOCTL
(
AUDIO_SET_STREAMTYPE
)
COMPATIBLE_IOCTL
(
AUDIO_SET_EXT_ID
)
COMPATIBLE_IOCTL
(
AUDIO_SET_ATTRIBUTES
)
COMPATIBLE_IOCTL
(
AUDIO_SET_KARAOKE
)
COMPATIBLE_IOCTL
(
DMX_START
)
COMPATIBLE_IOCTL
(
DMX_STOP
)
COMPATIBLE_IOCTL
(
DMX_SET_FILTER
)
COMPATIBLE_IOCTL
(
DMX_SET_PES_FILTER
)
COMPATIBLE_IOCTL
(
DMX_SET_BUFFER_SIZE
)
COMPATIBLE_IOCTL
(
DMX_GET_PES_PIDS
)
COMPATIBLE_IOCTL
(
DMX_GET_CAPS
)
COMPATIBLE_IOCTL
(
DMX_SET_SOURCE
)
COMPATIBLE_IOCTL
(
DMX_GET_STC
)
COMPATIBLE_IOCTL
(
FE_GET_INFO
)
COMPATIBLE_IOCTL
(
FE_DISEQC_RESET_OVERLOAD
)
COMPATIBLE_IOCTL
(
FE_DISEQC_SEND_MASTER_CMD
)
COMPATIBLE_IOCTL
(
FE_DISEQC_RECV_SLAVE_REPLY
)
COMPATIBLE_IOCTL
(
FE_DISEQC_SEND_BURST
)
COMPATIBLE_IOCTL
(
FE_SET_TONE
)
COMPATIBLE_IOCTL
(
FE_SET_VOLTAGE
)
COMPATIBLE_IOCTL
(
FE_ENABLE_HIGH_LNB_VOLTAGE
)
COMPATIBLE_IOCTL
(
FE_READ_STATUS
)
COMPATIBLE_IOCTL
(
FE_READ_BER
)
COMPATIBLE_IOCTL
(
FE_READ_SIGNAL_STRENGTH
)
COMPATIBLE_IOCTL
(
FE_READ_SNR
)
COMPATIBLE_IOCTL
(
FE_READ_UNCORRECTED_BLOCKS
)
COMPATIBLE_IOCTL
(
FE_SET_FRONTEND
)
COMPATIBLE_IOCTL
(
FE_GET_FRONTEND
)
COMPATIBLE_IOCTL
(
FE_GET_EVENT
)
COMPATIBLE_IOCTL
(
FE_DISHNETWORK_SEND_LEGACY_CMD
)
COMPATIBLE_IOCTL
(
VIDEO_STOP
)
COMPATIBLE_IOCTL
(
VIDEO_PLAY
)
COMPATIBLE_IOCTL
(
VIDEO_FREEZE
)
COMPATIBLE_IOCTL
(
VIDEO_CONTINUE
)
COMPATIBLE_IOCTL
(
VIDEO_SELECT_SOURCE
)
COMPATIBLE_IOCTL
(
VIDEO_SET_BLANK
)
COMPATIBLE_IOCTL
(
VIDEO_GET_STATUS
)
COMPATIBLE_IOCTL
(
VIDEO_SET_DISPLAY_FORMAT
)
COMPATIBLE_IOCTL
(
VIDEO_FAST_FORWARD
)
COMPATIBLE_IOCTL
(
VIDEO_SLOWMOTION
)
COMPATIBLE_IOCTL
(
VIDEO_GET_CAPABILITIES
)
COMPATIBLE_IOCTL
(
VIDEO_CLEAR_BUFFER
)
COMPATIBLE_IOCTL
(
VIDEO_SET_ID
)
COMPATIBLE_IOCTL
(
VIDEO_SET_STREAMTYPE
)
COMPATIBLE_IOCTL
(
VIDEO_SET_FORMAT
)
COMPATIBLE_IOCTL
(
VIDEO_SET_SYSTEM
)
COMPATIBLE_IOCTL
(
VIDEO_SET_HIGHLIGHT
)
COMPATIBLE_IOCTL
(
VIDEO_SET_SPU
)
COMPATIBLE_IOCTL
(
VIDEO_GET_NAVI
)
COMPATIBLE_IOCTL
(
VIDEO_SET_ATTRIBUTES
)
COMPATIBLE_IOCTL
(
VIDEO_GET_SIZE
)
COMPATIBLE_IOCTL
(
VIDEO_GET_FRAME_RATE
)
sound/ppc/tumbler.c
浏览文件 @
8b200abd
...
...
@@ -1194,8 +1194,14 @@ static void tumbler_resume(pmac_t *chip)
tumbler_set_master_volume
(
mix
);
if
(
chip
->
update_automute
)
chip
->
update_automute
(
chip
,
0
);
if
(
mix
->
headphone_irq
>=
0
)
if
(
mix
->
headphone_irq
>=
0
)
{
unsigned
char
val
;
enable_irq
(
mix
->
headphone_irq
);
/* activate headphone status interrupts */
val
=
do_gpio_read
(
&
mix
->
hp_detect
);
do_gpio_write
(
&
mix
->
hp_detect
,
val
|
0x80
);
}
if
(
mix
->
lineout_irq
>=
0
)
enable_irq
(
mix
->
lineout_irq
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录