kernel-ark/Documentation/ia64
Alex Chiang 012b7105cc [IA64] prevent MCA when performing MMIO mmap to PCI config space
Example memory map (HP rx7640 with 'default' acpiconfig setting, VGA disabled):
   0x00000000 - 0x3FFFBFFF  supports only WB (cacheable) access

If a user attempts to perform an MMIO mmap (using the PCIIOC_MMAP_IS_MEM ioctl)
to PCI config space (like mmap'ing and accessing memory at 0xA0000),
we will MCA because the kernel will attempt to use a mapping with the UC
attribute.

So check the memory attribute in kern_mmap and the EFI memmap. If WC is
requested, and WC or UC access is supported for the region, allow it.
Otherwise, use the same attribute the kernel uses.

Updates documentation and test cases as well.

Signed-off-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
2007-07-11 11:34:49 -07:00
..
aliasing-test.c
aliasing.txt
efirtc.txt
err_inject.txt
fsys.txt
IRQ-redir.txt
mca.txt
README
serial.txt

        Linux kernel release 2.4.xx for the IA-64 Platform

   These are the release notes for Linux version 2.4 for IA-64
   platform.  This document provides information specific to IA-64
   ONLY, to get additional information about the Linux kernel also
   read the original Linux README provided with the kernel.

INSTALLING the kernel:

 - IA-64 kernel installation is the same as the other platforms, see
   original README for details.


SOFTWARE REQUIREMENTS

   Compiling and running this kernel requires an IA-64 compliant GCC
   compiler.  And various software packages also compiled with an
   IA-64 compliant GCC compiler.


CONFIGURING the kernel:

   Configuration is the same, see original README for details.


COMPILING the kernel:

 - Compiling this kernel doesn't differ from other platform so read
   the original README for details BUT make sure you have an IA-64
   compliant GCC compiler.

IA-64 SPECIFICS

 - General issues:

    o Hardly any performance tuning has been done. Obvious targets
      include the library routines (IP checksum, etc.). Less
      obvious targets include making sure we don't flush the TLB
      needlessly, etc.

    o SMP locks cleanup/optimization

    o IA32 support.  Currently experimental.  It mostly works.