From nobody Mon Feb 9 15:45:35 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1733233085; cv=none; d=zohomail.com; s=zohoarc; b=KZnVJpIQT2mGUvc7PCmOfxcUTIViqMXLpV4c1nyAc/e0/xj85mcoJCfEzBJ4bzZ9SaqqDLRvvH4RXHmD22C7dU6jR2z28iVpsPgLgzmnTGxPiCNxZtvOI+VwThGJ3Nlm6/IVkdbtz9a2p+1Bv+eU6QxvkaGz0SYd1g4drxmS7H0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1733233085; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WqEk4QSdK+ADWOaMOo65vdWqo7DUiTKvO758XSd7V+E=; b=Yin0cVwn8wYjhIrSSlftrid/gnemAzYMbS4UJvM6tVo19cSE3TjVCdR0F1qnflhibvavflpPZgHOzKpISIHwDmeEpbpjdRQe6oMuVdIEc4rAcBvNsnsVP6gmXiPk4j6Rtc0LChC9HMcKc4qLolTFxVnn0uKPQJu2kPS387iyyC8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1733233085574944.7043273132731; Tue, 3 Dec 2024 05:38:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tIT4m-000842-SM; Tue, 03 Dec 2024 08:36:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tIT4k-00083T-HY for qemu-devel@nongnu.org; Tue, 03 Dec 2024 08:36:26 -0500 Received: from mail-pl1-x644.google.com ([2607:f8b0:4864:20::644]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tIT4i-0001HS-RZ for qemu-devel@nongnu.org; Tue, 03 Dec 2024 08:36:26 -0500 Received: by mail-pl1-x644.google.com with SMTP id d9443c01a7336-215b9a754fbso8803955ad.1 for ; Tue, 03 Dec 2024 05:36:24 -0800 (PST) Received: from kotori-desktop.lan ([116.231.112.6]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-215810cf18esm44183975ad.242.2024.12.03.05.36.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 Dec 2024 05:36:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1733232983; x=1733837783; darn=nongnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WqEk4QSdK+ADWOaMOo65vdWqo7DUiTKvO758XSd7V+E=; b=KDE0RaR//01gKbsg6khpDeXfxT0keJWMuRcnmfp9O2sMr9llWLSL6e5k6t/wGsTFsQ /QheXcQ6sx720UhMLMiMIzx1tKXU46/xXtmF0FCI6MzFAvrz2sDzAU6keWMrgC1qQEtH xaVfamN7f60r9ovPQ2vNuoaZp9FFMzdY3bYxqb0k3P4psNcwTMpsuaslxLLjnvSqdL++ 8Kgopdx7F8KgkBxASrVSMzpCJGohOr/o0FIFHVKJeRWg2KWBinDPWScCuOTkGt6iYliC cVGMdGhjioOJj85wXiWdUuwCfVhblKF8c66mUcbpi2pwvtAhedM2rLP3CwxBHZhDa31o mo5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733232983; x=1733837783; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WqEk4QSdK+ADWOaMOo65vdWqo7DUiTKvO758XSd7V+E=; b=INgNKbF7NX6tNDYYk3lFeDbN5lSmS3jCfShhY4u5BSCWANxLxR3LLw13eckI3HxMIf Yqyxlnn4QcjqkABbmqjCgbiIgVgwBkHxE64Tnyk3MQtZt5cqRtlwfZS2vEKdykPcIhVe NdzYANZul3L0c29EfO0L2fAidwKd60PW8gugPEuKlPVpB9EYor1COdRyaeNVu7Yj724x av9m1KlsgDwo658hKBrv0W59oNV+l426ImtABpnNOCi2ikLBYqSzBgdwYZKjjrX/kKms FRuUnYA1yYjVi6sz9Ddg5CgQZnkNTrztkrOob7u4dfR1CKIcSw/C6RXtjtLeGoaXbesD PURg== X-Gm-Message-State: AOJu0YycySl0ONAW9fcCsb9NtMGHHbamNLT7lOneteoQoyFYyZaUcET0 TKwf81Z9X0AmXq1K1wamLG/8Zfa8qUiQE/YcVxuqxxOoQDgR8UhUqlDnivrLJA== X-Gm-Gg: ASbGncuUCy2GKWJ0uBLvNus5JvHGNaZcy3dh6FaDfCsD9GNERAoE3Xsol+GcuNfQbxa n9yx9nkXxCrxGDxnd8dVTVTx/fx29hKjRSwz3VrGM7xKe1846sVjhciea4rL7DipTZYFn+jdXY8 86yhEAEb083Qef+GZv5DgyZM4B5yqXqFNmyIa7SMLupQ2SFv3TW+Fxw8BgxGbKT71ENr6mTDjdr RxC6AsSGSwD1uGfM97d1Au4s+WfsWzrvdLcwX8KHn3J/OourfaSxwzuNxc= X-Google-Smtp-Source: AGHT+IEYiVCkVYMPqwfp7JdomS9h8enpXN2aA2H25ejNtXt45LIjaAtdgRI1ctC8tkv1eX1vTKeBZQ== X-Received: by 2002:a17:903:32cc:b0:215:6e07:e0c9 with SMTP id d9443c01a7336-215bd25580bmr32592225ad.53.1733232983215; Tue, 03 Dec 2024 05:36:23 -0800 (PST) From: Tomita Moeko To: qemu-devel@nongnu.org Cc: Alex Williamson , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Corvin=20K=C3=B6hne?= , Tomita Moeko Subject: [PATCH v2 7/9] vfio/igd: emulate GGC register in mmio bar0 Date: Tue, 3 Dec 2024 21:35:46 +0800 Message-ID: <20241203133548.38252-8-tomitamoeko@gmail.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20241203133548.38252-1-tomitamoeko@gmail.com> References: <20241203133548.38252-1-tomitamoeko@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::644; envelope-from=tomitamoeko@gmail.com; helo=mail-pl1-x644.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1733233087382116600 Content-Type: text/plain; charset="utf-8" The GGC register at 0x50 of pci config space is a mirror of the same register at 0x108040 of mmio bar0 [1]. i915 driver also reads that register from mmio bar0 instead of config space. As GGC is programmed and emulated by qemu, the mmio address should also be emulated, in the same way of BDSM register. [1] 4.1.28, 12th Generation Intel Core Processors Datasheet Volume 2 https://www.intel.com/content/www/us/en/content-details/655259 Signed-off-by: Tomita Moeko --- hw/vfio/igd.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/hw/vfio/igd.c b/hw/vfio/igd.c index 522845c509..bc18fc8cc0 100644 --- a/hw/vfio/igd.c +++ b/hw/vfio/igd.c @@ -483,8 +483,10 @@ static const MemoryRegionOps vfio_igd_quirk_mirror_##n= ame =3D { \ .endianness =3D DEVICE_LITTLE_ENDIAN, \ }; =20 +VFIO_IGD_QUIRK_MIRROR_REG(IGD_GMCH, ggc) VFIO_IGD_QUIRK_MIRROR_REG(IGD_BDSM_GEN11, bdsm) =20 +#define IGD_GGC_MMIO_OFFSET 0x108040 #define IGD_BDSM_MMIO_OFFSET 0x1080C0 =20 void vfio_probe_igd_bar0_quirk(VFIOPCIDevice *vdev, int nr) @@ -513,9 +515,16 @@ void vfio_probe_igd_bar0_quirk(VFIOPCIDevice *vdev, in= t nr) return; } =20 - quirk =3D vfio_quirk_alloc(1); + quirk =3D vfio_quirk_alloc(2); quirk->data =3D vdev; =20 + memory_region_init_io(&quirk->mem[0], OBJECT(vdev), + &vfio_igd_quirk_mirror_ggc, vdev, + "vfio-igd-ggc-quirk", 2); + memory_region_add_subregion_overlap(vdev->bars[0].region.mem, + IGD_GGC_MMIO_OFFSET, &quirk->mem[0= ], + 1); + memory_region_init_io(&quirk->mem[1], OBJECT(vdev), &vfio_igd_quirk_mirror_bdsm, vdev, "vfio-igd-bdsm-quirk", 8); --=20 2.45.2