All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Robert Richter" <robert.richter@amd.com>
To: "Thomas Gleixner" <tglx@linutronix.de>,
	"Ingo Molnar" <mingo@redhat.com>,
	"H. Peter Anvin" <hpa@zytor.com>,
	"LKML" <linux-kernel@vger.kernel.org>
Cc: "Robert Richter" <robert.richter@amd.com>
Subject: [patch 4/6] x86: apicdef unification: CONFIG_X86_32 checks added
Date: Tue, 06 Nov 2007 19:36:49 +0100	[thread overview]
Message-ID: <20071106183646.338940000@amd.com> (raw)
In-Reply-To: 20071106183645.951275000@amd.com

[-- Attachment #1: apicdef/0004-apicdef-CONFIG_X86_32-checks-added.patch --]
[-- Type: text/plain, Size: 3925 bytes --]


Signed-off-by: Robert Richter <robert.richter@amd.com>
---
 include/asm-x86/apicdef_32.h |   28 ++++++++++++++++++++++++++++
 include/asm-x86/apicdef_64.h |   11 +++++++++++
 2 files changed, 39 insertions(+), 0 deletions(-)

Index: linux-perfmon/include/asm-x86/apicdef_32.h
===================================================================
--- linux-perfmon.orig/include/asm-x86/apicdef_32.h
+++ linux-perfmon/include/asm-x86/apicdef_32.h
@@ -11,12 +11,19 @@
 #define		APIC_DEFAULT_PHYS_BASE	0xfee00000
  
 #define		APIC_ID		0x20
+#ifndef CONFIG_X86_32
+#define			APIC_ID_MASK		(0xFFu<<24)
+#define			GET_APIC_ID(x)		(((x)>>24)&0xFFu)
+#define			SET_APIC_ID(x)		(((x)<<24))
+#endif
 #define		APIC_LVR	0x30
 #define			APIC_LVR_MASK		0xFF00FF
 #define			GET_APIC_VERSION(x)	((x)&0xFFu)
 #define			GET_APIC_MAXLVT(x)	(((x)>>16)&0xFFu)
 #define			APIC_INTEGRATED(x)	((x)&0xF0u)
+#ifdef CONFIG_X86_32
 #define			APIC_XAPIC(x)		((x) >= 0x14)
+#endif
 #define		APIC_TASKPRI	0x80
 #define			APIC_TPRI_MASK		0xFFu
 #define		APIC_ARBPRI	0x90
@@ -60,6 +67,9 @@
 #define			APIC_INT_ASSERT		0x04000
 #define			APIC_ICR_BUSY		0x01000
 #define			APIC_DEST_LOGICAL	0x00800
+#ifndef CONFIG_X86_32
+#define			APIC_DEST_PHYSICAL	0x00000
+#endif
 #define			APIC_DM_FIXED		0x00000
 #define			APIC_DM_LOWEST		0x00100
 #define			APIC_DM_SMI		0x00200
@@ -111,7 +121,25 @@
 
 #define APIC_BASE (fix_to_virt(FIX_APIC_BASE))
 
+#ifdef CONFIG_X86_32
 #define MAX_IO_APICS 64
+#else
+#define MAX_IO_APICS 128
+#define MAX_LOCAL_APIC 256
+#define BAD_APICID 0xFFu
+
+/*
+ * All x86-64 systems are xAPIC compatible.
+ * In the following, "apicid" is a physical APIC ID.
+ */
+#define XAPIC_DEST_CPUS_SHIFT	4
+#define XAPIC_DEST_CPUS_MASK	((1u << XAPIC_DEST_CPUS_SHIFT) - 1)
+#define XAPIC_DEST_CLUSTER_MASK	(XAPIC_DEST_CPUS_MASK << XAPIC_DEST_CPUS_SHIFT)
+#define APIC_CLUSTER(apicid)	((apicid) & XAPIC_DEST_CLUSTER_MASK)
+#define APIC_CLUSTERID(apicid)	(APIC_CLUSTER(apicid) >> XAPIC_DEST_CPUS_SHIFT)
+#define APIC_CPUID(apicid)	((apicid) & XAPIC_DEST_CPUS_MASK)
+#define NUM_APIC_CLUSTERS	((BAD_APICID + 1) >> XAPIC_DEST_CPUS_SHIFT)
+#endif
 
 /*
  * the local APIC register structure, memory mapped. Not terribly well
Index: linux-perfmon/include/asm-x86/apicdef_64.h
===================================================================
--- linux-perfmon.orig/include/asm-x86/apicdef_64.h
+++ linux-perfmon/include/asm-x86/apicdef_64.h
@@ -11,14 +11,19 @@
 #define		APIC_DEFAULT_PHYS_BASE	0xfee00000
  
 #define		APIC_ID		0x20
+#ifndef CONFIG_X86_32
 #define			APIC_ID_MASK		(0xFFu<<24)
 #define			GET_APIC_ID(x)		(((x)>>24)&0xFFu)
 #define			SET_APIC_ID(x)		(((x)<<24))
+#endif
 #define		APIC_LVR	0x30
 #define			APIC_LVR_MASK		0xFF00FF
 #define			GET_APIC_VERSION(x)	((x)&0xFFu)
 #define			GET_APIC_MAXLVT(x)	(((x)>>16)&0xFFu)
 #define			APIC_INTEGRATED(x)	((x)&0xF0u)
+#ifdef CONFIG_X86_32
+#define			APIC_XAPIC(x)		((x) >= 0x14)
+#endif
 #define		APIC_TASKPRI	0x80
 #define			APIC_TPRI_MASK		0xFFu
 #define		APIC_ARBPRI	0x90
@@ -62,7 +67,9 @@
 #define			APIC_INT_ASSERT		0x04000
 #define			APIC_ICR_BUSY		0x01000
 #define			APIC_DEST_LOGICAL	0x00800
+#ifndef CONFIG_X86_32
 #define			APIC_DEST_PHYSICAL	0x00000
+#endif
 #define			APIC_DM_FIXED		0x00000
 #define			APIC_DM_LOWEST		0x00100
 #define			APIC_DM_SMI		0x00200
@@ -114,6 +121,9 @@
 
 #define APIC_BASE (fix_to_virt(FIX_APIC_BASE))
 
+#ifdef CONFIG_X86_32
+#define MAX_IO_APICS 64
+#else
 #define MAX_IO_APICS 128
 #define MAX_LOCAL_APIC 256
 #define BAD_APICID 0xFFu
@@ -129,6 +139,7 @@
 #define APIC_CLUSTERID(apicid)	(APIC_CLUSTER(apicid) >> XAPIC_DEST_CPUS_SHIFT)
 #define APIC_CPUID(apicid)	((apicid) & XAPIC_DEST_CPUS_MASK)
 #define NUM_APIC_CLUSTERS	((BAD_APICID + 1) >> XAPIC_DEST_CPUS_SHIFT)
+#endif
 
 /*
  * the local APIC register structure, memory mapped. Not terribly well

-- 
Advanced Micro Devices, Inc.
Operating System Research Center
email: robert.richter@amd.com




  parent reply	other threads:[~2007-11-06 18:48 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-06 18:36 [patch 0/6] x86: apicdef.h unification Robert Richter
2007-11-06 18:36 ` [patch 1/6] x86: apicdef unification: some constants made unsigned Robert Richter
2007-11-07 20:41   ` Jeremy Fitzhardinge
2007-11-08 10:14     ` Robert Richter
2007-11-12 12:31   ` Maciej W. Rozycki
2007-11-12 15:56     ` Robert Richter
2007-11-12 17:58     ` H. Peter Anvin
2007-11-06 18:36 ` [patch 2/6] x86: apicdef unification: minor changes in macro order Robert Richter
2007-11-06 18:36 ` [patch 3/6] x86: apicdef unification: whitespace changes only Robert Richter
2007-11-06 18:36 ` Robert Richter [this message]
2007-11-06 18:36 ` [patch 5/6] x86: apicdef unification: 32 and 64 bit files coalesced Robert Richter
2007-11-06 18:36 ` [patch 6/6] x86: apicdef unification: more whitespace changes Robert Richter
2007-11-06 20:32 ` [patch 0/6] x86: apicdef.h unification Thomas Gleixner
2007-11-08 10:24   ` Robert Richter
2007-11-08 17:53     ` Thomas Gleixner

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071106183646.338940000@amd.com \
    --to=robert.richter@amd.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.