Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
kernel_linux
提交
8a212ab6
K
kernel_linux
项目概览
OpenHarmony
/
kernel_linux
上一次同步 3 年多
通知
13
Star
8
Fork
2
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kernel_linux
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
8a212ab6
编写于
10月 28, 2005
作者:
L
Linus Torvalds
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'release' of
git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6
上级
1f419cad
0e1f6060
变更
63
展开全部
隐藏空白更改
内联
并排
Showing
63 changed file
with
4172 addition
and
1303 deletion
+4172
-1303
arch/ia64/Kconfig
arch/ia64/Kconfig
+58
-40
arch/ia64/configs/bigsur_defconfig
arch/ia64/configs/bigsur_defconfig
+268
-127
arch/ia64/configs/gensparse_defconfig
arch/ia64/configs/gensparse_defconfig
+1319
-0
arch/ia64/configs/tiger_defconfig
arch/ia64/configs/tiger_defconfig
+66
-20
arch/ia64/configs/zx1_defconfig
arch/ia64/configs/zx1_defconfig
+68
-24
arch/ia64/defconfig
arch/ia64/defconfig
+174
-91
arch/ia64/hp/common/hwsw_iommu.c
arch/ia64/hp/common/hwsw_iommu.c
+11
-2
arch/ia64/hp/common/sba_iommu.c
arch/ia64/hp/common/sba_iommu.c
+32
-13
arch/ia64/hp/sim/simscsi.c
arch/ia64/hp/sim/simscsi.c
+8
-5
arch/ia64/kernel/acpi.c
arch/ia64/kernel/acpi.c
+11
-2
arch/ia64/kernel/efi.c
arch/ia64/kernel/efi.c
+329
-181
arch/ia64/kernel/irq.c
arch/ia64/kernel/irq.c
+6
-6
arch/ia64/kernel/mca.c
arch/ia64/kernel/mca.c
+1
-3
arch/ia64/kernel/module.c
arch/ia64/kernel/module.c
+3
-3
arch/ia64/kernel/patch.c
arch/ia64/kernel/patch.c
+12
-4
arch/ia64/kernel/ptrace.c
arch/ia64/kernel/ptrace.c
+11
-17
arch/ia64/kernel/setup.c
arch/ia64/kernel/setup.c
+49
-14
arch/ia64/kernel/smp.c
arch/ia64/kernel/smp.c
+5
-5
arch/ia64/kernel/smpboot.c
arch/ia64/kernel/smpboot.c
+3
-3
arch/ia64/kernel/uncached.c
arch/ia64/kernel/uncached.c
+6
-11
arch/ia64/lib/swiotlb.c
arch/ia64/lib/swiotlb.c
+102
-0
arch/ia64/mm/Makefile
arch/ia64/mm/Makefile
+2
-3
arch/ia64/mm/contig.c
arch/ia64/mm/contig.c
+2
-2
arch/ia64/mm/discontig.c
arch/ia64/mm/discontig.c
+41
-2
arch/ia64/mm/init.c
arch/ia64/mm/init.c
+1
-1
arch/ia64/mm/numa.c
arch/ia64/mm/numa.c
+24
-0
arch/ia64/mm/tlb.c
arch/ia64/mm/tlb.c
+12
-9
arch/ia64/pci/pci.c
arch/ia64/pci/pci.c
+27
-31
arch/ia64/sn/kernel/bte.c
arch/ia64/sn/kernel/bte.c
+1
-1
arch/ia64/sn/kernel/io_init.c
arch/ia64/sn/kernel/io_init.c
+1
-3
arch/ia64/sn/kernel/setup.c
arch/ia64/sn/kernel/setup.c
+51
-109
arch/ia64/sn/kernel/sn2/sn2_smp.c
arch/ia64/sn/kernel/sn2/sn2_smp.c
+19
-12
arch/ia64/sn/kernel/sn2/sn_hwperf.c
arch/ia64/sn/kernel/sn2/sn_hwperf.c
+2
-2
arch/ia64/sn/kernel/tiocx.c
arch/ia64/sn/kernel/tiocx.c
+35
-32
arch/ia64/sn/kernel/xpc.h
arch/ia64/sn/kernel/xpc.h
+324
-42
arch/ia64/sn/kernel/xpc_channel.c
arch/ia64/sn/kernel/xpc_channel.c
+195
-134
arch/ia64/sn/kernel/xpc_main.c
arch/ia64/sn/kernel/xpc_main.c
+256
-74
arch/ia64/sn/kernel/xpc_partition.c
arch/ia64/sn/kernel/xpc_partition.c
+356
-119
arch/ia64/sn/pci/pci_dma.c
arch/ia64/sn/pci/pci_dma.c
+46
-0
arch/ia64/sn/pci/pcibr/pcibr_reg.c
arch/ia64/sn/pci/pcibr/pcibr_reg.c
+31
-28
arch/ia64/sn/pci/tioca_provider.c
arch/ia64/sn/pci/tioca_provider.c
+16
-16
arch/ia64/sn/pci/tioce_provider.c
arch/ia64/sn/pci/tioce_provider.c
+16
-14
drivers/char/agp/sgi-agp.c
drivers/char/agp/sgi-agp.c
+1
-0
drivers/char/mmtimer.c
drivers/char/mmtimer.c
+2
-2
drivers/char/snsc.c
drivers/char/snsc.c
+2
-2
include/asm-ia64/machvec.h
include/asm-ia64/machvec.h
+1
-1
include/asm-ia64/machvec_hpzx1.h
include/asm-ia64/machvec_hpzx1.h
+10
-11
include/asm-ia64/machvec_hpzx1_swiotlb.h
include/asm-ia64/machvec_hpzx1_swiotlb.h
+1
-2
include/asm-ia64/meminit.h
include/asm-ia64/meminit.h
+4
-2
include/asm-ia64/mmzone.h
include/asm-ia64/mmzone.h
+7
-3
include/asm-ia64/nodedata.h
include/asm-ia64/nodedata.h
+2
-2
include/asm-ia64/page.h
include/asm-ia64/page.h
+3
-3
include/asm-ia64/sn/arch.h
include/asm-ia64/sn/arch.h
+26
-10
include/asm-ia64/sn/io.h
include/asm-ia64/sn/io.h
+10
-1
include/asm-ia64/sn/klconfig.h
include/asm-ia64/sn/klconfig.h
+4
-30
include/asm-ia64/sn/l1.h
include/asm-ia64/sn/l1.h
+12
-0
include/asm-ia64/sn/nodepda.h
include/asm-ia64/sn/nodepda.h
+0
-1
include/asm-ia64/sn/sn_cpuid.h
include/asm-ia64/sn/sn_cpuid.h
+0
-3
include/asm-ia64/sn/sn_sal.h
include/asm-ia64/sn/sn_sal.h
+45
-14
include/asm-ia64/sn/tioca_provider.h
include/asm-ia64/sn/tioca_provider.h
+7
-7
include/asm-ia64/sn/tiocx.h
include/asm-ia64/sn/tiocx.h
+2
-1
include/asm-ia64/sn/xp.h
include/asm-ia64/sn/xp.h
+13
-3
include/asm-ia64/sparsemem.h
include/asm-ia64/sparsemem.h
+20
-0
未找到文件。
arch/ia64/Kconfig
浏览文件 @
8a212ab6
...
...
@@ -63,8 +63,6 @@ config IA64_GENERIC
select ACPI
select NUMA
select ACPI_NUMA
select VIRTUAL_MEM_MAP
select DISCONTIGMEM
help
This selects the system type of your hardware. A "generic" kernel
will run on any supported IA-64 system. However, if you configure
...
...
@@ -176,40 +174,6 @@ config IA64_L1_CACHE_SHIFT
default "6" if ITANIUM
# align cache-sensitive data to 64 bytes
config NUMA
bool "NUMA support"
depends on !IA64_HP_SIM
default y if IA64_SGI_SN2
select ACPI_NUMA
help
Say Y to compile the kernel to support NUMA (Non-Uniform Memory
Access). This option is for configuring high-end multiprocessor
server systems. If in doubt, say N.
config VIRTUAL_MEM_MAP
bool "Virtual mem map"
default y if !IA64_HP_SIM
help
Say Y to compile the kernel with support for a virtual mem map.
This code also only takes effect if a memory hole of greater than
1 Gb is found during boot. You must turn this option on if you
require the DISCONTIGMEM option for your machine. If you are
unsure, say Y.
config HOLES_IN_ZONE
bool
default y if VIRTUAL_MEM_MAP
config ARCH_DISCONTIGMEM_ENABLE
bool "Discontiguous memory support"
depends on (IA64_DIG || IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB) && NUMA && VIRTUAL_MEM_MAP
default y if (IA64_SGI_SN2 || IA64_GENERIC) && NUMA
help
Say Y to support efficient handling of discontiguous physical memory,
for architectures which are either NUMA (Non-Uniform Memory Access)
or have huge holes in the physical address space for other reasons.
See <file:Documentation/vm/numa> for more.
config IA64_CYCLONE
bool "Cyclone (EXA) Time Source support"
help
...
...
@@ -232,8 +196,10 @@ config IA64_SGI_SN_XP
based on a network adapter and DMA messaging.
config FORCE_MAX_ZONEORDER
int
default "18"
int "MAX_ORDER (11 - 17)" if !HUGETLB_PAGE
range 11 17 if !HUGETLB_PAGE
default "17" if HUGETLB_PAGE
default "11"
config SMP
bool "Symmetric multi-processing support"
...
...
@@ -254,8 +220,8 @@ config SMP
If you don't know what to do here, say N.
config NR_CPUS
int "Maximum number of CPUs (2-
512
)"
range 2
512
int "Maximum number of CPUs (2-
1024
)"
range 2
1024
depends on SMP
default "64"
help
...
...
@@ -298,6 +264,58 @@ config PREEMPT
source "mm/Kconfig"
config ARCH_SELECT_MEMORY_MODEL
def_bool y
config ARCH_DISCONTIGMEM_ENABLE
def_bool y
help
Say Y to support efficient handling of discontiguous physical memory,
for architectures which are either NUMA (Non-Uniform Memory Access)
or have huge holes in the physical address space for other reasons.
See <file:Documentation/vm/numa> for more.
config ARCH_FLATMEM_ENABLE
def_bool y
config ARCH_SPARSEMEM_ENABLE
def_bool y
depends on ARCH_DISCONTIGMEM_ENABLE
config ARCH_DISCONTIGMEM_DEFAULT
def_bool y if (IA64_SGI_SN2 || IA64_GENERIC || IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB)
depends on ARCH_DISCONTIGMEM_ENABLE
config NUMA
bool "NUMA support"
depends on !IA64_HP_SIM && !FLATMEM
default y if IA64_SGI_SN2
help
Say Y to compile the kernel to support NUMA (Non-Uniform Memory
Access). This option is for configuring high-end multiprocessor
server systems. If in doubt, say N.
# VIRTUAL_MEM_MAP and FLAT_NODE_MEM_MAP are functionally equivalent.
# VIRTUAL_MEM_MAP has been retained for historical reasons.
config VIRTUAL_MEM_MAP
bool "Virtual mem map"
depends on !SPARSEMEM
default y if !IA64_HP_SIM
help
Say Y to compile the kernel with support for a virtual mem map.
This code also only takes effect if a memory hole of greater than
1 Gb is found during boot. You must turn this option on if you
require the DISCONTIGMEM option for your machine. If you are
unsure, say Y.
config HOLES_IN_ZONE
bool
default y if VIRTUAL_MEM_MAP
config HAVE_ARCH_EARLY_PFN_TO_NID
def_bool y
depends on NEED_MULTIPLE_NODES
config IA32_SUPPORT
bool "Support for Linux/x86 binaries"
help
...
...
arch/ia64/configs/bigsur_defconfig
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/configs/gensparse_defconfig
0 → 100644
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/configs/tiger_defconfig
浏览文件 @
8a212ab6
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
3-rc6-tiger-smp
# Wed
Aug 17 10:19:51
2005
# Linux kernel version: 2.6.1
4-rc1
# Wed
Sep 14 15:17:57
2005
#
#
...
...
@@ -16,6 +16,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
...
...
@@ -27,6 +28,7 @@ CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_CPUSETS is not set
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
...
...
@@ -103,6 +105,7 @@ CONFIG_FLATMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y
...
...
@@ -115,6 +118,7 @@ CONFIG_IA64_PALINFO=y
#
CONFIG_EFI_VARS=y
CONFIG_EFI_PCDP=y
# CONFIG_DELL_RBU is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
...
...
@@ -122,20 +126,27 @@ CONFIG_BINFMT_MISC=m
# Power management and ACPI
#
CONFIG_PM=y
CONFIG_ACPI=y
# CONFIG_PM_DEBUG is not set
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_PROCESSOR=m
# CONFIG_ACPI_HOTPLUG_CPU is not set
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_ACPI_CONTAINER is not set
CONFIG_ACPI_CONTAINER=m
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# Bus options (PCI, PCMCIA)
...
...
@@ -144,7 +155,6 @@ CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
# CONFIG_PCI_DEBUG is not set
#
...
...
@@ -188,13 +198,18 @@ CONFIG_SYN_COOKIES=y
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_I
P_TCP
DIAG=y
# CONFIG_IP_TCPDIAG_IPV6 is not set
CONFIG_I
NET_
DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set
#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
...
...
@@ -218,9 +233,11 @@ CONFIG_TCP_CONG_BIC=y
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETFILTER_NETLINK is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
# Device Drivers
...
...
@@ -234,6 +251,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
#
# Memory Technology Devices (MTD)
#
...
...
@@ -247,7 +269,13 @@ CONFIG_FW_LOADER=m
#
# Plug and Play support
#
# CONFIG_PNP is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
CONFIG_PNPACPI=y
#
# Block devices
...
...
@@ -266,7 +294,6 @@ CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CDROM_PKTCDVD is not set
#
...
...
@@ -299,7 +326,8 @@ CONFIG_BLK_DEV_IDESCSI=m
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
...
...
@@ -339,6 +367,7 @@ CONFIG_IDEDMA_AUTO=y
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
...
...
@@ -366,6 +395,7 @@ CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
#
# SCSI low-level drivers
...
...
@@ -454,12 +484,18 @@ CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# PHY device support
#
# CONFIG_PHYLIB is not set
#
# Ethernet (10 or 100Mbit)
#
...
...
@@ -481,6 +517,7 @@ CONFIG_TULIP=m
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_ULI526X is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
...
...
@@ -512,6 +549,7 @@ CONFIG_E1000=y
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
...
...
@@ -521,6 +559,7 @@ CONFIG_TIGON3=y
#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
...
...
@@ -618,6 +657,7 @@ CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
# CONFIG_DIGIEPCA is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_ISI is not set
# CONFIG_SYNCLINKMP is not set
...
...
@@ -675,6 +715,7 @@ CONFIG_DRM_RADEON=m
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
CONFIG_RAW_DRIVER=m
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
...
...
@@ -691,7 +732,6 @@ CONFIG_MAX_RAW_DEVS=256
# I2C support
#
# CONFIG_I2C is not set
# CONFIG_I2C_SENSOR is not set
#
# Dallas's 1-wire bus
...
...
@@ -702,12 +742,17 @@ CONFIG_MAX_RAW_DEVS=256
# Hardware Monitoring support
#
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Misc devices
#
#
# Multimedia Capabilities Port drivers
#
#
# Multimedia devices
#
...
...
@@ -800,9 +845,11 @@ CONFIG_USB_HIDINPUT=y
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_ITMTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set
#
# USB Imaging devices
...
...
@@ -902,16 +949,12 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
#
# XFS support
#
CONFIG_XFS_FS=y
CONFIG_XFS_EXPORT=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_XFS_RT is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
...
...
@@ -919,6 +962,7 @@ CONFIG_INOTIFY=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
...
...
@@ -947,13 +991,11 @@ CONFIG_NTFS_FS=m
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_TMPFS_XATTR=y
CONFIG_TMPFS_SECURITY=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
# CONFIG_RELAYFS_FS is not set
#
# Miscellaneous filesystems
...
...
@@ -1003,6 +1045,7 @@ CONFIG_CIFS=m
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
#
# Partition Types
...
...
@@ -1072,10 +1115,12 @@ CONFIG_NLS_UTF8=m
# Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
#
# Profiling support
...
...
@@ -1089,6 +1134,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_LOG_BUF_SHIFT=20
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_SPINLOCK is not set
...
...
arch/ia64/configs/zx1_defconfig
浏览文件 @
8a212ab6
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
3-rc6
# Wed
Aug 17 10:02:43
2005
# Linux kernel version: 2.6.1
4-rc1
# Wed
Sep 14 15:15:01
2005
#
#
...
...
@@ -18,6 +18,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_POSIX_MQUEUE is not set
...
...
@@ -29,6 +30,7 @@ CONFIG_HOTPLUG=y
CONFIG_KOBJECT_UEVENT=y
# CONFIG_IKCONFIG is not set
# CONFIG_CPUSETS is not set
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_ALL is not set
...
...
@@ -103,6 +105,7 @@ CONFIG_FLATMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y
...
...
@@ -115,6 +118,7 @@ CONFIG_IA64_PALINFO=y
#
CONFIG_EFI_VARS=y
CONFIG_EFI_PCDP=y
# CONFIG_DELL_RBU is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=y
...
...
@@ -122,20 +126,27 @@ CONFIG_BINFMT_MISC=y
# Power management and ACPI
#
CONFIG_PM=y
CONFIG_ACPI=y
# CONFIG_PM_DEBUG is not set
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_FAN=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_THERMAL=y
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
# CONFIG_ACPI_CONTAINER is not set
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# Bus options (PCI, PCMCIA)
#
...
...
@@ -143,7 +154,6 @@ CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
# CONFIG_PCI_DEBUG is not set
#
...
...
@@ -187,8 +197,8 @@ CONFIG_IP_FIB_HASH=y
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
# CONFIG_IP_TCPDIAG is not set
# CONFIG_IP_TCPDIAG_IPV6 is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y
...
...
@@ -204,13 +214,17 @@ CONFIG_NETFILTER=y
# IP: Netfilter Configuration
#
# CONFIG_IP_NF_CONNTRACK is not set
# CONFIG_IP_NF_CONNTRACK_MARK is not set
# CONFIG_IP_NF_QUEUE is not set
# CONFIG_IP_NF_IPTABLES is not set
CONFIG_IP_NF_ARPTABLES=y
# CONFIG_IP_NF_ARPFILTER is not set
# CONFIG_IP_NF_ARP_MANGLE is not set
#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
...
...
@@ -234,9 +248,11 @@ CONFIG_IP_NF_ARPTABLES=y
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETFILTER_NETLINK is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
# Device Drivers
...
...
@@ -250,6 +266,11 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
# CONFIG_DEBUG_DRIVER is not set
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
#
# Memory Technology Devices (MTD)
#
...
...
@@ -263,7 +284,13 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Plug and Play support
#
# CONFIG_PNP is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
CONFIG_PNPACPI=y
#
# Block devices
...
...
@@ -282,7 +309,6 @@ CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CDROM_PKTCDVD is not set
#
...
...
@@ -315,7 +341,8 @@ CONFIG_BLK_DEV_IDECD=y
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
CONFIG_IDEPCI_SHARE_IRQ=y
# CONFIG_BLK_DEV_OFFBOARD is not set
...
...
@@ -354,6 +381,7 @@ CONFIG_BLK_DEV_IDEDMA=y
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
...
...
@@ -381,6 +409,7 @@ CONFIG_SCSI_LOGGING=y
CONFIG_SCSI_SPI_ATTRS=y
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
#
# SCSI low-level drivers
...
...
@@ -457,12 +486,18 @@ CONFIG_DUMMY=y
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# PHY device support
#
# CONFIG_PHYLIB is not set
#
# Ethernet (10 or 100Mbit)
#
...
...
@@ -485,6 +520,7 @@ CONFIG_TULIP_NAPI_HW_MITIGATION=y
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_ULI526X is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
...
...
@@ -516,6 +552,7 @@ CONFIG_E1000=y
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
...
...
@@ -525,6 +562,7 @@ CONFIG_TIGON3=y
#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
...
...
@@ -650,12 +688,12 @@ CONFIG_AGP=y
CONFIG_AGP_HP_ZX1=y
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_GAMMA is not set
# CONFIG_DRM_R128 is not set
CONFIG_DRM_RADEON=y
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set
...
...
@@ -689,7 +727,6 @@ CONFIG_I2C_ALGOPCF=y
# CONFIG_I2C_I801 is not set
# CONFIG_I2C_I810 is not set
# CONFIG_I2C_PIIX4 is not set
# CONFIG_I2C_ISA is not set
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
...
...
@@ -703,7 +740,6 @@ CONFIG_I2C_ALGOPCF=y
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
# CONFIG_I2C_PCA_ISA is not set
# CONFIG_I2C_SENSOR is not set
#
# Miscellaneous I2C Chip support
...
...
@@ -730,11 +766,16 @@ CONFIG_I2C_ALGOPCF=y
# Hardware Monitoring support
#
# CONFIG_HWMON is not set
# CONFIG_HWMON_VID is not set
#
# Misc devices
#
#
# Multimedia Capabilities Port drivers
#
#
# Multimedia devices
#
...
...
@@ -806,6 +847,7 @@ CONFIG_FB_RADEON_DEBUG=y
# CONFIG_FB_KYRO is not set
# CONFIG_FB_3DFX is not set
# CONFIG_FB_VOODOO1 is not set
# CONFIG_FB_CYBLA is not set
# CONFIG_FB_TRIDENT is not set
# CONFIG_FB_PM3 is not set
# CONFIG_FB_S1D13XXX is not set
...
...
@@ -862,11 +904,12 @@ CONFIG_SND_OPL3_LIB=y
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set
CONFIG_SND_AC97_CODEC=y
CONFIG_SND_AC97_BUS=y
#
# PCI devices
#
CONFIG_SND_AC97_CODEC=y
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
...
...
@@ -890,7 +933,7 @@ CONFIG_SND_AC97_CODEC=y
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_A
LS4000
is not set
# CONFIG_SND_A
D1889
is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
...
...
@@ -952,9 +995,8 @@ CONFIG_USB_UHCI_HCD=y
#
# USB Device Class drivers
#
# CONFIG_
USB_AUDIO
is not set
# CONFIG_
OBSOLETE_OSS_USB_DRIVER
is not set
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_MIDI is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
...
...
@@ -971,6 +1013,7 @@ CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_SDDR09 is not set
# CONFIG_USB_STORAGE_SDDR55 is not set
# CONFIG_USB_STORAGE_JUMPSHOT is not set
# CONFIG_USB_STORAGE_ONETOUCH is not set
#
# USB Input Devices
...
...
@@ -987,9 +1030,11 @@ CONFIG_USB_HIDDEV=y
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_ITMTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set
#
# USB Imaging devices
...
...
@@ -1088,10 +1133,6 @@ CONFIG_FS_MBCACHE=y
# CONFIG_REISERFS_FS is not set
# CONFIG_JFS_FS is not set
# CONFIG_FS_POSIX_ACL is not set
#
# XFS support
#
# CONFIG_XFS_FS is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
...
...
@@ -1100,6 +1141,7 @@ CONFIG_FS_MBCACHE=y
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
# CONFIG_AUTOFS4_FS is not set
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
...
...
@@ -1126,13 +1168,11 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_TMPFS_XATTR=y
CONFIG_TMPFS_SECURITY=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
# CONFIG_RELAYFS_FS is not set
#
# Miscellaneous filesystems
...
...
@@ -1177,6 +1217,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
#
# Partition Types
...
...
@@ -1246,10 +1287,12 @@ CONFIG_NLS_UTF8=y
# Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
#
# Profiling support
...
...
@@ -1263,6 +1306,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_LOG_BUF_SHIFT=17
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_SPINLOCK is not set
...
...
arch/ia64/defconfig
浏览文件 @
8a212ab6
#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.1
2
#
Tue Jun 21 11:30:42
2005
# Linux kernel version: 2.6.1
4-rc1
#
Wed Sep 14 15:13:03
2005
#
#
...
...
@@ -16,6 +16,7 @@ CONFIG_INIT_ENV_ARG_LIMIT=32
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
...
...
@@ -27,6 +28,7 @@ CONFIG_KOBJECT_UEVENT=y
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
# CONFIG_CPUSETS is not set
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_EMBEDDED is not set
CONFIG_KALLSYMS=y
CONFIG_KALLSYMS_ALL=y
...
...
@@ -80,6 +82,10 @@ CONFIG_MCKINLEY=y
# CONFIG_IA64_PAGE_SIZE_8KB is not set
CONFIG_IA64_PAGE_SIZE_16KB=y
# CONFIG_IA64_PAGE_SIZE_64KB is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_IA64_L1_CACHE_SHIFT=7
CONFIG_NUMA=y
CONFIG_VIRTUAL_MEM_MAP=y
...
...
@@ -87,12 +93,21 @@ CONFIG_HOLES_IN_ZONE=y
CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
CONFIG_IA64_CYCLONE=y
CONFIG_IOSAPIC=y
# CONFIG_IA64_SGI_SN_XP is not set
CONFIG_FORCE_MAX_ZONEORDER=18
CONFIG_SMP=y
CONFIG_NR_CPUS=512
CONFIG_HOTPLUG_CPU=y
# CONFIG_SCHED_SMT is not set
# CONFIG_PREEMPT is not set
CONFIG_SELECT_MEMORY_MODEL=y
# CONFIG_FLATMEM_MANUAL is not set
CONFIG_DISCONTIGMEM_MANUAL=y
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_DISCONTIGMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_NEED_MULTIPLE_NODES=y
# CONFIG_SPARSEMEM_STATIC is not set
CONFIG_HAVE_DEC_LOCK=y
CONFIG_IA32_SUPPORT=y
CONFIG_COMPAT=y
...
...
@@ -105,6 +120,7 @@ CONFIG_IA64_PALINFO=y
#
CONFIG_EFI_VARS=y
CONFIG_EFI_PCDP=y
# CONFIG_DELL_RBU is not set
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_MISC=m
...
...
@@ -112,22 +128,29 @@ CONFIG_BINFMT_MISC=m
# Power management and ACPI
#
CONFIG_PM=y
CONFIG_ACPI=y
# CONFIG_PM_DEBUG is not set
#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_HOTPLUG_CPU=y
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_NUMA=y
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_ACPI_CONTAINER=m
#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set
#
# Bus options (PCI, PCMCIA)
#
...
...
@@ -135,7 +158,6 @@ CONFIG_PCI=y
CONFIG_PCI_DOMAINS=y
# CONFIG_PCI_MSI is not set
CONFIG_PCI_LEGACY_PROC=y
CONFIG_PCI_NAMES=y
# CONFIG_PCI_DEBUG is not set
#
...
...
@@ -147,12 +169,80 @@ CONFIG_HOTPLUG_PCI_ACPI=m
# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
# CONFIG_HOTPLUG_PCI_CPCI is not set
# CONFIG_HOTPLUG_PCI_SHPC is not set
# CONFIG_HOTPLUG_PCI_SGI is not set
#
# PCCARD (PCMCIA/CardBus) support
#
# CONFIG_PCCARD is not set
#
# Networking
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
CONFIG_ARPD=y
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_BIC=y
# CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set
#
# DCCP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_DCCP is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_NETFILTER_NETLINK is not set
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
# CONFIG_IEEE80211 is not set
#
# Device Drivers
#
...
...
@@ -162,9 +252,14 @@ CONFIG_HOTPLUG_PCI_ACPI=m
#
CONFIG_STANDALONE=y
CONFIG_PREVENT_FIRMWARE_BUILD=y
# CONFIG_FW_LOADER is not set
CONFIG_FW_LOADER=m
# CONFIG_DEBUG_DRIVER is not set
#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
#
# Memory Technology Devices (MTD)
#
...
...
@@ -178,7 +273,13 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
#
# Plug and Play support
#
# CONFIG_PNP is not set
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set
#
# Protocols
#
CONFIG_PNPACPI=y
#
# Block devices
...
...
@@ -197,7 +298,6 @@ CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CDROM_PKTCDVD is not set
#
...
...
@@ -230,7 +330,8 @@ CONFIG_BLK_DEV_IDESCSI=m
#
# IDE chipset support/bugfixes
#
CONFIG_IDE_GENERIC=y
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
# CONFIG_BLK_DEV_OFFBOARD is not set
...
...
@@ -252,6 +353,7 @@ CONFIG_BLK_DEV_CMD64X=y
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
...
...
@@ -270,6 +372,7 @@ CONFIG_IDEDMA_AUTO=y
#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_PROC_FS=y
...
...
@@ -297,6 +400,7 @@ CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_SPI_ATTRS=y
CONFIG_SCSI_FC_ATTRS=y
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
#
# SCSI low-level drivers
...
...
@@ -314,6 +418,7 @@ CONFIG_SCSI_SATA=y
# CONFIG_SCSI_SATA_AHCI is not set
# CONFIG_SCSI_SATA_SVW is not set
# CONFIG_SCSI_ATA_PIIX is not set
# CONFIG_SCSI_SATA_MV is not set
# CONFIG_SCSI_SATA_NV is not set
# CONFIG_SCSI_SATA_PROMISE is not set
# CONFIG_SCSI_SATA_QSTOR is not set
...
...
@@ -335,7 +440,6 @@ CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
# CONFIG_SCSI_SYM53C8XX_IOMAPPED is not set
# CONFIG_SCSI_IPR is not set
# CONFIG_SCSI_QLOGIC_FC is not set
# CONFIG_SCSI_QLOGIC_FC_FIRMWARE is not set
CONFIG_SCSI_QLOGIC_1280=y
# CONFIG_SCSI_QLOGIC_1280_1040 is not set
CONFIG_SCSI_QLA2XXX=y
...
...
@@ -344,6 +448,7 @@ CONFIG_SCSI_QLA22XX=m
CONFIG_SCSI_QLA2300=m
CONFIG_SCSI_QLA2322=m
# CONFIG_SCSI_QLA6312 is not set
# CONFIG_SCSI_QLA24XX is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
...
...
@@ -390,80 +495,25 @@ CONFIG_FUSION_MAX_SGE=128
# CONFIG_I2O is not set
#
# Networking support
#
CONFIG_NET=y
#
# Networking options
#
CONFIG_PACKET=y
# CONFIG_PACKET_MMAP is not set
CONFIG_UNIX=y
# CONFIG_NET_KEY is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
# CONFIG_IP_ADVANCED_ROUTER is not set
# CONFIG_IP_PNP is not set
# CONFIG_NET_IPIP is not set
# CONFIG_NET_IPGRE is not set
# CONFIG_IP_MROUTE is not set
CONFIG_ARPD=y
CONFIG_SYN_COOKIES=y
# CONFIG_INET_AH is not set
# CONFIG_INET_ESP is not set
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_TUNNEL is not set
CONFIG_IP_TCPDIAG=y
# CONFIG_IP_TCPDIAG_IPV6 is not set
# CONFIG_IPV6 is not set
# CONFIG_NETFILTER is not set
#
# SCTP Configuration (EXPERIMENTAL)
#
# CONFIG_IP_SCTP is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_NET_DIVERT is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set
# Network device support
#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
# CONFIG_NET_CLS_ROUTE is not set
#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
# CONFIG_HAMRADIO is not set
# CONFIG_IRDA is not set
# CONFIG_BT is not set
CONFIG_NETDEVICES=y
CONFIG_DUMMY=m
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
# CONFIG_TUN is not set
# CONFIG_NET_SB1000 is not set
#
# ARCnet devices
#
# CONFIG_ARCNET is not set
#
# PHY device support
#
# CONFIG_PHYLIB is not set
#
# Ethernet (10 or 100Mbit)
#
...
...
@@ -485,6 +535,7 @@ CONFIG_TULIP=m
# CONFIG_DE4X5 is not set
# CONFIG_WINBOND_840 is not set
# CONFIG_DM9102 is not set
# CONFIG_ULI526X is not set
# CONFIG_HP100 is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
...
...
@@ -516,6 +567,7 @@ CONFIG_E1000=y
# CONFIG_HAMACHI is not set
# CONFIG_YELLOWFIN is not set
# CONFIG_R8169 is not set
# CONFIG_SIS190 is not set
# CONFIG_SKGE is not set
# CONFIG_SK98LIN is not set
# CONFIG_VIA_VELOCITY is not set
...
...
@@ -525,6 +577,7 @@ CONFIG_TIGON3=y
#
# Ethernet (10000 Mbit)
#
# CONFIG_CHELSIO_T1 is not set
# CONFIG_IXGB is not set
# CONFIG_S2IO is not set
...
...
@@ -549,6 +602,10 @@ CONFIG_TIGON3=y
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
CONFIG_NETCONSOLE=y
CONFIG_NETPOLL=y
# CONFIG_NETPOLL_RX is not set
# CONFIG_NETPOLL_TRAP is not set
CONFIG_NET_POLL_CONTROLLER=y
#
# ISDN subsystem
...
...
@@ -607,9 +664,7 @@ CONFIG_GAMEPORT=m
# CONFIG_GAMEPORT_NS558 is not set
# CONFIG_GAMEPORT_L4 is not set
# CONFIG_GAMEPORT_EMU10K1 is not set
# CONFIG_GAMEPORT_VORTEX is not set
# CONFIG_GAMEPORT_FM801 is not set
# CONFIG_GAMEPORT_CS461X is not set
#
# Character devices
...
...
@@ -620,6 +675,7 @@ CONFIG_HW_CONSOLE=y
CONFIG_SERIAL_NONSTANDARD=y
# CONFIG_ROCKETPORT is not set
# CONFIG_CYCLADES is not set
# CONFIG_DIGIEPCA is not set
# CONFIG_MOXA_SMARTIO is not set
# CONFIG_ISI is not set
# CONFIG_SYNCLINKMP is not set
...
...
@@ -641,7 +697,6 @@ CONFIG_SERIAL_8250_NR_UARTS=6
CONFIG_SERIAL_8250_EXTENDED=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
# CONFIG_SERIAL_8250_DETECT_IRQ is not set
# CONFIG_SERIAL_8250_MULTIPORT is not set
# CONFIG_SERIAL_8250_RSA is not set
#
...
...
@@ -650,8 +705,8 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_SGI_L1_CONSOLE=y
CONFIG_SERIAL_SGI_IOC4=y
# CONFIG_SERIAL_JSM is not set
CONFIG_SERIAL_SGI_IOC4=y
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256
...
...
@@ -684,6 +739,8 @@ CONFIG_DRM_R128=m
CONFIG_DRM_RADEON=m
CONFIG_DRM_MGA=m
CONFIG_DRM_SIS=m
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set
CONFIG_RAW_DRIVER=m
CONFIG_HPET=y
# CONFIG_HPET_RTC_IRQ is not set
...
...
@@ -707,10 +764,21 @@ CONFIG_MMTIMER=y
#
# CONFIG_W1 is not set
#
# Hardware Monitoring support
#
CONFIG_HWMON=y
# CONFIG_HWMON_VID is not set
# CONFIG_HWMON_DEBUG_CHIP is not set
#
# Misc devices
#
#
# Multimedia Capabilities Port drivers
#
#
# Multimedia devices
#
...
...
@@ -753,6 +821,7 @@ CONFIG_SND_PCM_OSS=m
CONFIG_SND_SEQUENCER_OSS=y
CONFIG_SND_VERBOSE_PRINTK=y
# CONFIG_SND_DEBUG is not set
CONFIG_SND_GENERIC_DRIVER=y
#
# Generic devices
...
...
@@ -764,11 +833,12 @@ CONFIG_SND_VIRMIDI=m
CONFIG_SND_MTPAV=m
CONFIG_SND_SERIAL_U16550=m
CONFIG_SND_MPU401=m
CONFIG_SND_AC97_CODEC=m
CONFIG_SND_AC97_BUS=m
#
# PCI devices
#
CONFIG_SND_AC97_CODEC=m
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
...
...
@@ -790,9 +860,10 @@ CONFIG_SND_EMU10K1=m
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_A
LS4000
is not set
# CONFIG_SND_A
D1889
is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
...
...
@@ -844,6 +915,7 @@ CONFIG_USB_DEVICEFS=y
CONFIG_USB_EHCI_HCD=m
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
...
...
@@ -853,9 +925,8 @@ CONFIG_USB_UHCI_HCD=m
#
# USB Device Class drivers
#
# CONFIG_
USB_AUDIO
is not set
# CONFIG_
OBSOLETE_OSS_USB_DRIVER
is not set
# CONFIG_USB_BLUETOOTH_TTY is not set
# CONFIG_USB_MIDI is not set
# CONFIG_USB_ACM is not set
# CONFIG_USB_PRINTER is not set
...
...
@@ -888,12 +959,17 @@ CONFIG_USB_HIDINPUT=y
# CONFIG_USB_MOUSE is not set
# CONFIG_USB_AIPTEK is not set
# CONFIG_USB_WACOM is not set
# CONFIG_USB_ACECAD is not set
# CONFIG_USB_KBTAB is not set
# CONFIG_USB_POWERMATE is not set
# CONFIG_USB_MTOUCH is not set
# CONFIG_USB_ITMTOUCH is not set
# CONFIG_USB_EGALAX is not set
# CONFIG_USB_YEALINK is not set
# CONFIG_USB_XPAD is not set
# CONFIG_USB_ATI_REMOTE is not set
# CONFIG_USB_KEYSPAN_REMOTE is not set
# CONFIG_USB_APPLETOUCH is not set
#
# USB Imaging devices
...
...
@@ -918,7 +994,7 @@ CONFIG_USB_HIDINPUT=y
# CONFIG_USB_PEGASUS is not set
# CONFIG_USB_RTL8150 is not set
# CONFIG_USB_USBNET is not set
CONFIG_USB_MON=
m
CONFIG_USB_MON=
y
#
# USB port drivers
...
...
@@ -944,10 +1020,11 @@ CONFIG_USB_MON=m
# CONFIG_USB_PHIDGETSERVO is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_SISUSBVGA is not set
# CONFIG_USB_LD is not set
# CONFIG_USB_TEST is not set
#
# USB
ATM/DSL drivers
# USB
DSL modem support
#
#
...
...
@@ -964,6 +1041,8 @@ CONFIG_USB_MON=m
# InfiniBand support
#
CONFIG_INFINIBAND=m
# CONFIG_INFINIBAND_USER_MAD is not set
# CONFIG_INFINIBAND_USER_ACCESS is not set
CONFIG_INFINIBAND_MTHCA=m
# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
...
...
@@ -981,6 +1060,7 @@ CONFIG_EXT2_FS=y
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
CONFIG_EXT2_FS_SECURITY=y
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=y
CONFIG_EXT3_FS_XATTR=y
CONFIG_EXT3_FS_POSIX_ACL=y
...
...
@@ -996,22 +1076,20 @@ CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
# CONFIG_JFS_FS is not set
CONFIG_FS_POSIX_ACL=y
#
# XFS support
#
CONFIG_XFS_FS=y
CONFIG_XFS_EXPORT=y
# CONFIG_XFS_RT is not set
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_XFS_RT is not set
# CONFIG_MINIX_FS is not set
# CONFIG_ROMFS_FS is not set
CONFIG_INOTIFY=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
CONFIG_AUTOFS_FS=y
CONFIG_AUTOFS4_FS=y
# CONFIG_FUSE_FS is not set
#
# CD-ROM/DVD Filesystems
...
...
@@ -1040,14 +1118,11 @@ CONFIG_NTFS_FS=m
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_SYSFS=y
# CONFIG_DEVFS_FS is not set
# CONFIG_DEVPTS_FS_XATTR is not set
CONFIG_TMPFS=y
CONFIG_TMPFS_XATTR=y
CONFIG_TMPFS_SECURITY=y
CONFIG_HUGETLBFS=y
CONFIG_HUGETLB_PAGE=y
CONFIG_RAMFS=y
# CONFIG_RELAYFS_FS is not set
#
# Miscellaneous filesystems
...
...
@@ -1071,15 +1146,18 @@ CONFIG_RAMFS=y
#
CONFIG_NFS_FS=m
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
CONFIG_NFS_V4=y
CONFIG_NFS_DIRECTIO=y
CONFIG_NFSD=m
CONFIG_NFSD_V3=y
# CONFIG_NFSD_V3_ACL is not set
CONFIG_NFSD_V4=y
CONFIG_NFSD_TCP=y
CONFIG_LOCKD=m
CONFIG_LOCKD_V4=y
CONFIG_EXPORTFS=y
CONFIG_NFS_COMMON=y
CONFIG_SUNRPC=m
CONFIG_SUNRPC_GSS=m
CONFIG_RPCSEC_GSS_KRB5=m
...
...
@@ -1094,6 +1172,7 @@ CONFIG_CIFS=m
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set
#
# Partition Types
...
...
@@ -1163,10 +1242,12 @@ CONFIG_NLS_UTF8=m
# Library routines
#
# CONFIG_CRC_CCITT is not set
# CONFIG_CRC16 is not set
CONFIG_CRC32=y
# CONFIG_LIBCRC32C is not set
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_GENERIC_PENDING_IRQ=y
#
# HP Simulator drivers
...
...
@@ -1187,6 +1268,7 @@ CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_DEBUG_KERNEL=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_LOG_BUF_SHIFT=20
CONFIG_DETECT_SOFTLOCKUP=y
# CONFIG_SCHEDSTATS is not set
# CONFIG_DEBUG_SLAB is not set
# CONFIG_DEBUG_SPINLOCK is not set
...
...
@@ -1194,6 +1276,7 @@ CONFIG_LOG_BUF_SHIFT=20
# CONFIG_DEBUG_KOBJECT is not set
# CONFIG_DEBUG_INFO is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_KPROBES is not set
CONFIG_IA64_GRANULE_16MB=y
# CONFIG_IA64_GRANULE_64MB is not set
# CONFIG_IA64_PRINT_HAZARDS is not set
...
...
@@ -1215,7 +1298,7 @@ CONFIG_CRYPTO=y
# CONFIG_CRYPTO_HMAC is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_MD4 is not set
CONFIG_CRYPTO_MD5=
m
CONFIG_CRYPTO_MD5=
y
# CONFIG_CRYPTO_SHA1 is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
...
...
arch/ia64/hp/common/hwsw_iommu.c
浏览文件 @
8a212ab6
...
...
@@ -17,7 +17,7 @@
#include <asm/machvec.h>
/* swiotlb declarations & definitions: */
extern
void
swiotlb
_init_with_default_size
(
size_t
size
);
extern
int
swiotlb_late
_init_with_default_size
(
size_t
size
);
extern
ia64_mv_dma_alloc_coherent
swiotlb_alloc_coherent
;
extern
ia64_mv_dma_free_coherent
swiotlb_free_coherent
;
extern
ia64_mv_dma_map_single
swiotlb_map_single
;
...
...
@@ -67,7 +67,16 @@ void
hwsw_init
(
void
)
{
/* default to a smallish 2MB sw I/O TLB */
swiotlb_init_with_default_size
(
2
*
(
1
<<
20
));
if
(
swiotlb_late_init_with_default_size
(
2
*
(
1
<<
20
))
!=
0
)
{
#ifdef CONFIG_IA64_GENERIC
/* Better to have normal DMA than panic */
printk
(
KERN_WARNING
"%s: Failed to initialize software I/O TLB,"
" reverting to hpzx1 platform vector
\n
"
,
__FUNCTION__
);
machvec_init
(
"hpzx1"
);
#else
panic
(
"Unable to initialize software I/O TLB services"
);
#endif
}
}
void
*
...
...
arch/ia64/hp/common/sba_iommu.c
浏览文件 @
8a212ab6
...
...
@@ -2028,9 +2028,40 @@ static struct acpi_driver acpi_sba_ioc_driver = {
static
int
__init
sba_init
(
void
)
{
if
(
!
ia64_platform_is
(
"hpzx1"
)
&&
!
ia64_platform_is
(
"hpzx1_swiotlb"
))
return
0
;
acpi_bus_register_driver
(
&
acpi_sba_ioc_driver
);
if
(
!
ioc_list
)
if
(
!
ioc_list
)
{
#ifdef CONFIG_IA64_GENERIC
extern
int
swiotlb_late_init_with_default_size
(
size_t
size
);
/*
* If we didn't find something sba_iommu can claim, we
* need to setup the swiotlb and switch to the dig machvec.
*/
if
(
swiotlb_late_init_with_default_size
(
64
*
(
1
<<
20
))
!=
0
)
panic
(
"Unable to find SBA IOMMU or initialize "
"software I/O TLB: Try machvec=dig boot option"
);
machvec_init
(
"dig"
);
#else
panic
(
"Unable to find SBA IOMMU: Try a generic or DIG kernel"
);
#endif
return
0
;
}
#if defined(CONFIG_IA64_GENERIC) || defined(CONFIG_IA64_HP_ZX1_SWIOTLB)
/*
* hpzx1_swiotlb needs to have a fairly small swiotlb bounce
* buffer setup to support devices with smaller DMA masks than
* sba_iommu can handle.
*/
if
(
ia64_platform_is
(
"hpzx1_swiotlb"
))
{
extern
void
hwsw_init
(
void
);
hwsw_init
();
}
#endif
#ifdef CONFIG_PCI
{
...
...
@@ -2048,18 +2079,6 @@ sba_init(void)
subsys_initcall
(
sba_init
);
/* must be initialized after ACPI etc., but before any drivers... */
extern
void
dig_setup
(
char
**
);
/*
* MAX_DMA_ADDRESS needs to be setup prior to paging_init to do any good,
* so we use the platform_setup hook to fix it up.
*/
void
__init
sba_setup
(
char
**
cmdline_p
)
{
MAX_DMA_ADDRESS
=
~
0UL
;
dig_setup
(
cmdline_p
);
}
static
int
__init
nosbagart
(
char
*
str
)
{
...
...
arch/ia64/hp/sim/simscsi.c
浏览文件 @
8a212ab6
...
...
@@ -205,10 +205,11 @@ simscsi_get_disk_size (int fd)
char
buf
[
512
];
/*
* This is a bit kludgey: the simulator doesn't provide a direct way of determining
* the disk size, so we do a binary search, assuming a maximum disk size of 4GB.
* This is a bit kludgey: the simulator doesn't provide a
* direct way of determining the disk size, so we do a binary
* search, assuming a maximum disk size of 128GB.
*/
for
(
bit
=
(
4
UL
<<
30
)
/
512
;
bit
!=
0
;
bit
>>=
1
)
{
for
(
bit
=
(
128
UL
<<
30
)
/
512
;
bit
!=
0
;
bit
>>=
1
)
{
req
.
addr
=
__pa
(
&
buf
);
req
.
len
=
sizeof
(
buf
);
ia64_ssc
(
fd
,
1
,
__pa
(
&
req
),
((
sectors
|
bit
)
-
1
)
*
512
,
SSC_READ
);
...
...
@@ -225,8 +226,10 @@ simscsi_readwrite10 (struct scsi_cmnd *sc, int mode)
{
unsigned
long
offset
;
offset
=
(
(
sc
->
cmnd
[
2
]
<<
24
)
|
(
sc
->
cmnd
[
3
]
<<
16
)
|
(
sc
->
cmnd
[
4
]
<<
8
)
|
(
sc
->
cmnd
[
5
]
<<
0
))
*
512
;
offset
=
(((
unsigned
long
)
sc
->
cmnd
[
2
]
<<
24
)
|
((
unsigned
long
)
sc
->
cmnd
[
3
]
<<
16
)
|
((
unsigned
long
)
sc
->
cmnd
[
4
]
<<
8
)
|
((
unsigned
long
)
sc
->
cmnd
[
5
]
<<
0
))
*
512UL
;
if
(
sc
->
use_sg
>
0
)
simscsi_sg_readwrite
(
sc
,
mode
,
offset
);
else
...
...
arch/ia64/kernel/acpi.c
浏览文件 @
8a212ab6
...
...
@@ -838,7 +838,7 @@ EXPORT_SYMBOL(acpi_unmap_lsapic);
#endif
/* CONFIG_ACPI_HOTPLUG_CPU */
#ifdef CONFIG_ACPI_NUMA
acpi_status
__devinit
static
acpi_status
__devinit
acpi_map_iosapic
(
acpi_handle
handle
,
u32
depth
,
void
*
context
,
void
**
ret
)
{
struct
acpi_buffer
buffer
=
{
ACPI_ALLOCATE_BUFFER
,
NULL
};
...
...
@@ -890,7 +890,16 @@ acpi_map_iosapic(acpi_handle handle, u32 depth, void *context, void **ret)
map_iosapic_to_node
(
gsi_base
,
node
);
return
AE_OK
;
}
#endif
/* CONFIG_NUMA */
static
int
__init
acpi_map_iosapics
(
void
)
{
acpi_get_devices
(
NULL
,
acpi_map_iosapic
,
NULL
,
NULL
);
return
0
;
}
fs_initcall
(
acpi_map_iosapics
);
#endif
/* CONFIG_ACPI_NUMA */
int
acpi_register_ioapic
(
acpi_handle
handle
,
u64
phys_addr
,
u32
gsi_base
)
{
...
...
arch/ia64/kernel/efi.c
浏览文件 @
8a212ab6
...
...
@@ -239,57 +239,30 @@ is_available_memory (efi_memory_desc_t *md)
return
0
;
}
/*
* Trim descriptor MD so its starts at address START_ADDR. If the descriptor covers
* memory that is normally available to the kernel, issue a warning that some memory
* is being ignored.
*/
static
void
trim_bottom
(
efi_memory_desc_t
*
md
,
u64
start_addr
)
{
u64
num_skipped_pages
;
typedef
struct
kern_memdesc
{
u64
attribute
;
u64
start
;
u64
num_pages
;
}
kern_memdesc_t
;
if
(
md
->
phys_addr
>=
start_addr
||
!
md
->
num_pages
)
return
;
num_skipped_pages
=
(
start_addr
-
md
->
phys_addr
)
>>
EFI_PAGE_SHIFT
;
if
(
num_skipped_pages
>
md
->
num_pages
)
num_skipped_pages
=
md
->
num_pages
;
if
(
is_available_memory
(
md
))
printk
(
KERN_NOTICE
"efi.%s: ignoring %luKB of memory at 0x%lx due to granule hole "
"at 0x%lx
\n
"
,
__FUNCTION__
,
(
num_skipped_pages
<<
EFI_PAGE_SHIFT
)
>>
10
,
md
->
phys_addr
,
start_addr
-
IA64_GRANULE_SIZE
);
/*
* NOTE: Don't set md->phys_addr to START_ADDR because that could cause the memory
* descriptor list to become unsorted. In such a case, md->num_pages will be
* zero, so the Right Thing will happen.
*/
md
->
phys_addr
+=
num_skipped_pages
<<
EFI_PAGE_SHIFT
;
md
->
num_pages
-=
num_skipped_pages
;
}
static
kern_memdesc_t
*
kern_memmap
;
static
void
trim_top
(
efi_memory_desc_t
*
md
,
u64
end_add
r
)
walk
(
efi_freemem_callback_t
callback
,
void
*
arg
,
u64
att
r
)
{
u64
num_dropped_pages
,
md_end_addr
;
md_end_addr
=
md
->
phys_addr
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
);
if
(
md_end_addr
<=
end_addr
||
!
md
->
num_pages
)
return
;
kern_memdesc_t
*
k
;
u64
start
,
end
,
voff
;
num_dropped_pages
=
(
md_end_addr
-
end_addr
)
>>
EFI_PAGE_SHIF
T
;
if
(
num_dropped_pages
>
md
->
num_pages
)
num_dropped_pages
=
md
->
num_pages
;
if
(
is_available_memory
(
md
))
printk
(
KERN_NOTICE
"efi.%s: ignoring %luKB of memory at 0x%lx due to granule hole "
"at 0x%lx
\n
"
,
__FUNCTION__
,
(
num_dropped_pages
<<
EFI_PAGE_SHIFT
)
>>
10
,
md
->
phys_addr
,
end_addr
)
;
md
->
num_pages
-=
num_dropped_pages
;
voff
=
(
attr
==
EFI_MEMORY_WB
)
?
PAGE_OFFSET
:
__IA64_UNCACHED_OFFSE
T
;
for
(
k
=
kern_memmap
;
k
->
start
!=
~
0UL
;
k
++
)
{
if
(
k
->
attribute
!=
attr
)
continue
;
start
=
PAGE_ALIGN
(
k
->
start
);
end
=
(
k
->
start
+
(
k
->
num_pages
<<
EFI_PAGE_SHIFT
))
&
PAGE_MASK
;
if
(
start
<
end
)
if
((
*
callback
)(
start
+
voff
,
end
+
voff
,
arg
)
<
0
)
return
;
}
}
/*
...
...
@@ -299,148 +272,19 @@ trim_top (efi_memory_desc_t *md, u64 end_addr)
void
efi_memmap_walk
(
efi_freemem_callback_t
callback
,
void
*
arg
)
{
int
prev_valid
=
0
;
struct
range
{
u64
start
;
u64
end
;
}
prev
,
curr
;
void
*
efi_map_start
,
*
efi_map_end
,
*
p
,
*
q
;
efi_memory_desc_t
*
md
,
*
check_md
;
u64
efi_desc_size
,
start
,
end
,
granule_addr
,
last_granule_addr
,
first_non_wb_addr
=
0
;
unsigned
long
total_mem
=
0
;
efi_map_start
=
__va
(
ia64_boot_param
->
efi_memmap
);
efi_map_end
=
efi_map_start
+
ia64_boot_param
->
efi_memmap_size
;
efi_desc_size
=
ia64_boot_param
->
efi_memdesc_size
;
for
(
p
=
efi_map_start
;
p
<
efi_map_end
;
p
+=
efi_desc_size
)
{
md
=
p
;
/* skip over non-WB memory descriptors; that's all we're interested in... */
if
(
!
(
md
->
attribute
&
EFI_MEMORY_WB
))
continue
;
/*
* granule_addr is the base of md's first granule.
* [granule_addr - first_non_wb_addr) is guaranteed to
* be contiguous WB memory.
*/
granule_addr
=
GRANULEROUNDDOWN
(
md
->
phys_addr
);
first_non_wb_addr
=
max
(
first_non_wb_addr
,
granule_addr
);
if
(
first_non_wb_addr
<
md
->
phys_addr
)
{
trim_bottom
(
md
,
granule_addr
+
IA64_GRANULE_SIZE
);
granule_addr
=
GRANULEROUNDDOWN
(
md
->
phys_addr
);
first_non_wb_addr
=
max
(
first_non_wb_addr
,
granule_addr
);
}
for
(
q
=
p
;
q
<
efi_map_end
;
q
+=
efi_desc_size
)
{
check_md
=
q
;
if
((
check_md
->
attribute
&
EFI_MEMORY_WB
)
&&
(
check_md
->
phys_addr
==
first_non_wb_addr
))
first_non_wb_addr
+=
check_md
->
num_pages
<<
EFI_PAGE_SHIFT
;
else
break
;
/* non-WB or hole */
}
last_granule_addr
=
GRANULEROUNDDOWN
(
first_non_wb_addr
);
if
(
last_granule_addr
<
md
->
phys_addr
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
))
trim_top
(
md
,
last_granule_addr
);
if
(
is_available_memory
(
md
))
{
if
(
md
->
phys_addr
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
)
>=
max_addr
)
{
if
(
md
->
phys_addr
>=
max_addr
)
continue
;
md
->
num_pages
=
(
max_addr
-
md
->
phys_addr
)
>>
EFI_PAGE_SHIFT
;
first_non_wb_addr
=
max_addr
;
}
if
(
total_mem
>=
mem_limit
)
continue
;
if
(
total_mem
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
)
>
mem_limit
)
{
unsigned
long
limit_addr
=
md
->
phys_addr
;
limit_addr
+=
mem_limit
-
total_mem
;
limit_addr
=
GRANULEROUNDDOWN
(
limit_addr
);
if
(
md
->
phys_addr
>
limit_addr
)
continue
;
md
->
num_pages
=
(
limit_addr
-
md
->
phys_addr
)
>>
EFI_PAGE_SHIFT
;
first_non_wb_addr
=
max_addr
=
md
->
phys_addr
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
);
}
total_mem
+=
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
);
if
(
md
->
num_pages
==
0
)
continue
;
curr
.
start
=
PAGE_OFFSET
+
md
->
phys_addr
;
curr
.
end
=
curr
.
start
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
);
if
(
!
prev_valid
)
{
prev
=
curr
;
prev_valid
=
1
;
}
else
{
if
(
curr
.
start
<
prev
.
start
)
printk
(
KERN_ERR
"Oops: EFI memory table not ordered!
\n
"
);
if
(
prev
.
end
==
curr
.
start
)
{
/* merge two consecutive memory ranges */
prev
.
end
=
curr
.
end
;
}
else
{
start
=
PAGE_ALIGN
(
prev
.
start
);
end
=
prev
.
end
&
PAGE_MASK
;
if
((
end
>
start
)
&&
(
*
callback
)(
start
,
end
,
arg
)
<
0
)
return
;
prev
=
curr
;
}
}
}
}
if
(
prev_valid
)
{
start
=
PAGE_ALIGN
(
prev
.
start
);
end
=
prev
.
end
&
PAGE_MASK
;
if
(
end
>
start
)
(
*
callback
)(
start
,
end
,
arg
);
}
walk
(
callback
,
arg
,
EFI_MEMORY_WB
);
}
/*
* Walk the EFI memory map to pull out leftover pages in the lower
* memory regions which do not end up in the regular memory map and
* stick them into the uncached allocator
*
* The regular walk function is significantly more complex than the
* uncached walk which means it really doesn't make sense to try and
* marge the two.
* Walks the EFI memory map and calls CALLBACK once for each EFI memory descriptor that
* has memory that is available for uncached allocator.
*/
void
__init
efi_memmap_walk_uc
(
efi_freemem_callback_t
callback
)
void
efi_memmap_walk_uc
(
efi_freemem_callback_t
callback
,
void
*
arg
)
{
void
*
efi_map_start
,
*
efi_map_end
,
*
p
;
efi_memory_desc_t
*
md
;
u64
efi_desc_size
,
start
,
end
;
efi_map_start
=
__va
(
ia64_boot_param
->
efi_memmap
);
efi_map_end
=
efi_map_start
+
ia64_boot_param
->
efi_memmap_size
;
efi_desc_size
=
ia64_boot_param
->
efi_memdesc_size
;
for
(
p
=
efi_map_start
;
p
<
efi_map_end
;
p
+=
efi_desc_size
)
{
md
=
p
;
if
(
md
->
attribute
==
EFI_MEMORY_UC
)
{
start
=
PAGE_ALIGN
(
md
->
phys_addr
);
end
=
PAGE_ALIGN
((
md
->
phys_addr
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
))
&
PAGE_MASK
);
if
((
*
callback
)(
start
,
end
,
NULL
)
<
0
)
return
;
}
}
walk
(
callback
,
arg
,
EFI_MEMORY_UC
);
}
/*
* Look for the PAL_CODE region reported by EFI and maps it using an
* ITR to enable safe PAL calls in virtual mode. See IA-64 Processor
...
...
@@ -862,3 +706,307 @@ efi_uart_console_only(void)
printk
(
KERN_ERR
"Malformed %s value
\n
"
,
name
);
return
0
;
}
#define efi_md_size(md) (md->num_pages << EFI_PAGE_SHIFT)
static
inline
u64
kmd_end
(
kern_memdesc_t
*
kmd
)
{
return
(
kmd
->
start
+
(
kmd
->
num_pages
<<
EFI_PAGE_SHIFT
));
}
static
inline
u64
efi_md_end
(
efi_memory_desc_t
*
md
)
{
return
(
md
->
phys_addr
+
efi_md_size
(
md
));
}
static
inline
int
efi_wb
(
efi_memory_desc_t
*
md
)
{
return
(
md
->
attribute
&
EFI_MEMORY_WB
);
}
static
inline
int
efi_uc
(
efi_memory_desc_t
*
md
)
{
return
(
md
->
attribute
&
EFI_MEMORY_UC
);
}
/*
* Look for the first granule aligned memory descriptor memory
* that is big enough to hold EFI memory map. Make sure this
* descriptor is atleast granule sized so it does not get trimmed
*/
struct
kern_memdesc
*
find_memmap_space
(
void
)
{
u64
contig_low
=
0
,
contig_high
=
0
;
u64
as
=
0
,
ae
;
void
*
efi_map_start
,
*
efi_map_end
,
*
p
,
*
q
;
efi_memory_desc_t
*
md
,
*
pmd
=
NULL
,
*
check_md
;
u64
space_needed
,
efi_desc_size
;
unsigned
long
total_mem
=
0
;
efi_map_start
=
__va
(
ia64_boot_param
->
efi_memmap
);
efi_map_end
=
efi_map_start
+
ia64_boot_param
->
efi_memmap_size
;
efi_desc_size
=
ia64_boot_param
->
efi_memdesc_size
;
/*
* Worst case: we need 3 kernel descriptors for each efi descriptor
* (if every entry has a WB part in the middle, and UC head and tail),
* plus one for the end marker.
*/
space_needed
=
sizeof
(
kern_memdesc_t
)
*
(
3
*
(
ia64_boot_param
->
efi_memmap_size
/
efi_desc_size
)
+
1
);
for
(
p
=
efi_map_start
;
p
<
efi_map_end
;
pmd
=
md
,
p
+=
efi_desc_size
)
{
md
=
p
;
if
(
!
efi_wb
(
md
))
{
continue
;
}
if
(
pmd
==
NULL
||
!
efi_wb
(
pmd
)
||
efi_md_end
(
pmd
)
!=
md
->
phys_addr
)
{
contig_low
=
GRANULEROUNDUP
(
md
->
phys_addr
);
contig_high
=
efi_md_end
(
md
);
for
(
q
=
p
+
efi_desc_size
;
q
<
efi_map_end
;
q
+=
efi_desc_size
)
{
check_md
=
q
;
if
(
!
efi_wb
(
check_md
))
break
;
if
(
contig_high
!=
check_md
->
phys_addr
)
break
;
contig_high
=
efi_md_end
(
check_md
);
}
contig_high
=
GRANULEROUNDDOWN
(
contig_high
);
}
if
(
!
is_available_memory
(
md
)
||
md
->
type
==
EFI_LOADER_DATA
)
continue
;
/* Round ends inward to granule boundaries */
as
=
max
(
contig_low
,
md
->
phys_addr
);
ae
=
min
(
contig_high
,
efi_md_end
(
md
));
/* keep within max_addr= command line arg */
ae
=
min
(
ae
,
max_addr
);
if
(
ae
<=
as
)
continue
;
/* avoid going over mem= command line arg */
if
(
total_mem
+
(
ae
-
as
)
>
mem_limit
)
ae
-=
total_mem
+
(
ae
-
as
)
-
mem_limit
;
if
(
ae
<=
as
)
continue
;
if
(
ae
-
as
>
space_needed
)
break
;
}
if
(
p
>=
efi_map_end
)
panic
(
"Can't allocate space for kernel memory descriptors"
);
return
__va
(
as
);
}
/*
* Walk the EFI memory map and gather all memory available for kernel
* to use. We can allocate partial granules only if the unavailable
* parts exist, and are WB.
*/
void
efi_memmap_init
(
unsigned
long
*
s
,
unsigned
long
*
e
)
{
struct
kern_memdesc
*
k
,
*
prev
=
0
;
u64
contig_low
=
0
,
contig_high
=
0
;
u64
as
,
ae
,
lim
;
void
*
efi_map_start
,
*
efi_map_end
,
*
p
,
*
q
;
efi_memory_desc_t
*
md
,
*
pmd
=
NULL
,
*
check_md
;
u64
efi_desc_size
;
unsigned
long
total_mem
=
0
;
k
=
kern_memmap
=
find_memmap_space
();
efi_map_start
=
__va
(
ia64_boot_param
->
efi_memmap
);
efi_map_end
=
efi_map_start
+
ia64_boot_param
->
efi_memmap_size
;
efi_desc_size
=
ia64_boot_param
->
efi_memdesc_size
;
for
(
p
=
efi_map_start
;
p
<
efi_map_end
;
pmd
=
md
,
p
+=
efi_desc_size
)
{
md
=
p
;
if
(
!
efi_wb
(
md
))
{
if
(
efi_uc
(
md
)
&&
(
md
->
type
==
EFI_CONVENTIONAL_MEMORY
||
md
->
type
==
EFI_BOOT_SERVICES_DATA
))
{
k
->
attribute
=
EFI_MEMORY_UC
;
k
->
start
=
md
->
phys_addr
;
k
->
num_pages
=
md
->
num_pages
;
k
++
;
}
continue
;
}
if
(
pmd
==
NULL
||
!
efi_wb
(
pmd
)
||
efi_md_end
(
pmd
)
!=
md
->
phys_addr
)
{
contig_low
=
GRANULEROUNDUP
(
md
->
phys_addr
);
contig_high
=
efi_md_end
(
md
);
for
(
q
=
p
+
efi_desc_size
;
q
<
efi_map_end
;
q
+=
efi_desc_size
)
{
check_md
=
q
;
if
(
!
efi_wb
(
check_md
))
break
;
if
(
contig_high
!=
check_md
->
phys_addr
)
break
;
contig_high
=
efi_md_end
(
check_md
);
}
contig_high
=
GRANULEROUNDDOWN
(
contig_high
);
}
if
(
!
is_available_memory
(
md
))
continue
;
/*
* Round ends inward to granule boundaries
* Give trimmings to uncached allocator
*/
if
(
md
->
phys_addr
<
contig_low
)
{
lim
=
min
(
efi_md_end
(
md
),
contig_low
);
if
(
efi_uc
(
md
))
{
if
(
k
>
kern_memmap
&&
(
k
-
1
)
->
attribute
==
EFI_MEMORY_UC
&&
kmd_end
(
k
-
1
)
==
md
->
phys_addr
)
{
(
k
-
1
)
->
num_pages
+=
(
lim
-
md
->
phys_addr
)
>>
EFI_PAGE_SHIFT
;
}
else
{
k
->
attribute
=
EFI_MEMORY_UC
;
k
->
start
=
md
->
phys_addr
;
k
->
num_pages
=
(
lim
-
md
->
phys_addr
)
>>
EFI_PAGE_SHIFT
;
k
++
;
}
}
as
=
contig_low
;
}
else
as
=
md
->
phys_addr
;
if
(
efi_md_end
(
md
)
>
contig_high
)
{
lim
=
max
(
md
->
phys_addr
,
contig_high
);
if
(
efi_uc
(
md
))
{
if
(
lim
==
md
->
phys_addr
&&
k
>
kern_memmap
&&
(
k
-
1
)
->
attribute
==
EFI_MEMORY_UC
&&
kmd_end
(
k
-
1
)
==
md
->
phys_addr
)
{
(
k
-
1
)
->
num_pages
+=
md
->
num_pages
;
}
else
{
k
->
attribute
=
EFI_MEMORY_UC
;
k
->
start
=
lim
;
k
->
num_pages
=
(
efi_md_end
(
md
)
-
lim
)
>>
EFI_PAGE_SHIFT
;
k
++
;
}
}
ae
=
contig_high
;
}
else
ae
=
efi_md_end
(
md
);
/* keep within max_addr= command line arg */
ae
=
min
(
ae
,
max_addr
);
if
(
ae
<=
as
)
continue
;
/* avoid going over mem= command line arg */
if
(
total_mem
+
(
ae
-
as
)
>
mem_limit
)
ae
-=
total_mem
+
(
ae
-
as
)
-
mem_limit
;
if
(
ae
<=
as
)
continue
;
if
(
prev
&&
kmd_end
(
prev
)
==
md
->
phys_addr
)
{
prev
->
num_pages
+=
(
ae
-
as
)
>>
EFI_PAGE_SHIFT
;
total_mem
+=
ae
-
as
;
continue
;
}
k
->
attribute
=
EFI_MEMORY_WB
;
k
->
start
=
as
;
k
->
num_pages
=
(
ae
-
as
)
>>
EFI_PAGE_SHIFT
;
total_mem
+=
ae
-
as
;
prev
=
k
++
;
}
k
->
start
=
~
0L
;
/* end-marker */
/* reserve the memory we are using for kern_memmap */
*
s
=
(
u64
)
kern_memmap
;
*
e
=
(
u64
)
++
k
;
}
void
efi_initialize_iomem_resources
(
struct
resource
*
code_resource
,
struct
resource
*
data_resource
)
{
struct
resource
*
res
;
void
*
efi_map_start
,
*
efi_map_end
,
*
p
;
efi_memory_desc_t
*
md
;
u64
efi_desc_size
;
char
*
name
;
unsigned
long
flags
;
efi_map_start
=
__va
(
ia64_boot_param
->
efi_memmap
);
efi_map_end
=
efi_map_start
+
ia64_boot_param
->
efi_memmap_size
;
efi_desc_size
=
ia64_boot_param
->
efi_memdesc_size
;
res
=
NULL
;
for
(
p
=
efi_map_start
;
p
<
efi_map_end
;
p
+=
efi_desc_size
)
{
md
=
p
;
if
(
md
->
num_pages
==
0
)
/* should not happen */
continue
;
flags
=
IORESOURCE_MEM
;
switch
(
md
->
type
)
{
case
EFI_MEMORY_MAPPED_IO
:
case
EFI_MEMORY_MAPPED_IO_PORT_SPACE
:
continue
;
case
EFI_LOADER_CODE
:
case
EFI_LOADER_DATA
:
case
EFI_BOOT_SERVICES_DATA
:
case
EFI_BOOT_SERVICES_CODE
:
case
EFI_CONVENTIONAL_MEMORY
:
if
(
md
->
attribute
&
EFI_MEMORY_WP
)
{
name
=
"System ROM"
;
flags
|=
IORESOURCE_READONLY
;
}
else
{
name
=
"System RAM"
;
}
break
;
case
EFI_ACPI_MEMORY_NVS
:
name
=
"ACPI Non-volatile Storage"
;
flags
|=
IORESOURCE_BUSY
;
break
;
case
EFI_UNUSABLE_MEMORY
:
name
=
"reserved"
;
flags
|=
IORESOURCE_BUSY
|
IORESOURCE_DISABLED
;
break
;
case
EFI_RESERVED_TYPE
:
case
EFI_RUNTIME_SERVICES_CODE
:
case
EFI_RUNTIME_SERVICES_DATA
:
case
EFI_ACPI_RECLAIM_MEMORY
:
default:
name
=
"reserved"
;
flags
|=
IORESOURCE_BUSY
;
break
;
}
if
((
res
=
kcalloc
(
1
,
sizeof
(
struct
resource
),
GFP_KERNEL
))
==
NULL
)
{
printk
(
KERN_ERR
"failed to alocate resource for iomem
\n
"
);
return
;
}
res
->
name
=
name
;
res
->
start
=
md
->
phys_addr
;
res
->
end
=
md
->
phys_addr
+
(
md
->
num_pages
<<
EFI_PAGE_SHIFT
)
-
1
;
res
->
flags
=
flags
;
if
(
insert_resource
(
&
iomem_resource
,
res
)
<
0
)
kfree
(
res
);
else
{
/*
* We don't know which region contains
* kernel data so we try it repeatedly and
* let the resource manager test it.
*/
insert_resource
(
res
,
code_resource
);
insert_resource
(
res
,
data_resource
);
}
}
}
arch/ia64/kernel/irq.c
浏览文件 @
8a212ab6
...
...
@@ -57,9 +57,9 @@ int show_interrupts(struct seq_file *p, void *v)
if
(
i
==
0
)
{
seq_printf
(
p
,
" "
);
for
(
j
=
0
;
j
<
NR_CPUS
;
j
++
)
if
(
cpu_online
(
j
))
seq_printf
(
p
,
"CPU%d "
,
j
);
for
_each_online_cpu
(
j
)
{
seq_printf
(
p
,
"CPU%d "
,
j
);
}
seq_putc
(
p
,
'\n'
);
}
...
...
@@ -72,9 +72,9 @@ int show_interrupts(struct seq_file *p, void *v)
#ifndef CONFIG_SMP
seq_printf
(
p
,
"%10u "
,
kstat_irqs
(
i
));
#else
for
(
j
=
0
;
j
<
NR_CPUS
;
j
++
)
if
(
cpu_online
(
j
))
seq_printf
(
p
,
"%10u "
,
kstat_cpu
(
j
).
irqs
[
i
]);
for
_each_online_cpu
(
j
)
{
seq_printf
(
p
,
"%10u "
,
kstat_cpu
(
j
).
irqs
[
i
]);
}
#endif
seq_printf
(
p
,
" %14s"
,
irq_desc
[
i
].
handler
->
typename
);
seq_printf
(
p
,
" %s"
,
action
->
name
);
...
...
arch/ia64/kernel/mca.c
浏览文件 @
8a212ab6
...
...
@@ -508,9 +508,7 @@ ia64_mca_wakeup_all(void)
int
cpu
;
/* Clear the Rendez checkin flag for all cpus */
for
(
cpu
=
0
;
cpu
<
NR_CPUS
;
cpu
++
)
{
if
(
!
cpu_online
(
cpu
))
continue
;
for_each_online_cpu
(
cpu
)
{
if
(
ia64_mc_info
.
imi_rendez_checkin
[
cpu
]
==
IA64_MCA_RENDEZ_CHECKIN_DONE
)
ia64_mca_wakeup
(
cpu
);
}
...
...
arch/ia64/kernel/module.c
浏览文件 @
8a212ab6
...
...
@@ -947,8 +947,8 @@ void
percpu_modcopy
(
void
*
pcpudst
,
const
void
*
src
,
unsigned
long
size
)
{
unsigned
int
i
;
for
(
i
=
0
;
i
<
NR_CPUS
;
i
++
)
if
(
cpu_possible
(
i
))
memcpy
(
pcpudst
+
__per_cpu_offset
[
i
],
src
,
size
);
for
_each_cpu
(
i
)
{
memcpy
(
pcpudst
+
__per_cpu_offset
[
i
],
src
,
size
);
}
}
#endif
/* CONFIG_SMP */
arch/ia64/kernel/patch.c
浏览文件 @
8a212ab6
...
...
@@ -64,22 +64,30 @@ ia64_patch (u64 insn_addr, u64 mask, u64 val)
void
ia64_patch_imm64
(
u64
insn_addr
,
u64
val
)
{
ia64_patch
(
insn_addr
,
/* The assembler may generate offset pointing to either slot 1
or slot 2 for a long (2-slot) instruction, occupying slots 1
and 2. */
insn_addr
&=
-
16UL
;
ia64_patch
(
insn_addr
+
2
,
0x01fffefe000UL
,
(
((
val
&
0x8000000000000000UL
)
>>
27
)
/* bit 63 -> 36 */
|
((
val
&
0x0000000000200000UL
)
<<
0
)
/* bit 21 -> 21 */
|
((
val
&
0x00000000001f0000UL
)
<<
6
)
/* bit 16 -> 22 */
|
((
val
&
0x000000000000ff80UL
)
<<
20
)
/* bit 7 -> 27 */
|
((
val
&
0x000000000000007fUL
)
<<
13
)
/* bit 0 -> 13 */
));
ia64_patch
(
insn_addr
-
1
,
0x1ffffffffffUL
,
val
>>
22
);
ia64_patch
(
insn_addr
+
1
,
0x1ffffffffffUL
,
val
>>
22
);
}
void
ia64_patch_imm60
(
u64
insn_addr
,
u64
val
)
{
ia64_patch
(
insn_addr
,
/* The assembler may generate offset pointing to either slot 1
or slot 2 for a long (2-slot) instruction, occupying slots 1
and 2. */
insn_addr
&=
-
16UL
;
ia64_patch
(
insn_addr
+
2
,
0x011ffffe000UL
,
(
((
val
&
0x0800000000000000UL
)
>>
23
)
/* bit 59 -> 36 */
|
((
val
&
0x00000000000fffffUL
)
<<
13
)
/* bit 0 -> 13 */
));
ia64_patch
(
insn_addr
-
1
,
0x1fffffffffcUL
,
val
>>
18
);
ia64_patch
(
insn_addr
+
1
,
0x1fffffffffcUL
,
val
>>
18
);
}
/*
...
...
arch/ia64/kernel/ptrace.c
浏览文件 @
8a212ab6
...
...
@@ -587,8 +587,9 @@ thread_matches (struct task_struct *thread, unsigned long addr)
static
struct
task_struct
*
find_thread_for_addr
(
struct
task_struct
*
child
,
unsigned
long
addr
)
{
struct
task_struct
*
g
,
*
p
;
struct
task_struct
*
p
;
struct
mm_struct
*
mm
;
struct
list_head
*
this
,
*
next
;
int
mm_users
;
if
(
!
(
mm
=
get_task_mm
(
child
)))
...
...
@@ -600,28 +601,21 @@ find_thread_for_addr (struct task_struct *child, unsigned long addr)
goto
out
;
/* not multi-threaded */
/*
* First, traverse the child's thread-list. Good for scalability with
* NPTL-threads.
* Traverse the current process' children list. Every task that
* one attaches to becomes a child. And it is only attached children
* of the debugger that are of interest (ptrace_check_attach checks
* for this).
*/
p
=
child
;
do
{
if
(
thread_matches
(
p
,
addr
))
{
child
=
p
;
goto
out
;
}
if
(
mm_users
--
<=
1
)
goto
out
;
}
while
((
p
=
next_thread
(
p
))
!=
child
);
do_each_thread
(
g
,
p
)
{
if
(
child
->
mm
!=
mm
)
list_for_each_safe
(
this
,
next
,
&
current
->
children
)
{
p
=
list_entry
(
this
,
struct
task_struct
,
sibling
);
if
(
p
->
mm
!=
mm
)
continue
;
if
(
thread_matches
(
p
,
addr
))
{
child
=
p
;
goto
out
;
}
}
while_each_thread
(
g
,
p
);
}
out:
mmput
(
mm
);
return
child
;
...
...
arch/ia64/kernel/setup.c
浏览文件 @
8a212ab6
...
...
@@ -78,6 +78,19 @@ struct screen_info screen_info;
unsigned
long
vga_console_iobase
;
unsigned
long
vga_console_membase
;
static
struct
resource
data_resource
=
{
.
name
=
"Kernel data"
,
.
flags
=
IORESOURCE_BUSY
|
IORESOURCE_MEM
};
static
struct
resource
code_resource
=
{
.
name
=
"Kernel code"
,
.
flags
=
IORESOURCE_BUSY
|
IORESOURCE_MEM
};
extern
void
efi_initialize_iomem_resources
(
struct
resource
*
,
struct
resource
*
);
extern
char
_text
[],
_end
[],
_etext
[];
unsigned
long
ia64_max_cacheline_size
;
unsigned
long
ia64_iobase
;
/* virtual address for I/O accesses */
EXPORT_SYMBOL
(
ia64_iobase
);
...
...
@@ -171,6 +184,22 @@ sort_regions (struct rsvd_region *rsvd_region, int max)
}
}
/*
* Request address space for all standard resources
*/
static
int
__init
register_memory
(
void
)
{
code_resource
.
start
=
ia64_tpa
(
_text
);
code_resource
.
end
=
ia64_tpa
(
_etext
)
-
1
;
data_resource
.
start
=
ia64_tpa
(
_etext
);
data_resource
.
end
=
ia64_tpa
(
_end
)
-
1
;
efi_initialize_iomem_resources
(
&
code_resource
,
&
data_resource
);
return
0
;
}
__initcall
(
register_memory
);
/**
* reserve_memory - setup reserved memory areas
*
...
...
@@ -211,6 +240,9 @@ reserve_memory (void)
}
#endif
efi_memmap_init
(
&
rsvd_region
[
n
].
start
,
&
rsvd_region
[
n
].
end
);
n
++
;
/* end of memory marker */
rsvd_region
[
n
].
start
=
~
0UL
;
rsvd_region
[
n
].
end
=
~
0UL
;
...
...
@@ -244,28 +276,31 @@ find_initrd (void)
static
void
__init
io_port_init
(
void
)
{
extern
unsigned
long
ia64_iobase
;
unsigned
long
phys_iobase
;
/*
* Set `iobase' to the appropriate address in region 6 (uncached access range).
* Set `iobase' based on the EFI memory map or, failing that, the
* value firmware left in ar.k0.
*
* The EFI memory map is the "preferred" location to get the I/O port space base,
* rather the relying on AR.KR0. This should become more clear in future SAL
* specs. We'll fall back to getting it out of AR.KR0 if no appropriate entry is
* found in the memory map.
* Note that in ia32 mode, IN/OUT instructions use ar.k0 to compute
* the port's virtual address, so ia32_load_state() loads it with a
* user virtual address. But in ia64 mode, glibc uses the
* *physical* address in ar.k0 to mmap the appropriate area from
* /dev/mem, and the inX()/outX() interfaces use MMIO. In both
* cases, user-mode can only use the legacy 0-64K I/O port space.
*
* ar.k0 is not involved in kernel I/O port accesses, which can use
* any of the I/O port spaces and are done via MMIO using the
* virtual mmio_base from the appropriate io_space[].
*/
phys_iobase
=
efi_get_iobase
();
if
(
phys_iobase
)
/* set AR.KR0 since this is all we use it for anyway */
ia64_set_kr
(
IA64_KR_IO_BASE
,
phys_iobase
);
else
{
if
(
!
phys_iobase
)
{
phys_iobase
=
ia64_get_kr
(
IA64_KR_IO_BASE
);
printk
(
KERN_INFO
"No I/O port range found in EFI memory map, falling back "
"to AR.KR0
\n
"
);
printk
(
KERN_INFO
"I/O port base = 0x%lx
\n
"
,
phys_iobase
);
printk
(
KERN_INFO
"No I/O port range found in EFI memory map, "
"falling back to AR.KR0 (0x%lx)
\n
"
,
phys_iobase
);
}
ia64_iobase
=
(
unsigned
long
)
ioremap
(
phys_iobase
,
0
);
ia64_set_kr
(
IA64_KR_IO_BASE
,
__pa
(
ia64_iobase
));
/* setup legacy IO port space */
io_space
[
0
].
mmio_base
=
ia64_iobase
;
...
...
@@ -526,7 +561,7 @@ show_cpuinfo (struct seq_file *m, void *v)
c
->
itc_freq
/
1000000
,
c
->
itc_freq
%
1000000
,
lpj
*
HZ
/
500000
,
(
lpj
*
HZ
/
5000
)
%
100
);
#ifdef CONFIG_SMP
seq_printf
(
m
,
"siblings : %u
\n
"
,
c
->
num_log
);
seq_printf
(
m
,
"siblings : %u
\n
"
,
c
pus_weight
(
cpu_core_map
[
cpunum
])
);
if
(
c
->
threads_per_core
>
1
||
c
->
cores_per_socket
>
1
)
seq_printf
(
m
,
"physical id: %u
\n
"
...
...
arch/ia64/kernel/smp.c
浏览文件 @
8a212ab6
...
...
@@ -185,8 +185,8 @@ send_IPI_allbutself (int op)
{
unsigned
int
i
;
for
(
i
=
0
;
i
<
NR_CPUS
;
i
++
)
{
if
(
cpu_online
(
i
)
&&
i
!=
smp_processor_id
())
for
_each_online_cpu
(
i
)
{
if
(
i
!=
smp_processor_id
())
send_IPI_single
(
i
,
op
);
}
}
...
...
@@ -199,9 +199,9 @@ send_IPI_all (int op)
{
int
i
;
for
(
i
=
0
;
i
<
NR_CPUS
;
i
++
)
if
(
cpu_online
(
i
))
send_IPI_single
(
i
,
op
);
for
_each_online_cpu
(
i
)
{
send_IPI_single
(
i
,
op
);
}
}
/*
...
...
arch/ia64/kernel/smpboot.c
浏览文件 @
8a212ab6
...
...
@@ -694,9 +694,9 @@ smp_cpus_done (unsigned int dummy)
* Allow the user to impress friends.
*/
for
(
cpu
=
0
;
cpu
<
NR_CPUS
;
cpu
++
)
if
(
cpu_online
(
cpu
))
bogosum
+=
cpu_data
(
cpu
)
->
loops_per_jiffy
;
for
_each_online_cpu
(
cpu
)
{
bogosum
+=
cpu_data
(
cpu
)
->
loops_per_jiffy
;
}
printk
(
KERN_INFO
"Total of %d processors activated (%lu.%02lu BogoMIPS).
\n
"
,
(
int
)
num_online_cpus
(),
bogosum
/
(
500000
/
HZ
),
(
bogosum
/
(
5000
/
HZ
))
%
100
);
...
...
arch/ia64/kernel/uncached.c
浏览文件 @
8a212ab6
...
...
@@ -205,23 +205,18 @@ EXPORT_SYMBOL(uncached_free_page);
static
int
__init
uncached_build_memmap
(
unsigned
long
start
,
unsigned
long
end
,
void
*
arg
)
{
long
length
;
unsigned
long
vstart
,
vend
;
long
length
=
end
-
start
;
int
node
;
length
=
end
-
start
;
vstart
=
start
+
__IA64_UNCACHED_OFFSET
;
vend
=
end
+
__IA64_UNCACHED_OFFSET
;
dprintk
(
KERN_ERR
"uncached_build_memmap(%lx %lx)
\n
"
,
start
,
end
);
memset
((
char
*
)
v
start
,
0
,
length
);
memset
((
char
*
)
start
,
0
,
length
);
node
=
paddr_to_nid
(
start
);
node
=
paddr_to_nid
(
start
-
__IA64_UNCACHED_OFFSET
);
for
(;
vstart
<
vend
;
v
start
+=
PAGE_SIZE
)
{
dprintk
(
KERN_INFO
"sticking %lx into the pool!
\n
"
,
v
start
);
gen_pool_free
(
uncached_pool
[
node
],
v
start
,
PAGE_SIZE
);
for
(;
start
<
end
;
start
+=
PAGE_SIZE
)
{
dprintk
(
KERN_INFO
"sticking %lx into the pool!
\n
"
,
start
);
gen_pool_free
(
uncached_pool
[
node
],
start
,
PAGE_SIZE
);
}
return
0
;
...
...
arch/ia64/lib/swiotlb.c
浏览文件 @
8a212ab6
...
...
@@ -49,6 +49,15 @@
*/
#define IO_TLB_SHIFT 11
#define SLABS_PER_PAGE (1 << (PAGE_SHIFT - IO_TLB_SHIFT))
/*
* Minimum IO TLB size to bother booting with. Systems with mainly
* 64bit capable cards will only lightly use the swiotlb. If we can't
* allocate a contiguous 1MB, we're probably in trouble anyway.
*/
#define IO_TLB_MIN_SLABS ((1<<20) >> IO_TLB_SHIFT)
int
swiotlb_force
;
/*
...
...
@@ -154,6 +163,99 @@ swiotlb_init (void)
swiotlb_init_with_default_size
(
64
*
(
1
<<
20
));
/* default to 64MB */
}
/*
* Systems with larger DMA zones (those that don't support ISA) can
* initialize the swiotlb later using the slab allocator if needed.
* This should be just like above, but with some error catching.
*/
int
swiotlb_late_init_with_default_size
(
size_t
default_size
)
{
unsigned
long
i
,
req_nslabs
=
io_tlb_nslabs
;
unsigned
int
order
;
if
(
!
io_tlb_nslabs
)
{
io_tlb_nslabs
=
(
default_size
>>
IO_TLB_SHIFT
);
io_tlb_nslabs
=
ALIGN
(
io_tlb_nslabs
,
IO_TLB_SEGSIZE
);
}
/*
* Get IO TLB memory from the low pages
*/
order
=
get_order
(
io_tlb_nslabs
*
(
1
<<
IO_TLB_SHIFT
));
io_tlb_nslabs
=
SLABS_PER_PAGE
<<
order
;
while
((
SLABS_PER_PAGE
<<
order
)
>
IO_TLB_MIN_SLABS
)
{
io_tlb_start
=
(
char
*
)
__get_free_pages
(
GFP_DMA
|
__GFP_NOWARN
,
order
);
if
(
io_tlb_start
)
break
;
order
--
;
}
if
(
!
io_tlb_start
)
goto
cleanup1
;
if
(
order
!=
get_order
(
io_tlb_nslabs
*
(
1
<<
IO_TLB_SHIFT
)))
{
printk
(
KERN_WARNING
"Warning: only able to allocate %ld MB "
"for software IO TLB
\n
"
,
(
PAGE_SIZE
<<
order
)
>>
20
);
io_tlb_nslabs
=
SLABS_PER_PAGE
<<
order
;
}
io_tlb_end
=
io_tlb_start
+
io_tlb_nslabs
*
(
1
<<
IO_TLB_SHIFT
);
memset
(
io_tlb_start
,
0
,
io_tlb_nslabs
*
(
1
<<
IO_TLB_SHIFT
));
/*
* Allocate and initialize the free list array. This array is used
* to find contiguous free memory regions of size up to IO_TLB_SEGSIZE
* between io_tlb_start and io_tlb_end.
*/
io_tlb_list
=
(
unsigned
int
*
)
__get_free_pages
(
GFP_KERNEL
,
get_order
(
io_tlb_nslabs
*
sizeof
(
int
)));
if
(
!
io_tlb_list
)
goto
cleanup2
;
for
(
i
=
0
;
i
<
io_tlb_nslabs
;
i
++
)
io_tlb_list
[
i
]
=
IO_TLB_SEGSIZE
-
OFFSET
(
i
,
IO_TLB_SEGSIZE
);
io_tlb_index
=
0
;
io_tlb_orig_addr
=
(
unsigned
char
**
)
__get_free_pages
(
GFP_KERNEL
,
get_order
(
io_tlb_nslabs
*
sizeof
(
char
*
)));
if
(
!
io_tlb_orig_addr
)
goto
cleanup3
;
memset
(
io_tlb_orig_addr
,
0
,
io_tlb_nslabs
*
sizeof
(
char
*
));
/*
* Get the overflow emergency buffer
*/
io_tlb_overflow_buffer
=
(
void
*
)
__get_free_pages
(
GFP_DMA
,
get_order
(
io_tlb_overflow
));
if
(
!
io_tlb_overflow_buffer
)
goto
cleanup4
;
printk
(
KERN_INFO
"Placing %ldMB software IO TLB between 0x%lx - "
"0x%lx
\n
"
,
(
io_tlb_nslabs
*
(
1
<<
IO_TLB_SHIFT
))
>>
20
,
virt_to_phys
(
io_tlb_start
),
virt_to_phys
(
io_tlb_end
));
return
0
;
cleanup4:
free_pages
((
unsigned
long
)
io_tlb_orig_addr
,
get_order
(
io_tlb_nslabs
*
sizeof
(
char
*
)));
io_tlb_orig_addr
=
NULL
;
cleanup3:
free_pages
((
unsigned
long
)
io_tlb_list
,
get_order
(
io_tlb_nslabs
*
sizeof
(
int
)));
io_tlb_list
=
NULL
;
io_tlb_end
=
NULL
;
cleanup2:
free_pages
((
unsigned
long
)
io_tlb_start
,
order
);
io_tlb_start
=
NULL
;
cleanup1:
io_tlb_nslabs
=
req_nslabs
;
return
-
ENOMEM
;
}
static
inline
int
address_needs_mapping
(
struct
device
*
hwdev
,
dma_addr_t
addr
)
{
...
...
arch/ia64/mm/Makefile
浏览文件 @
8a212ab6
...
...
@@ -7,6 +7,5 @@ obj-y := init.o fault.o tlb.o extable.o
obj-$(CONFIG_HUGETLB_PAGE)
+=
hugetlbpage.o
obj-$(CONFIG_NUMA)
+=
numa.o
obj-$(CONFIG_DISCONTIGMEM)
+=
discontig.o
ifndef
CONFIG_DISCONTIGMEM
obj-y
+=
contig.o
endif
obj-$(CONFIG_SPARSEMEM)
+=
discontig.o
obj-$(CONFIG_FLATMEM)
+=
contig.o
arch/ia64/mm/contig.c
浏览文件 @
8a212ab6
...
...
@@ -269,7 +269,7 @@ paging_init (void)
efi_memmap_walk
(
find_largest_hole
,
(
u64
*
)
&
max_gap
);
if
(
max_gap
<
LARGE_GAP
)
{
vmem_map
=
(
struct
page
*
)
0
;
free_area_init_node
(
0
,
&
contig_page_data
,
zones_size
,
0
,
free_area_init_node
(
0
,
NODE_DATA
(
0
)
,
zones_size
,
0
,
zholes_size
);
}
else
{
unsigned
long
map_size
;
...
...
@@ -282,7 +282,7 @@ paging_init (void)
efi_memmap_walk
(
create_mem_map_page_table
,
NULL
);
NODE_DATA
(
0
)
->
node_mem_map
=
vmem_map
;
free_area_init_node
(
0
,
&
contig_page_data
,
zones_size
,
free_area_init_node
(
0
,
NODE_DATA
(
0
)
,
zones_size
,
0
,
zholes_size
);
printk
(
"Virtual mem_map starts at 0x%p
\n
"
,
mem_map
);
...
...
arch/ia64/mm/discontig.c
浏览文件 @
8a212ab6
...
...
@@ -421,6 +421,37 @@ static void __init memory_less_nodes(void)
return
;
}
#ifdef CONFIG_SPARSEMEM
/**
* register_sparse_mem - notify SPARSEMEM that this memory range exists.
* @start: physical start of range
* @end: physical end of range
* @arg: unused
*
* Simply calls SPARSEMEM to register memory section(s).
*/
static
int
__init
register_sparse_mem
(
unsigned
long
start
,
unsigned
long
end
,
void
*
arg
)
{
int
nid
;
start
=
__pa
(
start
)
>>
PAGE_SHIFT
;
end
=
__pa
(
end
)
>>
PAGE_SHIFT
;
nid
=
early_pfn_to_nid
(
start
);
memory_present
(
nid
,
start
,
end
);
return
0
;
}
static
void
__init
arch_sparse_init
(
void
)
{
efi_memmap_walk
(
register_sparse_mem
,
NULL
);
sparse_init
();
}
#else
#define arch_sparse_init() do {} while (0)
#endif
/**
* find_memory - walk the EFI memory map and setup the bootmem allocator
*
...
...
@@ -528,8 +559,10 @@ void show_mem(void)
int
shared
=
0
,
cached
=
0
,
reserved
=
0
;
printk
(
"Node ID: %d
\n
"
,
pgdat
->
node_id
);
for
(
i
=
0
;
i
<
pgdat
->
node_spanned_pages
;
i
++
)
{
struct
page
*
page
=
pgdat_page_nr
(
pgdat
,
i
);
if
(
!
ia64_pfn_valid
(
pgdat
->
node_start_pfn
+
i
))
struct
page
*
page
;
if
(
pfn_valid
(
pgdat
->
node_start_pfn
+
i
))
page
=
pfn_to_page
(
pgdat
->
node_start_pfn
+
i
);
else
continue
;
if
(
PageReserved
(
page
))
reserved
++
;
...
...
@@ -648,12 +681,16 @@ void __init paging_init(void)
max_dma
=
virt_to_phys
((
void
*
)
MAX_DMA_ADDRESS
)
>>
PAGE_SHIFT
;
arch_sparse_init
();
efi_memmap_walk
(
filter_rsvd_memory
,
count_node_pages
);
#ifdef CONFIG_VIRTUAL_MEM_MAP
vmalloc_end
-=
PAGE_ALIGN
(
max_low_pfn
*
sizeof
(
struct
page
));
vmem_map
=
(
struct
page
*
)
vmalloc_end
;
efi_memmap_walk
(
create_mem_map_page_table
,
NULL
);
printk
(
"Virtual mem_map starts at 0x%p
\n
"
,
vmem_map
);
#endif
for_each_online_node
(
node
)
{
memset
(
zones_size
,
0
,
sizeof
(
zones_size
));
...
...
@@ -690,7 +727,9 @@ void __init paging_init(void)
pfn_offset
=
mem_data
[
node
].
min_pfn
;
#ifdef CONFIG_VIRTUAL_MEM_MAP
NODE_DATA
(
node
)
->
node_mem_map
=
vmem_map
+
pfn_offset
;
#endif
free_area_init_node
(
node
,
NODE_DATA
(
node
),
zones_size
,
pfn_offset
,
zholes_size
);
}
...
...
arch/ia64/mm/init.c
浏览文件 @
8a212ab6
...
...
@@ -593,7 +593,7 @@ mem_init (void)
platform_dma_init
();
#endif
#if
ndef CONFIG_DISCONTIG
MEM
#if
def CONFIG_FLAT
MEM
if
(
!
mem_map
)
BUG
();
max_mapnr
=
max_low_pfn
;
...
...
arch/ia64/mm/numa.c
浏览文件 @
8a212ab6
...
...
@@ -47,3 +47,27 @@ paddr_to_nid(unsigned long paddr)
return
(
i
<
num_node_memblks
)
?
node_memblk
[
i
].
nid
:
(
num_node_memblks
?
-
1
:
0
);
}
#if defined(CONFIG_SPARSEMEM) && defined(CONFIG_NUMA)
/*
* Because of holes evaluate on section limits.
* If the section of memory exists, then return the node where the section
* resides. Otherwise return node 0 as the default. This is used by
* SPARSEMEM to allocate the SPARSEMEM sectionmap on the NUMA node where
* the section resides.
*/
int
early_pfn_to_nid
(
unsigned
long
pfn
)
{
int
i
,
section
=
pfn
>>
PFN_SECTION_SHIFT
,
ssec
,
esec
;
for
(
i
=
0
;
i
<
num_node_memblks
;
i
++
)
{
ssec
=
node_memblk
[
i
].
start_paddr
>>
PA_SECTION_SHIFT
;
esec
=
(
node_memblk
[
i
].
start_paddr
+
node_memblk
[
i
].
size
+
((
1L
<<
PA_SECTION_SHIFT
)
-
1
))
>>
PA_SECTION_SHIFT
;
if
(
section
>=
ssec
&&
section
<
esec
)
return
node_memblk
[
i
].
nid
;
}
return
0
;
}
#endif
arch/ia64/mm/tlb.c
浏览文件 @
8a212ab6
...
...
@@ -77,19 +77,25 @@ wrap_mmu_context (struct mm_struct *mm)
/* can't call flush_tlb_all() here because of race condition with O(1) scheduler [EF] */
{
int
cpu
=
get_cpu
();
/* prevent preemption/migration */
for
(
i
=
0
;
i
<
NR_CPUS
;
++
i
)
if
(
cpu_online
(
i
)
&&
(
i
!=
cpu
)
)
for
_each_online_cpu
(
i
)
{
if
(
i
!=
cpu
)
per_cpu
(
ia64_need_tlb_flush
,
i
)
=
1
;
}
put_cpu
();
}
local_flush_tlb_all
();
}
void
ia64_global_tlb_purge
(
unsigned
long
start
,
unsigned
long
end
,
unsigned
long
nbits
)
ia64_global_tlb_purge
(
struct
mm_struct
*
mm
,
unsigned
long
start
,
unsigned
long
end
,
unsigned
long
nbits
)
{
static
DEFINE_SPINLOCK
(
ptcg_lock
);
if
(
mm
!=
current
->
active_mm
)
{
flush_tlb_all
();
return
;
}
/* HW requires global serialization of ptc.ga. */
spin_lock
(
&
ptcg_lock
);
{
...
...
@@ -135,15 +141,12 @@ flush_tlb_range (struct vm_area_struct *vma, unsigned long start, unsigned long
unsigned
long
size
=
end
-
start
;
unsigned
long
nbits
;
#ifndef CONFIG_SMP
if
(
mm
!=
current
->
active_mm
)
{
/* this does happen, but perhaps it's not worth optimizing for? */
#ifdef CONFIG_SMP
flush_tlb_all
();
#else
mm
->
context
=
0
;
#endif
return
;
}
#endif
nbits
=
ia64_fls
(
size
+
0xfff
);
while
(
unlikely
(((
1UL
<<
nbits
)
&
purge
.
mask
)
==
0
)
&&
(
nbits
<
purge
.
max_bits
))
...
...
@@ -153,7 +156,7 @@ flush_tlb_range (struct vm_area_struct *vma, unsigned long start, unsigned long
start
&=
~
((
1UL
<<
nbits
)
-
1
);
# ifdef CONFIG_SMP
platform_global_tlb_purge
(
start
,
end
,
nbits
);
platform_global_tlb_purge
(
mm
,
start
,
end
,
nbits
);
# else
do
{
ia64_ptcl
(
start
,
(
nbits
<<
2
));
...
...
arch/ia64/pci/pci.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/kernel/bte.c
浏览文件 @
8a212ab6
...
...
@@ -87,7 +87,7 @@ bte_result_t bte_copy(u64 src, u64 dest, u64 len, u64 mode, void *notification)
unsigned
long
irq_flags
;
unsigned
long
itc_end
=
0
;
int
nasid_to_try
[
MAX_NODES_TO_TRY
];
int
my_nasid
=
get_nasid
(
);
int
my_nasid
=
cpuid_to_nasid
(
raw_smp_processor_id
()
);
int
bte_if_index
,
nasid_index
;
int
bte_first
,
btes_per_node
=
BTES_PER_NODE
;
...
...
arch/ia64/sn/kernel/io_init.c
浏览文件 @
8a212ab6
...
...
@@ -22,8 +22,6 @@
#include "xtalk/hubdev.h"
#include "xtalk/xwidgetdev.h"
nasid_t
master_nasid
=
INVALID_NASID
;
/* Partition Master */
static
struct
list_head
sn_sysdata_list
;
/* sysdata list struct */
...
...
@@ -165,7 +163,7 @@ static void sn_fixup_ionodes(void)
* Get SGI Specific HUB chipset information.
* Inform Prom that this kernel can support domain bus numbering.
*/
for
(
i
=
0
;
i
<
num
io
nodes
;
i
++
)
{
for
(
i
=
0
;
i
<
num
_c
nodes
;
i
++
)
{
hubdev
=
(
struct
hubdev_info
*
)(
NODEPDA
(
i
)
->
pdinfo
);
nasid
=
cnodeid_to_nasid
(
i
);
hubdev
->
max_segment_number
=
0xffffffff
;
...
...
arch/ia64/sn/kernel/setup.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/kernel/sn2/sn2_smp.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/kernel/sn2/sn_hwperf.c
浏览文件 @
8a212ab6
...
...
@@ -476,8 +476,8 @@ static int sn_topology_show(struct seq_file *s, void *d)
for_each_online_cpu
(
j
)
{
seq_printf
(
s
,
j
?
":%d"
:
", dist %d"
,
node_distance
(
cpu
id_to_cnodeid
(
i
),
cpu
id_to_cnodeid
(
j
)));
cpu
_to_node
(
i
),
cpu
_to_node
(
j
)));
}
seq_putc
(
s
,
'\n'
);
}
...
...
arch/ia64/sn/kernel/tiocx.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/kernel/xpc.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/kernel/xpc_channel.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/kernel/xpc_main.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/kernel/xpc_partition.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/pci/pci_dma.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/pci/pcibr/pcibr_reg.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/pci/tioca_provider.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
arch/ia64/sn/pci/tioce_provider.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
drivers/char/agp/sgi-agp.c
浏览文件 @
8a212ab6
...
...
@@ -17,6 +17,7 @@
#include <linux/init.h>
#include <linux/agp_backend.h>
#include <asm/sn/addrs.h>
#include <asm/sn/io.h>
#include <asm/sn/pcidev.h>
#include <asm/sn/pcibus_provider_defs.h>
#include <asm/sn/tioca_provider.h>
...
...
drivers/char/mmtimer.c
浏览文件 @
8a212ab6
...
...
@@ -441,7 +441,7 @@ static irqreturn_t
mmtimer_interrupt
(
int
irq
,
void
*
dev_id
,
struct
pt_regs
*
regs
)
{
int
i
;
mmtimer_t
*
base
=
timers
+
cpu
id_to_cnodeid
(
smp_processor_id
())
*
mmtimer_t
*
base
=
timers
+
cpu
_to_node
(
smp_processor_id
())
*
NUM_COMPARATORS
;
unsigned
long
expires
=
0
;
int
result
=
IRQ_NONE
;
...
...
@@ -608,7 +608,7 @@ static int sgi_timer_set(struct k_itimer *timr, int flags,
*/
preempt_disable
();
nodeid
=
cpu
id_to_cnodeid
(
smp_processor_id
());
nodeid
=
cpu
_to_node
(
smp_processor_id
());
base
=
timers
+
nodeid
*
NUM_COMPARATORS
;
retry:
/* Don't use an allocated timer, or a deleted one that's pending */
...
...
drivers/char/snsc.c
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/machvec.h
浏览文件 @
8a212ab6
...
...
@@ -26,7 +26,7 @@ typedef void ia64_mv_cpu_init_t (void);
typedef
void
ia64_mv_irq_init_t
(
void
);
typedef
void
ia64_mv_send_ipi_t
(
int
,
int
,
int
,
int
);
typedef
void
ia64_mv_timer_interrupt_t
(
int
,
void
*
,
struct
pt_regs
*
);
typedef
void
ia64_mv_global_tlb_purge_t
(
unsigned
long
,
unsigned
long
,
unsigned
long
);
typedef
void
ia64_mv_global_tlb_purge_t
(
struct
mm_struct
*
,
unsigned
long
,
unsigned
long
,
unsigned
long
);
typedef
void
ia64_mv_tlb_migrate_finish_t
(
struct
mm_struct
*
);
typedef
unsigned
int
ia64_mv_local_vector_to_irq
(
u8
);
typedef
char
*
ia64_mv_pci_get_legacy_mem_t
(
struct
pci_bus
*
);
...
...
include/asm-ia64/machvec_hpzx1.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/machvec_hpzx1_swiotlb.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/meminit.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/mmzone.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/nodedata.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/page.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/arch.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/io.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/klconfig.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/l1.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/nodepda.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/sn_cpuid.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/sn_sal.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/tioca_provider.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/tiocx.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sn/xp.h
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
include/asm-ia64/sparsemem.h
0 → 100644
浏览文件 @
8a212ab6
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录