From: Ingo Molnar <mingo@elte.hu>
To: "Pan, Jacob jun" <jacob.jun.pan@intel.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"H. Peter Anvin" <hpa@linux.intel.com>
Subject: Re: [PATCH 2/9] x86: introduce a set of platform feature flags
Date: Fri, 26 Jun 2009 09:22:18 +0200 [thread overview]
Message-ID: <20090626072218.GH14078@elte.hu> (raw)
In-Reply-To: <43F901BD926A4E43B106BF17856F07556412B7E1@orsmsx508.amr.corp.intel.com>
* Pan, Jacob jun <jacob.jun.pan@intel.com> wrote:
> >From 41685ae1e8b8e77fdacbdf8e8155f1e54624cbef Mon Sep 17 00:00:00 2001
> From: Jacob Pan <jacob.jun.pan@intel.com>
> Date: Thu, 11 Jun 2009 09:37:26 -0700
> Subject: [PATCH] x86: introduce a set of platform feature flags
>
> This patch introduces a set of x86 pc platform feature flags. the intention is
> to clean up setup code based on the availability of patform features.
>
> With the introduction of non-PC x86 platforms, these flags will also pave
> the way for cleaner integration.
>
> The current feature flags are not a complete set of all possible PC features
> only the ones relavent to system setup, such as resource allocation, are
> included.
>
> Signed-off-by: Jacob Pan <jacob.jun.pan@intel.com>
> ---
> arch/x86/include/asm/platform_feature.h | 65 ++++++++++++++++++
> arch/x86/kernel/.gitignore | 1 +
> arch/x86/kernel/Makefile | 11 +++
> arch/x86/kernel/mkx86pcflags.pl | 32 +++++++++
> arch/x86/kernel/platform_info.c | 111 +++++++++++++++++++++++++++++++
> 5 files changed, 220 insertions(+), 0 deletions(-)
> create mode 100644 arch/x86/include/asm/platform_feature.h
> create mode 100644 arch/x86/kernel/mkx86pcflags.pl
> create mode 100644 arch/x86/kernel/platform_info.c
>
> diff --git a/arch/x86/include/asm/platform_feature.h b/arch/x86/include/asm/platform_feature.h
> new file mode 100644
> index 0000000..bcadda5
> --- /dev/null
> +++ b/arch/x86/include/asm/platform_feature.h
> @@ -0,0 +1,65 @@
> +/*
> + * platform_feature.h - Defines x86 platform feature bits
> + *
> + * (C) Copyright 2008 Intel Corporation
> + * Author: Jacob Pan (jacob.jun.pan@intel.com)
> + *
> + * 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; version 2
> + * of the License.
> + *
> + * Note: platform feature flags allow kernel to identify hardware capabilities
> + * at boottime and runtime. It enables binary compaitiblity between standard
> + * X86 PC and non-standard X86 platforms such as MID. These flags are default
> + * to X86 PC standard, at boot time, they will be overwritten by system tables
> + * provided by firmware.
> + *
> + */
> +#ifndef _ASM_X86_PLATFORM_FEATURE_H
> +#define _ASM_X86_PLATFORM_FEATURE_H
> +
> +#ifndef __ASSEMBLY__
> +#include <linux/bitops.h>
> +#endif
> +#include <asm/required-features.h>
> +
> +#define N_PLATFORM_CAPINTS 2 /* N 32-bit words worth of info */
> +/* X86 base platform features, include PC, legacy free MID devices, etc.
> + * This list provides early and important information to the kernel in a
> + * centralized place such that kernel can make a decision on the best
> + * choice of which system devices to use. e.g. timers or interrupt
> + * controllers.
> + */
> +#define X86_PLATFORM_FEATURE_8259 (0*32+0) /* i8259A PIC */
> +#define X86_PLATFORM_FEATURE_8254 (0*32+1) /* i8253/4 PIT */
> +#define X86_PLATFORM_FEATURE_IOAPIC (0*32+2) /* IO-APIC */
> +#define X86_PLATFORM_FEATURE_HPET (0*32+3) /* HPET timer */
> +#define X86_PLATFORM_FEATURE_RTC (0*32+4) /* real time clock*/
> +#define X86_PLATFORM_FEATURE_FLOPPY (0*32+5) /* ISA floppy */
> +#define X86_PLATFORM_FEATURE_ISA (0*32+6) /* ISA/LPC bus */
> +#define X86_PLATFORM_FEATURE_BIOS (0*32+7) /* BIOS service,
> + * e.g. int calls
> + * EBDA, etc.
> + */
> +#define X86_PLATFORM_FEATURE_ACPI (0*32+8) /* has ACPI support */
> +#define X86_PLATFORM_FEATURE_SFI (0*32+9) /* has SFI support */
> +#define X86_PLATFORM_FEATURE_8042 (0*32+10) /* i8042 KBC */
i think a better and cleaner approach would be to 'driverize' the
affected platform details - not sprinkle the code with
platform_has() calls.
Whether a given platform has a 'standard PC' or some custom driver
then depends on that driver's init sequence - it's not a central
thing.
Ingo
next prev parent reply other threads:[~2009-06-26 7:22 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-26 0:14 [PATCH 2/9] x86: introduce a set of platform feature flags Pan, Jacob jun
2009-06-26 7:22 ` Ingo Molnar [this message]
2009-06-26 9:14 ` Alan Cox
2009-06-26 9:45 ` Ingo Molnar
2009-06-26 10:17 ` Alan Cox
2009-06-26 10:47 ` Ingo Molnar
2009-06-26 11:41 ` Alan Cox
2009-06-26 15:47 ` Ingo Molnar
2009-06-26 19:04 ` H. Peter Anvin
2009-06-26 19:13 ` Ingo Molnar
2009-06-30 6:32 ` Pavel Machek
2009-07-02 23:09 ` Pan, Jacob jun
2009-07-02 23:25 ` H. Peter Anvin
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=20090626072218.GH14078@elte.hu \
--to=mingo@elte.hu \
--cc=hpa@linux.intel.com \
--cc=jacob.jun.pan@intel.com \
--cc=linux-kernel@vger.kernel.org \
/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.