Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 874c4fe3 authored by Andi Kleen's avatar Andi Kleen Committed by Andi Kleen
Browse files

[PATCH] i386: Allow to use GENERICARCH for UP kernels



There are some machines around (large xSeries or Unisys ES7000) that
need physical IO-APIC destination mode to access all of their IO
devices. This currently doesn't work in UP kernels as used in
distribution installers.

This patch allows to compile even UP kernels as GENERICARCH which
allows to use physical or clustered APIC mode.

Signed-off-by: default avatarAndi Kleen <ak@suse.de>
parent 9142e0c8
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -166,7 +166,6 @@ config X86_VISWS

config X86_GENERICARCH
       bool "Generic architecture (Summit, bigsmp, ES7000, default)"
       depends on SMP
       help
          This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
	  It is intended for a generic binary kernel.
@@ -263,7 +262,7 @@ source "kernel/Kconfig.preempt"

config X86_UP_APIC
	bool "Local APIC support on uniprocessors"
	depends on !SMP && !(X86_VISWS || X86_VOYAGER)
	depends on !SMP && !(X86_VISWS || X86_VOYAGER || X86_GENERICARCH)
	help
	  A local APIC (Advanced Programmable Interrupt Controller) is an
	  integrated interrupt controller in the CPU. If you have a single-CPU
@@ -288,12 +287,12 @@ config X86_UP_IOAPIC

config X86_LOCAL_APIC
	bool
	depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER)
	depends on X86_UP_APIC || ((X86_VISWS || SMP) && !X86_VOYAGER) || X86_GENERICARCH
	default y

config X86_IO_APIC
	bool
	depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER))
	depends on X86_UP_IOAPIC || (SMP && !(X86_VISWS || X86_VOYAGER)) || X86_GENERICARCH
	default y

config X86_VISWS_APIC
+1 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@
#include <asm/nmi.h>

#include <mach_apic.h>
#include <mach_apicdef.h>

#include "io_ports.h"

+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@
#include <asm/io_apic.h>

#include <mach_apic.h>
#include <mach_apicdef.h>
#include <mach_mpparse.h>
#include <bios_ebda.h>

+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@
#define APIC_DEFINITION 1
#include <linux/threads.h>
#include <linux/cpumask.h>
#include <asm/smp.h>
#include <asm/mpspec.h>
#include <asm/genapic.h>
#include <asm/fixmap.h>
+1 −0
Original line number Diff line number Diff line
@@ -4,6 +4,7 @@
#define APIC_DEFINITION 1
#include <linux/threads.h>
#include <linux/cpumask.h>
#include <asm/smp.h>
#include <asm/mpspec.h>
#include <asm/genapic.h>
#include <asm/fixmap.h>
Loading