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

Commit b5660ba7 authored by H. Peter Anvin's avatar H. Peter Anvin
Browse files

x86, platforms: Remove NUMAQ



The NUMAQ support seems to be unmaintained, remove it.

Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
Cc: David Rientjes <rientjes@google.com>
Acked-by: default avatarPaul E. McKenney <paulmck@linux.vnet.ibm.com>
Signed-off-by: default avatarH. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/n/530CFD6C.7040705@zytor.com
parent c5f9ee3d
Loading
Loading
Loading
Loading
+8 −28
Original line number Diff line number Diff line
@@ -346,7 +346,6 @@ config X86_EXTENDED_PLATFORM
	  for the following (non-PC) 32 bit x86 platforms:
		Goldfish (Android emulator)
		AMD Elan
		NUMAQ (IBM/Sequent)
		RDC R-321x SoC
		SGI 320/540 (Visual Workstation)
		STA2X11-based (e.g. Northville)
@@ -487,32 +486,18 @@ config X86_32_NON_STANDARD
	depends on X86_32 && SMP
	depends on X86_EXTENDED_PLATFORM
	---help---
	  This option compiles in the NUMAQ, bigsmp, and STA2X11 default
	  subarchitectures.  It is intended for a generic binary kernel. If you
	  select them all, kernel will probe it one by one and will fallback to
	  default.
	  This option compiles in the bigsmp and STA2X11 default
	  subarchitectures.  It is intended for a generic binary
	  kernel. If you select them all, kernel will probe it one by
	  one and will fallback to default.

# Alphabetically sorted list of Non standard 32 bit platforms

config X86_NUMAQ
	bool "NUMAQ (IBM/Sequent)"
	depends on X86_32_NON_STANDARD
	depends on PCI
	select NUMA
	select X86_MPPARSE
	---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_SUPPORTS_MEMORY_FAILURE
	def_bool y
	# MCE code calls memory_failure():
	depends on X86_MCE
	# On 32-bit this adds too big of NODES_SHIFT and we run out of page flags:
	depends on !X86_NUMAQ
	# On 32-bit SPARSEMEM adds too big of SECTIONS_WIDTH:
	depends on X86_64 || !SPARSEMEM
	select ARCH_SUPPORTS_MEMORY_FAILURE
@@ -783,7 +768,7 @@ config NR_CPUS
	range 2 8192 if SMP && !MAXSMP && CPUMASK_OFFSTACK && X86_64
	default "1" if !SMP
	default "8192" if MAXSMP
	default "32" if SMP && (X86_NUMAQ || X86_BIGSMP)
	default "32" if SMP && X86_BIGSMP
	default "8" if SMP
	---help---
	  This allows you to specify the maximum number of CPUs which this
@@ -1064,13 +1049,11 @@ config X86_CPUID

choice
	prompt "High Memory Support"
	default HIGHMEM64G if X86_NUMAQ
	default HIGHMEM4G
	depends on X86_32

config NOHIGHMEM
	bool "off"
	depends on !X86_NUMAQ
	---help---
	  Linux can use up to 64 Gigabytes of physical memory on x86 systems.
	  However, the address space of 32-bit x86 processors is only 4
@@ -1107,7 +1090,6 @@ config NOHIGHMEM

config HIGHMEM4G
	bool "4GB"
	depends on !X86_NUMAQ
	---help---
	  Select this if you have a 32-bit processor and between 1 and 4
	  gigabytes of physical RAM.
@@ -1199,8 +1181,8 @@ config DIRECT_GBPAGES
config NUMA
	bool "Numa Memory Allocation and Scheduler Support"
	depends on SMP
	depends on X86_64 || (X86_32 && HIGHMEM64G && (X86_NUMAQ || X86_BIGSMP))
	default y if (X86_NUMAQ || X86_BIGSMP)
	depends on X86_64 || (X86_32 && HIGHMEM64G && X86_BIGSMP)
	default y if X86_BIGSMP
	---help---
	  Enable NUMA (Non Uniform Memory Access) support.

@@ -1211,8 +1193,7 @@ config NUMA
	  For 64-bit this is recommended if the system is Intel Core i7
	  (or later), AMD Opteron, or EM64T NUMA.

	  For 32-bit this is only needed on (rare) 32-bit-only platforms
	  that support NUMA topologies, such as NUMAQ, or if you boot a 32-bit
	  For 32-bit this is only needed if you boot a 32-bit
	  kernel on a 64-bit NUMA platform.

	  Otherwise, you should say N.
@@ -1258,7 +1239,6 @@ config NODES_SHIFT
	range 1 10
	default "10" if MAXSMP
	default "6" if X86_64
	default "4" if X86_NUMAQ
	default "3"
	depends on NEED_MULTIPLE_NODES
	---help---
+1 −1
Original line number Diff line number Diff line
@@ -363,7 +363,7 @@ config X86_P6_NOP

config X86_TSC
	def_bool y
	depends on ((MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) && !X86_NUMAQ) || X86_64
	depends on (MWINCHIP3D || MCRUSOE || MEFFICEON || MCYRIXIII || MK7 || MK6 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || MK8 || MVIAC3_2 || MVIAC7 || MGEODEGX1 || MGEODE_LX || MCORE2 || MATOM) || X86_64

config X86_CMPXCHG64
	def_bool y
+0 −3
Original line number Diff line number Diff line
@@ -11,9 +11,6 @@
#ifdef CONFIG_NUMA
extern struct pglist_data *node_data[];
#define NODE_DATA(nid)	(node_data[nid])

#include <asm/numaq.h>

#endif /* CONFIG_NUMA */

#ifdef CONFIG_DISCONTIGMEM
+0 −6
Original line number Diff line number Diff line
@@ -25,12 +25,6 @@ extern int pic_mode;

extern unsigned int def_to_bigsmp;

#ifdef CONFIG_X86_NUMAQ
extern int mp_bus_id_to_node[MAX_MP_BUSSES];
extern int mp_bus_id_to_local[MAX_MP_BUSSES];
extern int quad_local_to_mp_bus_id [NR_CPUS/4][4];
#endif

#else /* CONFIG_X86_64: */

#define MAX_MP_BUSSES		256

arch/x86/include/asm/numaq.h

deleted100644 → 0
+0 −171
Original line number Diff line number Diff line
/*
 * Written by: Patricia Gaughen, IBM Corporation
 *
 * Copyright (C) 2002, IBM Corp.
 *
 * All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
 * NON INFRINGEMENT.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 *
 * Send feedback to <gone@us.ibm.com>
 */

#ifndef _ASM_X86_NUMAQ_H
#define _ASM_X86_NUMAQ_H

#ifdef CONFIG_X86_NUMAQ

extern int found_numaq;
extern int numaq_numa_init(void);
extern int pci_numaq_init(void);

extern void *xquad_portio;

#define XQUAD_PORTIO_BASE 0xfe400000
#define XQUAD_PORTIO_QUAD 0x40000  /* 256k per quad. */
#define XQUAD_PORT_ADDR(port, quad) (xquad_portio + (XQUAD_PORTIO_QUAD*quad) + port)

/*
 * SYS_CFG_DATA_PRIV_ADDR, struct eachquadmem, and struct sys_cfg_data are the
 */
#define SYS_CFG_DATA_PRIV_ADDR		0x0009d000 /* place for scd in private
						      quad space */

/*
 * Communication area for each processor on lynxer-processor tests.
 *
 * NOTE: If you change the size of this eachproc structure you need
 *       to change the definition for EACH_QUAD_SIZE.
 */
struct eachquadmem {
	unsigned int	priv_mem_start;		/* Starting address of this */
						/* quad's private memory. */
						/* This is always 0. */
						/* In MB. */
	unsigned int	priv_mem_size;		/* Size of this quad's */
						/* private memory. */
						/* In MB. */
	unsigned int	low_shrd_mem_strp_start;/* Starting address of this */
						/* quad's low shared block */
						/* (untranslated). */
						/* In MB. */
	unsigned int	low_shrd_mem_start;	/* Starting address of this */
						/* quad's low shared memory */
						/* (untranslated). */
						/* In MB. */
	unsigned int	low_shrd_mem_size;	/* Size of this quad's low */
						/* shared memory. */
						/* In MB. */
	unsigned int	lmmio_copb_start;	/* Starting address of this */
						/* quad's local memory */
						/* mapped I/O in the */
						/* compatibility OPB. */
						/* In MB. */
	unsigned int	lmmio_copb_size;	/* Size of this quad's local */
						/* memory mapped I/O in the */
						/* compatibility OPB. */
						/* In MB. */
	unsigned int	lmmio_nopb_start;	/* Starting address of this */
						/* quad's local memory */
						/* mapped I/O in the */
						/* non-compatibility OPB. */
						/* In MB. */
	unsigned int	lmmio_nopb_size;	/* Size of this quad's local */
						/* memory mapped I/O in the */
						/* non-compatibility OPB. */
						/* In MB. */
	unsigned int	io_apic_0_start;	/* Starting address of I/O */
						/* APIC 0. */
	unsigned int	io_apic_0_sz;		/* Size I/O APIC 0. */
	unsigned int	io_apic_1_start;	/* Starting address of I/O */
						/* APIC 1. */
	unsigned int	io_apic_1_sz;		/* Size I/O APIC 1. */
	unsigned int	hi_shrd_mem_start;	/* Starting address of this */
						/* quad's high shared memory.*/
						/* In MB. */
	unsigned int	hi_shrd_mem_size;	/* Size of this quad's high */
						/* shared memory. */
						/* In MB. */
	unsigned int	mps_table_addr;		/* Address of this quad's */
						/* MPS tables from BIOS, */
						/* in system space.*/
	unsigned int	lcl_MDC_pio_addr;	/* Port-I/O address for */
						/* local access of MDC. */
	unsigned int	rmt_MDC_mmpio_addr;	/* MM-Port-I/O address for */
						/* remote access of MDC. */
	unsigned int	mm_port_io_start;	/* Starting address of this */
						/* quad's memory mapped Port */
						/* I/O space. */
	unsigned int	mm_port_io_size;	/* Size of this quad's memory*/
						/* mapped Port I/O space. */
	unsigned int	mm_rmt_io_apic_start;	/* Starting address of this */
						/* quad's memory mapped */
						/* remote I/O APIC space. */
	unsigned int	mm_rmt_io_apic_size;	/* Size of this quad's memory*/
						/* mapped remote I/O APIC */
						/* space. */
	unsigned int	mm_isa_start;		/* Starting address of this */
						/* quad's memory mapped ISA */
						/* space (contains MDC */
						/* memory space). */
	unsigned int	mm_isa_size;		/* Size of this quad's memory*/
						/* mapped ISA space (contains*/
						/* MDC memory space). */
	unsigned int	rmt_qmi_addr;		/* Remote addr to access QMI.*/
	unsigned int	lcl_qmi_addr;		/* Local addr to access QMI. */
};

/*
 * Note: This structure must be NOT be changed unless the multiproc and
 * OS are changed to reflect the new structure.
 */
struct sys_cfg_data {
	unsigned int	quad_id;
	unsigned int	bsp_proc_id; /* Boot Strap Processor in this quad. */
	unsigned int	scd_version; /* Version number of this table. */
	unsigned int	first_quad_id;
	unsigned int	quads_present31_0; /* 1 bit for each quad */
	unsigned int	quads_present63_32; /* 1 bit for each quad */
	unsigned int	config_flags;
	unsigned int	boot_flags;
	unsigned int	csr_start_addr; /* Absolute value (not in MB) */
	unsigned int	csr_size; /* Absolute value (not in MB) */
	unsigned int	lcl_apic_start_addr; /* Absolute value (not in MB) */
	unsigned int	lcl_apic_size; /* Absolute value (not in MB) */
	unsigned int	low_shrd_mem_base; /* 0 or 512MB or 1GB */
	unsigned int	low_shrd_mem_quad_offset; /* 0,128M,256M,512M,1G */
					/* may not be totally populated */
	unsigned int	split_mem_enbl; /* 0 for no low shared memory */
	unsigned int	mmio_sz; /* Size of total system memory mapped I/O */
				 /* (in MB). */
	unsigned int	quad_spin_lock; /* Spare location used for quad */
					/* bringup. */
	unsigned int	nonzero55; /* For checksumming. */
	unsigned int	nonzeroaa; /* For checksumming. */
	unsigned int	scd_magic_number;
	unsigned int	system_type;
	unsigned int	checksum;
	/*
	 *	memory configuration area for each quad
	 */
	struct		eachquadmem eq[MAX_NUMNODES];	/* indexed by quad id */
};

void numaq_tsc_disable(void);

#endif /* CONFIG_X86_NUMAQ */
#endif /* _ASM_X86_NUMAQ_H */
Loading