From patchwork Thu Dec 27 06:33:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743465 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BEB7B746 for ; Thu, 27 Dec 2018 06:36:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A3A51284B9 for ; Thu, 27 Dec 2018 06:36:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 933242881E; Thu, 27 Dec 2018 06:36:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 38C58284B9 for ; Thu, 27 Dec 2018 06:36:34 +0000 (UTC) Received: from localhost ([127.0.0.1]:49703 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHU-0004KG-MA for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:36:32 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54613) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPG3-0002kn-WA for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPG0-0003vk-ON for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:03 -0500 Received: from mga11.intel.com ([192.55.52.93]:57846) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPG0-0003ov-DX for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:00 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:34:58 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617221" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:34:56 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:33:55 +0800 Message-Id: <20181227063419.12981-2-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 01/25] build: actually use CONFIG_PAM X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Do not link it unconditionally into all binaries. Signed-off-by: Paolo Bonzini --- hw/pci-host/Makefile.objs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/pci-host/Makefile.objs b/hw/pci-host/Makefile.objs index 6d6597c065..9d7e7cd1b8 100644 --- a/hw/pci-host/Makefile.objs +++ b/hw/pci-host/Makefile.objs @@ -1,4 +1,4 @@ -common-obj-y += pam.o +common-obj-$(CONFIG_PAM) += pam.o # PPC devices common-obj-$(CONFIG_PREP_PCI) += prep.o From patchwork Thu Dec 27 06:33:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743467 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8876B746 for ; Thu, 27 Dec 2018 06:36:53 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 75E9B284B9 for ; Thu, 27 Dec 2018 06:36:53 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 68D7C2881E; Thu, 27 Dec 2018 06:36:53 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5F11A284B9 for ; Thu, 27 Dec 2018 06:36:49 +0000 (UTC) Received: from localhost ([127.0.0.1]:49705 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHk-0004TQ-FP for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:36:48 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54648) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPG5-0002ku-V3 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:12 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPG1-0003x2-FI for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:05 -0500 Received: from mga11.intel.com ([192.55.52.93]:57846) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPG1-0003ov-0B for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:01 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:00 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617225" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:34:58 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:33:56 +0800 Message-Id: <20181227063419.12981-3-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 02/25] hw/i386/Makefile.objs: Build pc_piix* and pc_q35 boards X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, =?utf-8?b?w4Frb3MgS292w6Fjcw==?= , pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini CONFIG_PIIX and CONFIG_Q35 created for the pc board object files. These are enabled automatically at default-configs/i386-softmmu.mak and default-configs/x86_64-softmmu.mak Signed-off-by: Ákos Kovács Signed-off-by: Paolo Bonzini Reviewed-by: Thomas Huth --- default-configs/i386-softmmu.mak | 2 ++ hw/i386/Makefile.objs | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index 64c998c4c8..65ef98be18 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -67,3 +67,5 @@ CONFIG_I2C=y CONFIG_SEV=$(CONFIG_KVM) CONFIG_VTD=y CONFIG_AMD_IOMMU=y +CONFIG_I440FX=y +CONFIG_Q35=y diff --git a/hw/i386/Makefile.objs b/hw/i386/Makefile.objs index fa87a14152..3de7ca2bb9 100644 --- a/hw/i386/Makefile.objs +++ b/hw/i386/Makefile.objs @@ -1,6 +1,8 @@ obj-$(CONFIG_KVM) += kvm/ obj-y += multiboot.o -obj-y += pc.o pc_piix.o pc_q35.o +obj-y += pc.o +obj-$(CONFIG_I440FX) += pc_piix.o +obj-$(CONFIG_Q35) += pc_q35.o obj-y += pc_sysfw.o obj-$(CONFIG_VTD) += x86-iommu.o intel_iommu.o obj-$(CONFIG_AMD_IOMMU) += x86-iommu.o amd_iommu.o From patchwork Thu Dec 27 06:33:57 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743471 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A917B13BF for ; Thu, 27 Dec 2018 06:37:09 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 96D89284B9 for ; Thu, 27 Dec 2018 06:37:09 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8A90228823; Thu, 27 Dec 2018 06:37:09 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 5E548284B9 for ; Thu, 27 Dec 2018 06:37:04 +0000 (UTC) Received: from localhost ([127.0.0.1]:49709 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHz-0004pX-Dc for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:37:03 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54679) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGM-0002sX-3e for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPG3-00043f-UP for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:14 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPG3-00041J-Dy for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:03 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:02 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617244" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:00 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:33:57 +0800 Message-Id: <20181227063419.12981-4-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 03/25] minikconfig: add parser skeleton X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini This implements a scanner and recursive descent parser for Kconfig-like configuration files. The only "action" of the parser is for now to detect undefined variables and process include files. The main differences between Kconfig and this are: * only the "bool" type is supported * variables can only be defined once * choices are not supported (but they could be added as syntactic sugar for multiple Boolean values) * menus and other graphical concepts (prompts, help text) are not supported * assignments ("CONFIG_FOO=y", "CONFIG_FOO=n") are parsed as part of the Kconfig language, not as a separate file. The idea was originally by Ákos Kovács, but I could not find his implementation so I had to redo it. Signed-off-by: Paolo Bonzini --- scripts/minikconf.py | 425 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 425 insertions(+) create mode 100644 scripts/minikconf.py diff --git a/scripts/minikconf.py b/scripts/minikconf.py new file mode 100644 index 0000000000..9e33d80514 --- /dev/null +++ b/scripts/minikconf.py @@ -0,0 +1,425 @@ +# +# Mini-Kconfig parser +# +# Copyright (c) 2015 Red Hat Inc. +# +# Authors: +# Paolo Bonzini +# +# This work is licensed under the terms of the GNU GPL, version 2 +# or, at your option, any later version. See the COPYING file in +# the top-level directory. + +import os +import sys + +__all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ] + +# ------------------------------------------- +# KconfigData implements the Kconfig semantics. For now it can only +# detect undefined symbols, i.e. symbols that were referenced in +# assignments or dependencies but were not declared with "config FOO". +# +# Semantic actions are represented by methods called do_*. The do_var +# method return the semantic value of a variable (which right now is +# just its name). +# ------------------------------------------- + +class KconfigData: + def __init__(self): + self.previously_included = [] + self.incl_info = None + self.defined_vars = set() + self.referenced_vars = set() + + # semantic analysis ------------- + + def check_undefined(self): + undef = False + for i in self.referenced_vars: + if not (i in self.defined_vars): + print "undefined symbol %s" % (i) + undef = True + return undef + + # semantic actions ------------- + + def do_declaration(self, var): + if (var in self.defined_vars): + raise Exception('variable "' + var + '" defined twice') + + self.defined_vars.add(var) + + # var is a string with the variable's name. + # + # For now this just returns the variable's name itself. + def do_var(self, var): + self.referenced_vars.add(var) + return var + + def do_assignment(self, var, val): + pass + + def do_default(self, var, val, cond=None): + pass + + def do_depends_on(self, var, expr): + pass + + def do_select(self, var, symbol, cond=None): + pass + +# ------------------------------------------- +# KconfigParser implements a recursive descent parser for (simplified) +# Kconfig syntax. The static parse() method returns a KconfigData +# object, from which it is possible to build a BDD and compute a +# configuration +# ------------------------------------------- + +# tokens table +TOKENS = {} +TOK_NONE = -1 +TOK_LPAREN = 0; TOKENS[TOK_LPAREN] = '"("'; +TOK_RPAREN = 1; TOKENS[TOK_RPAREN] = '")"'; +TOK_EQUAL = 2; TOKENS[TOK_EQUAL] = '"="'; +TOK_AND = 3; TOKENS[TOK_AND] = '"&&"'; +TOK_OR = 4; TOKENS[TOK_OR] = '"||"'; +TOK_NOT = 5; TOKENS[TOK_NOT] = '"!"'; +TOK_DEPENDS = 6; TOKENS[TOK_DEPENDS] = '"depends"'; +TOK_ON = 7; TOKENS[TOK_ON] = '"on"'; +TOK_SELECT = 8; TOKENS[TOK_SELECT] = '"select"'; +TOK_CONFIG = 9; TOKENS[TOK_CONFIG] = '"config"'; +TOK_DEFAULT = 10; TOKENS[TOK_DEFAULT] = '"default"'; +TOK_Y = 11; TOKENS[TOK_Y] = '"y"'; +TOK_N = 12; TOKENS[TOK_N] = '"n"'; +TOK_SOURCE = 13; TOKENS[TOK_SOURCE] = '"source"'; +TOK_BOOL = 14; TOKENS[TOK_BOOL] = '"bool"'; +TOK_IF = 15; TOKENS[TOK_IF] = '"if"'; +TOK_ID = 16; TOKENS[TOK_ID] = 'identifier'; +TOK_EOF = 17; TOKENS[TOK_EOF] = 'end of file'; + +class KconfigParserError(Exception): + def __init__(self, parser, msg, tok=None): + self.loc = parser.location() + tok = tok or parser.tok + if tok != TOK_NONE: + msg = '%s before %s' %(msg, TOKENS[tok]) + self.msg = msg + + def __str__(self): + return "%s: %s" % (self.loc, self.msg) + +class KconfigParser: + @classmethod + def parse(self, fp): + data = KconfigData() + parser = KconfigParser(data) + parser.parse_file(fp) + if data.check_undefined(): + raise KconfigParserError(parser, "there were undefined symbols") + + return data + + def __init__(self, data): + self.data = data + + def parse_file(self, fp): + self.abs_fname = os.path.abspath(fp.name) + self.fname = fp.name + self.data.previously_included.append(self.abs_fname) + self.src = fp.read() + if self.src == '' or self.src[-1] != '\n': + self.src += '\n' + self.cursor = 0 + self.line = 1 + self.line_pos = 0 + self.get_token() + self.parse_config() + + # file management ----- + + def error_path(self): + inf = self.data.incl_info + res = "" + while inf: + res = ("In file included from %s:%d:\n" % (inf['file'], + inf['line'])) + res + inf = inf['parent'] + return res + + def location(self): + col = 1 + for ch in self.src[self.line_pos:self.pos]: + if ch == '\t': + col += 8 - ((col - 1) % 8) + else: + col += 1 + return '%s%s:%d:%d' %(self.error_path(), self.fname, self.line, col) + + def do_include(self, include): + incl_abs_fname = os.path.join(os.path.dirname(self.abs_fname), + include) + # catch inclusion cycle + inf = self.data.incl_info + while inf: + if incl_abs_fname == os.path.abspath(inf['file']): + raise KconfigParserError(self, "Inclusion loop for %s" + % include) + inf = inf['parent'] + + # skip multiple include of the same file + if incl_abs_fname in self.data.previously_included: + return + try: + fp = open(incl_abs_fname, 'r') + except IOError, e: + raise KconfigParserError(self, + '%s: %s' % (e.strerror, include)) + + inf = self.data.incl_info + self.data.incl_info = { 'file': self.fname, 'line': self.line, + 'parent': inf } + KconfigParser(self.data).parse_file(fp) + self.data.incl_info = inf + + # recursive descent parser ----- + + # y_or_n: Y | N + def parse_y_or_n(self): + if self.tok == TOK_Y: + self.get_token() + return True + if self.tok == TOK_N: + self.get_token() + return False + raise KconfigParserError(self, 'Expected "y" or "n"') + + # var: ID + def parse_var(self): + if self.tok == TOK_ID: + val = self.val + self.get_token() + return self.data.do_var(val) + else: + raise KconfigParserError(self, 'Expected identifier') + + # assignment_var: ID (starting with "CONFIG_") + def parse_assignment_var(self): + if self.tok == TOK_ID: + val = self.val + if not val.startswith("CONFIG_"): + raise KconfigParserError(self, + 'Expected identifier starting with "CONFIG_"', TOK_NONE) + self.get_token() + return self.data.do_var(val[7:]) + else: + raise KconfigParserError(self, 'Expected identifier') + + # assignment: var EQUAL y_or_n + def parse_assignment(self): + var = self.parse_assignment_var() + if self.tok != TOK_EQUAL: + raise KconfigParserError(self, 'Expected "="') + self.get_token() + self.data.do_assignment(var, self.parse_y_or_n()) + + # primary: NOT primary + # | LPAREN expr RPAREN + # | var + def parse_primary(self): + if self.tok == TOK_NOT: + self.get_token() + self.parse_primary() + elif self.tok == TOK_LPAREN: + self.get_token() + self.parse_expr() + if self.tok != TOK_RPAREN: + raise KconfigParserError(self, 'Expected ")"') + self.get_token() + elif self.tok == TOK_ID: + self.parse_var() + else: + raise KconfigParserError(self, 'Expected "!" or "(" or identifier') + + # disj: primary (OR primary)* + def parse_disj(self): + self.parse_primary() + while self.tok == TOK_OR: + self.get_token() + self.parse_primary() + + # expr: disj (AND disj)* + def parse_expr(self): + self.parse_disj() + while self.tok == TOK_AND: + self.get_token() + self.parse_disj() + + # condition: IF expr + # | empty + def parse_condition(self): + if self.tok == TOK_IF: + self.get_token() + return self.parse_expr() + else: + return None + + # property: DEFAULT y_or_n condition + # | DEPENDS ON expr + # | SELECT var condition + # | BOOL + def parse_property(self, var): + if self.tok == TOK_DEFAULT: + self.get_token() + val = self.parse_y_or_n() + cond = self.parse_condition() + self.data.do_default(var, val, cond) + elif self.tok == TOK_DEPENDS: + self.get_token() + if self.tok != TOK_ON: + raise KconfigParserError(self, 'Expected "on"') + self.get_token() + self.data.do_depends_on(var, self.parse_expr()) + elif self.tok == TOK_SELECT: + self.get_token() + symbol = self.parse_var() + cond = self.parse_condition() + self.data.do_select(var, symbol, cond) + elif self.tok == TOK_BOOL: + self.get_token() + else: + raise KconfigParserError(self, 'Error in recursive descent?') + + # properties: properties property + # | /* empty */ + def parse_properties(self, var): + had_default = False + while self.tok == TOK_DEFAULT or self.tok == TOK_DEPENDS or \ + self.tok == TOK_SELECT or self.tok == TOK_BOOL: + self.parse_property(var) + self.data.do_default(var, False) + + # for nicer error message + if self.tok != TOK_SOURCE and self.tok != TOK_CONFIG and \ + self.tok != TOK_ID and self.tok != TOK_EOF: + raise KconfigParserError(self, 'expected "source", "config", identifier, ' + + '"default", "depends on" or "select"') + + # declaration: config var properties + def parse_declaration(self): + if self.tok == TOK_CONFIG: + self.get_token() + var = self.parse_var() + self.data.do_declaration(var) + self.parse_properties(var) + else: + raise KconfigParserError(self, 'Error in recursive descent?') + + # clause: SOURCE + # | declaration + # | assignment + def parse_clause(self): + if self.tok == TOK_SOURCE: + val = self.val + self.get_token() + self.do_include(val) + elif self.tok == TOK_CONFIG: + self.parse_declaration() + elif self.tok == TOK_ID: + self.parse_assignment() + else: + raise KconfigParserError(self, 'expected "source", "config" or identifier') + + # config: clause+ EOF + def parse_config(self): + while self.tok != TOK_EOF: + self.parse_clause() + return self.data + + # scanner ----- + + def get_token(self): + while True: + self.tok = self.src[self.cursor] + self.pos = self.cursor + self.cursor += 1 + + self.val = None + self.tok = self.scan_token() + if self.tok is not None: + return + + def check_keyword(self, rest): + if not self.src.startswith(rest, self.cursor): + return False + length = len(rest) + if self.src[self.cursor + length].isalnum() or self.src[self.cursor + length] == '|': + return False + self.cursor += length + return True + + def scan_token(self): + if self.tok == '#': + self.cursor = self.src.find('\n', self.cursor) + return None + elif self.tok == '=': + return TOK_EQUAL + elif self.tok == '(': + return TOK_LPAREN + elif self.tok == ')': + return TOK_RPAREN + elif self.tok == '&' and self.src[self.pos+1] == '&': + self.cursor += 1 + return TOK_AND + elif self.tok == '|' and self.src[self.pos+1] == '|': + self.cursor += 1 + return TOK_OR + elif self.tok == '!': + return TOK_NOT + elif self.tok == 'd' and self.check_keyword("epends"): + return TOK_DEPENDS + elif self.tok == 'o' and self.check_keyword("n"): + return TOK_ON + elif self.tok == 's' and self.check_keyword("elect"): + return TOK_SELECT + elif self.tok == 'c' and self.check_keyword("onfig"): + return TOK_CONFIG + elif self.tok == 'd' and self.check_keyword("efault"): + return TOK_DEFAULT + elif self.tok == 'b' and self.check_keyword("ool"): + return TOK_BOOL + elif self.tok == 'i' and self.check_keyword("f"): + return TOK_IF + elif self.tok == 'y' and self.check_keyword(""): + return TOK_Y + elif self.tok == 'n' and self.check_keyword(""): + return TOK_N + elif (self.tok == 's' and self.check_keyword("ource")) or \ + self.tok == 'i' and self.check_keyword("nclude"): + # source FILENAME + # include FILENAME + while self.src[self.cursor].isspace(): + self.cursor += 1 + start = self.cursor + self.cursor = self.src.find('\n', self.cursor) + self.val = self.src[start:self.cursor] + return TOK_SOURCE + elif self.tok.isalpha(): + # identifier + while self.src[self.cursor].isalnum() or self.src[self.cursor] == '_': + self.cursor += 1 + self.val = self.src[self.pos:self.cursor] + return TOK_ID + elif self.tok == '\n': + if self.cursor == len(self.src): + return TOK_EOF + self.line += 1 + self.line_pos = self.cursor + elif not self.tok.isspace(): + raise KconfigParserError(self, 'Stray "%s"' % self.tok) + + return None + +if __name__ == '__main__': + fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test' + KconfigParser.parse(open(fname, 'r')) From patchwork Thu Dec 27 06:33:58 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743475 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 7942013BF for ; Thu, 27 Dec 2018 06:40:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 63755284D2 for ; Thu, 27 Dec 2018 06:40:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 50B93287C6; Thu, 27 Dec 2018 06:40:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 251CD284D2 for ; Thu, 27 Dec 2018 06:39:59 +0000 (UTC) Received: from localhost ([127.0.0.1]:49731 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPKo-0008Fz-AR for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:39:58 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54684) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGM-0002sb-7B for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPG5-00047L-CH for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:14 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPG4-00041J-Om for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:05 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:04 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617269" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:02 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:33:58 +0800 Message-Id: <20181227063419.12981-5-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 04/25] minikconfig: add AST X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Add Python classes that represent the Kconfig abstract syntax tree. The abstract syntax tree is stored as a list of clauses. For example: config FOO depends on BAR select BAZ is represented as three clauses: FOO depends on BAR FOO default n select BAZ if FOO Signed-off-by: Paolo Bonzini --- scripts/minikconf.py | 116 ++++++++++++++++++++++++++++++++++++------- 1 file changed, 98 insertions(+), 18 deletions(-) diff --git a/scripts/minikconf.py b/scripts/minikconf.py index 9e33d80514..f1851c3570 100644 --- a/scripts/minikconf.py +++ b/scripts/minikconf.py @@ -26,11 +26,84 @@ __all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ] # ------------------------------------------- class KconfigData: + class Expr: + def __and__(self, rhs): + return KconfigData.AND(self, rhs) + def __or__(self, rhs): + return KconfigData.OR(self, rhs) + def __invert__(self): + return KconfigData.NOT(self) + + class AND(Expr): + def __init__(self, lhs, rhs): + self.lhs = lhs + self.rhs = rhs + def __str__(self): + return "(%s && %s)" % (self.lhs, self.rhs) + + class OR(Expr): + def __init__(self, lhs, rhs): + self.lhs = lhs + self.rhs = rhs + def __str__(self): + return "(%s || %s)" % (self.lhs, self.rhs) + + class NOT(Expr): + def __init__(self, lhs): + self.lhs = lhs + def __str__(self): + return "!%s" % (self.lhs) + + class Var(Expr): + def __init__(self, name): + self.name = name + self.value = None + def __str__(self): + return self.name + + class Clause: + def __init__(self, dest): + self.dest = dest + + class AssignmentClause(Clause): + def __init__(self, dest, value): + KconfigData.Clause.__init__(self, dest) + self.value = value + def __str__(self): + return "%s=%s" % (self.dest, 'y' if self.value else 'n') + + class DefaultClause(Clause): + def __init__(self, dest, value, cond=None): + KconfigData.Clause.__init__(self, dest) + self.value = value + self.cond = cond + def __str__(self): + value = 'y' if self.value else 'n' + if self.cond is None: + return "config %s default %s" % (self.dest, value) + else: + return "config %s default %s if %s" % (self.dest, value, self.cond) + + class DependsOnClause(Clause): + def __init__(self, dest, expr): + KconfigData.Clause.__init__(self, dest) + self.expr = expr + def __str__(self): + return "config %s depends on %s" % (self.dest, self.expr) + + class SelectClause(Clause): + def __init__(self, dest, cond): + KconfigData.Clause.__init__(self, dest) + self.cond = cond + def __str__(self): + return "select %s if %s" % (self.dest, self.cond) + def __init__(self): self.previously_included = [] self.incl_info = None self.defined_vars = set() - self.referenced_vars = set() + self.referenced_vars = dict() + self.clauses = list() # semantic analysis ------------- @@ -48,26 +121,28 @@ class KconfigData: if (var in self.defined_vars): raise Exception('variable "' + var + '" defined twice') - self.defined_vars.add(var) + self.defined_vars.add(var.name) # var is a string with the variable's name. - # - # For now this just returns the variable's name itself. def do_var(self, var): - self.referenced_vars.add(var) - return var + if (var in self.referenced_vars): + return self.referenced_vars[var] + + var_obj = self.referenced_vars[var] = KconfigData.Var(var) + return var_obj def do_assignment(self, var, val): - pass + self.clauses.append(KconfigData.AssignmentClause(var, val)) def do_default(self, var, val, cond=None): - pass + self.clauses.append(KconfigData.DefaultClause(var, val, cond)) def do_depends_on(self, var, expr): - pass + self.clauses.append(KconfigData.DependsOnClause(var, expr)) def do_select(self, var, symbol, cond=None): - pass + cond = (cond & var) if not (cond is None) else var + self.clauses.append(KconfigData.SelectClause(symbol, cond)) # ------------------------------------------- # KconfigParser implements a recursive descent parser for (simplified) @@ -229,31 +304,34 @@ class KconfigParser: def parse_primary(self): if self.tok == TOK_NOT: self.get_token() - self.parse_primary() + val = ~self.parse_primary() elif self.tok == TOK_LPAREN: self.get_token() - self.parse_expr() + val = self.parse_expr() if self.tok != TOK_RPAREN: raise KconfigParserError(self, 'Expected ")"') self.get_token() elif self.tok == TOK_ID: - self.parse_var() + val = self.parse_var() else: raise KconfigParserError(self, 'Expected "!" or "(" or identifier') + return val # disj: primary (OR primary)* def parse_disj(self): - self.parse_primary() + lhs = self.parse_primary() while self.tok == TOK_OR: self.get_token() - self.parse_primary() + lhs = lhs | self.parse_primary() + return lhs # expr: disj (AND disj)* def parse_expr(self): - self.parse_disj() + lhs = self.parse_disj() while self.tok == TOK_AND: self.get_token() - self.parse_disj() + lhs = lhs & self.parse_disj() + return lhs # condition: IF expr # | empty @@ -422,4 +500,6 @@ class KconfigParser: if __name__ == '__main__': fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test' - KconfigParser.parse(open(fname, 'r')) + data = KconfigParser.parse(open(fname, 'r')) + for i in data.clauses: + print i From patchwork Thu Dec 27 06:33:59 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743479 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3FF93746 for ; Thu, 27 Dec 2018 06:40:58 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 2CEE728911 for ; Thu, 27 Dec 2018 06:40:58 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2AAF22882F; Thu, 27 Dec 2018 06:40:58 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7A39A2898C for ; Thu, 27 Dec 2018 06:40:52 +0000 (UTC) Received: from localhost ([127.0.0.1]:49740 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPLf-0000sE-IQ for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:40:51 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54815) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGd-0003F2-4e for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGM-0004EY-4y for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:28 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPG6-00041J-Q3 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:11 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:06 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617276" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:04 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:33:59 +0800 Message-Id: <20181227063419.12981-6-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 05/25] minikconfig: add semantic analysis X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini There are three parts in the semantic analysis: 1) evaluating expressions. This is done as a simple visit of the Expr nodes. 2) ordering clauses. This is done by constructing a graph of variables. There is an edge from X to Y if Y depends on X, if X selects Y, or if X appears in a conditional selection of Y; in other words, if the value of X can affect the value of Y. Each clause has a "destination" variable whose value can be affected by the clause, and clauses will be processed according to a topological sorting of their destination variables. Defaults are processed after all other clauses with the same destination. 3) deriving the value of the variables. This is done by processing the clauses in the topological order provided by the previous step. A "depends on" clause will force a variable to False, a "select" clause will force a variable to True, an assignment will force a variable to its RHS. A default will set a variable to its RHS if it has not been set before. Because all variables have a default, after visiting all clauses all variables will have been set. Signed-off-by: Paolo Bonzini --- scripts/minikconf.py | 129 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 124 insertions(+), 5 deletions(-) diff --git a/scripts/minikconf.py b/scripts/minikconf.py index f1851c3570..1697dd653f 100644 --- a/scripts/minikconf.py +++ b/scripts/minikconf.py @@ -15,6 +15,10 @@ import sys __all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ] +def debug_print(*args): + #print ' '.join(str(x) for x in args) + pass + # ------------------------------------------- # KconfigData implements the Kconfig semantics. For now it can only # detect undefined symbols, i.e. symbols that were referenced in @@ -34,6 +38,12 @@ class KconfigData: def __invert__(self): return KconfigData.NOT(self) + # Abstract methods + def add_edges_to(self, var): + pass + def evaluate(self): + assert False + class AND(Expr): def __init__(self, lhs, rhs): self.lhs = lhs @@ -41,6 +51,12 @@ class KconfigData: def __str__(self): return "(%s && %s)" % (self.lhs, self.rhs) + def add_edges_to(self, var): + self.lhs.add_edges_to(var) + self.rhs.add_edges_to(var) + def evaluate(self): + return self.lhs.evaluate() and self.rhs.evaluate() + class OR(Expr): def __init__(self, lhs, rhs): self.lhs = lhs @@ -48,22 +64,62 @@ class KconfigData: def __str__(self): return "(%s || %s)" % (self.lhs, self.rhs) + def add_edges_to(self, var): + self.lhs.add_edges_to(var) + self.rhs.add_edges_to(var) + def evaluate(self): + return self.lhs.evaluate() or self.rhs.evaluate() + class NOT(Expr): def __init__(self, lhs): self.lhs = lhs def __str__(self): return "!%s" % (self.lhs) + def add_edges_to(self, var): + self.lhs.add_edges_to(var) + def evaluate(self): + return not self.lhs.evaluate() + class Var(Expr): def __init__(self, name): self.name = name self.value = None + self.outgoing = set() def __str__(self): return self.name + def has_value(self): + return not (self.value is None) + def set_value(self, val): + if self.has_value() and self.value != val: + raise Exception('contradiction between clauses when setting %s' % self) + debug_print("=> %s is now %s" % (self.name, val)) + self.value = val + + # depth first search of the dependency graph + def dfs(self, visited, f): + if self in visited: + return + visited.add(self) + for v in self.outgoing: + v.dfs(visited, f) + f(self) + + def add_edges_to(self, var): + self.outgoing.add(var) + def evaluate(self): + if not self.has_value(): + raise Exception('cycle found including %s' % self) + return self.value + class Clause: def __init__(self, dest): self.dest = dest + def priority(self): + return 0 + def process(self): + pass class AssignmentClause(Clause): def __init__(self, dest, value): @@ -72,11 +128,16 @@ class KconfigData: def __str__(self): return "%s=%s" % (self.dest, 'y' if self.value else 'n') + def process(self): + self.dest.set_value(self.value) + class DefaultClause(Clause): def __init__(self, dest, value, cond=None): KconfigData.Clause.__init__(self, dest) self.value = value self.cond = cond + if not (self.cond is None): + self.cond.add_edges_to(self.dest) def __str__(self): value = 'y' if self.value else 'n' if self.cond is None: @@ -84,20 +145,38 @@ class KconfigData: else: return "config %s default %s if %s" % (self.dest, value, self.cond) + def priority(self): + # Defaults are processed just before leaving the variable + return -1 + def process(self): + if not self.dest.has_value() and \ + (self.cond is None or self.cond.evaluate()): + self.dest.set_value(self.value) + class DependsOnClause(Clause): def __init__(self, dest, expr): KconfigData.Clause.__init__(self, dest) self.expr = expr + self.expr.add_edges_to(self.dest) def __str__(self): return "config %s depends on %s" % (self.dest, self.expr) + def process(self): + if not self.expr.evaluate(): + self.dest.set_value(False) + class SelectClause(Clause): def __init__(self, dest, cond): KconfigData.Clause.__init__(self, dest) self.cond = cond + self.cond.add_edges_to(self.dest) def __str__(self): return "select %s if %s" % (self.dest, self.cond) + def process(self): + if self.cond.evaluate(): + self.dest.set_value(True) + def __init__(self): self.previously_included = [] self.incl_info = None @@ -115,6 +194,50 @@ class KconfigData: undef = True return undef + def compute_config(self): + if self.check_undefined(): + raise Exception(parser, "there were undefined symbols") + return None + + debug_print("Input:") + for clause in self.clauses: + debug_print(clause) + + debug_print("\nDependency graph:") + for i in self.referenced_vars: + debug_print(i, "->", [str(x) for x in self.referenced_vars[i].outgoing]) + + # The reverse of the depth-first order is the topological sort + dfo = dict() + visited = set() + debug_print("\n") + def visit_fn(var): + debug_print(var, "has DFS number", len(dfo)) + dfo[var] = len(dfo) + + for name in self.referenced_vars: + v = self.referenced_vars[name] + v.dfs(visited, visit_fn) + + # Put higher DFS numbers and higher priorities first. This + # places the clauses in topological order and places defaults + # after assignments and dependencies. + self.clauses.sort(key=lambda x: (-dfo[x.dest], -x.priority())) + + debug_print("\nSorted clauses:") + for clause in self.clauses: + debug_print(clause) + clause.process() + + debug_print("") + values = dict() + for name in self.referenced_vars: + debug_print("Evaluating", name) + v = self.referenced_vars[name] + values[name] = v.evaluate() + + return values + # semantic actions ------------- def do_declaration(self, var): @@ -190,9 +313,6 @@ class KconfigParser: data = KconfigData() parser = KconfigParser(data) parser.parse_file(fp) - if data.check_undefined(): - raise KconfigParserError(parser, "there were undefined symbols") - return data def __init__(self, data): @@ -501,5 +621,4 @@ class KconfigParser: if __name__ == '__main__': fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test' data = KconfigParser.parse(open(fname, 'r')) - for i in data.clauses: - print i + print data.compute_config() From patchwork Thu Dec 27 06:34:00 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743487 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 620A21708 for ; Thu, 27 Dec 2018 06:45:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 511102843B for ; Thu, 27 Dec 2018 06:45:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 44EF3287C6; Thu, 27 Dec 2018 06:45:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 390DF285B0 for ; Thu, 27 Dec 2018 06:45:22 +0000 (UTC) Received: from localhost ([127.0.0.1]:49790 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPQ1-00072F-BG for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:45:21 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54814) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGd-0003F1-4d for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGN-0004Jm-7I for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:28 -0500 Received: from mga11.intel.com ([192.55.52.93]:57858) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGM-0004B3-Os for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:23 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:07 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617285" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:06 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:00 +0800 Message-Id: <20181227063419.12981-7-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 06/25] hw/display: make edid configurable X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Use CONFIG_EDID to make edid-generate.c and edid-region.c configurable. Signed-off-by: Yang Zhong Reviewed-by: Thomas Huth --- default-configs/pci.mak | 1 + hw/display/Makefile.objs | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/default-configs/pci.mak b/default-configs/pci.mak index 6c7be12779..171bdf48bc 100644 --- a/default-configs/pci.mak +++ b/default-configs/pci.mak @@ -47,3 +47,4 @@ CONFIG_VGA_PCI=y CONFIG_BOCHS_DISPLAY=y CONFIG_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM) CONFIG_ROCKER=y +CONFIG_EDID=y diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs index 97acd5b6cb..a8e23c8501 100644 --- a/hw/display/Makefile.objs +++ b/hw/display/Makefile.objs @@ -1,4 +1,4 @@ -common-obj-y += edid-generate.o +common-obj-$(CONFIG_EDID) += edid-generate.o edid-region.o common-obj-$(CONFIG_FW_CFG_DMA) += ramfb.o common-obj-$(CONFIG_FW_CFG_DMA) += ramfb-standalone.o @@ -15,12 +15,10 @@ common-obj-$(CONFIG_SSD0323) += ssd0323.o common-obj-$(CONFIG_XEN) += xenfb.o common-obj-$(CONFIG_VGA_PCI) += vga-pci.o -common-obj-$(CONFIG_VGA_PCI) += edid-region.o common-obj-$(CONFIG_VGA_ISA) += vga-isa.o common-obj-$(CONFIG_VGA_ISA_MM) += vga-isa-mm.o common-obj-$(CONFIG_VMWARE_VGA) += vmware_vga.o common-obj-$(CONFIG_BOCHS_DISPLAY) += bochs-display.o -common-obj-$(CONFIG_BOCHS_DISPLAY) += edid-region.o common-obj-$(CONFIG_BLIZZARD) += blizzard.o common-obj-$(CONFIG_EXYNOS4) += exynos4210_fimd.o From patchwork Thu Dec 27 06:34:01 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743477 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id EA1A1746 for ; Thu, 27 Dec 2018 06:40:24 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D62C0284D2 for ; Thu, 27 Dec 2018 06:40:24 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id CA59B2882A; Thu, 27 Dec 2018 06:40:24 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=ham version=3.3.1 Received: from listsout.gnu.org (listsout.gnu.org [209.51.188.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id B933A288BF for ; Thu, 27 Dec 2018 06:40:11 +0000 (UTC) Received: from localhost ([127.0.0.1]:49735 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPL0-0008SW-Kn for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:40:10 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54816) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGd-0003F4-4j for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGN-0004LB-Ki for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:30 -0500 Received: from mga11.intel.com ([192.55.52.93]:57867) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGN-0004Bd-6S for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:23 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:10 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617292" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:08 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:01 +0800 Message-Id: <20181227063419.12981-8-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 07/25] kconfig: introduce kconfig files X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini The Kconfig files were generated mostly with this script: for i in `grep -ho CONFIG_[A-Z0-9_]* default-configs/* | sort -u`; do set fnord `git grep -lw $i -- 'hw/*/Makefile.objs' ` shift if test $# = 1; then cat >> $(dirname $1)/Kconfig << EOF config ${i#CONFIG_} bool EOF git add $(dirname $1)/Kconfig else echo $i $* fi done sed -i '$d' hw/*/Kconfig for i in hw/*; do if test -d $i && ! test -f $i/Kconfig; then touch $i/Kconfig git add $i/Kconfig fi done Whenever a symbol is referenced from multiple subdirectories, the script prints the list of directories that reference the symbol. These symbols have to be added manually to the Kconfig files. Kconfig.host and hw/Kconfig were created manually. Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong Acked-by: Thomas Huth --- Kconfig.host | 17 ++++++++ hw/9pfs/Kconfig | 2 + hw/Kconfig | 48 ++++++++++++++++++++++ hw/acpi/Kconfig | 23 +++++++++++ hw/adc/Kconfig | 2 + hw/audio/Kconfig | 35 ++++++++++++++++ hw/block/Kconfig | 29 ++++++++++++++ hw/bt/Kconfig | 2 + hw/char/Kconfig | 32 +++++++++++++++ hw/core/Kconfig | 11 ++++++ hw/cpu/Kconfig | 8 ++++ hw/display/Kconfig | 77 ++++++++++++++++++++++++++++++++++++ hw/dma/Kconfig | 20 ++++++++++ hw/gpio/Kconfig | 8 ++++ hw/hyperv/Kconfig | 5 +++ hw/i2c/Kconfig | 20 ++++++++++ hw/i386/Kconfig | 23 +++++++++++ hw/ide/Kconfig | 35 ++++++++++++++++ hw/input/Kconfig | 23 +++++++++++ hw/intc/Kconfig | 47 ++++++++++++++++++++++ hw/ipack/Kconfig | 2 + hw/ipmi/Kconfig | 14 +++++++ hw/isa/Kconfig | 23 +++++++++++ hw/mem/Kconfig | 8 ++++ hw/misc/Kconfig | 92 +++++++++++++++++++++++++++++++++++++++++++ hw/misc/macio/Kconfig | 11 ++++++ hw/net/Kconfig | 92 +++++++++++++++++++++++++++++++++++++++++++ hw/nvram/Kconfig | 8 ++++ hw/pci-bridge/Kconfig | 20 ++++++++++ hw/pci-host/Kconfig | 35 ++++++++++++++++ hw/pci/Kconfig | 2 + hw/pcmcia/Kconfig | 2 + hw/scsi/Kconfig | 29 ++++++++++++++ hw/sd/Kconfig | 11 ++++++ hw/smbios/Kconfig | 2 + hw/ssi/Kconfig | 14 +++++++ hw/timer/Kconfig | 53 +++++++++++++++++++++++++ hw/tpm/Kconfig | 14 +++++++ hw/usb/Kconfig | 53 +++++++++++++++++++++++++ hw/vfio/Kconfig | 11 ++++++ hw/virtio/Kconfig | 17 ++++++++ hw/watchdog/Kconfig | 11 ++++++ 42 files changed, 991 insertions(+) create mode 100644 Kconfig.host create mode 100644 hw/9pfs/Kconfig create mode 100644 hw/Kconfig create mode 100644 hw/acpi/Kconfig create mode 100644 hw/adc/Kconfig create mode 100644 hw/audio/Kconfig create mode 100644 hw/block/Kconfig create mode 100644 hw/bt/Kconfig create mode 100644 hw/char/Kconfig create mode 100644 hw/core/Kconfig create mode 100644 hw/cpu/Kconfig create mode 100644 hw/display/Kconfig create mode 100644 hw/dma/Kconfig create mode 100644 hw/gpio/Kconfig create mode 100644 hw/hyperv/Kconfig create mode 100644 hw/i2c/Kconfig create mode 100644 hw/i386/Kconfig create mode 100644 hw/ide/Kconfig create mode 100644 hw/input/Kconfig create mode 100644 hw/intc/Kconfig create mode 100644 hw/ipack/Kconfig create mode 100644 hw/ipmi/Kconfig create mode 100644 hw/isa/Kconfig create mode 100644 hw/mem/Kconfig create mode 100644 hw/misc/Kconfig create mode 100644 hw/misc/macio/Kconfig create mode 100644 hw/net/Kconfig create mode 100644 hw/nvram/Kconfig create mode 100644 hw/pci-bridge/Kconfig create mode 100644 hw/pci-host/Kconfig create mode 100644 hw/pci/Kconfig create mode 100644 hw/pcmcia/Kconfig create mode 100644 hw/scsi/Kconfig create mode 100644 hw/sd/Kconfig create mode 100644 hw/smbios/Kconfig create mode 100644 hw/ssi/Kconfig create mode 100644 hw/timer/Kconfig create mode 100644 hw/tpm/Kconfig create mode 100644 hw/usb/Kconfig create mode 100644 hw/vfio/Kconfig create mode 100644 hw/virtio/Kconfig create mode 100644 hw/watchdog/Kconfig diff --git a/Kconfig.host b/Kconfig.host new file mode 100644 index 0000000000..2136a4c3ec --- /dev/null +++ b/Kconfig.host @@ -0,0 +1,17 @@ +# These are "proxy" symbols used to pass config-host.mak values +# down to Kconfig. + +config KVM + bool + +config OPENGL + bool + +config SPICE + bool + +config TPM + bool + +config XEN + bool diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig new file mode 100644 index 0000000000..a4750999d9 --- /dev/null +++ b/hw/9pfs/Kconfig @@ -0,0 +1,2 @@ +config VIRTIO_9P + bool diff --git a/hw/Kconfig b/hw/Kconfig new file mode 100644 index 0000000000..b27290d332 --- /dev/null +++ b/hw/Kconfig @@ -0,0 +1,48 @@ +# devices Kconfig +source 9pfs/Kconfig +source acpi/Kconfig +source audio/Kconfig +source block/Kconfig +source bt/Kconfig +source char/Kconfig +source core/Kconfig +source display/Kconfig +source dma/Kconfig +source gpio/Kconfig +source i2c/Kconfig +source ide/Kconfig +source input/Kconfig +source intc/Kconfig +source ipack/Kconfig +source isa/Kconfig +source mem/Kconfig +source misc/Kconfig +source net/Kconfig +source nvram/Kconfig +source pci-bridge/Kconfig +source pci-host/Kconfig +source pci/Kconfig +source scsi/Kconfig +source sd/Kconfig +source ssi/Kconfig +source timer/Kconfig +source tpm/Kconfig +source usb/Kconfig +source virtio/Kconfig +source watchdog/Kconfig +source smbios/Kconfig +source ipmi/Kconfig +source vfio/Kconfig +source adc/Kconfig +source pcmcia/Kconfig +source hyperv/Kconfig + +# arch Kconfig +source i386/Kconfig + +# Symbols used by multiple targets +config XILINX + bool + +config XILINX_AXI + bool diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig new file mode 100644 index 0000000000..2f4871c10a --- /dev/null +++ b/hw/acpi/Kconfig @@ -0,0 +1,23 @@ +config ACPI + bool + +config ACPI_X86 + bool + +config ACPI_X86_ICH + bool + +config ACPI_CPU_HOTPLUG + bool + +config ACPI_MEMORY_HOTPLUG + bool + +config ACPI_NVDIMM + bool + +config ACPI_VMGENID + bool + +config IPMI + bool diff --git a/hw/adc/Kconfig b/hw/adc/Kconfig new file mode 100644 index 0000000000..25d2229fb8 --- /dev/null +++ b/hw/adc/Kconfig @@ -0,0 +1,2 @@ +config STM32F2XX_ADC + bool diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig new file mode 100644 index 0000000000..207baee6e1 --- /dev/null +++ b/hw/audio/Kconfig @@ -0,0 +1,35 @@ +config SB16 + bool + +config ES1370 + bool + +config AC97 + bool + +config ADLIB + bool + +config GUS + bool + +config CS4231A + bool + +config HDA + bool + +config PCSPK + bool + +config WM8750 + bool + +config PL041 + bool + +config CS4231 + bool + +config MARVELL_88W8618 + bool diff --git a/hw/block/Kconfig b/hw/block/Kconfig new file mode 100644 index 0000000000..9d418bce4d --- /dev/null +++ b/hw/block/Kconfig @@ -0,0 +1,29 @@ +config FDC + bool + +config SSI_M25P80 + bool + +config NAND + bool + +config PFLASH_CFI01 + bool + +config PFLASH_CFI02 + bool + +config ECC + bool + +config ONENAND + bool + +config NVME_PCI + bool + +config VIRTIO_BLK + bool + +config VHOST_USER_BLK + bool diff --git a/hw/bt/Kconfig b/hw/bt/Kconfig new file mode 100644 index 0000000000..554a9ee75e --- /dev/null +++ b/hw/bt/Kconfig @@ -0,0 +1,2 @@ +config BLUETOOTH + bool diff --git a/hw/char/Kconfig b/hw/char/Kconfig new file mode 100644 index 0000000000..26c13243cf --- /dev/null +++ b/hw/char/Kconfig @@ -0,0 +1,32 @@ +config ESCC + bool + +config PARALLEL + bool + +config PL011 + bool + +config SERIAL + bool + +config SERIAL_ISA + bool + +config SERIAL_PCI + bool + +config VIRTIO_SERIAL + bool + +config STM32F2XX_USART + bool + +config CMSDK_APB_UART + bool + +config SCLPCONSOLE + bool + +config TERMINAL3270 + bool diff --git a/hw/core/Kconfig b/hw/core/Kconfig new file mode 100644 index 0000000000..c2a1ae8122 --- /dev/null +++ b/hw/core/Kconfig @@ -0,0 +1,11 @@ +config EMPTY_SLOT + bool + +config PTIMER + bool + +config FITLOADER + bool + +config PLATFORM_BUS + bool diff --git a/hw/cpu/Kconfig b/hw/cpu/Kconfig new file mode 100644 index 0000000000..1767d028ac --- /dev/null +++ b/hw/cpu/Kconfig @@ -0,0 +1,8 @@ +config ARM11MPCORE + bool + +config A9MPCORE + bool + +config A15MPCORE + bool diff --git a/hw/display/Kconfig b/hw/display/Kconfig new file mode 100644 index 0000000000..d5c022c886 --- /dev/null +++ b/hw/display/Kconfig @@ -0,0 +1,77 @@ +config EDID + bool + +config FW_CFG_DMA + bool + +config ADS7846 + bool + +config VGA_CIRRUS + bool + +config G364FB + bool + +config JAZZ_LED + bool + +config PL110 + bool + +config SII9022 + bool + +config SSD0303 + bool + +config SSD0323 + bool + +config VGA_PCI + bool + +config VGA_ISA + bool + +config VGA_ISA_MM + bool + +config VMWARE_VGA + bool + +config BOCHS_DISPLAY + bool + +config BLIZZARD + bool + +config FRAMEBUFFER + bool + +config MILKYMIST_TMU2 + bool + +config SM501 + bool + +config TCX + bool + +config CG3 + bool + +config VGA + bool + +config QXL + bool + +config VIRTIO_GPU + bool + +config VIRTIO_VGA + bool + +config DPCD + bool diff --git a/hw/dma/Kconfig b/hw/dma/Kconfig new file mode 100644 index 0000000000..b9ce1c58c4 --- /dev/null +++ b/hw/dma/Kconfig @@ -0,0 +1,20 @@ +config RC4030 + bool + +config PL080 + bool + +config PL330 + bool + +config I82374 + bool + +config I8257 + bool + +config ZYNQ_DEVCFG + bool + +config STP2000 + bool diff --git a/hw/gpio/Kconfig b/hw/gpio/Kconfig new file mode 100644 index 0000000000..d0a4abf93f --- /dev/null +++ b/hw/gpio/Kconfig @@ -0,0 +1,8 @@ +config MAX7310 + bool + +config PL061 + bool + +config GPIO_KEY + bool diff --git a/hw/hyperv/Kconfig b/hw/hyperv/Kconfig new file mode 100644 index 0000000000..be724b7f8b --- /dev/null +++ b/hw/hyperv/Kconfig @@ -0,0 +1,5 @@ +config HYPERV + bool + +config HYPERV_TESTDEV + bool diff --git a/hw/i2c/Kconfig b/hw/i2c/Kconfig new file mode 100644 index 0000000000..d6d4402608 --- /dev/null +++ b/hw/i2c/Kconfig @@ -0,0 +1,20 @@ +config I2C + bool + +config SMBUS_EEPROM + bool + +config DDC + bool + +config VERSATILE_I2C + bool + +config ACPI_SMBUS + bool + +config BITBANG_I2C + bool + +config IMX_I2C + bool diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig new file mode 100644 index 0000000000..2dbe2b5d3e --- /dev/null +++ b/hw/i386/Kconfig @@ -0,0 +1,23 @@ +config KVM + bool + +config I440FX + bool + +config ISAPC + bool + +config Q35 + bool + +config VTD + bool + +config AMD_IOMMU + bool + +config VMPORT + bool + +config VMMOUSE + bool diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig new file mode 100644 index 0000000000..5ec449525f --- /dev/null +++ b/hw/ide/Kconfig @@ -0,0 +1,35 @@ +config IDE_CORE + bool + +config IDE_QDEV + bool + +config IDE_PCI + bool + +config IDE_ISA + bool + +config IDE_PIIX + bool + +config IDE_CMD646 + bool + +config IDE_MACIO + bool + +config IDE_MMIO + bool + +config IDE_VIA + bool + +config MICRODRIVE + bool + +config AHCI + bool + +config IDE_SII3112 + bool diff --git a/hw/input/Kconfig b/hw/input/Kconfig new file mode 100644 index 0000000000..91bae47498 --- /dev/null +++ b/hw/input/Kconfig @@ -0,0 +1,23 @@ +config ADB + bool + +config LM832X + bool + +config PCKBD + bool + +config PL050 + bool + +config STELLARIS_INPUT + bool + +config TSC2005 + bool + +config VIRTIO_INPUT + bool + +config TSC210X + bool diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig new file mode 100644 index 0000000000..69adbd135f --- /dev/null +++ b/hw/intc/Kconfig @@ -0,0 +1,47 @@ +config HEATHROW_PIC + bool + +config I8259 + bool + +config PL190 + bool + +config IOAPIC + bool + +config ARM_GIC + bool + +config OPENPIC + bool + +config APIC + bool + +config ARM_GIC_KVM + bool + +config OPENPIC_KVM + bool + +config XICS + bool + +config XICS_SPAPR + bool + +config XICS_KVM + bool + +config ALLWINNER_A10_PIC + bool + +config S390_FLIC + bool + +config S390_FLIC_KVM + bool + +config OMPIC + bool diff --git a/hw/ipack/Kconfig b/hw/ipack/Kconfig new file mode 100644 index 0000000000..481e0d2e64 --- /dev/null +++ b/hw/ipack/Kconfig @@ -0,0 +1,2 @@ +config IPACK + bool diff --git a/hw/ipmi/Kconfig b/hw/ipmi/Kconfig new file mode 100644 index 0000000000..68f8ba1a54 --- /dev/null +++ b/hw/ipmi/Kconfig @@ -0,0 +1,14 @@ +config IPMI + bool + +config IPMI_LOCAL + bool + +config IPMI_EXTERN + bool + +config ISA_IPMI_KCS + bool + +config ISA_IPMI_BT + bool diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig new file mode 100644 index 0000000000..b59d074453 --- /dev/null +++ b/hw/isa/Kconfig @@ -0,0 +1,23 @@ +config ISA_BUS + bool + +config APM + bool + +config I82378 + bool + +config PC87312 + bool + +config PIIX4 + bool + +config VT82C686 + bool + +config SMC37C669 + bool + +config LPC_ICH9 + bool diff --git a/hw/mem/Kconfig b/hw/mem/Kconfig new file mode 100644 index 0000000000..a3a4372fa7 --- /dev/null +++ b/hw/mem/Kconfig @@ -0,0 +1,8 @@ +config DIMM + bool + +config MEM_DEVICE + bool + +config NVDIMM + bool diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig new file mode 100644 index 0000000000..c006b046d4 --- /dev/null +++ b/hw/misc/Kconfig @@ -0,0 +1,92 @@ +config APPLESMC + bool + +config MAX111X + bool + +config TMP105 + bool + +config TMP421 + bool + +config ISA_DEBUG + bool + +config SGA + bool + +config ISA_TESTDEV + bool + +config PCI_TESTDEV + bool + +config EDU + bool + +config PCA9552 + bool + +config PL310 + bool + +config INTEGRATOR_DEBUG + bool + +config A9SCU + bool + +config ARM11SCU + bool + +config MOS6522 + bool + +config MACIO + bool + +config IVSHMEM_DEVICE + bool + +config ECCMEMCTL + bool + +config IMX + bool + +config STM32F2XX_SYSCFG + bool + +config MIPS_ITU + bool + +config MPS2_FPGAIO + bool + +config MPS2_SCC + bool + +config TZ_MPC + bool + +config TZ_MSC + bool + +config TZ_PPC + bool + +config IOTKIT_SECCTL + bool + +config IOTKIT_SYSCTL + bool + +config IOTKIT_SYSINFO + bool + +config PVPANIC + bool + +config AUX + bool diff --git a/hw/misc/macio/Kconfig b/hw/misc/macio/Kconfig new file mode 100644 index 0000000000..c6caeb672f --- /dev/null +++ b/hw/misc/macio/Kconfig @@ -0,0 +1,11 @@ +config CUDA + bool + +config MAC_PMU + bool + +config MAC_DBDMA + bool + +config MACIO_GPIO + bool diff --git a/hw/net/Kconfig b/hw/net/Kconfig new file mode 100644 index 0000000000..6b2ec971b5 --- /dev/null +++ b/hw/net/Kconfig @@ -0,0 +1,92 @@ +config DP8393X + bool + +config NE2000_PCI + bool + +config EEPRO100_PCI + bool + +config PCNET_PCI + bool + +config PCNET_COMMON + bool + +config E1000_PCI + bool + +config E1000E_PCI + bool + +config RTL8139_PCI + bool + +config VMXNET3_PCI + bool + +config SMC91C111 + bool + +config LAN9118 + bool + +config NE2000_ISA + bool + +config OPENCORES_ETH + bool + +config XGMAC + bool + +config MIPSNET + bool + +config ALLWINNER_EMAC + bool + +config IMX_FEC + bool + +config CADENCE + bool + +config STELLARIS_ENET + bool + +config LANCE + bool + +config SUNHME + bool + +config FTGMAC100 + bool + +config SUNGEM + bool + +config COLDFIRE + bool + +config XILINX_ETHLITE + bool + +config VIRTIO_NET + bool + +config ETSEC + bool + +config ROCKER + bool + +config CAN_BUS + bool + +config CAN_PCI + bool + +config CAN_SJA1000 + bool diff --git a/hw/nvram/Kconfig b/hw/nvram/Kconfig new file mode 100644 index 0000000000..1f5ec95d8b --- /dev/null +++ b/hw/nvram/Kconfig @@ -0,0 +1,8 @@ +config DS1225Y + bool + +config AT24C + bool + +config MAC_NVRAM + bool diff --git a/hw/pci-bridge/Kconfig b/hw/pci-bridge/Kconfig new file mode 100644 index 0000000000..bb19b7aac1 --- /dev/null +++ b/hw/pci-bridge/Kconfig @@ -0,0 +1,20 @@ +config PCIE_PORT + bool + +config PXB + bool + +config XIO3130 + bool + +config IOH3420 + bool + +config I82801B11 + bool + +config DEC_PCI + bool + +config SIMBA + bool diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig new file mode 100644 index 0000000000..359df1d239 --- /dev/null +++ b/hw/pci-host/Kconfig @@ -0,0 +1,35 @@ +config PAM + bool + +config PREP_PCI + bool + +config GRACKLE_PCI + bool + +config UNIN_PCI + bool + +config PPCE500_PCI + bool + +config VERSATILE_PCI + bool + +config PCI_SABRE + bool + +config PCI_PIIX + bool + +config PCI_Q35 + bool + +config PCI_GENERIC + bool + +config PCI_XILINX + bool + +config PCI_DESIGNWARE + bool diff --git a/hw/pci/Kconfig b/hw/pci/Kconfig new file mode 100644 index 0000000000..d3d2205577 --- /dev/null +++ b/hw/pci/Kconfig @@ -0,0 +1,2 @@ +config PCI + bool diff --git a/hw/pcmcia/Kconfig b/hw/pcmcia/Kconfig new file mode 100644 index 0000000000..41f2df9136 --- /dev/null +++ b/hw/pcmcia/Kconfig @@ -0,0 +1,2 @@ +config PCMCIA + bool diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig new file mode 100644 index 0000000000..c48bf4e8d0 --- /dev/null +++ b/hw/scsi/Kconfig @@ -0,0 +1,29 @@ +config SCSI + bool + +config LSI_SCSI_PCI + bool + +config MPTSAS_SCSI_PCI + bool + +config MEGASAS_SCSI_PCI + bool + +config VMW_PVSCSI_SCSI_PCI + bool + +config ESP + bool + +config ESP_PCI + bool + +config PSERIES + bool + +config VIRTIO_SCSI + bool + +config VHOST_USER_SCSI + bool diff --git a/hw/sd/Kconfig b/hw/sd/Kconfig new file mode 100644 index 0000000000..4f43bbb352 --- /dev/null +++ b/hw/sd/Kconfig @@ -0,0 +1,11 @@ +config PL181 + bool + +config SSI_SD + bool + +config SD + bool + +config SDHCI + bool diff --git a/hw/smbios/Kconfig b/hw/smbios/Kconfig new file mode 100644 index 0000000000..553adf4bfc --- /dev/null +++ b/hw/smbios/Kconfig @@ -0,0 +1,2 @@ +config SMBIOS + bool diff --git a/hw/ssi/Kconfig b/hw/ssi/Kconfig new file mode 100644 index 0000000000..5a03110a8d --- /dev/null +++ b/hw/ssi/Kconfig @@ -0,0 +1,14 @@ +config PL022 + bool + +config SSI + bool + +config XILINX_SPI + bool + +config XILINX_SPIPS + bool + +config STM32F2XX_SPI + bool diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig new file mode 100644 index 0000000000..7dbc1211ab --- /dev/null +++ b/hw/timer/Kconfig @@ -0,0 +1,53 @@ +config ARM_TIMER + bool + +config ARM_MPTIMER + bool + +config A9_GTIMER + bool + +config DS1338 + bool + +config HPET + bool + +config I8254 + bool + +config M41T80 + bool + +config M48T59 + bool + +config PL031 + bool + +config TWL92230 + bool + +config XLNX_ZYNQMP + bool + +config ALTERA_TIMER + bool + +config MC146818RTC + bool + +config ALLWINNER_A10_PIT + bool + +config STM32F2XX_TIMER + bool + +config SUN4V_RTC + bool + +config CMSDK_APB_TIMER + bool + +config CMSDK_APB_DUALTIMER + bool diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig new file mode 100644 index 0000000000..2eee8eb865 --- /dev/null +++ b/hw/tpm/Kconfig @@ -0,0 +1,14 @@ +config TPM + bool + +config TPM_TIS + bool + +config TPM_CRB + bool + +config TPM_PASSTHROUGH + bool + +config TPM_EMULATOR + bool diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig new file mode 100644 index 0000000000..cbf5c5d761 --- /dev/null +++ b/hw/usb/Kconfig @@ -0,0 +1,53 @@ +config USB + bool + +config USB_UHCI + bool + +config USB_OHCI + bool + +config USB_EHCI + bool + +config USB_EHCI_SYSBUS + bool + +config USB_XHCI + bool + +config USB_XHCI_NEC + bool + +config USB_MUSB + bool + +config TUSB6010 + bool + +config USB_TABLET_WACOM + bool + +config USB_STORAGE_BOT + bool + +config USB_STORAGE_UAS + bool + +config USB_AUDIO + bool + +config USB_SERIAL + bool + +config USB_NETWORK + bool + +config USB_BLUETOOTH + bool + +config USB_SMARTCARD + bool + +config USB_STORAGE_MTP + bool diff --git a/hw/vfio/Kconfig b/hw/vfio/Kconfig new file mode 100644 index 0000000000..3cb7b25fe6 --- /dev/null +++ b/hw/vfio/Kconfig @@ -0,0 +1,11 @@ +config VFIO_CCW + bool + +config VFIO_XGMAC + bool + +config VFIO_AMD_XGBE + bool + +config VFIO_AP + bool diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig new file mode 100644 index 0000000000..ebf18124fb --- /dev/null +++ b/hw/virtio/Kconfig @@ -0,0 +1,17 @@ +config VIRTIO + bool + +config VIRTIO_RNG + bool + +config VIRTIO_PCI + bool + +config VIRTIO_MMIO + bool + +config VIRTIO_BALLOON + bool + +config VIRTIO_CRYPTO + bool diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig new file mode 100644 index 0000000000..cd0244f4e1 --- /dev/null +++ b/hw/watchdog/Kconfig @@ -0,0 +1,11 @@ +config CMSDK_APB_WATCHDOG + bool + +config WDT_IB6300ESB + bool + +config WDT_IB700 + bool + +config WDT_DIAG288 + bool From patchwork Thu Dec 27 06:34:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743507 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 29C9513AD for ; Thu, 27 Dec 2018 06:54:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 16794284C0 for ; Thu, 27 Dec 2018 06:54:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0ACA1287E7; Thu, 27 Dec 2018 06:54:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 14A54284C0 for ; Thu, 27 Dec 2018 06:54:13 +0000 (UTC) Received: from localhost ([127.0.0.1]:49861 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPYZ-0001Wx-O9 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:54:11 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54817) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGd-0003F9-4r for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGN-0004Ja-69 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:30 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGM-00041J-In for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:22 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:11 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617299" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:10 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:02 +0800 Message-Id: <20181227063419.12981-9-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 08/25] build: switch to Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini The make_device_config.sh script is replaced by minikconf, which is modified to support the same command line as its predecessor. The roots of the parsing are default-configs/*.mak, Kconfig.host and hw/Kconfig. One difference with make_device_config.sh is that all symbols have to be defined in a Kconfig file, including those coming from the configure script. This is the reason for the Kconfig.host file introduced in the previous patch. Whenever a file in default-configs/*.mak used $(...) to refer to a config-host.mak symbol, this is replaced by a Kconfig dependency. Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong --- Kconfig.host | 3 ++- Makefile | 14 +++++++++++-- Makefile.target | 7 ++++++- default-configs/i386-softmmu.mak | 3 --- hw/display/Kconfig | 2 ++ hw/i386/Kconfig | 6 ++++++ hw/intc/Kconfig | 8 ++++++++ hw/misc/Kconfig | 2 ++ hw/tpm/Kconfig | 1 + rules.mak | 2 +- scripts/make_device_config.sh | 30 --------------------------- scripts/minikconf.py | 35 +++++++++++++++++++++++++++++--- 12 files changed, 72 insertions(+), 41 deletions(-) delete mode 100644 scripts/make_device_config.sh diff --git a/Kconfig.host b/Kconfig.host index 2136a4c3ec..d7f503d0ca 100644 --- a/Kconfig.host +++ b/Kconfig.host @@ -1,5 +1,6 @@ # These are "proxy" symbols used to pass config-host.mak values -# down to Kconfig. +# down to Kconfig. See also MINIKCONF_ARGS in the Makefile: +# these two need to be kept in sync. config KVM bool diff --git a/Makefile b/Makefile index f2947186a4..ccf3e3f5b3 100644 --- a/Makefile +++ b/Makefile @@ -382,9 +382,19 @@ endif -include $(SUBDIR_DEVICES_MAK_DEP) -%/config-devices.mak: default-configs/%.mak $(SRC_PATH)/scripts/make_device_config.sh +# This has to be kept in sync with Kconfig.host. +MINIKCONF_ARGS = \ + CONFIG_KVM=$(CONFIG_KVM) \ + CONFIG_SPICE=$(CONFIG_SPICE) \ + CONFIG_TPM=$(CONFIG_TPM) \ + CONFIG_XEN=$(CONFIG_XEN) \ + CONFIG_OPENGL=$(CONFIG_OPENGL) + +MINIKCONF = $(SHELL) $(SRC_PATH)/scripts/minikconf.sh + +%/config-devices.mak: default-configs/%-softmmu.mak Kconfig.host hw/Kconfig $(call quiet-command, \ - $(SHELL) $(SRC_PATH)/scripts/make_device_config.sh $< $*-config-devices.mak.d $@ > $@.tmp,"GEN","$@.tmp") + $(MINIKCONF) $@ $*-config-devices.mak.d $^ $(MINIKCONF_ARGS) > $@.tmp, " GEN $@.tmp") $(call quiet-command, if test -f $@; then \ if cmp -s $@.old $@; then \ mv $@.tmp $@; \ diff --git a/Makefile.target b/Makefile.target index 4d56298bbf..8c879b6088 100644 --- a/Makefile.target +++ b/Makefile.target @@ -4,9 +4,12 @@ BUILD_DIR?=$(CURDIR)/.. include ../config-host.mak include config-target.mak -include config-devices.mak include $(SRC_PATH)/rules.mak +ifdef CONFIG_SOFTMMU +include config-devices.mak +endif + $(call set-vpath, $(SRC_PATH):$(BUILD_DIR)) ifdef CONFIG_LINUX QEMU_CFLAGS += -I../linux-headers @@ -190,7 +193,9 @@ all-obj-$(CONFIG_USER_ONLY) += $(crypto-aes-obj-y) all-obj-$(CONFIG_SOFTMMU) += $(crypto-obj-y) all-obj-$(CONFIG_SOFTMMU) += $(io-obj-y) +ifdef CONFIG_SOFTMMU $(QEMU_PROG_BUILD): config-devices.mak +endif COMMON_LDADDS = ../libqemuutil.a diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index 65ef98be18..560250c998 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -4,7 +4,6 @@ include pci.mak include sound.mak include usb.mak include hyperv.mak -CONFIG_QXL=$(CONFIG_SPICE) CONFIG_VGA_ISA=y CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y @@ -37,8 +36,6 @@ CONFIG_HPET=y CONFIG_APPLESMC=y CONFIG_I8259=y CONFIG_PFLASH_CFI01=y -CONFIG_TPM_TIS=$(CONFIG_TPM) -CONFIG_TPM_CRB=$(CONFIG_TPM) CONFIG_MC146818RTC=y CONFIG_PCI_PIIX=y CONFIG_WDT_IB700=y diff --git a/hw/display/Kconfig b/hw/display/Kconfig index d5c022c886..132aeffdbe 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -51,6 +51,7 @@ config FRAMEBUFFER config MILKYMIST_TMU2 bool + depends on OPENGL config SM501 bool @@ -66,6 +67,7 @@ config VGA config QXL bool + depends on SPICE config VIRTIO_GPU bool diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index 2dbe2b5d3e..427bda3717 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -3,12 +3,18 @@ config KVM config I440FX bool + select QXL if SPICE + select TPM_TIS if TPM + select XEN_I386 if XEN config ISAPC bool config Q35 bool + select QXL if SPICE + select TPM_TIS if TPM + select XEN_I386 if XEN config VTD bool diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig index 69adbd135f..226ef3ae2e 100644 --- a/hw/intc/Kconfig +++ b/hw/intc/Kconfig @@ -21,9 +21,13 @@ config APIC config ARM_GIC_KVM bool + default y + depends on ARM_GIC && KVM config OPENPIC_KVM bool + default y + depends on OPENPIC && KVM config XICS bool @@ -33,6 +37,8 @@ config XICS_SPAPR config XICS_KVM bool + default y + depends on XICS && KVM config ALLWINNER_A10_PIC bool @@ -42,6 +48,8 @@ config S390_FLIC config S390_FLIC_KVM bool + default y + depends on S390_FLIC && KVM config OMPIC bool diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig index c006b046d4..cc8dbed24e 100644 --- a/hw/misc/Kconfig +++ b/hw/misc/Kconfig @@ -48,6 +48,8 @@ config MACIO config IVSHMEM_DEVICE bool + default y + depends on PCI config ECCMEMCTL bool diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig index 2eee8eb865..da4bb5b6c7 100644 --- a/hw/tpm/Kconfig +++ b/hw/tpm/Kconfig @@ -3,6 +3,7 @@ config TPM config TPM_TIS bool + depends on TPM config TPM_CRB bool diff --git a/rules.mak b/rules.mak index bbb2667928..2d4559a6ce 100644 --- a/rules.mak +++ b/rules.mak @@ -142,7 +142,7 @@ cc-option = $(if $(shell $(CC) $1 $2 -S -o /dev/null -xc /dev/null \ cc-c-option = $(if $(shell $(CC) $1 $2 -c -o /dev/null -xc /dev/null \ >/dev/null 2>&1 && echo OK), $2, $3) -VPATH_SUFFIXES = %.c %.h %.S %.cc %.cpp %.m %.mak %.texi %.sh %.rc +VPATH_SUFFIXES = %.c %.h %.S %.cc %.cpp %.m %.mak %.texi %.sh %.rc Kconfig% set-vpath = $(if $1,$(foreach PATTERN,$(VPATH_SUFFIXES),$(eval vpath $(PATTERN) $1))) # install-prog list, dir diff --git a/scripts/make_device_config.sh b/scripts/make_device_config.sh deleted file mode 100644 index 354af317b3..0000000000 --- a/scripts/make_device_config.sh +++ /dev/null @@ -1,30 +0,0 @@ -#! /bin/sh -# Writes a target device config file to stdout, from a default and from -# include directives therein. Also emits Makefile dependencies. -# -# Usage: make_device_config.sh SRC DEPFILE-NAME DEPFILE-TARGET > DEST - -src=$1 -dep=$2 -target=$3 -src_dir=$(dirname $src) -all_includes= - -process_includes () { - cat $1 | grep '^include' | \ - while read include file ; do - all_includes="$all_includes $src_dir/$file" - process_includes $src_dir/$file - done -} - -f=$src -while [ -n "$f" ] ; do - f=$(cat $f | tr -d '\r' | awk '/^include / {printf "'$src_dir'/%s ", $2}') - [ $? = 0 ] || exit 1 - all_includes="$all_includes $f" -done -process_includes $src - -cat $src $all_includes | grep -v '^include' -echo "$target: $all_includes" > $dep diff --git a/scripts/minikconf.py b/scripts/minikconf.py index 1697dd653f..a03e5ec55e 100644 --- a/scripts/minikconf.py +++ b/scripts/minikconf.py @@ -12,6 +12,7 @@ import os import sys +import re __all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ] @@ -331,6 +332,12 @@ class KconfigParser: self.get_token() self.parse_config() + def do_assignment(self, var, val): + if not var.startswith("CONFIG_"): + raise Error('assigned variable should start with CONFIG_') + var = self.data.do_var(var[7:]) + self.data.do_assignment(var, val) + # file management ----- def error_path(self): @@ -619,6 +626,28 @@ class KconfigParser: return None if __name__ == '__main__': - fname = len(sys.argv) > 1 and sys.argv[1] or 'Kconfig.test' - data = KconfigParser.parse(open(fname, 'r')) - print data.compute_config() + argv = sys.argv + if len(argv) == 1: + print >>sys.stderr, "%s: at least one argument is required" % argv[0] + os.exit(1) + + data = KconfigData() + parser = KconfigParser(data) + for arg in argv[3:]: + m = re.match(r'^(CONFIG_[A-Z0-9_]+)=([yn]?)$', arg) + if m is not None: + name, value = m.groups() + parser.do_assignment(name, value == 'y') + else: + fp = open(arg, 'r') + parser.parse_file(fp) + fp.close() + + config = data.compute_config() + for key in sorted(config.keys()): + print 'CONFIG_%s=%s'% (key, (config[key] and 'y' or 'n')) + + deps = open(argv[2], 'w') + for fname in data.previously_included: + print >>deps, '%s: %s' % (argv[1], fname) + deps.close() From patchwork Thu Dec 27 06:34:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743481 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 34534746 for ; Thu, 27 Dec 2018 06:42:31 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 238C4288CF for ; Thu, 27 Dec 2018 06:42:31 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 171AA288D0; Thu, 27 Dec 2018 06:42:31 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id C1A8E288B5 for ; Thu, 27 Dec 2018 06:42:30 +0000 (UTC) Received: from localhost ([127.0.0.1]:49758 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPNF-0002pf-Jf for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:42:29 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54771) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGQ-0002xE-IH for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGN-0004Lm-SS for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:26 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGN-00041J-Gc for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:23 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:13 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617303" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:12 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:03 +0800 Message-Id: <20181227063419.12981-10-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 09/25] ide: express dependencies with Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Signed-off-by: Paolo Bonzini --- default-configs/pci.mak | 3 --- hw/ide/Kconfig | 11 +++++++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/default-configs/pci.mak b/default-configs/pci.mak index 171bdf48bc..c1b64922b9 100644 --- a/default-configs/pci.mak +++ b/default-configs/pci.mak @@ -23,9 +23,6 @@ CONFIG_MPTSAS_SCSI_PCI=y CONFIG_RTL8139_PCI=y CONFIG_E1000_PCI=y CONFIG_E1000E_PCI=y -CONFIG_IDE_CORE=y -CONFIG_IDE_QDEV=y -CONFIG_IDE_PCI=y CONFIG_AHCI=y CONFIG_ESP=y CONFIG_ESP_PCI=y diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig index 5ec449525f..091f3a81c9 100644 --- a/hw/ide/Kconfig +++ b/hw/ide/Kconfig @@ -3,33 +3,44 @@ config IDE_CORE config IDE_QDEV bool + select IDE_CORE config IDE_PCI bool + select IDE_CORE config IDE_ISA bool + select IDE_QDEV config IDE_PIIX bool + select IDE_QDEV config IDE_CMD646 bool + select IDE_QDEV config IDE_MACIO bool + select IDE_QDEV config IDE_MMIO bool + select IDE_QDEV config IDE_VIA bool + select IDE_QDEV config MICRODRIVE bool + select IDE_QDEV config AHCI bool + select IDE_QDEV config IDE_SII3112 bool + select IDE_QDEV From patchwork Thu Dec 27 06:34:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743495 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 602DB924 for ; Thu, 27 Dec 2018 06:48:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4913D27FA8 for ; Thu, 27 Dec 2018 06:48:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 36D83281C3; Thu, 27 Dec 2018 06:48:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0A8A327FA8 for ; Thu, 27 Dec 2018 06:48:47 +0000 (UTC) Received: from localhost ([127.0.0.1]:49814 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPTK-0003PO-De for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:48:46 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54819) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGd-0003FC-4z for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGN-0004LZ-QO for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:30 -0500 Received: from mga11.intel.com ([192.55.52.93]:57858) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGN-0004B3-Fi for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:23 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617308" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:14 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:04 +0800 Message-Id: <20181227063419.12981-11-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 10/25] build: convert pci.mak to Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Instead of including the same list of devices for each target, set CONFIG_PCI to true, and make the devices default to present whenever PCI is available. Done mostly with the following script: while read i; do i=${i%=y}; i=${i#CONFIG_} sed -i -e'/^config '$i'$/!b' -en \ -e'a\' -e' default y\' -e' depends on PCI' \ `grep -lw $i hw/*/Kconfig` done < default-configs/pci.mak followed by replacing a few "depends on" clauses with "select" whenever the symbol is not really related to PCI. Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong --- default-configs/i386-softmmu.mak | 2 +- default-configs/pci.mak | 47 -------------------------------- hw/audio/Kconfig | 6 ++++ hw/block/Kconfig | 2 ++ hw/char/Kconfig | 2 ++ hw/display/Kconfig | 12 +++++++- hw/ide/Kconfig | 6 ++++ hw/ipack/Kconfig | 2 ++ hw/misc/Kconfig | 4 +++ hw/net/Kconfig | 19 +++++++++++++ hw/scsi/Kconfig | 11 ++++++++ hw/sd/Kconfig | 3 ++ hw/usb/Kconfig | 10 +++++++ hw/virtio/Kconfig | 3 ++ hw/watchdog/Kconfig | 2 ++ 15 files changed, 82 insertions(+), 49 deletions(-) delete mode 100644 default-configs/pci.mak diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index 560250c998..61f19e5231 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,6 +1,6 @@ # Default configuration for i386-softmmu -include pci.mak +CONFIG_PCI=y include sound.mak include usb.mak include hyperv.mak diff --git a/default-configs/pci.mak b/default-configs/pci.mak deleted file mode 100644 index c1b64922b9..0000000000 --- a/default-configs/pci.mak +++ /dev/null @@ -1,47 +0,0 @@ -CONFIG_PCI=y -# For now, CONFIG_IDE_CORE requires ISA, so we enable it here -CONFIG_ISA_BUS=y -CONFIG_VIRTIO_PCI=y -include virtio.mak -CONFIG_USB_UHCI=y -CONFIG_USB_OHCI=y -CONFIG_USB_EHCI=y -CONFIG_USB_XHCI=y -CONFIG_USB_XHCI_NEC=y -CONFIG_NE2000_PCI=y -CONFIG_EEPRO100_PCI=y -CONFIG_PCNET_PCI=y -CONFIG_PCNET_COMMON=y -CONFIG_AC97=y -CONFIG_HDA=y -CONFIG_ES1370=y -CONFIG_SCSI=y -CONFIG_LSI_SCSI_PCI=y -CONFIG_VMW_PVSCSI_SCSI_PCI=y -CONFIG_MEGASAS_SCSI_PCI=y -CONFIG_MPTSAS_SCSI_PCI=y -CONFIG_RTL8139_PCI=y -CONFIG_E1000_PCI=y -CONFIG_E1000E_PCI=y -CONFIG_AHCI=y -CONFIG_ESP=y -CONFIG_ESP_PCI=y -CONFIG_SERIAL=y -CONFIG_SERIAL_ISA=y -CONFIG_SERIAL_PCI=y -CONFIG_CAN_BUS=y -CONFIG_CAN_SJA1000=y -CONFIG_CAN_PCI=y -CONFIG_IPACK=y -CONFIG_WDT_IB6300ESB=y -CONFIG_PCI_TESTDEV=y -CONFIG_NVME_PCI=y -CONFIG_SD=y -CONFIG_SDHCI=y -CONFIG_EDU=y -CONFIG_VGA=y -CONFIG_VGA_PCI=y -CONFIG_BOCHS_DISPLAY=y -CONFIG_IVSHMEM_DEVICE=$(CONFIG_IVSHMEM) -CONFIG_ROCKER=y -CONFIG_EDID=y diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig index 207baee6e1..af34bbcf0c 100644 --- a/hw/audio/Kconfig +++ b/hw/audio/Kconfig @@ -3,9 +3,13 @@ config SB16 config ES1370 bool + default y + depends on PCI config AC97 bool + default y + depends on PCI config ADLIB bool @@ -18,6 +22,8 @@ config CS4231A config HDA bool + default y + depends on PCI config PCSPK bool diff --git a/hw/block/Kconfig b/hw/block/Kconfig index 9d418bce4d..3710434436 100644 --- a/hw/block/Kconfig +++ b/hw/block/Kconfig @@ -21,6 +21,8 @@ config ONENAND config NVME_PCI bool + default y + depends on PCI config VIRTIO_BLK bool diff --git a/hw/char/Kconfig b/hw/char/Kconfig index 26c13243cf..1ed6f0dbce 100644 --- a/hw/char/Kconfig +++ b/hw/char/Kconfig @@ -15,6 +15,8 @@ config SERIAL_ISA config SERIAL_PCI bool + default y + depends on PCI config VIRTIO_SERIAL bool diff --git a/hw/display/Kconfig b/hw/display/Kconfig index 132aeffdbe..5e73277cc2 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -30,6 +30,9 @@ config SSD0323 config VGA_PCI bool + default y + depends on PCI + select VGA config VGA_ISA bool @@ -39,9 +42,15 @@ config VGA_ISA_MM config VMWARE_VGA bool + default y + depends on PCI + select VGA config BOCHS_DISPLAY bool + default y + depends on PCI + select VGA config BLIZZARD bool @@ -67,7 +76,8 @@ config VGA config QXL bool - depends on SPICE + depends on SPICE && PCI + select VGA config VIRTIO_GPU bool diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig index 091f3a81c9..0f25b27163 100644 --- a/hw/ide/Kconfig +++ b/hw/ide/Kconfig @@ -7,6 +7,7 @@ config IDE_QDEV config IDE_PCI bool + depends on PCI select IDE_CORE config IDE_ISA @@ -15,10 +16,12 @@ config IDE_ISA config IDE_PIIX bool + depends on PCI select IDE_QDEV config IDE_CMD646 bool + select IDE_PCI select IDE_QDEV config IDE_MACIO @@ -31,6 +34,7 @@ config IDE_MMIO config IDE_VIA bool + select IDE_PCI select IDE_QDEV config MICRODRIVE @@ -39,6 +43,8 @@ config MICRODRIVE config AHCI bool + default y + depends on PCI select IDE_QDEV config IDE_SII3112 diff --git a/hw/ipack/Kconfig b/hw/ipack/Kconfig index 481e0d2e64..98bd21cf0f 100644 --- a/hw/ipack/Kconfig +++ b/hw/ipack/Kconfig @@ -1,2 +1,4 @@ config IPACK bool + default y + depends on PCI diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig index cc8dbed24e..1ca4b2464e 100644 --- a/hw/misc/Kconfig +++ b/hw/misc/Kconfig @@ -21,9 +21,13 @@ config ISA_TESTDEV config PCI_TESTDEV bool + default y + depends on PCI config EDU bool + default y + depends on PCI config PCA9552 bool diff --git a/hw/net/Kconfig b/hw/net/Kconfig index 6b2ec971b5..c87375ee52 100644 --- a/hw/net/Kconfig +++ b/hw/net/Kconfig @@ -3,27 +3,42 @@ config DP8393X config NE2000_PCI bool + default y + depends on PCI config EEPRO100_PCI bool + default y + depends on PCI config PCNET_PCI bool + default y + depends on PCI + select PCNET_COMMON config PCNET_COMMON bool config E1000_PCI bool + default y + depends on PCI config E1000E_PCI bool + default y + depends on PCI config RTL8139_PCI bool + default y + depends on PCI config VMXNET3_PCI bool + default y + depends on PCI config SMC91C111 bool @@ -81,12 +96,16 @@ config ETSEC config ROCKER bool + default y + depends on PCI config CAN_BUS bool config CAN_PCI bool + default y + depends on PCI config CAN_SJA1000 bool diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig index c48bf4e8d0..6e7575397f 100644 --- a/hw/scsi/Kconfig +++ b/hw/scsi/Kconfig @@ -3,21 +3,32 @@ config SCSI config LSI_SCSI_PCI bool + default y + depends on PCI config MPTSAS_SCSI_PCI bool + default y + depends on PCI config MEGASAS_SCSI_PCI bool + default y + depends on PCI config VMW_PVSCSI_SCSI_PCI bool + default y + depends on PCI config ESP bool config ESP_PCI bool + default y + depends on PCI + select ESP config PSERIES bool diff --git a/hw/sd/Kconfig b/hw/sd/Kconfig index 4f43bbb352..90ac74950a 100644 --- a/hw/sd/Kconfig +++ b/hw/sd/Kconfig @@ -9,3 +9,6 @@ config SD config SDHCI bool + default y + depends on PCI + select SD diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig index cbf5c5d761..f23c542d27 100644 --- a/hw/usb/Kconfig +++ b/hw/usb/Kconfig @@ -3,21 +3,31 @@ config USB config USB_UHCI bool + default y + depends on PCI config USB_OHCI bool + default y + depends on PCI config USB_EHCI bool + default y + depends on PCI config USB_EHCI_SYSBUS bool config USB_XHCI bool + default y + depends on PCI config USB_XHCI_NEC bool + default y + depends on PCI config USB_MUSB bool diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig index ebf18124fb..aabd6d4d96 100644 --- a/hw/virtio/Kconfig +++ b/hw/virtio/Kconfig @@ -6,6 +6,9 @@ config VIRTIO_RNG config VIRTIO_PCI bool + default y + depends on PCI + select VIRTIO config VIRTIO_MMIO bool diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig index cd0244f4e1..4e24bf8240 100644 --- a/hw/watchdog/Kconfig +++ b/hw/watchdog/Kconfig @@ -3,6 +3,8 @@ config CMSDK_APB_WATCHDOG config WDT_IB6300ESB bool + default y + depends on PCI config WDT_IB700 bool From patchwork Thu Dec 27 06:34:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743469 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 049A8746 for ; Thu, 27 Dec 2018 06:37:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E824C284B9 for ; Thu, 27 Dec 2018 06:37:00 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id DC1F02881E; Thu, 27 Dec 2018 06:37:00 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 7738A284B9 for ; Thu, 27 Dec 2018 06:37:00 +0000 (UTC) Received: from localhost ([127.0.0.1]:49707 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHv-0004lA-K5 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:36:59 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54770) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGQ-0002xD-IF for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:27 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGO-0004NW-Hu for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:26 -0500 Received: from mga11.intel.com ([192.55.52.93]:57867) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGO-0004Bd-7p for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:24 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617312" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:16 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:05 +0800 Message-Id: <20181227063419.12981-12-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 11/25] build: convert sound.mak to Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini There is really nothing special in these devices; they are just ISA devices. Instead of including them for each target, set CONFIG_ISA to true, and make the devices default to present whenever ISA is available. More conversion of ISA devices will follow. Done with the following script: while read i; do i=${i%=y}; i=${i#CONFIG_} sed -i -e'/^config '$i'$/!b' -en \ -e'a\' -e' default y\' -e' depends on ISA' \ `grep -lw $i hw/*/Kconfig` done < default-configs/sound.mak Signed-off-by: Paolo Bonzini Reviewed-by: Thomas Huth --- default-configs/i386-softmmu.mak | 2 +- default-configs/sound.mak | 4 ---- hw/audio/Kconfig | 8 ++++++++ 3 files changed, 9 insertions(+), 5 deletions(-) delete mode 100644 default-configs/sound.mak diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index 61f19e5231..275e72f3c6 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,7 +1,7 @@ # Default configuration for i386-softmmu CONFIG_PCI=y -include sound.mak +CONFIG_ISA=y include usb.mak include hyperv.mak CONFIG_VGA_ISA=y diff --git a/default-configs/sound.mak b/default-configs/sound.mak deleted file mode 100644 index 4f22c34b5d..0000000000 --- a/default-configs/sound.mak +++ /dev/null @@ -1,4 +0,0 @@ -CONFIG_SB16=y -CONFIG_ADLIB=y -CONFIG_GUS=y -CONFIG_CS4231A=y diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig index af34bbcf0c..bfb30276ec 100644 --- a/hw/audio/Kconfig +++ b/hw/audio/Kconfig @@ -1,5 +1,7 @@ config SB16 bool + default y + depends on ISA_BUS config ES1370 bool @@ -13,12 +15,18 @@ config AC97 config ADLIB bool + default y + depends on ISA_BUS config GUS bool + default y + depends on ISA_BUS config CS4231A bool + default y + depends on ISA_BUS config HDA bool From patchwork Thu Dec 27 06:34:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743501 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A2D2A13B5 for ; Thu, 27 Dec 2018 06:51:59 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 91D6A2887B for ; Thu, 27 Dec 2018 06:51:59 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 860F1289B6; Thu, 27 Dec 2018 06:51:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id DB1992887B for ; Thu, 27 Dec 2018 06:51:46 +0000 (UTC) Received: from localhost ([127.0.0.1]:49845 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPWD-0006go-Vs for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:51:46 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54818) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGd-0003FB-4w for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGO-0004O5-L0 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:30 -0500 Received: from mga11.intel.com ([192.55.52.93]:57858) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGO-0004B3-Bl for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:24 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:19 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617316" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:17 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:06 +0800 Message-Id: <20181227063419.12981-13-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 12/25] build: convert usb.mak to Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Instead of including the same list of devices for each target, let the host controllers select CONFIG_USB and make the devices default to present whenever USB is available. Done with the following script: while read i; do i=${i%=y}; i=${i#CONFIG_} sed -i -e'/^config '$i'$/!b' -en \ -e'a\' -e' default y\' -e' depends on USB' \ `grep -lw $i hw/*/Kconfig` done < default-configs/usb.mak followed by adding "select USB" on the host controllers. Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong Reviewed-by: Thomas Huth --- default-configs/i386-softmmu.mak | 1 - default-configs/usb.mak | 11 ----------- hw/usb/Kconfig | 26 ++++++++++++++++++++++++++ 3 files changed, 26 insertions(+), 12 deletions(-) delete mode 100644 default-configs/usb.mak diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index 275e72f3c6..e152590d15 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -2,7 +2,6 @@ CONFIG_PCI=y CONFIG_ISA=y -include usb.mak include hyperv.mak CONFIG_VGA_ISA=y CONFIG_VGA_CIRRUS=y diff --git a/default-configs/usb.mak b/default-configs/usb.mak deleted file mode 100644 index e42cfeabbe..0000000000 --- a/default-configs/usb.mak +++ /dev/null @@ -1,11 +0,0 @@ -CONFIG_USB=y -CONFIG_USB_TABLET_WACOM=y -CONFIG_USB_STORAGE_BOT=y -CONFIG_USB_STORAGE_UAS=y -CONFIG_USB_STORAGE_MTP=y -CONFIG_SCSI=y -CONFIG_USB_SMARTCARD=y -CONFIG_USB_AUDIO=y -CONFIG_USB_SERIAL=y -CONFIG_USB_NETWORK=y -CONFIG_USB_BLUETOOTH=y diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig index f23c542d27..0b8f41040e 100644 --- a/hw/usb/Kconfig +++ b/hw/usb/Kconfig @@ -5,59 +5,85 @@ config USB_UHCI bool default y depends on PCI + select USB config USB_OHCI bool default y depends on PCI + select USB config USB_EHCI bool default y depends on PCI + select USB config USB_EHCI_SYSBUS bool + select USB config USB_XHCI bool default y depends on PCI + select USB config USB_XHCI_NEC bool default y depends on PCI + select USB config USB_MUSB bool + select USB config TUSB6010 bool + select USB_MUSB config USB_TABLET_WACOM bool + default y + depends on USB config USB_STORAGE_BOT bool + default y + depends on USB config USB_STORAGE_UAS bool + default y + depends on USB config USB_AUDIO bool + default y + depends on USB config USB_SERIAL bool + default y + depends on USB config USB_NETWORK bool + default y + depends on USB config USB_BLUETOOTH bool + default y + depends on USB config USB_SMARTCARD bool + default y + depends on USB config USB_STORAGE_MTP bool + default y + depends on USB From patchwork Thu Dec 27 06:34:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743493 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3608B924 for ; Thu, 27 Dec 2018 06:46:47 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 243B52843B for ; Thu, 27 Dec 2018 06:46:47 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 15651287E7; Thu, 27 Dec 2018 06:46:47 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 0C06E2843B for ; Thu, 27 Dec 2018 06:46:42 +0000 (UTC) Received: from localhost ([127.0.0.1]:49796 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPRK-0008Uf-2x for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:46:42 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54963) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGn-0003UR-PP for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGj-0004ob-Ms for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:49 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGi-00041J-ES for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:45 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:21 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617322" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:19 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:07 +0800 Message-Id: <20181227063419.12981-14-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 13/25] scsi: express dependencies with Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini This lets you disable SCSI altogether with "CONFIG_SCSI=n". Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong --- hw/scsi/Kconfig | 11 ++++++++++- hw/scsi/Makefile.objs | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig index 6e7575397f..d669a4824e 100644 --- a/hw/scsi/Kconfig +++ b/hw/scsi/Kconfig @@ -5,24 +5,29 @@ config LSI_SCSI_PCI bool default y depends on PCI + select SCSI config MPTSAS_SCSI_PCI bool default y depends on PCI + select SCSI config MEGASAS_SCSI_PCI bool default y depends on PCI + select SCSI config VMW_PVSCSI_SCSI_PCI bool default y depends on PCI + select SCSI config ESP bool + select SCSI config ESP_PCI bool @@ -30,11 +35,15 @@ config ESP_PCI depends on PCI select ESP -config PSERIES +config SPAPR_VSCSI bool + select SCSI config VIRTIO_SCSI bool + default y + depends on VIRTIO + select SCSI config VHOST_USER_SCSI bool diff --git a/hw/scsi/Makefile.objs b/hw/scsi/Makefile.objs index 45167baeaf..54b36ed8b1 100644 --- a/hw/scsi/Makefile.objs +++ b/hw/scsi/Makefile.objs @@ -6,7 +6,7 @@ common-obj-$(CONFIG_MEGASAS_SCSI_PCI) += megasas.o common-obj-$(CONFIG_VMW_PVSCSI_SCSI_PCI) += vmw_pvscsi.o common-obj-$(CONFIG_ESP) += esp.o common-obj-$(CONFIG_ESP_PCI) += esp-pci.o -obj-$(CONFIG_PSERIES) += spapr_vscsi.o +obj-$(CONFIG_SPAPR_VSCSI) += spapr_vscsi.o ifeq ($(CONFIG_VIRTIO_SCSI),y) obj-y += virtio-scsi.o virtio-scsi-dataplane.o From patchwork Thu Dec 27 06:34:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743485 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D5994746 for ; Thu, 27 Dec 2018 06:43:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C060827F97 for ; Thu, 27 Dec 2018 06:43:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ADF7728445; Thu, 27 Dec 2018 06:43:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A11ED27F97 for ; Thu, 27 Dec 2018 06:43:44 +0000 (UTC) Received: from localhost ([127.0.0.1]:49764 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPOR-00051H-Nb for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:43:43 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54959) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGn-0003U3-GI for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGj-0004nq-Fg for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:49 -0500 Received: from mga11.intel.com ([192.55.52.93]:57867) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGi-0004Bd-ES for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:45 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:23 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617327" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:21 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:08 +0800 Message-Id: <20181227063419.12981-15-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 14/25] bluetooth: express dependencies with Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong Reviewed-by: Thomas Huth --- hw/Makefile.objs | 2 +- hw/usb/Kconfig | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/hw/Makefile.objs b/hw/Makefile.objs index 39d882af6f..b95b0c74a1 100644 --- a/hw/Makefile.objs +++ b/hw/Makefile.objs @@ -3,7 +3,7 @@ devices-dirs-$(CONFIG_SOFTMMU) += acpi/ devices-dirs-$(CONFIG_SOFTMMU) += adc/ devices-dirs-$(CONFIG_SOFTMMU) += audio/ devices-dirs-$(CONFIG_SOFTMMU) += block/ -devices-dirs-$(CONFIG_SOFTMMU) += bt/ +devices-dirs-$(CONFIG_BLUETOOTH) += bt/ devices-dirs-$(CONFIG_SOFTMMU) += char/ devices-dirs-$(CONFIG_SOFTMMU) += cpu/ devices-dirs-$(CONFIG_SOFTMMU) += display/ diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig index 0b8f41040e..7b7ccfc039 100644 --- a/hw/usb/Kconfig +++ b/hw/usb/Kconfig @@ -77,6 +77,7 @@ config USB_BLUETOOTH bool default y depends on USB + select BLUETOOTH config USB_SMARTCARD bool From patchwork Thu Dec 27 06:34:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743499 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8EF156C5 for ; Thu, 27 Dec 2018 06:50:23 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7E05928992 for ; Thu, 27 Dec 2018 06:50:23 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 71EBE289B1; Thu, 27 Dec 2018 06:50:23 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 31B7A2887B for ; Thu, 27 Dec 2018 06:50:12 +0000 (UTC) Received: from localhost ([127.0.0.1]:49822 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPUh-0004uk-DT for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:50:11 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54962) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGn-0003US-PQ for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGj-0004oW-MT for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:49 -0500 Received: from mga11.intel.com ([192.55.52.93]:57858) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGi-0004B3-ES for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:45 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:25 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617332" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:23 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:09 +0800 Message-Id: <20181227063419.12981-16-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 15/25] isa: express dependencies with kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong --- default-configs/i386-softmmu.mak | 10 ---------- hw/audio/Kconfig | 2 ++ hw/block/Kconfig | 2 ++ hw/char/Kconfig | 5 +++++ hw/display/Kconfig | 6 ++++++ hw/i386/Kconfig | 1 + hw/ide/Kconfig | 1 + hw/input/Kconfig | 2 ++ hw/isa/Kconfig | 5 +++++ hw/misc/Kconfig | 4 ++++ hw/net/Kconfig | 3 +++ hw/watchdog/Kconfig | 2 ++ 12 files changed, 33 insertions(+), 10 deletions(-) diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index e152590d15..d664329ac1 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -4,23 +4,15 @@ CONFIG_PCI=y CONFIG_ISA=y include hyperv.mak CONFIG_VGA_ISA=y -CONFIG_VGA_CIRRUS=y CONFIG_VMWARE_VGA=y CONFIG_VMXNET3_PCI=y CONFIG_VIRTIO_VGA=y -CONFIG_VMMOUSE=y CONFIG_IPMI=y CONFIG_IPMI_LOCAL=y CONFIG_IPMI_EXTERN=y CONFIG_ISA_IPMI_KCS=y CONFIG_ISA_IPMI_BT=y -CONFIG_SERIAL=y -CONFIG_SERIAL_ISA=y -CONFIG_PARALLEL=y CONFIG_I8254=y -CONFIG_PCSPK=y -CONFIG_PCKBD=y -CONFIG_FDC=y CONFIG_ACPI=y CONFIG_ACPI_X86=y CONFIG_ACPI_X86_ICH=y @@ -30,14 +22,12 @@ CONFIG_APM=y CONFIG_I8257=y CONFIG_IDE_ISA=y CONFIG_IDE_PIIX=y -CONFIG_NE2000_ISA=y CONFIG_HPET=y CONFIG_APPLESMC=y CONFIG_I8259=y CONFIG_PFLASH_CFI01=y CONFIG_MC146818RTC=y CONFIG_PCI_PIIX=y -CONFIG_WDT_IB700=y CONFIG_ISA_DEBUG=y CONFIG_ISA_TESTDEV=y CONFIG_VMPORT=y diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig index bfb30276ec..350f2d4359 100644 --- a/hw/audio/Kconfig +++ b/hw/audio/Kconfig @@ -35,6 +35,8 @@ config HDA config PCSPK bool + default y + depends on ISA_BUS config WM8750 bool diff --git a/hw/block/Kconfig b/hw/block/Kconfig index 3710434436..83c2be5915 100644 --- a/hw/block/Kconfig +++ b/hw/block/Kconfig @@ -1,5 +1,7 @@ config FDC bool + default y + depends on ISA_BUS config SSI_M25P80 bool diff --git a/hw/char/Kconfig b/hw/char/Kconfig index 1ed6f0dbce..26765599a5 100644 --- a/hw/char/Kconfig +++ b/hw/char/Kconfig @@ -3,6 +3,8 @@ config ESCC config PARALLEL bool + default y + depends on ISA_BUS config PL011 bool @@ -12,6 +14,9 @@ config SERIAL config SERIAL_ISA bool + default y + depends on ISA_BUS + select SERIAL config SERIAL_PCI bool diff --git a/hw/display/Kconfig b/hw/display/Kconfig index 5e73277cc2..e0d7919a06 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -9,6 +9,9 @@ config ADS7846 config VGA_CIRRUS bool + default y + depends on ISA_BUS && PCI + select VGA config G364FB bool @@ -36,9 +39,12 @@ config VGA_PCI config VGA_ISA bool + depends on ISA_BUS + select VGA config VGA_ISA_MM bool + select VGA config VMWARE_VGA bool diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index 427bda3717..68a9064558 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -9,6 +9,7 @@ config I440FX config ISAPC bool + select ISA_BUS config Q35 bool diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig index 0f25b27163..41d3057675 100644 --- a/hw/ide/Kconfig +++ b/hw/ide/Kconfig @@ -12,6 +12,7 @@ config IDE_PCI config IDE_ISA bool + depends on ISA_BUS select IDE_QDEV config IDE_PIIX diff --git a/hw/input/Kconfig b/hw/input/Kconfig index 91bae47498..01805ed17b 100644 --- a/hw/input/Kconfig +++ b/hw/input/Kconfig @@ -6,6 +6,8 @@ config LM832X config PCKBD bool + default y + depends on ISA_BUS config PL050 bool diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig index b59d074453..3f451ef006 100644 --- a/hw/isa/Kconfig +++ b/hw/isa/Kconfig @@ -9,15 +9,20 @@ config I82378 config PC87312 bool + select ISA_BUS config PIIX4 bool + select ISA_BUS config VT82C686 bool + select ISA_BUS config SMC37C669 bool config LPC_ICH9 bool + select ISA_BUS + select ACPI_X86_ICH diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig index 1ca4b2464e..e6df7480c6 100644 --- a/hw/misc/Kconfig +++ b/hw/misc/Kconfig @@ -1,5 +1,6 @@ config APPLESMC bool + depends on ISA_BUS config MAX111X bool @@ -12,9 +13,11 @@ config TMP421 config ISA_DEBUG bool + depends on ISA_BUS config SGA bool + depends on ISA_BUS config ISA_TESTDEV bool @@ -93,6 +96,7 @@ config IOTKIT_SYSINFO config PVPANIC bool + depends on ISA_BUS config AUX bool diff --git a/hw/net/Kconfig b/hw/net/Kconfig index c87375ee52..b7585cbe55 100644 --- a/hw/net/Kconfig +++ b/hw/net/Kconfig @@ -48,6 +48,9 @@ config LAN9118 config NE2000_ISA bool + default y + depends on ISA_BUS + depends on PCI # for NE2000State config OPENCORES_ETH bool diff --git a/hw/watchdog/Kconfig b/hw/watchdog/Kconfig index 4e24bf8240..b5cd056b01 100644 --- a/hw/watchdog/Kconfig +++ b/hw/watchdog/Kconfig @@ -8,6 +8,8 @@ config WDT_IB6300ESB config WDT_IB700 bool + default y + depends on ISA_BUS config WDT_DIAG288 bool From patchwork Thu Dec 27 06:34:10 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743483 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CF99B13BF for ; Thu, 27 Dec 2018 06:43:08 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BD28228837 for ; Thu, 27 Dec 2018 06:43:08 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B0E0D2886C; Thu, 27 Dec 2018 06:43:08 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 743372898C for ; Thu, 27 Dec 2018 06:43:04 +0000 (UTC) Received: from localhost ([127.0.0.1]:49762 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPNn-0003oc-JC for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:43:03 -0500 Received: from eggs.gnu.org ([208.118.235.92]:54982) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGo-0003Vg-Mm for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:57 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGk-0004rD-Dl for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:50 -0500 Received: from mga11.intel.com ([192.55.52.93]:57867) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGj-0004Bd-Ox for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:46 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:27 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617338" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:25 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:10 +0800 Message-Id: <20181227063419.12981-17-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 16/25] i386: express dependencies with Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini This way, the default-configs file only need to specify the boards and any optional devices. Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong --- default-configs/i386-softmmu.mak | 32 +++++---------------- hw/acpi/Kconfig | 3 ++ hw/display/Kconfig | 1 + hw/i2c/Makefile.objs | 4 +-- hw/i386/Kconfig | 48 ++++++++++++++++++++++++++++---- hw/isa/Kconfig | 1 + hw/pci-host/Kconfig | 7 +++++ hw/tpm/Kconfig | 5 +++- 8 files changed, 67 insertions(+), 34 deletions(-) diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index d664329ac1..d2e58edd17 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,10 +1,6 @@ # Default configuration for i386-softmmu -CONFIG_PCI=y -CONFIG_ISA=y include hyperv.mak -CONFIG_VGA_ISA=y -CONFIG_VMWARE_VGA=y CONFIG_VMXNET3_PCI=y CONFIG_VIRTIO_VGA=y CONFIG_IPMI=y @@ -12,39 +8,21 @@ CONFIG_IPMI_LOCAL=y CONFIG_IPMI_EXTERN=y CONFIG_ISA_IPMI_KCS=y CONFIG_ISA_IPMI_BT=y -CONFIG_I8254=y -CONFIG_ACPI=y -CONFIG_ACPI_X86=y -CONFIG_ACPI_X86_ICH=y -CONFIG_ACPI_MEMORY_HOTPLUG=y -CONFIG_ACPI_CPU_HOTPLUG=y -CONFIG_APM=y -CONFIG_I8257=y -CONFIG_IDE_ISA=y -CONFIG_IDE_PIIX=y + +# Optional devices: +# CONFIG_HPET=y CONFIG_APPLESMC=y -CONFIG_I8259=y CONFIG_PFLASH_CFI01=y -CONFIG_MC146818RTC=y -CONFIG_PCI_PIIX=y -CONFIG_ISA_DEBUG=y CONFIG_ISA_TESTDEV=y CONFIG_VMPORT=y CONFIG_SGA=y -CONFIG_LPC_ICH9=y -CONFIG_PCI_Q35=y -CONFIG_APIC=y -CONFIG_IOAPIC=y CONFIG_PVPANIC=y CONFIG_MEM_DEVICE=y CONFIG_DIMM=y CONFIG_NVDIMM=y CONFIG_ACPI_NVDIMM=y CONFIG_PCIE_PORT=y -CONFIG_XIO3130=y -CONFIG_IOH3420=y -CONFIG_I82801B11=y CONFIG_SMBIOS=y CONFIG_PXB=y CONFIG_ACPI_VMGENID=y @@ -53,5 +31,9 @@ CONFIG_I2C=y CONFIG_SEV=$(CONFIG_KVM) CONFIG_VTD=y CONFIG_AMD_IOMMU=y + +# Boards: +# +CONFIG_ISAPC=y CONFIG_I440FX=y CONFIG_Q35=y diff --git a/hw/acpi/Kconfig b/hw/acpi/Kconfig index 2f4871c10a..98bb3539e1 100644 --- a/hw/acpi/Kconfig +++ b/hw/acpi/Kconfig @@ -3,15 +3,18 @@ config ACPI config ACPI_X86 bool + select ACPI config ACPI_X86_ICH bool + select ACPI_X86 config ACPI_CPU_HOTPLUG bool config ACPI_MEMORY_HOTPLUG bool + select MEM_DEVICE config ACPI_NVDIMM bool diff --git a/hw/display/Kconfig b/hw/display/Kconfig index e0d7919a06..8ce968bfff 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -82,6 +82,7 @@ config VGA config QXL bool + default y if PC depends on SPICE && PCI select VGA diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs index 37cacde978..48f7760379 100644 --- a/hw/i2c/Makefile.objs +++ b/hw/i2c/Makefile.objs @@ -1,8 +1,8 @@ common-obj-$(CONFIG_I2C) += core.o smbus.o smbus_eeprom.o common-obj-$(CONFIG_DDC) += i2c-ddc.o common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o -common-obj-$(CONFIG_ACPI_X86) += smbus_ich9.o -common-obj-$(CONFIG_APM) += pm_smbus.o +common-obj-$(CONFIG_ACPI_X86_ICH) += smbus_ich9.o +common-obj-$(CONFIG_ACPI_SMBUS) += pm_smbus.o common-obj-$(CONFIG_BITBANG_I2C) += bitbang_i2c.o common-obj-$(CONFIG_EXYNOS4) += exynos4210_i2c.o common-obj-$(CONFIG_IMX_I2C) += imx_i2c.o diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index 68a9064558..f53a788a95 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -1,21 +1,57 @@ config KVM bool -config I440FX +config PC bool - select QXL if SPICE + select ISA_DEBUG + select I8259 + select I8254 + select PCSPK + select I82374 + select I8257 + select MC146818RTC select TPM_TIS if TPM - select XEN_I386 if XEN + +config PC_PCI + bool + select APIC + select IOAPIC + select APM + select PC + +config PC_ACPI + bool + select ACPI_X86 + select ACPI_CPU_HOTPLUG + select ACPI_MEMORY_HOTPLUG + depends on ACPI_SMBUS + +config I440FX + bool + select PC_PCI + select PC_ACPI + select ACPI_SMBUS + select PCI_PIIX + select FDC + select IDE_PIIX config ISAPC bool select ISA_BUS + select PC + select IDE_ISA + select VGA_ISA + # FIXME: it is in the same file as i440fx, and does not compile + # if separated + depends on I440FX config Q35 bool - select QXL if SPICE - select TPM_TIS if TPM - select XEN_I386 if XEN + select PC_PCI + select PC_ACPI + select PCI_Q35 + select LPC_ICH9 + select AHCI config VTD bool diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig index 3f451ef006..bf72e4fef2 100644 --- a/hw/isa/Kconfig +++ b/hw/isa/Kconfig @@ -25,4 +25,5 @@ config SMC37C669 config LPC_ICH9 bool select ISA_BUS + select ACPI_SMBUS select ACPI_X86_ICH diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig index 359df1d239..9d57c6cac9 100644 --- a/hw/pci-host/Kconfig +++ b/hw/pci-host/Kconfig @@ -21,9 +21,16 @@ config PCI_SABRE config PCI_PIIX bool + select PAM + select PCI config PCI_Q35 bool + select PAM + select PCI + select XIO3130 + select IOH3420 + select I82801B11 config PCI_GENERIC bool diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig index da4bb5b6c7..28acdb745e 100644 --- a/hw/tpm/Kconfig +++ b/hw/tpm/Kconfig @@ -3,10 +3,13 @@ config TPM config TPM_TIS bool - depends on TPM + default y + depends on TPM && PC config TPM_CRB bool + default y + depends on TPM && PC config TPM_PASSTHROUGH bool From patchwork Thu Dec 27 06:34:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743509 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D3BD713B5 for ; Thu, 27 Dec 2018 06:56:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C0927284C0 for ; Thu, 27 Dec 2018 06:56:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AFE8B287E7; Thu, 27 Dec 2018 06:56:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id A0C5C284C0 for ; Thu, 27 Dec 2018 06:56:30 +0000 (UTC) Received: from localhost ([127.0.0.1]:49888 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPan-0004H0-Rs for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:56:29 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55050) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGy-0003fU-Cb for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGu-0005EV-A7 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:00 -0500 Received: from mga11.intel.com ([192.55.52.93]:57858) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGt-0004B3-Ti for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:56 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:29 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617347" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:27 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:11 +0800 Message-Id: <20181227063419.12981-18-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 17/25] i2c: express dependencies with Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong --- hw/Makefile.objs | 2 +- hw/audio/Kconfig | 1 + hw/display/Kconfig | 3 +++ hw/gpio/Kconfig | 1 + hw/i2c/Kconfig | 6 ++++++ hw/i2c/Makefile.objs | 3 ++- hw/i386/Kconfig | 1 + hw/input/Kconfig | 1 + hw/isa/Kconfig | 1 + hw/misc/Kconfig | 4 ++++ hw/timer/Kconfig | 3 +++ 11 files changed, 24 insertions(+), 2 deletions(-) diff --git a/hw/Makefile.objs b/hw/Makefile.objs index b95b0c74a1..920086b182 100644 --- a/hw/Makefile.objs +++ b/hw/Makefile.objs @@ -10,7 +10,7 @@ devices-dirs-$(CONFIG_SOFTMMU) += display/ devices-dirs-$(CONFIG_SOFTMMU) += dma/ devices-dirs-$(CONFIG_SOFTMMU) += gpio/ devices-dirs-$(CONFIG_HYPERV) += hyperv/ -devices-dirs-$(CONFIG_SOFTMMU) += i2c/ +devices-dirs-$(CONFIG_I2C) += i2c/ devices-dirs-$(CONFIG_SOFTMMU) += ide/ devices-dirs-$(CONFIG_SOFTMMU) += input/ devices-dirs-$(CONFIG_SOFTMMU) += intc/ diff --git a/hw/audio/Kconfig b/hw/audio/Kconfig index 350f2d4359..5cb7118e44 100644 --- a/hw/audio/Kconfig +++ b/hw/audio/Kconfig @@ -40,6 +40,7 @@ config PCSPK config WM8750 bool + depends on I2C config PL041 bool diff --git a/hw/display/Kconfig b/hw/display/Kconfig index 8ce968bfff..8ddce09ead 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -24,9 +24,11 @@ config PL110 config SII9022 bool + depends on I2C config SSD0303 bool + depends on I2C config SSD0323 bool @@ -70,6 +72,7 @@ config MILKYMIST_TMU2 config SM501 bool + depends on I2C config TCX bool diff --git a/hw/gpio/Kconfig b/hw/gpio/Kconfig index d0a4abf93f..9227cb5598 100644 --- a/hw/gpio/Kconfig +++ b/hw/gpio/Kconfig @@ -1,5 +1,6 @@ config MAX7310 bool + depends on I2C config PL061 bool diff --git a/hw/i2c/Kconfig b/hw/i2c/Kconfig index d6d4402608..74c9328729 100644 --- a/hw/i2c/Kconfig +++ b/hw/i2c/Kconfig @@ -3,18 +3,24 @@ config I2C config SMBUS_EEPROM bool + depends on I2C config DDC bool + depends on I2C config VERSATILE_I2C bool + select I2C config ACPI_SMBUS bool + select I2C config BITBANG_I2C bool + select I2C config IMX_I2C bool + select I2C diff --git a/hw/i2c/Makefile.objs b/hw/i2c/Makefile.objs index 48f7760379..ff22aa6541 100644 --- a/hw/i2c/Makefile.objs +++ b/hw/i2c/Makefile.objs @@ -1,4 +1,5 @@ -common-obj-$(CONFIG_I2C) += core.o smbus.o smbus_eeprom.o +common-obj-$(CONFIG_I2C) += core.o smbus.o +common-obj-$(CONFIG_SMBUS_EEPROM) += smbus_eeprom.o common-obj-$(CONFIG_DDC) += i2c-ddc.o common-obj-$(CONFIG_VERSATILE_I2C) += versatile_i2c.o common-obj-$(CONFIG_ACPI_X86_ICH) += smbus_ich9.o diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index f53a788a95..695a67f88d 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -24,6 +24,7 @@ config PC_ACPI select ACPI_X86 select ACPI_CPU_HOTPLUG select ACPI_MEMORY_HOTPLUG + select SMBUS_EEPROM depends on ACPI_SMBUS config I440FX diff --git a/hw/input/Kconfig b/hw/input/Kconfig index 01805ed17b..5d64e07fc6 100644 --- a/hw/input/Kconfig +++ b/hw/input/Kconfig @@ -3,6 +3,7 @@ config ADB config LM832X bool + depends on I2C config PCKBD bool diff --git a/hw/isa/Kconfig b/hw/isa/Kconfig index bf72e4fef2..82eaf183b1 100644 --- a/hw/isa/Kconfig +++ b/hw/isa/Kconfig @@ -18,6 +18,7 @@ config PIIX4 config VT82C686 bool select ISA_BUS + select ACPI_SMBUS config SMC37C669 bool diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig index e6df7480c6..0a87b52ec7 100644 --- a/hw/misc/Kconfig +++ b/hw/misc/Kconfig @@ -7,9 +7,11 @@ config MAX111X config TMP105 bool + depends on I2C config TMP421 bool + depends on I2C config ISA_DEBUG bool @@ -34,6 +36,7 @@ config EDU config PCA9552 bool + depends on I2C config PL310 bool @@ -100,3 +103,4 @@ config PVPANIC config AUX bool + depends on I2C diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig index 7dbc1211ab..e1a6e7469b 100644 --- a/hw/timer/Kconfig +++ b/hw/timer/Kconfig @@ -9,6 +9,7 @@ config A9_GTIMER config DS1338 bool + depends on I2C config HPET bool @@ -18,6 +19,7 @@ config I8254 config M41T80 bool + depends on I2C config M48T59 bool @@ -27,6 +29,7 @@ config PL031 config TWL92230 bool + depends on I2C config XLNX_ZYNQMP bool From patchwork Thu Dec 27 06:34:12 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743511 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D3B9F13AD for ; Thu, 27 Dec 2018 06:57:12 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C1993284C0 for ; Thu, 27 Dec 2018 06:57:12 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id B48AA287E7; Thu, 27 Dec 2018 06:57:12 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id AB4B3284C0 for ; Thu, 27 Dec 2018 06:57:08 +0000 (UTC) Received: from localhost ([127.0.0.1]:49890 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPbP-00050P-N0 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:57:07 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55048) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGy-0003fE-Ae for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGu-0005EP-9L for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:00 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGt-00041J-US for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:56 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617362" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:29 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:12 +0800 Message-Id: <20181227063419.12981-19-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 18/25] ptimer: express dependencies with Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Signed-off-by: Paolo Bonzini Signed-off-by: Yang Zhong --- hw/Kconfig | 2 ++ hw/net/Kconfig | 2 ++ hw/timer/Kconfig | 6 ++++++ 3 files changed, 10 insertions(+) diff --git a/hw/Kconfig b/hw/Kconfig index b27290d332..27ac668584 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -43,6 +43,8 @@ source i386/Kconfig # Symbols used by multiple targets config XILINX bool + select PTIMER # for hw/timer/xilinx_timer.c config XILINX_AXI bool + select PTIMER # for hw/dma/xilinx_axidma.c diff --git a/hw/net/Kconfig b/hw/net/Kconfig index b7585cbe55..b50a8a4368 100644 --- a/hw/net/Kconfig +++ b/hw/net/Kconfig @@ -45,6 +45,7 @@ config SMC91C111 config LAN9118 bool + select PTIMER config NE2000_ISA bool @@ -96,6 +97,7 @@ config VIRTIO_NET config ETSEC bool + select PTIMER config ROCKER bool diff --git a/hw/timer/Kconfig b/hw/timer/Kconfig index e1a6e7469b..a021c742de 100644 --- a/hw/timer/Kconfig +++ b/hw/timer/Kconfig @@ -1,8 +1,10 @@ config ARM_TIMER bool + select PTIMER config ARM_MPTIMER bool + select PTIMER config A9_GTIMER bool @@ -36,12 +38,14 @@ config XLNX_ZYNQMP config ALTERA_TIMER bool + select PTIMER config MC146818RTC bool config ALLWINNER_A10_PIT bool + select PTIMER config STM32F2XX_TIMER bool @@ -51,6 +55,8 @@ config SUN4V_RTC config CMSDK_APB_TIMER bool + select PTIMER config CMSDK_APB_DUALTIMER bool + select PTIMER From patchwork Thu Dec 27 06:34:13 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743503 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9C47A13B5 for ; Thu, 27 Dec 2018 06:53:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 87AC5284C0 for ; Thu, 27 Dec 2018 06:53:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7653328768; Thu, 27 Dec 2018 06:53:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 69C13284C0 for ; Thu, 27 Dec 2018 06:53:44 +0000 (UTC) Received: from localhost ([127.0.0.1]:49859 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPY7-00010J-IQ for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:53:43 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55058) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPGz-0003gS-2a for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPGu-0005Fg-Uz for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:00 -0500 Received: from mga11.intel.com ([192.55.52.93]:57867) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPGu-0004Bd-Kr for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:35:56 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:32 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617376" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:31 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:13 +0800 Message-Id: <20181227063419.12981-20-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 19/25] edid: express dependencies with kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Yang Zhong Reviewed-by: Thomas Huth --- hw/display/Kconfig | 2 ++ hw/i2c/Kconfig | 1 + 2 files changed, 3 insertions(+) diff --git a/hw/display/Kconfig b/hw/display/Kconfig index 8ddce09ead..8b8f1027b1 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -38,6 +38,7 @@ config VGA_PCI default y depends on PCI select VGA + select EDID config VGA_ISA bool @@ -59,6 +60,7 @@ config BOCHS_DISPLAY default y depends on PCI select VGA + select EDID config BLIZZARD bool diff --git a/hw/i2c/Kconfig b/hw/i2c/Kconfig index 74c9328729..ef1caa6d89 100644 --- a/hw/i2c/Kconfig +++ b/hw/i2c/Kconfig @@ -8,6 +8,7 @@ config SMBUS_EEPROM config DDC bool depends on I2C + select EDID config VERSATILE_I2C bool From patchwork Thu Dec 27 06:34:14 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743517 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 3693D13B5 for ; Thu, 27 Dec 2018 07:00:03 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 1FB3028833 for ; Thu, 27 Dec 2018 07:00:03 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0E5A828845; Thu, 27 Dec 2018 07:00:03 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id F308D28833 for ; Thu, 27 Dec 2018 06:59:58 +0000 (UTC) Received: from localhost ([127.0.0.1]:49914 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPeA-0000fX-5a for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:59:58 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55118) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHG-00041Q-V7 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:22 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPH9-0005XM-Dw for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:16 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPH6-00041J-J9 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:09 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:34 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617379" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:33 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:14 +0800 Message-Id: <20181227063419.12981-21-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 20/25] hyperv: express dependencies with kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP remove default-configs/hyperv.mak and make dependencies with Kconfig. Signed-off-by: Yang Zhong Reviewed-by: Thomas Huth --- default-configs/hyperv.mak | 2 -- default-configs/i386-softmmu.mak | 1 - hw/hyperv/Kconfig | 1 + hw/i386/Kconfig | 2 ++ 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 default-configs/hyperv.mak diff --git a/default-configs/hyperv.mak b/default-configs/hyperv.mak deleted file mode 100644 index 5d0d9fd830..0000000000 --- a/default-configs/hyperv.mak +++ /dev/null @@ -1,2 +0,0 @@ -CONFIG_HYPERV=$(CONFIG_KVM) -CONFIG_HYPERV_TESTDEV=y diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index d2e58edd17..eb2d22de3c 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,6 +1,5 @@ # Default configuration for i386-softmmu -include hyperv.mak CONFIG_VMXNET3_PCI=y CONFIG_VIRTIO_VGA=y CONFIG_IPMI=y diff --git a/hw/hyperv/Kconfig b/hw/hyperv/Kconfig index be724b7f8b..632c3a675b 100644 --- a/hw/hyperv/Kconfig +++ b/hw/hyperv/Kconfig @@ -1,5 +1,6 @@ config HYPERV bool + depends on KVM config HYPERV_TESTDEV bool diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index 695a67f88d..af4b81bae1 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -11,6 +11,8 @@ config PC select I8257 select MC146818RTC select TPM_TIS if TPM + select HYPERV + select HYPERV_TESTDEV config PC_PCI bool From patchwork Thu Dec 27 06:34:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743515 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 24BBD13B5 for ; Thu, 27 Dec 2018 06:59:29 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 09BD22881B for ; Thu, 27 Dec 2018 06:59:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id F01072882A; Thu, 27 Dec 2018 06:59:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id E516A2881B for ; Thu, 27 Dec 2018 06:59:22 +0000 (UTC) Received: from localhost ([127.0.0.1]:49912 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPdZ-0008NI-NJ for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:59:21 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55117) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHG-00041P-Ur for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPH9-0005We-B9 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:16 -0500 Received: from mga11.intel.com ([192.55.52.93]:57858) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPH6-0004B3-RM for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:09 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:36 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617385" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:35 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:15 +0800 Message-Id: <20181227063419.12981-22-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 21/25] virtio: make virtio dependencies with Kconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Signed-off-by: Yang Zhong --- default-configs/i386-softmmu.mak | 1 - hw/9pfs/Kconfig | 2 ++ hw/block/Kconfig | 2 ++ hw/char/Kconfig | 2 ++ hw/display/Kconfig | 5 +++++ hw/input/Kconfig | 2 ++ hw/net/Kconfig | 2 ++ hw/pci-host/Kconfig | 2 ++ hw/virtio/Kconfig | 10 +++++++++- 9 files changed, 26 insertions(+), 2 deletions(-) diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index eb2d22de3c..d3488b5a6d 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,7 +1,6 @@ # Default configuration for i386-softmmu CONFIG_VMXNET3_PCI=y -CONFIG_VIRTIO_VGA=y CONFIG_IPMI=y CONFIG_IPMI_LOCAL=y CONFIG_IPMI_EXTERN=y diff --git a/hw/9pfs/Kconfig b/hw/9pfs/Kconfig index a4750999d9..d85869ca81 100644 --- a/hw/9pfs/Kconfig +++ b/hw/9pfs/Kconfig @@ -1,2 +1,4 @@ config VIRTIO_9P bool + default y + depends on VIRTIO diff --git a/hw/block/Kconfig b/hw/block/Kconfig index 83c2be5915..771967ad9f 100644 --- a/hw/block/Kconfig +++ b/hw/block/Kconfig @@ -28,6 +28,8 @@ config NVME_PCI config VIRTIO_BLK bool + default y + depends on VIRTIO config VHOST_USER_BLK bool diff --git a/hw/char/Kconfig b/hw/char/Kconfig index 26765599a5..e2b56a178c 100644 --- a/hw/char/Kconfig +++ b/hw/char/Kconfig @@ -25,6 +25,8 @@ config SERIAL_PCI config VIRTIO_SERIAL bool + default y + depends on VIRTIO config STM32F2XX_USART bool diff --git a/hw/display/Kconfig b/hw/display/Kconfig index 8b8f1027b1..38629b8e1b 100644 --- a/hw/display/Kconfig +++ b/hw/display/Kconfig @@ -93,9 +93,14 @@ config QXL config VIRTIO_GPU bool + default y + depends on VIRTIO config VIRTIO_VGA bool + default y + depends on VIRTIO && PCI + select VGA config DPCD bool diff --git a/hw/input/Kconfig b/hw/input/Kconfig index 5d64e07fc6..7434a14cb0 100644 --- a/hw/input/Kconfig +++ b/hw/input/Kconfig @@ -21,6 +21,8 @@ config TSC2005 config VIRTIO_INPUT bool + default y + depends on VIRTIO config TSC210X bool diff --git a/hw/net/Kconfig b/hw/net/Kconfig index b50a8a4368..8b65de1d7f 100644 --- a/hw/net/Kconfig +++ b/hw/net/Kconfig @@ -94,6 +94,8 @@ config XILINX_ETHLITE config VIRTIO_NET bool + default y + depends on VIRTIO config ETSEC bool diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig index 9d57c6cac9..d7af6aa441 100644 --- a/hw/pci-host/Kconfig +++ b/hw/pci-host/Kconfig @@ -23,6 +23,7 @@ config PCI_PIIX bool select PAM select PCI + select VIRTIO config PCI_Q35 bool @@ -31,6 +32,7 @@ config PCI_Q35 select XIO3130 select IOH3420 select I82801B11 + select VIRTIO config PCI_GENERIC bool diff --git a/hw/virtio/Kconfig b/hw/virtio/Kconfig index aabd6d4d96..9127daed5e 100644 --- a/hw/virtio/Kconfig +++ b/hw/virtio/Kconfig @@ -3,18 +3,26 @@ config VIRTIO config VIRTIO_RNG bool + default y + depends on VIRTIO config VIRTIO_PCI bool default y depends on PCI - select VIRTIO + depends on VIRTIO config VIRTIO_MMIO bool + default y + depends on VIRTIO config VIRTIO_BALLOON bool + default y + depends on VIRTIO config VIRTIO_CRYPTO bool + default y + depends on VIRTIO From patchwork Thu Dec 27 06:34:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743489 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 86546924 for ; Thu, 27 Dec 2018 06:45:52 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 76B71287C6 for ; Thu, 27 Dec 2018 06:45:52 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 6AA732881E; Thu, 27 Dec 2018 06:45:52 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 84384287C6 for ; Thu, 27 Dec 2018 06:45:49 +0000 (UTC) Received: from localhost ([127.0.0.1]:49792 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPQS-0007V8-L8 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:45:48 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55119) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHG-00041R-VS for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPH9-0005XF-DZ for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:16 -0500 Received: from mga11.intel.com ([192.55.52.93]:57867) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPH7-0004Bd-4V for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:11 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:38 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617389" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:36 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:16 +0800 Message-Id: <20181227063419.12981-23-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 22/25] i386-softmmu.mak: remove all CONFIG_* except boards definitions X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP %-softmmu.mak only keep boards definitions in Kconfig mode. Signed-off-by: Yang Zhong --- default-configs/i386-softmmu.mak | 30 ------------------------------ hw/i386/Kconfig | 30 ++++++++++++++++++++++++++++++ hw/ide/Kconfig | 2 +- hw/net/Kconfig | 2 ++ 4 files changed, 33 insertions(+), 31 deletions(-) diff --git a/default-configs/i386-softmmu.mak b/default-configs/i386-softmmu.mak index d3488b5a6d..7b083412af 100644 --- a/default-configs/i386-softmmu.mak +++ b/default-configs/i386-softmmu.mak @@ -1,35 +1,5 @@ # Default configuration for i386-softmmu -CONFIG_VMXNET3_PCI=y -CONFIG_IPMI=y -CONFIG_IPMI_LOCAL=y -CONFIG_IPMI_EXTERN=y -CONFIG_ISA_IPMI_KCS=y -CONFIG_ISA_IPMI_BT=y - -# Optional devices: -# -CONFIG_HPET=y -CONFIG_APPLESMC=y -CONFIG_PFLASH_CFI01=y -CONFIG_ISA_TESTDEV=y -CONFIG_VMPORT=y -CONFIG_SGA=y -CONFIG_PVPANIC=y -CONFIG_MEM_DEVICE=y -CONFIG_DIMM=y -CONFIG_NVDIMM=y -CONFIG_ACPI_NVDIMM=y -CONFIG_PCIE_PORT=y -CONFIG_SMBIOS=y -CONFIG_PXB=y -CONFIG_ACPI_VMGENID=y -CONFIG_FW_CFG_DMA=y -CONFIG_I2C=y -CONFIG_SEV=$(CONFIG_KVM) -CONFIG_VTD=y -CONFIG_AMD_IOMMU=y - # Boards: # CONFIG_ISAPC=y diff --git a/hw/i386/Kconfig b/hw/i386/Kconfig index af4b81bae1..c00080ac76 100644 --- a/hw/i386/Kconfig +++ b/hw/i386/Kconfig @@ -1,6 +1,9 @@ config KVM bool +config SEV + bool + config PC bool select ISA_DEBUG @@ -13,6 +16,29 @@ config PC select TPM_TIS if TPM select HYPERV select HYPERV_TESTDEV + select DIMM + select AMD_IOMMU + select NVDIMM + select ACPI_NVDIMM + select ACPI_VMGENID + select SMBIOS + select IPMI + select IPMI_LOCAL + select IPMI_EXTERN + select ISA_IPMI_KCS + select ISA_IPMI_BT + select PFLASH_CFI01 + select I2C + select PVPANIC + select PXB + select VMPORT + select VMMOUSE + select SEV if KVM + select HPET + select APPLESMC + select ISA_TESTDEV + select SGA + select FW_CFG_DMA config PC_PCI bool @@ -37,6 +63,7 @@ config I440FX select PCI_PIIX select FDC select IDE_PIIX + select VTD config ISAPC bool @@ -55,6 +82,8 @@ config Q35 select PCI_Q35 select LPC_ICH9 select AHCI + select VTD + select PCIE_PORT config VTD bool @@ -67,3 +96,4 @@ config VMPORT config VMMOUSE bool + depends on VMPORT diff --git a/hw/ide/Kconfig b/hw/ide/Kconfig index 41d3057675..b9ba571c04 100644 --- a/hw/ide/Kconfig +++ b/hw/ide/Kconfig @@ -17,7 +17,7 @@ config IDE_ISA config IDE_PIIX bool - depends on PCI + select IDE_PCI select IDE_QDEV config IDE_CMD646 diff --git a/hw/net/Kconfig b/hw/net/Kconfig index 8b65de1d7f..3be0571649 100644 --- a/hw/net/Kconfig +++ b/hw/net/Kconfig @@ -108,6 +108,7 @@ config ROCKER config CAN_BUS bool + default y config CAN_PCI bool @@ -116,3 +117,4 @@ config CAN_PCI config CAN_SJA1000 bool + default y From patchwork Thu Dec 27 06:34:17 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743519 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 759E7746 for ; Thu, 27 Dec 2018 07:02:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6486D28866 for ; Thu, 27 Dec 2018 07:02:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 57D9F2886B; Thu, 27 Dec 2018 07:02:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 4E22428866 for ; Thu, 27 Dec 2018 07:02:30 +0000 (UTC) Received: from localhost ([127.0.0.1]:49949 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPgb-0003OA-JR for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 02:02:29 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55386) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHb-0004OR-DL for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:43 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPHV-0005t8-PV for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:39 -0500 Received: from mga11.intel.com ([192.55.52.93]:57858) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPHV-0004B3-5c for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:33 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:40 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617395" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:38 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:17 +0800 Message-Id: <20181227063419.12981-24-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 23/25] x86_64-softmmu.mak: remove i386-softmmu.mak include X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP Only keep same boards definitions as i386-softmmu.mak in x86_64-softmmu.mak. Signed-off-by: Yang Zhong Reviewed-by: Thomas Huth --- default-configs/x86_64-softmmu.mak | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/default-configs/x86_64-softmmu.mak b/default-configs/x86_64-softmmu.mak index 64b2ee2960..0c69c2930c 100644 --- a/default-configs/x86_64-softmmu.mak +++ b/default-configs/x86_64-softmmu.mak @@ -1,3 +1,7 @@ # Default configuration for x86_64-softmmu -include i386-softmmu.mak +# Boards: +# +CONFIG_ISAPC=y +CONFIG_I440FX=y +CONFIG_Q35=y From patchwork Thu Dec 27 06:34:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743497 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id E325E1708 for ; Thu, 27 Dec 2018 06:49:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 176F4285EA for ; Thu, 27 Dec 2018 06:49:27 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0883128712; Thu, 27 Dec 2018 06:49:27 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id EC630285EA for ; Thu, 27 Dec 2018 06:49:21 +0000 (UTC) Received: from localhost ([127.0.0.1]:49816 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPTt-0003x4-5L for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:49:21 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55343) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHZ-0004N0-1L for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:42 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPHR-0005m2-M2 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:36 -0500 Received: from mga11.intel.com ([192.55.52.93]:57851) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPHR-00041J-7R for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:29 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617400" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:40 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:18 +0800 Message-Id: <20181227063419.12981-25-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 24/25] minikconf: implement allyesconfig, allnoconfig, randconfig, defconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP From: Paolo Bonzini Apart from defconfig (which is a no-op), the others are implemented implemented simply by ignoring the RHS of assignments and "default" statements. The RHS is replaced respectively by "true", "false" or a random value. Signed-off-by: Paolo Bonzini --- Makefile | 5 +++++ scripts/minikconf.py | 43 ++++++++++++++++++++++++++++++++++++------- 2 files changed, 41 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index ccf3e3f5b3..b8602b1007 100644 --- a/Makefile +++ b/Makefile @@ -392,6 +392,11 @@ MINIKCONF_ARGS = \ MINIKCONF = $(SHELL) $(SRC_PATH)/scripts/minikconf.sh +.PHONY: allyesconfig allnoconfig defconfig randconfig +allyesconfig allnoconfig defconfig randconfig: + rm */config-devices.mak config-all-devices.mak + $(MAKE) MINIKCONF="$(MINIKCONF) --$<" config-all-devices.mak + %/config-devices.mak: default-configs/%-softmmu.mak Kconfig.host hw/Kconfig $(call quiet-command, \ $(MINIKCONF) $@ $*-config-devices.mak.d $^ $(MINIKCONF_ARGS) > $@.tmp, " GEN $@.tmp") diff --git a/scripts/minikconf.py b/scripts/minikconf.py index a03e5ec55e..ef9c4cdce0 100644 --- a/scripts/minikconf.py +++ b/scripts/minikconf.py @@ -13,8 +13,10 @@ import os import sys import re +import random -__all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser' ] +__all__ = [ 'KconfigParserError', 'KconfigData', 'KconfigParser', + 'defconfig', 'allyesconfig', 'allnoconfig', 'randconfig' ] def debug_print(*args): #print ' '.join(str(x) for x in args) @@ -30,6 +32,11 @@ def debug_print(*args): # just its name). # ------------------------------------------- +allyesconfig = lambda x: True +allnoconfig = lambda x: False +defconfig = lambda x: x +randconfig = lambda x: random.randint(0, 1) == 1 + class KconfigData: class Expr: def __and__(self, rhs): @@ -178,7 +185,8 @@ class KconfigData: if self.cond.evaluate(): self.dest.set_value(True) - def __init__(self): + def __init__(self, value_mangler=defconfig): + self.value_mangler = value_mangler self.previously_included = [] self.incl_info = None self.defined_vars = set() @@ -256,10 +264,12 @@ class KconfigData: return var_obj def do_assignment(self, var, val): - self.clauses.append(KconfigData.AssignmentClause(var, val)) + f = self.value_mangler + self.clauses.append(KconfigData.AssignmentClause(var, f(val))) def do_default(self, var, val, cond=None): - self.clauses.append(KconfigData.DefaultClause(var, val, cond)) + f = self.value_mangler + self.clauses.append(KconfigData.DefaultClause(var, f(val), cond)) def do_depends_on(self, var, expr): self.clauses.append(KconfigData.DependsOnClause(var, expr)) @@ -309,9 +319,10 @@ class KconfigParserError(Exception): return "%s: %s" % (self.loc, self.msg) class KconfigParser: + @classmethod - def parse(self, fp): - data = KconfigData() + def parse(self, fp, mode=None): + data = KconfigData(mode or KconfigParser.defconfig) parser = KconfigParser(data) parser.parse_file(fp) return data @@ -627,11 +638,29 @@ class KconfigParser: if __name__ == '__main__': argv = sys.argv + mode = defconfig + if len(sys.argv) > 1: + if argv[1] == '--defconfig': + del argv[1] + elif argv[1] == '--randconfig': + mode = randconfig + del argv[1] + elif argv[1] == '--allyesconfig': + mode = allyesconfig + del argv[1] + elif argv[1] == '--allnoconfig': + mode = allnoconfig + del argv[1] + if len(argv) == 1: print >>sys.stderr, "%s: at least one argument is required" % argv[0] os.exit(1) - data = KconfigData() + if argv[1].startswith('-'): + print >>sys.stderr, "%s: invalid option %s" % (argv[0], argv[1]) + os.exit(1) + + data = KconfigData(mode) parser = KconfigParser(data) for arg in argv[3:]: m = re.match(r'^(CONFIG_[A-Z0-9_]+)=([yn]?)$', arg) From patchwork Thu Dec 27 06:34:19 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Zhong X-Patchwork-Id: 10743491 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BE9DF924 for ; Thu, 27 Dec 2018 06:46:10 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id AD1C82843B for ; Thu, 27 Dec 2018 06:46:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id A0E3F287E7; Thu, 27 Dec 2018 06:46:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 9B9862843B for ; Thu, 27 Dec 2018 06:46:05 +0000 (UTC) Received: from localhost ([127.0.0.1]:49794 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPQi-0007ok-PM for patchwork-qemu-devel@patchwork.kernel.org; Thu, 27 Dec 2018 01:46:04 -0500 Received: from eggs.gnu.org ([208.118.235.92]:55315) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gcPHW-0004Mg-Ig for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:41 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gcPHR-0005lj-FI for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:34 -0500 Received: from mga11.intel.com ([192.55.52.93]:57867) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gcPHR-0004Bd-25 for qemu-devel@nongnu.org; Thu, 27 Dec 2018 01:36:29 -0500 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 26 Dec 2018 22:35:44 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,404,1539673200"; d="scan'208";a="103617406" Received: from he.bj.intel.com ([10.238.157.85]) by orsmga006.jf.intel.com with ESMTP; 26 Dec 2018 22:35:42 -0800 From: Yang Zhong To: qemu-devel@nongnu.org Date: Thu, 27 Dec 2018 14:34:19 +0800 Message-Id: <20181227063419.12981-26-yang.zhong@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181227063419.12981-1-yang.zhong@intel.com> References: <20181227063419.12981-1-yang.zhong@intel.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 192.55.52.93 Subject: [Qemu-devel] [RFC PATCH 25/25] Makefile: only support defconfig X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: yang.zhong@intel.com, peter.maydell@linaro.org, thuth@redhat.com, sameo@linux.intel.com, pbonzini@redhat.com, ehabkost@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP add CONFIG_VHOST_USER and CONFIG_LINUX in Kconfig.host, the current Makefile only support defconfig because of randconfig does not work. Signed-off-by: Yang Zhong --- Kconfig.host | 6 ++++++ Makefile | 16 ++++++++-------- hw/block/Kconfig | 2 ++ hw/scsi/Kconfig | 2 ++ hw/tpm/Kconfig | 2 ++ 5 files changed, 20 insertions(+), 8 deletions(-) diff --git a/Kconfig.host b/Kconfig.host index d7f503d0ca..3772627a3a 100644 --- a/Kconfig.host +++ b/Kconfig.host @@ -16,3 +16,9 @@ config TPM config XEN bool + +config VHOST_USER + bool + +config LINUX + bool diff --git a/Makefile b/Makefile index b8602b1007..8b3c9685a9 100644 --- a/Makefile +++ b/Makefile @@ -368,6 +368,9 @@ endif SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory --quiet) BUILD_DIR=$(BUILD_DIR) SUBDIR_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(TARGET_DIRS)) SUBDIR_DEVICES_MAK_DEP=$(patsubst %, %-config-devices.mak.d, $(TARGET_DIRS)) +SUBDIR_TARGET_MAK=$(patsubst %, %/config-target.mak, $(TARGET_DIRS)) + +-include $(SUBDIR_TARGET_MAK) ifeq ($(SUBDIR_DEVICES_MAK),) config-all-devices.mak: @@ -388,16 +391,13 @@ MINIKCONF_ARGS = \ CONFIG_SPICE=$(CONFIG_SPICE) \ CONFIG_TPM=$(CONFIG_TPM) \ CONFIG_XEN=$(CONFIG_XEN) \ - CONFIG_OPENGL=$(CONFIG_OPENGL) - -MINIKCONF = $(SHELL) $(SRC_PATH)/scripts/minikconf.sh + CONFIG_OPENGL=$(CONFIG_OPENGL) \ + CONFIG_VHOST_USER=$(CONFIG_VHOST_USER) \ + CONFIG_LINUX=$(CONFIG_LINUX) -.PHONY: allyesconfig allnoconfig defconfig randconfig -allyesconfig allnoconfig defconfig randconfig: - rm */config-devices.mak config-all-devices.mak - $(MAKE) MINIKCONF="$(MINIKCONF) --$<" config-all-devices.mak +MINIKCONF = $(PYTHON) $(SRC_PATH)/scripts/minikconf.py --defconfig -%/config-devices.mak: default-configs/%-softmmu.mak Kconfig.host hw/Kconfig +%/config-devices.mak: default-configs/%.mak Kconfig.host $(SRC_PATH)/hw/Kconfig $(call quiet-command, \ $(MINIKCONF) $@ $*-config-devices.mak.d $^ $(MINIKCONF_ARGS) > $@.tmp, " GEN $@.tmp") $(call quiet-command, if test -f $@; then \ diff --git a/hw/block/Kconfig b/hw/block/Kconfig index 771967ad9f..b2f1de9eca 100644 --- a/hw/block/Kconfig +++ b/hw/block/Kconfig @@ -33,3 +33,5 @@ config VIRTIO_BLK config VHOST_USER_BLK bool + default y + depends on VHOST_USER && LINUX diff --git a/hw/scsi/Kconfig b/hw/scsi/Kconfig index d669a4824e..03a91229f7 100644 --- a/hw/scsi/Kconfig +++ b/hw/scsi/Kconfig @@ -47,3 +47,5 @@ config VIRTIO_SCSI config VHOST_USER_SCSI bool + default y + depends on VHOST_USER && LINUX diff --git a/hw/tpm/Kconfig b/hw/tpm/Kconfig index 28acdb745e..6d383b7209 100644 --- a/hw/tpm/Kconfig +++ b/hw/tpm/Kconfig @@ -13,6 +13,8 @@ config TPM_CRB config TPM_PASSTHROUGH bool + depends on TPM config TPM_EMULATOR bool + depends on TPM