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

Commit 3de352bb authored by Ingo Molnar's avatar Ingo Molnar
Browse files

Merge branch 'x86/mpparse' into x86/devel



Conflicts:

	arch/x86/Kconfig
	arch/x86/kernel/io_apic_32.c
	arch/x86/kernel/setup_64.c
	arch/x86/mm/init_32.c

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parents 1b8ba39a 9340e1cc
Loading
Loading
Loading
Loading
+23 −0
Original line number Original line Diff line number Diff line
@@ -610,6 +610,29 @@ and is between 256 and 4096 characters. It is defined in the file
			See drivers/char/README.epca and
			See drivers/char/README.epca and
			Documentation/digiepca.txt.
			Documentation/digiepca.txt.


	disable_mtrr_cleanup [X86]
	enable_mtrr_cleanup [X86]
			The kernel tries to adjust MTRR layout from continuous
			to discrete, to make X server driver able to add WB
			entry later. This parameter enables/disables that.

	mtrr_chunk_size=nn[KMG] [X86]
			used for mtrr cleanup. It is largest continous chunk
			that could hold holes aka. UC entries.

	mtrr_gran_size=nn[KMG] [X86]
			Used for mtrr cleanup. It is granularity of mtrr block.
			Default is 1.
			Large value could prevent small alignment from
			using up MTRRs.

	mtrr_spare_reg_nr=n [X86]
			Format: <integer>
			Range: 0,7 : spare reg number
			Default : 1
			Used for mtrr cleanup. It is spare mtrr entries number.
			Set to 2 or more if your graphical card needs more.

	disable_mtrr_trim [X86, Intel and AMD only]
	disable_mtrr_trim [X86, Intel and AMD only]
			By default the kernel will trim any uncacheable
			By default the kernel will trim any uncacheable
			memory out of your available memory pool based on
			memory out of your available memory pool based on
+94 −41
Original line number Original line Diff line number Diff line
@@ -230,6 +230,27 @@ config SMP


	  If you don't know what to do here, say N.
	  If you don't know what to do here, say N.


config X86_FIND_SMP_CONFIG
	def_bool y
	depends on X86_MPPARSE || X86_VOYAGER || X86_VISWS
	depends on X86_32

if ACPI
config X86_MPPARSE
	def_bool y
	bool "Enable MPS table"
	depends on X86_LOCAL_APIC && !X86_VISWS
	help
	  For old smp systems that do not have proper acpi support. Newer systems
	  (esp with 64bit cpus) with acpi support, MADT and DSDT will override it
endif

if !ACPI
config X86_MPPARSE
	def_bool y
	depends on X86_LOCAL_APIC && !X86_VISWS
endif

choice
choice
	prompt "Subarchitecture Type"
	prompt "Subarchitecture Type"
	default X86_PC
	default X86_PC
@@ -261,36 +282,6 @@ config X86_VOYAGER
	  If you do not specifically know you have a Voyager based machine,
	  If you do not specifically know you have a Voyager based machine,
	  say N here, otherwise the kernel you build will not be bootable.
	  say N here, otherwise the kernel you build will not be bootable.


config X86_NUMAQ
	bool "NUMAQ (IBM/Sequent)"
	depends on SMP && X86_32 && PCI
	select NUMA
	help
	  This option is used for getting Linux to run on a (IBM/Sequent) NUMA
	  multiquad box. This changes the way that processors are bootstrapped,
	  and uses Clustered Logical APIC addressing mode instead of Flat Logical.
	  You will need a new lynxer.elf file to flash your firmware with - send
	  email to <Martin.Bligh@us.ibm.com>.

config X86_SUMMIT
	bool "Summit/EXA (IBM x440)"
	depends on X86_32 && SMP
	help
	  This option is needed for IBM systems that use the Summit/EXA chipset.
	  In particular, it is needed for the x440.

	  If you don't have one of these computers, you should say N here.
	  If you want to build a NUMA kernel, you must select ACPI.

config X86_BIGSMP
	bool "Support for other sub-arch SMP systems with more than 8 CPUs"
	depends on X86_32 && SMP
	help
	  This option is needed for the systems that have more than 8 CPUs
	  and if the system is not of any sub-arch type above.

	  If you don't have such a system, you should say N here.

config X86_VISWS
config X86_VISWS
	bool "SGI 320/540 (Visual Workstation)"
	bool "SGI 320/540 (Visual Workstation)"
	depends on X86_32 && !PCI
	depends on X86_32 && !PCI
@@ -304,12 +295,33 @@ config X86_VISWS
	  and vice versa. See <file:Documentation/sgi-visws.txt> for details.
	  and vice versa. See <file:Documentation/sgi-visws.txt> for details.


config X86_GENERICARCH
config X86_GENERICARCH
       bool "Generic architecture (Summit, bigsmp, ES7000, default)"
       bool "Generic architecture"
	depends on X86_32
	depends on X86_32
       help
       help
          This option compiles in the Summit, bigsmp, ES7000, default subarchitectures.
          This option compiles in the NUMAQ, Summit, bigsmp, ES7000, default
	  It is intended for a generic binary kernel.
	  subarchitectures.  It is intended for a generic binary kernel.
	  If you want a NUMA kernel, select ACPI.   We need SRAT for NUMA.
	  if you select them all, kernel will probe it one by one. and will
	  fallback to default.

if X86_GENERICARCH

config X86_NUMAQ
	bool "NUMAQ (IBM/Sequent)"
	depends on SMP && X86_32 && PCI && X86_MPPARSE
	select NUMA
	help
	  This option is used for getting Linux to run on a NUMAQ (IBM/Sequent)
	  NUMA multiquad box. This changes the way that processors are
	  bootstrapped, and uses Clustered Logical APIC addressing mode instead
	  of Flat Logical.  You will need a new lynxer.elf file to flash your
	  firmware with - send email to <Martin.Bligh@us.ibm.com>.

config X86_SUMMIT
	bool "Summit/EXA (IBM x440)"
	depends on X86_32 && SMP
	help
	  This option is needed for IBM systems that use the Summit/EXA chipset.
	  In particular, it is needed for the x440.


config X86_ES7000
config X86_ES7000
	bool "Support for Unisys ES7000 IA32 series"
	bool "Support for Unisys ES7000 IA32 series"
@@ -317,8 +329,15 @@ config X86_ES7000
	help
	help
	  Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
	  Support for Unisys ES7000 systems.  Say 'Y' here if this kernel is
	  supposed to run on an IA32-based Unisys ES7000 system.
	  supposed to run on an IA32-based Unisys ES7000 system.
	  Only choose this option if you have such a system, otherwise you

	  should say N here.
config X86_BIGSMP
	bool "Support for big SMP systems with more than 8 CPUs"
	depends on X86_32 && SMP
	help
	  This option is needed for the systems that have more than 8 CPUs
	  and if the system is not of any sub-arch type above.

endif


config X86_RDC321X
config X86_RDC321X
	bool "RDC R-321x SoC"
	bool "RDC R-321x SoC"
@@ -432,7 +451,7 @@ config MEMTEST


config ACPI_SRAT
config ACPI_SRAT
	def_bool y
	def_bool y
	depends on X86_32 && ACPI && NUMA && (X86_SUMMIT || X86_GENERICARCH)
	depends on X86_32 && ACPI && NUMA && X86_GENERICARCH
	select ACPI_NUMA
	select ACPI_NUMA


config HAVE_ARCH_PARSE_SRAT
config HAVE_ARCH_PARSE_SRAT
@@ -441,11 +460,11 @@ config HAVE_ARCH_PARSE_SRAT


config X86_SUMMIT_NUMA
config X86_SUMMIT_NUMA
	def_bool y
	def_bool y
	depends on X86_32 && NUMA && (X86_SUMMIT || X86_GENERICARCH)
	depends on X86_32 && NUMA && X86_GENERICARCH


config X86_CYCLONE_TIMER
config X86_CYCLONE_TIMER
	def_bool y
	def_bool y
	depends on X86_32 && X86_SUMMIT || X86_GENERICARCH
	depends on X86_GENERICARCH


config ES7000_CLUSTERED_APIC
config ES7000_CLUSTERED_APIC
	def_bool y
	def_bool y
@@ -910,9 +929,9 @@ config X86_PAE
config NUMA
config NUMA
	bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
	bool "Numa Memory Allocation and Scheduler Support (EXPERIMENTAL)"
	depends on SMP
	depends on SMP
	depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || (X86_SUMMIT || X86_GENERICARCH) && ACPI) && EXPERIMENTAL)
	depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP || X86_SUMMIT && ACPI) && EXPERIMENTAL)
	default n if X86_PC
	default n if X86_PC
	default y if (X86_NUMAQ || X86_SUMMIT)
	default y if (X86_NUMAQ || X86_SUMMIT || X86_BIGSMP)
	help
	help
	  Enable NUMA (Non Uniform Memory Access) support.
	  Enable NUMA (Non Uniform Memory Access) support.
	  The kernel will try to allocate memory used by a CPU on the
	  The kernel will try to allocate memory used by a CPU on the
@@ -1089,6 +1108,40 @@ config MTRR


	  See <file:Documentation/mtrr.txt> for more information.
	  See <file:Documentation/mtrr.txt> for more information.


config MTRR_SANITIZER
	def_bool y
	prompt "MTRR cleanup support"
	depends on MTRR
	help
	  Convert MTRR layout from continuous to discrete, so some X driver
	  could add WB entries.

	  Say N here if you see bootup problems (boot crash, boot hang,
	  spontaneous reboots).

	  Could be disabled with disable_mtrr_cleanup. Also mtrr_chunk_size
	  could be used to send largest mtrr entry size for continuous block
	  to hold holes (aka. UC entries)

	  If unsure, say Y.

config MTRR_SANITIZER_ENABLE_DEFAULT
	int "MTRR cleanup enable value (0-1)"
	range 0 1
	default "0"
	depends on MTRR_SANITIZER
	help
	  Enable mtrr cleanup default value

config MTRR_SANITIZER_SPARE_REG_NR_DEFAULT
	int "MTRR cleanup spare reg num (0-7)"
	range 0 7
	default "1"
	depends on MTRR_SANITIZER
	help
	  mtrr cleanup spare entries default, it can be changed via
	  mtrr_spare_reg_nr=

config X86_PAT
config X86_PAT
	bool
	bool
	prompt "x86 PAT support"
	prompt "x86 PAT support"
+0 −9
Original line number Original line Diff line number Diff line
@@ -137,15 +137,6 @@ config 4KSTACKS
	  on the VM subsystem for higher order allocations. This option
	  on the VM subsystem for higher order allocations. This option
	  will also use IRQ stacks to compensate for the reduced stackspace.
	  will also use IRQ stacks to compensate for the reduced stackspace.


config X86_FIND_SMP_CONFIG
	def_bool y
	depends on X86_LOCAL_APIC || X86_VOYAGER
	depends on X86_32

config X86_MPPARSE
	def_bool y
	depends on (X86_32 && (X86_LOCAL_APIC && !X86_VISWS)) || X86_64

config DOUBLEFAULT
config DOUBLEFAULT
	default y
	default y
	bool "Enable doublefault exception handler" if EMBEDDED
	bool "Enable doublefault exception handler" if EMBEDDED
+1 −18
Original line number Original line Diff line number Diff line
@@ -117,29 +117,11 @@ mcore-$(CONFIG_X86_VOYAGER) := arch/x86/mach-voyager/
mflags-$(CONFIG_X86_VISWS)	:= -Iinclude/asm-x86/mach-visws
mflags-$(CONFIG_X86_VISWS)	:= -Iinclude/asm-x86/mach-visws
mcore-$(CONFIG_X86_VISWS)	:= arch/x86/mach-visws/
mcore-$(CONFIG_X86_VISWS)	:= arch/x86/mach-visws/


# NUMAQ subarch support
mflags-$(CONFIG_X86_NUMAQ)	:= -Iinclude/asm-x86/mach-numaq
mcore-$(CONFIG_X86_NUMAQ)	:= arch/x86/mach-default/

# BIGSMP subarch support
mflags-$(CONFIG_X86_BIGSMP)	:= -Iinclude/asm-x86/mach-bigsmp
mcore-$(CONFIG_X86_BIGSMP)	:= arch/x86/mach-default/

#Summit subarch support
mflags-$(CONFIG_X86_SUMMIT)	:= -Iinclude/asm-x86/mach-summit
mcore-$(CONFIG_X86_SUMMIT)	:= arch/x86/mach-default/

# generic subarchitecture
# generic subarchitecture
mflags-$(CONFIG_X86_GENERICARCH):= -Iinclude/asm-x86/mach-generic
mflags-$(CONFIG_X86_GENERICARCH):= -Iinclude/asm-x86/mach-generic
fcore-$(CONFIG_X86_GENERICARCH)	+= arch/x86/mach-generic/
fcore-$(CONFIG_X86_GENERICARCH)	+= arch/x86/mach-generic/
mcore-$(CONFIG_X86_GENERICARCH)	:= arch/x86/mach-default/
mcore-$(CONFIG_X86_GENERICARCH)	:= arch/x86/mach-default/



# ES7000 subarch support
mflags-$(CONFIG_X86_ES7000)	:= -Iinclude/asm-x86/mach-es7000
fcore-$(CONFIG_X86_ES7000)	:= arch/x86/mach-es7000/
mcore-$(CONFIG_X86_ES7000)	:= arch/x86/mach-default/

# RDC R-321x subarch support
# RDC R-321x subarch support
mflags-$(CONFIG_X86_RDC321X)	:= -Iinclude/asm-x86/mach-rdc321x
mflags-$(CONFIG_X86_RDC321X)	:= -Iinclude/asm-x86/mach-rdc321x
mcore-$(CONFIG_X86_RDC321X)	:= arch/x86/mach-default/
mcore-$(CONFIG_X86_RDC321X)	:= arch/x86/mach-default/
@@ -160,6 +142,7 @@ KBUILD_AFLAGS += $(mflags-y)


head-y := arch/x86/kernel/head_$(BITS).o
head-y := arch/x86/kernel/head_$(BITS).o
head-y += arch/x86/kernel/head$(BITS).o
head-y += arch/x86/kernel/head$(BITS).o
head-y += arch/x86/kernel/head.o
head-y += arch/x86/kernel/init_task.o
head-y += arch/x86/kernel/init_task.o


libs-y  += arch/x86/lib/
libs-y  += arch/x86/lib/
+0 −4
Original line number Original line Diff line number Diff line
@@ -218,10 +218,6 @@ static char *vidmem;
static int vidport;
static int vidport;
static int lines, cols;
static int lines, cols;


#ifdef CONFIG_X86_NUMAQ
void *xquad_portio;
#endif

#include "../../../../lib/inflate.c"
#include "../../../../lib/inflate.c"


static void *malloc(int size)
static void *malloc(int size)
Loading