Commit a376ed89 authored by David Mosberger's avatar David Mosberger

ia64: Sync up with 2.5.45.

parent cbbb5f84
mainmenu "IA-64 Linux Kernel Configuration" mainmenu "IA-64 Linux Kernel Configuration"
source "init/Kconfig" source "init/Kconfig"
menu "Processor type and features" menu "Processor type and features"
config IA64 config IA64
bool bool
default y default y
help help
The Itanium is Intel's 64-bit successor to the 32-bit X86 line. As The Itanium Processor Family is Intel's 64-bit successor to
of early 2001 it is not yet in widespread production use. The Linux the 32-bit X86 line. The IA-64 Linux project has a home
IA-64 project has a home page at <http://www.linuxia64.org/>. page at <http://www.linuxia64.org/> and a mailing list at
linux-ia64@linuxia64.org.
config ISA
bool
help
Find out whether you have ISA slots on your motherboard. ISA is the
name of a bus system, i.e. the way the CPU talks to the other stuff
inside your box. Other bus systems are PCI, EISA, MicroChannel
(MCA) or VESA. ISA is an older system, now being displaced by PCI;
newer boards don't support it. If you have ISA, say Y, otherwise N.
config EISA
bool
---help---
The Extended Industry Standard Architecture (EISA) bus was
developed as an open alternative to the IBM MicroChannel bus.
The EISA bus provided some of the features of the IBM MicroChannel
bus while maintaining backward compatibility with cards made for
the older ISA bus. The EISA bus saw limited use between 1988 and
1995 when it was made obsolete by the PCI bus.
Say Y here if you are building a kernel for an EISA-based machine.
Otherwise, say N.
config MCA
bool
help
MicroChannel Architecture is found in some IBM PS/2 machines and
laptops. It is a bus system similar to PCI or ISA. See
<file:Documentation/mca.txt> (and especially the web page given
there) before attempting to build an MCA bus kernel.
config SBUS
bool
config RWSEM_GENERIC_SPINLOCK config RWSEM_GENERIC_SPINLOCK
bool bool
default y default y
config RWSEM_XCHGADD_ALGORITHM
bool
choice choice
prompt "IA-64 processor type" prompt "IA-64 processor type"
default ITANIUM default ITANIUM
...@@ -63,10 +24,12 @@ choice ...@@ -63,10 +24,12 @@ choice
config ITANIUM config ITANIUM
bool "Itanium" bool "Itanium"
help help
Select your IA64 processor type. The default is Intel Itanium. Select your IA-64 processor type. The default is Intel Itanium.
This choice is safe for all IA-64 systems, but may not perform
optimally on systems with, say, Itanium 2 or newer processors.
config MCKINLEY config MCKINLEY
bool "Itanium-2" bool "Itanium 2"
help help
Select this to configure for an Itanium 2 (McKinley) processor. Select this to configure for an Itanium 2 (McKinley) processor.
...@@ -90,7 +53,7 @@ config IA64_GENERIC ...@@ -90,7 +53,7 @@ config IA64_GENERIC
HP-simulator For the HP simulator HP-simulator For the HP simulator
(<http://software.hp.com/ia64linux/>). (<http://software.hp.com/ia64linux/>).
HP-zx1 For HP zx1 platforms. HP-zx1 For HP zx1-based systems.
SN1-simulator For the SGI SN1 simulator. SN1-simulator For the SGI SN1 simulator.
DIG-compliant For DIG ("Developer's Interface Guide") compliant DIG-compliant For DIG ("Developer's Interface Guide") compliant
systems. systems.
...@@ -107,8 +70,8 @@ config IA64_HP_ZX1 ...@@ -107,8 +70,8 @@ config IA64_HP_ZX1
bool "HP-zx1" bool "HP-zx1"
help help
Build a kernel that runs on HP zx1-based systems. This adds support Build a kernel that runs on HP zx1-based systems. This adds support
for the zx1 IOMMU and makes root bus bridges appear in PCI config space for the zx1 I/O MMU and makes root bus bridges appear in PCI config
(required for zx1 agpgart support). space (required for zx1 agpgart support).
config IA64_SGI_SN1 config IA64_SGI_SN1
bool "SGI-SN1" bool "SGI-SN1"
...@@ -129,15 +92,15 @@ config IA64_PAGE_SIZE_4KB ...@@ -129,15 +92,15 @@ config IA64_PAGE_SIZE_4KB
performance, a page size of 8KB or 16KB is recommended. For best performance, a page size of 8KB or 16KB is recommended. For best
IA-32 compatibility, a page size of 4KB should be selected (the vast IA-32 compatibility, a page size of 4KB should be selected (the vast
majority of IA-32 binaries work perfectly fine with a larger page majority of IA-32 binaries work perfectly fine with a larger page
size). For Itanium systems, do NOT chose a page size larger than size). For Itanium 2 or newer systems, a page size of 64KB can also
16KB. be selected.
4KB For best IA-32 compatibility 4KB For best IA-32 compatibility
8KB For best IA-64 performance 8KB For best IA-64 performance
16KB For best IA-64 performance 16KB For best IA-64 performance
64KB Not for Itanium. 64KB Requires Itanium 2 or newer processor.
If you don't know what to do, choose 8KB. If you don't know what to do, choose 16KB.
config IA64_PAGE_SIZE_8KB config IA64_PAGE_SIZE_8KB
bool "8KB" bool "8KB"
...@@ -200,7 +163,7 @@ config ACPI_KERNEL_CONFIG ...@@ -200,7 +163,7 @@ config ACPI_KERNEL_CONFIG
default y default y
help help
If you say `Y' here, Linux's ACPI support will use the If you say `Y' here, Linux's ACPI support will use the
hardware-level system descriptions found on IA64 machines. hardware-level system descriptions found on IA-64 systems.
config IA64_BRL_EMU config IA64_BRL_EMU
bool bool
...@@ -226,15 +189,15 @@ config MCKINLEY_ASTEP_SPECIFIC ...@@ -226,15 +189,15 @@ config MCKINLEY_ASTEP_SPECIFIC
bool "Enable McKinley A-step specific code" bool "Enable McKinley A-step specific code"
depends on MCKINLEY depends on MCKINLEY
help help
Select this option to build a kernel for an IA64 McKinley system Select this option to build a kernel for an IA-64 McKinley prototype
with any A-stepping CPU. system with any A-stepping CPU.
config MCKINLEY_A0_SPECIFIC config MCKINLEY_A0_SPECIFIC
bool "Enable McKinley A0/A1-step specific code" bool "Enable McKinley A0/A1-step specific code"
depends on MCKINLEY_ASTEP_SPECIFIC depends on MCKINLEY_ASTEP_SPECIFIC
help help
Select this option to build a kernel for an IA64 McKinley system Select this option to build a kernel for an IA-64 McKinley prototype
with an A0 or A1 stepping CPU. system with an A0 or A1 stepping CPU.
config NUMA config NUMA
bool "Enable NUMA support" if IA64_GENERIC || IA64_DIG || IA64_HP_ZX1 bool "Enable NUMA support" if IA64_GENERIC || IA64_DIG || IA64_HP_ZX1
...@@ -242,14 +205,14 @@ config NUMA ...@@ -242,14 +205,14 @@ config NUMA
help help
Say Y to compile the kernel to support NUMA (Non-Uniform Memory Say Y to compile the kernel to support NUMA (Non-Uniform Memory
Access). This option is for configuring high-end multiprocessor Access). This option is for configuring high-end multiprocessor
server machines. If in doubt, say N. server systems. If in doubt, say N.
config DISCONTIGMEM config DISCONTIGMEM
bool bool
depends on IA64_SGI_SN1 || IA64_SGI_SN2 || (IA64_GENERIC || IA64_DIG || IA64_HP_ZX1) && NUMA depends on IA64_SGI_SN1 || IA64_SGI_SN2 || (IA64_GENERIC || IA64_DIG || IA64_HP_ZX1) && NUMA
default y default y
help help
Say Y to upport efficient handling of discontiguous physical memory, Say Y to support efficient handling of discontiguous physical memory,
for architectures which are either NUMA (Non-Uniform Memory Access) for architectures which are either NUMA (Non-Uniform Memory Access)
or have huge holes in the physical address space for other reasons. or have huge holes in the physical address space for other reasons.
See <file:Documentation/vm/numa> for more. See <file:Documentation/vm/numa> for more.
...@@ -298,14 +261,14 @@ config IA64_SGI_SN_DEBUG ...@@ -298,14 +261,14 @@ config IA64_SGI_SN_DEBUG
depends on IA64_SGI_SN1 || IA64_SGI_SN2 depends on IA64_SGI_SN1 || IA64_SGI_SN2
help help
Turns on extra debugging code in the SGI SN (Scalable NUMA) platform Turns on extra debugging code in the SGI SN (Scalable NUMA) platform
for IA64. Unless you are debugging problems on an SGI SN IA64 box, for IA-64. Unless you are debugging problems on an SGI SN IA-64 box,
say N. say N.
config IA64_SGI_SN_SIM config IA64_SGI_SN_SIM
bool "Enable SGI Medusa Simulator Support" bool "Enable SGI Medusa Simulator Support"
depends on IA64_SGI_SN1 || IA64_SGI_SN2 depends on IA64_SGI_SN1 || IA64_SGI_SN2
help help
If you are compiling a kernel that will run under SGI's IA64 If you are compiling a kernel that will run under SGI's IA-64
simulator (Medusa) then say Y, otherwise say N. simulator (Medusa) then say Y, otherwise say N.
config IA64_SGI_AUTOTEST config IA64_SGI_AUTOTEST
...@@ -323,7 +286,7 @@ config SERIAL_SGI_L1_PROTOCOL ...@@ -323,7 +286,7 @@ config SERIAL_SGI_L1_PROTOCOL
depends on IA64_SGI_SN1 || IA64_SGI_SN2 depends on IA64_SGI_SN1 || IA64_SGI_SN2
help help
Uses protocol mode instead of raw mode for the level 1 console on the Uses protocol mode instead of raw mode for the level 1 console on the
SGI SN (Scalable NUMA) platform for IA64. If you are compiling for SGI SN (Scalable NUMA) platform for IA-64. If you are compiling for
an SGI SN box then Y is the recommended value, otherwise say N. an SGI SN box then Y is the recommended value, otherwise say N.
config PERCPU_IRQ config PERCPU_IRQ
...@@ -336,8 +299,8 @@ config PCIBA ...@@ -336,8 +299,8 @@ config PCIBA
depends on IA64_SGI_SN1 || IA64_SGI_SN2 depends on IA64_SGI_SN1 || IA64_SGI_SN2
help help
IRIX PCIBA-inspired user mode PCI interface for the SGI SN (Scalable IRIX PCIBA-inspired user mode PCI interface for the SGI SN (Scalable
NUMA) platform for IA64. Unless you are compiling a kernel for an NUMA) platform for IA-64. Unless you are compiling a kernel for an
SGI SN IA64 box, say N. SGI SN IA-64 box, say N.
# On IA-64, we always want an ELF /proc/kcore. # On IA-64, we always want an ELF /proc/kcore.
config KCORE_ELF config KCORE_ELF
...@@ -402,27 +365,17 @@ config SMP ...@@ -402,27 +365,17 @@ config SMP
bool "SMP support" bool "SMP support"
---help--- ---help---
This enables support for systems with more than one CPU. If you have This enables support for systems with more than one CPU. If you have
a system with only one CPU, like most personal computers, say N. If a system with only one CPU say N. If you have a system with more than
you have a system with more than one CPU, say Y. one CPU, say Y.
If you say N here, the kernel will run on single and multiprocessor If you say N here, the kernel will run on single and multiprocessor
machines, but will use only one CPU of a multiprocessor machine. If systems, but will use only one CPU of a multiprocessor system. If
you say Y here, the kernel will run on many, but not all, you say Y here, the kernel will run on many, but not all,
singleprocessor machines. On a singleprocessor machine, the kernel singleprocessor system. On a singleprocessor system, the kernel
will run faster if you say N here. will run faster if you say N here.
Note that if you say Y here and choose architecture "586" or
"Pentium" under "Processor family", the kernel will not work on 486
architectures. Similarly, multiprocessor kernels for the "PPro"
architecture may not work on all Pentium based boards.
People using multiprocessor machines who say Y here should also say
Y to "Enhanced Real Time Clock Support", below. The "Advanced Power
Management" code will be disabled if you say Y here.
See also the <file:Documentation/smp.tex>, See also the <file:Documentation/smp.tex>,
<file:Documentation/smp.txt>, <file:Documentation/i386/IO-APIC.txt>, <file:Documentation/smp.txt>, and the SMP-HOWTO available at
<file:Documentation/nmi_watchdog.txt> and the SMP-HOWTO available at
<http://www.linuxdoc.org/docs.html#howto>. <http://www.linuxdoc.org/docs.html#howto>.
If you don't know what to do here, say N. If you don't know what to do here, say N.
...@@ -430,17 +383,19 @@ config SMP ...@@ -430,17 +383,19 @@ config SMP
config IA32_SUPPORT config IA32_SUPPORT
bool "Support running of Linux/x86 binaries" bool "Support running of Linux/x86 binaries"
help help
IA64 processors can run IA32 (that is, x86) binaries by emulating IA-64 processors can execute IA-32 (X86) instructions. By
the IA32 instruction set. Say Y here to build in kernel support for saying Y here, the kernel will include IA-32 system call
this. If in doubt, say Y. emulation support which makes it possible to transparently
run IA-32 Linux binaries on an IA-64 Linux system.
If in doubt, say Y.
config PERFMON config PERFMON
bool "Performance monitor support" bool "Performance monitor support"
help help
Selects whether support for the IA-64 performance monitor hardware Selects whether support for the IA-64 performance monitor hardware
is included in the kernel. This makes some kernel data-structures a is included in the kernel. This makes some kernel data-structures a
little bigger and slows down execution a bit, but it is still little bigger and slows down execution a bit, but it is generally
usually a good idea to turn this on. If you're unsure, say N. a good idea to turn this on. If you're unsure, say Y.
config IA64_PALINFO config IA64_PALINFO
tristate "/proc/pal support" tristate "/proc/pal support"
...@@ -450,7 +405,7 @@ config IA64_PALINFO ...@@ -450,7 +405,7 @@ config IA64_PALINFO
about the processors in your systems, such as cache and TLB sizes about the processors in your systems, such as cache and TLB sizes
and the PAL firmware version in use. and the PAL firmware version in use.
To use this option, you have to check that the "/proc file system To use this option, you have to ensure that the "/proc file system
support" (CONFIG_PROC_FS) is enabled, too. support" (CONFIG_PROC_FS) is enabled, too.
config EFI_VARS config EFI_VARS
...@@ -473,42 +428,21 @@ config BINFMT_ELF ...@@ -473,42 +428,21 @@ config BINFMT_ELF
---help--- ---help---
ELF (Executable and Linkable Format) is a format for libraries and ELF (Executable and Linkable Format) is a format for libraries and
executables used across different architectures and operating executables used across different architectures and operating
systems. Saying Y here will enable your kernel to run ELF binaries systems. Saying Y here will enable your kernel to run ELF binaries.
and enlarge it by about 13 KB. ELF support under Linux has now all
but replaced the traditional Linux a.out formats (QMAGIC and ZMAGIC)
because it is portable (this does *not* mean that you will be able
to run executables from different architectures or operating systems
however) and makes building run-time libraries very easy. Many new
executables are distributed solely in ELF format. You definitely
want to say Y here.
Information about ELF is contained in the ELF HOWTO available from Information about ELF is contained in the ELF HOWTO available from
<http://www.linuxdoc.org/docs.html#howto>. <http://www.linuxdoc.org/docs.html#howto>.
If you find that after upgrading from Linux kernel 1.2 and saying Y
here, you still can't run any ELF binaries (they just crash), then
you'll have to install the newest ELF runtime libraries, including
ld.so (check the file <file:Documentation/Changes> for location and
latest version).
If you want to compile this as a module ( = code which can be
inserted in and removed from the running kernel whenever you want),
say M here and read <file:Documentation/modules.txt>. The module
will be called binfmt_elf.o. Saying M or N here is dangerous because
some crucial programs on your system might be in ELF format.
config BINFMT_MISC config BINFMT_MISC
tristate "Kernel support for MISC binaries" tristate "Kernel support for MISC binaries"
---help--- ---help---
If you say Y here, it will be possible to plug wrapper-driven binary If you say Y here, it will be possible to plug wrapper-driven binary
formats into the kernel. You will like this especially when you use formats into the kernel. You will like this especially when you use
programs that need an interpreter to run like Java, Python or programs that need an interpreter to run like Java, Python or
Emacs-Lisp. It's also useful if you often run DOS executables under Emacs-Lisp. Once you have registered such a binary class with the
the Linux DOS emulator DOSEMU (read the DOSEMU-HOWTO, available from kernel, you can start one of those programs simply by typing in its
<http://www.linuxdoc.org/docs.html#howto>). Once you have name at a shell prompt; Linux will automatically feed it to the
registered such a binary class with the kernel, you can start one of correct interpreter.
those programs simply by typing in its name at a shell prompt; Linux
will automatically feed it to the correct interpreter.
You can do other nice things, too. Read the file You can do other nice things, too. Read the file
<file:Documentation/binfmt_misc.txt> to learn how to use this <file:Documentation/binfmt_misc.txt> to learn how to use this
...@@ -698,7 +632,7 @@ config NETDEVICES ...@@ -698,7 +632,7 @@ config NETDEVICES
CSLIP (compressed SLIP) or PPP (Point to Point Protocol, a better CSLIP (compressed SLIP) or PPP (Point to Point Protocol, a better
and newer replacement for SLIP) or PLIP (Parallel Line Internet and newer replacement for SLIP) or PLIP (Parallel Line Internet
Protocol is mainly used to create a mini network by connecting the Protocol is mainly used to create a mini network by connecting the
parallel ports of two local machines) or AX.25/KISS (protocol for parallel ports of two local systems) or AX.25/KISS (protocol for
sending Internet traffic over amateur radio links). sending Internet traffic over amateur radio links).
Make sure to read the NET-3-HOWTO. Eventually, you will have to read Make sure to read the NET-3-HOWTO. Eventually, you will have to read
...@@ -831,21 +765,6 @@ config SOUND ...@@ -831,21 +765,6 @@ config SOUND
<file:Documentation/sound/README.OSS> contains some slightly <file:Documentation/sound/README.OSS> contains some slightly
outdated but still useful information as well. outdated but still useful information as well.
If you have a PnP sound card and you want to configure it at boot
time using the ISA PnP tools (read
<http://www.roestock.demon.co.uk/isapnptools/>), then you need to
compile the sound card support as a module ( = code which can be
inserted in and removed from the running kernel whenever you want)
and load that module after the PnP configuration is finished. To do
this, say M here and read <file:Documentation/modules.txt> as well
as <file:Documentation/sound/README.modules>; the module will be
called soundcore.o.
I'm told that even without a sound card, you can make your computer
say more than an occasional beep, by programming the PC speaker.
Kernel patches and supporting utilities to do that are in the pcsp
package, available at <ftp://ftp.infradead.org/pub/pcsp/>.
source "sound/Kconfig" source "sound/Kconfig"
endmenu endmenu
...@@ -870,7 +789,7 @@ choice ...@@ -870,7 +789,7 @@ choice
config IA64_GRANULE_16MB config IA64_GRANULE_16MB
bool "16MB" bool "16MB"
help help
IA64 identity-mapped regions use a large page size called "granules". IA-64 identity-mapped regions use a large page size called "granules".
Select "16MB" for a small granule size. Select "16MB" for a small granule size.
Select "64MB" for a large granule size. This is the current default. Select "64MB" for a large granule size. This is the current default.
...@@ -895,14 +814,14 @@ config KALLSYMS ...@@ -895,14 +814,14 @@ config KALLSYMS
somewhat, as all symbols have to be loaded into the kernel image. somewhat, as all symbols have to be loaded into the kernel image.
config IA64_PRINT_HAZARDS config IA64_PRINT_HAZARDS
bool "Print possible IA64 hazards to console" bool "Print possible IA-64 dependency violations to console"
depends on DEBUG_KERNEL depends on DEBUG_KERNEL
help help
Selecting this option prints more information for Illegal Dependency Selecting this option prints more information for Illegal Dependency
Faults, that is, for Read after Write, Write after Write or Write Faults, that is, for Read-after-Write (RAW), Write-after-Write (WAW),
after Read violations. This option is ignored if you are compiling or Write-after-Read (WAR) violations. This option is ignored if you
for an Itanium A step processor (CONFIG_ITANIUM_ASTEP_SPECIFIC). If are compiling for an Itanium A step processor
you're unsure, select Y. (CONFIG_ITANIUM_ASTEP_SPECIFIC). If you're unsure, select Y.
config DISABLE_VHPT config DISABLE_VHPT
bool "Disable VHPT" bool "Disable VHPT"
...@@ -931,10 +850,11 @@ config IA64_EARLY_PRINTK ...@@ -931,10 +850,11 @@ config IA64_EARLY_PRINTK
bool "Early printk support" bool "Early printk support"
depends on DEBUG_KERNEL depends on DEBUG_KERNEL
help help
Selecting this option uses the VGA screen for printk() output before Selecting this option uses the VGA screen or serial console for
the consoles are initialised. It is useful for debugging problems printk() output before the consoles are initialised. It is useful
early in the boot process, but only if you have a VGA screen for debugging problems early in the boot process, but only if you
attached. If you're unsure, select N. have a suitable VGA/serial console attached. If you're unsure,
select N.
config IA64_EARLY_PRINTK_UART config IA64_EARLY_PRINTK_UART
bool "Early printk on MMIO serial port" bool "Early printk on MMIO serial port"
...@@ -970,7 +890,7 @@ config IA64_DEBUG_CMPXCHG ...@@ -970,7 +890,7 @@ config IA64_DEBUG_CMPXCHG
bool "Turn on compare-and-exchange bug checking (slow!)" bool "Turn on compare-and-exchange bug checking (slow!)"
depends on DEBUG_KERNEL depends on DEBUG_KERNEL
help help
Selecting this option turns on bug checking for the IA64 Selecting this option turns on bug checking for the IA-64
compare-and-exchange instructions. This is slow! Itaniums compare-and-exchange instructions. This is slow! Itaniums
from step B3 or later don't have this problem. If you're unsure, from step B3 or later don't have this problem. If you're unsure,
select N. select N.
...@@ -979,7 +899,7 @@ config IA64_DEBUG_IRQ ...@@ -979,7 +899,7 @@ config IA64_DEBUG_IRQ
bool "Turn on irq debug checks (slow!)" bool "Turn on irq debug checks (slow!)"
depends on DEBUG_KERNEL depends on DEBUG_KERNEL
help help
Selecting this option turns on bug checking for the IA64 irq_save Selecting this option turns on bug checking for the IA-64 irq_save
and restore instructions. It's useful for tracking down spinlock and restore instructions. It's useful for tracking down spinlock
problems, but slow! If you're unsure, select N. problems, but slow! If you're unsure, select N.
...@@ -988,4 +908,3 @@ endmenu ...@@ -988,4 +908,3 @@ endmenu
source "security/Kconfig" source "security/Kconfig"
source "crypto/Kconfig" source "crypto/Kconfig"
...@@ -130,20 +130,6 @@ simscsi_info (struct Scsi_Host *host) ...@@ -130,20 +130,6 @@ simscsi_info (struct Scsi_Host *host)
return "simulated SCSI host adapter"; return "simulated SCSI host adapter";
} }
int
simscsi_abort (Scsi_Cmnd *cmd)
{
printk ("simscsi_abort: unimplemented\n");
return SCSI_ABORT_SUCCESS;
}
int
simscsi_reset (Scsi_Cmnd *cmd, unsigned int reset_flags)
{
printk ("simscsi_reset: unimplemented\n");
return SCSI_RESET_SUCCESS;
}
int int
simscsi_biosparam (struct scsi_device *sdev, struct block_device *n, simscsi_biosparam (struct scsi_device *sdev, struct block_device *n,
sector_t capacity, int ip[]) sector_t capacity, int ip[])
......
...@@ -20,21 +20,19 @@ extern int simscsi_reset (Scsi_Cmnd *, unsigned int); ...@@ -20,21 +20,19 @@ extern int simscsi_reset (Scsi_Cmnd *, unsigned int);
extern int simscsi_biosparam (struct scsi_device *, struct block_device *, extern int simscsi_biosparam (struct scsi_device *, struct block_device *,
sector_t, int[]); sector_t, int[]);
#define SIMSCSI { \ #define SIMSCSI { \
detect: simscsi_detect, \ .detect = simscsi_detect, \
release: simscsi_release, \ .release = simscsi_release, \
info: simscsi_info, \ .info = simscsi_info, \
queuecommand: simscsi_queuecommand, \ .queuecommand = simscsi_queuecommand, \
abort: simscsi_abort, \ .bios_param = simscsi_biosparam, \
reset: simscsi_reset, \ .can_queue = SIMSCSI_REQ_QUEUE_LEN, \
bios_param: simscsi_biosparam, \ .this_id = -1, \
can_queue: SIMSCSI_REQ_QUEUE_LEN, \ .sg_tablesize = SG_ALL, \
this_id: -1, \ .cmd_per_lun = SIMSCSI_REQ_QUEUE_LEN, \
sg_tablesize: SG_ALL, \ .present = 0, \
cmd_per_lun: SIMSCSI_REQ_QUEUE_LEN, \ .unchecked_isa_dma = 0, \
present: 0, \ .use_clustering = DISABLE_CLUSTERING \
unchecked_isa_dma: 0, \
use_clustering: DISABLE_CLUSTERING \
} }
#endif /* SIMSCSI_H */ #endif /* SIMSCSI_H */
...@@ -1251,9 +1251,9 @@ sys_call_table: ...@@ -1251,9 +1251,9 @@ sys_call_table:
data8 sys_io_getevents // 1240 data8 sys_io_getevents // 1240
data8 sys_io_submit data8 sys_io_submit
data8 sys_io_cancel data8 sys_io_cancel
data8 ia64_ni_syscall data8 sys_epoll_create
data8 ia64_ni_syscall data8 sys_epoll_ctl
data8 ia64_ni_syscall // 1245 data8 sys_epoll_wait // 1245
data8 ia64_ni_syscall data8 ia64_ni_syscall
data8 ia64_ni_syscall data8 ia64_ni_syscall
data8 ia64_ni_syscall data8 ia64_ni_syscall
......
...@@ -625,21 +625,18 @@ cpu_init (void) ...@@ -625,21 +625,18 @@ cpu_init (void)
extern char __per_cpu_end[]; extern char __per_cpu_end[];
int cpu; int cpu;
if (__per_cpu_end - __per_cpu_start > PAGE_SIZE)
panic("Per-cpu data area too big! (%Zu > %Zu)",
__per_cpu_end - __per_cpu_start, PAGE_SIZE);
/* /*
* get_free_pages() cannot be used before cpu_init() done. BSP allocates * get_free_pages() cannot be used before cpu_init() done. BSP allocates
* "NR_CPUS" pages for all CPUs to avoid that AP calls get_zeroed_page(). * "NR_CPUS" pages for all CPUs to avoid that AP calls get_zeroed_page().
*/ */
if (smp_processor_id() == 0) { if (smp_processor_id() == 0) {
cpu_data = (unsigned long)alloc_bootmem_pages(PAGE_SIZE * NR_CPUS); cpu_data = (unsigned long) __alloc_bootmem(PERCPU_PAGE_SIZE * NR_CPUS,
PERCPU_PAGE_SIZE,
__pa(MAX_DMA_ADDRESS));
for (cpu = 0; cpu < NR_CPUS; cpu++) { for (cpu = 0; cpu < NR_CPUS; cpu++) {
memcpy(cpu_data, __phys_per_cpu_start, __per_cpu_end - __per_cpu_start); memcpy(cpu_data, __phys_per_cpu_start, __per_cpu_end - __per_cpu_start);
__per_cpu_offset[cpu] = (char *) cpu_data - __per_cpu_start; __per_cpu_offset[cpu] = (char *) cpu_data - __per_cpu_start;
cpu_data += PAGE_SIZE; cpu_data += PERCPU_PAGE_SIZE;
} }
} }
cpu_data = __per_cpu_start + __per_cpu_offset[smp_processor_id()]; cpu_data = __per_cpu_start + __per_cpu_offset[smp_processor_id()];
......
...@@ -287,7 +287,8 @@ ia64_mmu_init (void *my_cpu_data) ...@@ -287,7 +287,8 @@ ia64_mmu_init (void *my_cpu_data)
ia64_srlz_d(); ia64_srlz_d();
ia64_itr(0x2, IA64_TR_PERCPU_DATA, PERCPU_ADDR, ia64_itr(0x2, IA64_TR_PERCPU_DATA, PERCPU_ADDR,
pte_val(pfn_pte(__pa(my_cpu_data) >> PAGE_SHIFT, PAGE_KERNEL)), PAGE_SHIFT); pte_val(pfn_pte(__pa(my_cpu_data) >> PAGE_SHIFT, PAGE_KERNEL)),
PERCPU_PAGE_SHIFT);
ia64_set_psr(psr); ia64_set_psr(psr);
ia64_srlz_i(); ia64_srlz_i();
...@@ -455,8 +456,6 @@ mem_init (void) ...@@ -455,8 +456,6 @@ mem_init (void)
if (num_pgt_pages > pgt_cache_water[1]) if (num_pgt_pages > pgt_cache_water[1])
pgt_cache_water[1] = num_pgt_pages; pgt_cache_water[1] = num_pgt_pages;
show_mem();
/* install the gate page in the global page table: */ /* install the gate page in the global page table: */
put_gate_page(virt_to_page(__start_gate_section), GATE_ADDR); put_gate_page(virt_to_page(__start_gate_section), GATE_ADDR);
......
...@@ -137,7 +137,7 @@ SECTIONS ...@@ -137,7 +137,7 @@ SECTIONS
{ *(.kstrtab) } { *(.kstrtab) }
/* Per-cpu data: */ /* Per-cpu data: */
. = ALIGN(PAGE_SIZE); . = ALIGN(PERCPU_PAGE_SIZE);
__phys_per_cpu_start = .; __phys_per_cpu_start = .;
.data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - PAGE_OFFSET) .data.percpu PERCPU_ADDR : AT(__phys_per_cpu_start - PAGE_OFFSET)
{ {
...@@ -145,7 +145,7 @@ SECTIONS ...@@ -145,7 +145,7 @@ SECTIONS
*(.data.percpu) *(.data.percpu)
__per_cpu_end = .; __per_cpu_end = .;
} }
. = __phys_per_cpu_start + 4096; /* ensure percpu fits into smallest page size (4KB) */ . = __phys_per_cpu_start + PERCPU_PAGE_SIZE; /* ensure percpu data fits into percpu page size */
.data : AT(ADDR(.data) - PAGE_OFFSET) .data : AT(ADDR(.data) - PAGE_OFFSET)
{ *(.data) *(.gnu.linkonce.d*) CONSTRUCTORS } { *(.data) *(.gnu.linkonce.d*) CONSTRUCTORS }
......
...@@ -83,6 +83,7 @@ ide_init_default_hwifs (void) ...@@ -83,6 +83,7 @@ ide_init_default_hwifs (void)
int index; int index;
for(index = 0; index < MAX_HWIFS; index++) { for(index = 0; index < MAX_HWIFS; index++) {
memset(&hw, 0, sizeof hw);
ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, NULL); ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, NULL);
hw.irq = ide_default_irq(ide_default_io_base(index)); hw.irq = ide_default_irq(ide_default_io_base(index));
ide_register_hw(&hw, NULL); ide_register_hw(&hw, NULL);
......
...@@ -30,6 +30,9 @@ ...@@ -30,6 +30,9 @@
#define PAGE_MASK (~(PAGE_SIZE - 1)) #define PAGE_MASK (~(PAGE_SIZE - 1))
#define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK) #define PAGE_ALIGN(addr) (((addr) + PAGE_SIZE - 1) & PAGE_MASK)
#define PERCPU_PAGE_SHIFT 16 /* log2() of max. size of per-CPU area */
#define PERCPU_PAGE_SIZE (__IA64_UL_CONST(1) << PERCPU_PAGE_SHIFT)
#ifdef CONFIG_HUGETLB_PAGE #ifdef CONFIG_HUGETLB_PAGE
# if defined(CONFIG_HUGETLB_PAGE_SIZE_4GB) # if defined(CONFIG_HUGETLB_PAGE_SIZE_4GB)
......
...@@ -202,7 +202,7 @@ ia64_phys_addr_valid (unsigned long addr) ...@@ -202,7 +202,7 @@ ia64_phys_addr_valid (unsigned long addr)
#define RGN_MAP_LIMIT ((1UL << (4*PAGE_SHIFT - 12)) - PAGE_SIZE) /* per region addr limit */ #define RGN_MAP_LIMIT ((1UL << (4*PAGE_SHIFT - 12)) - PAGE_SIZE) /* per region addr limit */
#define RGN_KERNEL 7 #define RGN_KERNEL 7
#define VMALLOC_START (0xa000000000000000 + 3*PAGE_SIZE) #define VMALLOC_START (0xa000000000000000 + 3*PERCPU_PAGE_SIZE)
#define VMALLOC_VMADDR(x) ((unsigned long)(x)) #define VMALLOC_VMADDR(x) ((unsigned long)(x))
#define VMALLOC_END (0xa000000000000000 + (1UL << (4*PAGE_SHIFT - 9))) #define VMALLOC_END (0xa000000000000000 + (1UL << (4*PAGE_SHIFT - 9)))
......
...@@ -4,8 +4,8 @@ ...@@ -4,8 +4,8 @@
/* /*
* poll(2) bit definitions. Chosen to be compatible with Linux/x86. * poll(2) bit definitions. Chosen to be compatible with Linux/x86.
* *
* Copyright (C) 1998, 1999 Hewlett-Packard Co * Copyright (C) 1998, 1999, 2002 Hewlett-Packard Co
* Copyright (C) 1998, 1999 David Mosberger-Tang <davidm@hpl.hp.com> * David Mosberger-Tang <davidm@hpl.hp.com>
*/ */
#define POLLIN 0x0001 #define POLLIN 0x0001
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#define POLLWRNORM 0x0100 #define POLLWRNORM 0x0100
#define POLLWRBAND 0x0200 #define POLLWRBAND 0x0200
#define POLLMSG 0x0400 #define POLLMSG 0x0400
#define POLLREMOVE 0x1000
struct pollfd { struct pollfd {
int fd; int fd;
......
...@@ -20,8 +20,9 @@ ...@@ -20,8 +20,9 @@
#define KERNEL_START (PAGE_OFFSET + 68*1024*1024) #define KERNEL_START (PAGE_OFFSET + 68*1024*1024)
#define GATE_ADDR (0xa000000000000000 + PAGE_SIZE) /* 0xa000000000000000 - 0xa000000000000000+PERCPU_MAX_SIZE remain unmapped */
#define PERCPU_ADDR (0xa000000000000000 + 2*PAGE_SIZE) #define PERCPU_ADDR (0xa000000000000000 + PERCPU_PAGE_SIZE)
#define GATE_ADDR (0xa000000000000000 + 2*PERCPU_PAGE_SIZE)
#ifndef __ASSEMBLY__ #ifndef __ASSEMBLY__
......
...@@ -232,6 +232,9 @@ ...@@ -232,6 +232,9 @@
#define __NR_io_getevents 1240 #define __NR_io_getevents 1240
#define __NR_io_submit 1241 #define __NR_io_submit 1241
#define __NR_io_cancel 1242 #define __NR_io_cancel 1242
#define __NR_epoll_create 1243
#define __NR_epoll_ctl 1244
#define __NR_epoll_wait 1245
#if !defined(__ASSEMBLY__) && !defined(ASSEMBLER) #if !defined(__ASSEMBLY__) && !defined(ASSEMBLER)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment