linux/arch/x86/kernel/apic
Jack Steiner 6a469e4665 x86: uv2: Workaround for UV2 Hub bug (system global address format)
This is a workaround for a UV2 hub bug that affects the format of system
global addresses.

The GRU API for UV2 was inadvertently broken by a hardware change.  The
format of the physical address used for TLB dropins and for addresses used
with instructions running in unmapped mode has changed.  This change was
not documented and became apparent only when diags failed running on
system simulators.

For UV1, TLB and GRU instruction physical addresses are identical to
socket physical addresses (although high NASID bits must be OR'ed into the
address).

For UV2, socket physical addresses need to be converted.  The NODE portion
of the physical address needs to be shifted so that the low bit is in bit
39 or bit 40, depending on an MMR value.

It is not yet clear if this bug will be fixed in a silicon respin.  If it
is fixed, the hub revision will be incremented & the workaround disabled.

Signed-off-by: Jack Steiner <steiner@sgi.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: <stable@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2011-09-21 11:23:15 +02:00
..
apic.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
apic_flat_64.c x86, apic: Include module.h header in apic_flat_64.c 2011-05-23 21:27:35 +02:00
apic_noop.c x86-32, NUMA: Make apic->x86_32_numa_cpu_node() optional 2011-05-02 14:18:52 +02:00
bigsmp_32.c x86, apic: Make apic drivers static 2011-05-22 11:48:04 +02:00
es7000_32.c atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
hw_nmi.c watchdog: Change the default timeout and configure nmi watchdog period based on watchdog_thresh 2011-05-23 11:58:59 +02:00
io_apic.c x86, ioapic: Print IR_IO_APIC_route_entry when IR is enabled 2011-07-12 20:17:58 -07:00
ipi.c x86: Always use x86_cpu_to_logical_apicid for cpu -> logical apic id 2011-01-28 14:54:05 +01:00
Makefile x86, apic: Introduce .apicdrivers section to find the list of apic drivers 2011-05-22 11:48:03 +02:00
numaq_32.c x86, apic: Make apic drivers static 2011-05-22 11:48:04 +02:00
probe_32.c x86, apic: Make apic drivers static 2011-05-22 11:48:04 +02:00
probe_64.c x86, apic: Make apic drivers static 2011-05-22 11:48:04 +02:00
summit_32.c x86, apic: Make apic drivers static 2011-05-22 11:48:04 +02:00
x2apic_cluster.c x86, apic: Make apic drivers static 2011-05-22 11:48:04 +02:00
x2apic_phys.c x86, apic: Make apic drivers static 2011-05-22 11:48:04 +02:00
x2apic_uv_x.c x86: uv2: Workaround for UV2 Hub bug (system global address format) 2011-09-21 11:23:15 +02:00