From patchwork Thu Aug 17 23:33:20 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Aleksandr Bezzubikov X-Patchwork-Id: 9907349 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id AD7C76024A for ; Thu, 17 Aug 2017 23:36:42 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id A075228BDC for ; Thu, 17 Aug 2017 23:36:42 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 9538928BF6; Thu, 17 Aug 2017 23:36:42 +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=-6.8 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, T_DKIM_INVALID 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 2889428BDC for ; Thu, 17 Aug 2017 23:36:42 +0000 (UTC) Received: from localhost ([::1]:58415 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1diULB-0000OM-E2 for patchwork-qemu-devel@patchwork.kernel.org; Thu, 17 Aug 2017 19:36:41 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49998) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1diUI7-0006p1-R4 for qemu-devel@nongnu.org; Thu, 17 Aug 2017 19:33:32 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1diUI6-0008R6-UY for qemu-devel@nongnu.org; Thu, 17 Aug 2017 19:33:31 -0400 Received: from mail-lf0-x241.google.com ([2a00:1450:4010:c07::241]:38291) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1diUI6-0008Qn-NG for qemu-devel@nongnu.org; Thu, 17 Aug 2017 19:33:30 -0400 Received: by mail-lf0-x241.google.com with SMTP id y15so5238275lfd.5 for ; Thu, 17 Aug 2017 16:33:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=JkYh3oQ9fyVfBf1WCfQknt9ahHGwgKu5WzdZIV13rjI=; b=r2dZFwSQCC3ZLHrNYwb6V/P6fml6154gV7t/vlil3tOfmCWoSdnH6vtsd6GwtNXKH7 bye7k2P3wHYM8H45U/P9gSN2/q8KnLXpmUM/+Ik4TD64/5TkG2jxDGMuaXNnI0LNd+74 zP0IPdkOVWt3HLE06QdmTqUedSJZeu80Ezk4alRDk39RuHkSjkRcUkit6jYZIJHd1TBm pOFML8gXjWjou+hzqvrgthaH0O1ilyOyOesBl3LhhG4+F2ipr9Wp92y9FydhK9lKvT+a Kxa/rVwZINzN9PdDjwJovA5VPB7d9IIygfgpTJt7ZEE7y6Ejnkvat7iDl+DfMFA98VQb 0tMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=JkYh3oQ9fyVfBf1WCfQknt9ahHGwgKu5WzdZIV13rjI=; b=TF0paYyYertSv/oWORLX8vscUSXvRPwZBFYGkGNG/ck5MX4WeTjK5xMzE/4gBh6Rcv J5TcokQ7F+uCT4P9++qQqnrBxoxwq6gfhAopiAvMnB0bfGZBkxWJezFQ8F/7eZWdFEie m0hztoyb1nKgCHvE7NsvLgMrWnBSDP9AQDZV2hYKiUo/H80Db7nGZt2uhOA+7JouQ8Y5 G9dluZJY/zK/XFK14edRpbycJhKdWOt2WlyBTlDnIMZhIh/raOApZVJdhCgKG98ps1Ry 9ODS7BcobdXBQfaJhNf4SlLT+HEJrsTsbbomfCz7ytkUWB2mswA9BIRl2I3VN5aQVxAe T4UQ== X-Gm-Message-State: AHYfb5hTxTOJCwKsKfVK7jNuILuNH2GC3c7mkYzJosiZMwn+z5bnA73b 3tAQ2LMCISitUg== X-Received: by 10.25.215.21 with SMTP id o21mr2992625lfg.105.1503012809442; Thu, 17 Aug 2017 16:33:29 -0700 (PDT) Received: from localhost.localdomain ([93.185.28.201]) by smtp.gmail.com with ESMTPSA id 96sm925433ljb.60.2017.08.17.16.33.27 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 17 Aug 2017 16:33:28 -0700 (PDT) From: Aleksandr Bezzubikov To: seabios@seabios.org Date: Fri, 18 Aug 2017 02:33:20 +0300 Message-Id: <1503012801-10855-3-git-send-email-zuban32s@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1503012801-10855-1-git-send-email-zuban32s@gmail.com> References: <1503012801-10855-1-git-send-email-zuban32s@gmail.com> X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4010:c07::241 Subject: [Qemu-devel] [PATCH RESEND v7 2/3] pci: add QEMU-specific PCI capability structure 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: mst@redhat.com, qemu-devel@nongnu.org, Aleksandr Bezzubikov , kevin@koconnor.net, kraxel@redhat.com, marcel@redhat.com, lersek@redhat.com Errors-To: qemu-devel-bounces+patchwork-qemu-devel=patchwork.kernel.org@nongnu.org Sender: "Qemu-devel" X-Virus-Scanned: ClamAV using ClamSMTP On PCI init PCI bridge devices may need some extra info about bus number to reserve, IO, memory and prefetchable memory limits. QEMU can provide this with special vendor-specific PCI capability. This capability is intended to be used only for Red Hat PCI bridges, i.e. QEMU cooperation. Signed-off-by: Aleksandr Bezzubikov Reviewed-by: Marcel Apfelbaum --- src/fw/dev-pci.h | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/fw/dev-pci.h diff --git a/src/fw/dev-pci.h b/src/fw/dev-pci.h new file mode 100644 index 0000000..0dc5556 --- /dev/null +++ b/src/fw/dev-pci.h @@ -0,0 +1,53 @@ +#ifndef _PCI_CAP_H +#define _PCI_CAP_H + +#include "types.h" + +/* + * + * QEMU-specific vendor(Red Hat)-specific capability. + * It's intended to provide some hints for firmware to init PCI devices. + * + * Its structure is shown below: + * + * Header: + * + * u8 id; Standard PCI Capability Header field + * u8 next; Standard PCI Capability Header field + * u8 len; Standard PCI Capability Header field + * u8 type; Red Hat vendor-specific capability type + * Data: + * + * u32 bus_res; minimum bus number to reserve; + * this is necessary for PCI Express Root Ports + * to support PCI bridges hotplug + * u64 io; IO space to reserve + * u32 mem; non-prefetchable memory to reserve + * + * At most of the following two fields may be set to a value + * different from 0xFF...F: + * u32 prefetchable_mem_32; prefetchable memory to reserve (32-bit MMIO) + * u64 prefetchable_mem_64; prefetchable memory to reserve (64-bit MMIO) + * + * If any field value in Data section is 0xFF...F, + * it means that such kind of reservation is not needed and must be ignored. + * +*/ + +/* Offset of vendor-specific capability type field */ +#define PCI_CAP_REDHAT_TYPE_OFFSET 3 + +/* List of valid Red Hat vendor-specific capability types */ +#define REDHAT_CAP_RESOURCE_RESERVE 1 + + +/* Offsets of RESOURCE_RESERVE capability fields */ +#define RES_RESERVE_BUS_RES 4 +#define RES_RESERVE_IO 8 +#define RES_RESERVE_MEM 16 +#define RES_RESERVE_PREF_MEM_32 20 +#define RES_RESERVE_PREF_MEM_64 24 +#define RES_RESERVE_CAP_SIZE 32 + +#endif /* _PCI_CAP_H */ +