From patchwork Wed Mar 5 01:21:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870505 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550240wrg; Tue, 4 Mar 2025 17:22:25 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCV8HGgBrOfMA2EnQi0vW0U6Fg/KYTcpjdeS9WL3BWK/CnaDWP2QXgxSzD43XuOOfgmd0dE8qw==@linaro.org X-Google-Smtp-Source: AGHT+IErCIpMXW2CqrX3M81fd+V4jAShM64tTgi3UGZmvliPR6OiUvUb50mh3BDX0XFKxF7Ic7VJ X-Received: by 2002:a05:620a:2720:b0:7c0:bde7:61b1 with SMTP id af79cd13be357-7c3d8ef3766mr219503385a.50.1741137745039; Tue, 04 Mar 2025 17:22:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137745; cv=none; d=google.com; s=arc-20240605; b=a+2tolhjl0WIqPGxXIV60hHiAcElMLgJob6gqRbs5XBk0duWladDDxtwXrmone0qzG G3os0+XDi30dvJvE1tmOYsbhkDoX15V4/zzfo71a9/pWlpyILEnOOfBzG6UoIxiOCBDc Tc0FEjtrIBHezmnNWbOrvvSzqo8wFR4dgKJzcjHlueV7cxWTDAbHPg5nGlDqqmcnToUW uT8uBmF7b1v+olhiNlOSyBDIiZjaDt9Sk6K6IjXb4jJkJRiZkxUnWN2hJ5osRtQuUn4r cNKzNJhwARZj2TwTv6yzV3hlDvQQhzTkg+GTvWkmcSdML78MH3rmPC5YDiVjA1pBklVs BO+Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=hSEi0FhosgxuvGNlDjYLhuekfWSpIYsUVfwm4laOPdk=; fh=FTSHQskHtl9j7ectFglVMAYF1cUVWrjS0CcXydHqOx0=; b=Jn52w1OppzCMhQndHdVO0m9JigzhPmfK5JsqqAtSMwsIW0aVixEPEwiK0colKPWRJ2 DoIOe5iAVxTpGhQ7eANtWRtIesMKm8cdkKLxY3vR9J+SV5bR5BiYKWQjYAw6Z8vP263G BWEG0UrQIdcxKOktHr+u0b1HHy1qJvsiIJZjqygGZZnN63YGwzi+XrO1o83f6CKP4u61 GgCMHmpjtkhMlRrRFwnLo580dFO2AucL+PtgyAMPPe5ihR5Sud5zq2Ew7J49o599wAFj dMnyjCgneetFd99dNRcLCY4ydEJ3tY7gTCmsRAYQ+Ev05U0CDx/h6oQRVF5DBK3cBl+B v2Gg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HAqTVITl; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3b7cd9a2asi558858185a.547.2025.03.04.17.22.24 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:22:25 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=HAqTVITl; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdSc-0007sr-So; Tue, 04 Mar 2025 20:22:10 -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 1tpdSa-0007qr-Ej for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:08 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdSY-0006tb-Ha for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:08 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43bcf9612f4so6813285e9.3 for ; Tue, 04 Mar 2025 17:22:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137724; x=1741742524; 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=hSEi0FhosgxuvGNlDjYLhuekfWSpIYsUVfwm4laOPdk=; b=HAqTVITlFOIuP9xemVAFL5ccf2nSwLbJYIepQ1r81irpIczm6W1GC8cgmssWY0IpRp F9iKhQjDUD07XSBS+KLBHkKoiVRdo6L2+ggwxU6w6iDkKxVBr26iEMKvn4+8fY3uQroc zD3X3M8hlXXKE6t4xqQqYAkQH5/DCariNsq290iS/95Z3Zuz03KLGmLfny0mtELhQNvN VrzGscaiGkj6Ih1ICmOnSP+PhHJZ5MiR124vNawosuBlp6I+Pe954aZSv60rwXnnps+E Xx20T4wYlpxCXFrHyuSw1i6FYIFJmv655WCEf8TsRU6/3rre060tfN2dHP5yGmw0OYIH 6dow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137724; x=1741742524; 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=hSEi0FhosgxuvGNlDjYLhuekfWSpIYsUVfwm4laOPdk=; b=Rm1piNq0aAAVQhLcNtIh6V9XOFfEHnQt/b8LPbJDvuMn/oaz+WUvaZH8478rcnn2j7 WqFKmSeJVIa0RTQdOTF+BIsX4SxK7oELz/t1Z5hYJLpOMeAGaoBup9zIyn1DKTInoF5i ES0PhvIbCB7z8eQq+Q1xd1dz9gramDPmF9FHDHTXLnEIE8Bl+I7sz4HSzZ5i8yqwiVJc VvstULsreWIKWRGVgj5EOybqH4aY3hxlrqV0yfMMGWeW2ts9GGmUyYxr1cHFGuSDt4D4 BEmxa+yVtqE7p3sxBg4am6Kh79c8FJKdUEFI9YGzwVHLecB+wdtecs1SN1oy09A3Bxay 1cOg== X-Gm-Message-State: AOJu0YzpF5+14zN73PMjTme5tmEexhHizjebttng+1caqoLYFSR4+zIG 3lI6grX7s+A83U3SnCjtnMn8CTSkGrkk0+E4NYs+EB7ATShEyubOYs5oTBUd2pYovNDXPjYXypt xWsM= X-Gm-Gg: ASbGncs7+61BjTpNUfrC0oQV81NWiQ/jxjiE7meZ+EK9PF3Ok3IWIZFCQouJE4fBrRM jGy4Z7TW7vHoVhJK88XtSBmBTqHDdA1RMFBQfC+kJgzK9E/b/waFFWLNqFLbKjFzkPpchIixwRD tEuvJy6dP0OWeRz+wgmCZDiU8gEKW1uh2UjVp58SSkqVjIu4rLAN7QejYA1oNCRM22enG3jWS+x gqqWTiCPRuUYYcYbDCDZwFqEEzPXFXNquyhUT5UqSNVHbiRuYlObgi15QjaYJ4UivLI5GHVEj4q /v7X9ifqGsyGd1fjul6bb1oG/3SLqzkhwKdOUq6OXjR+8iSuJ4v/5y0Z8Aw+jfOAGcrMbvRkvAX P8ZE4/5Yjgi994BBVUr0= X-Received: by 2002:a05:600c:4ece:b0:439:5a37:815c with SMTP id 5b1f17b1804b1-43bd2ae5547mr5352495e9.20.1741137724121; Tue, 04 Mar 2025 17:22:04 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47a6a9fsm19525804f8f.36.2025.03.04.17.22.02 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:02 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Phil Dennis-Jordan Subject: [PULL 01/41] hw/intc: Remove TCG dependency on ARM_GICV3 Date: Wed, 5 Mar 2025 02:21:16 +0100 Message-ID: <20250305012157.96463-2-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=philmd@linaro.org; helo=mail-wm1-x32d.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org The TYPE_ARM_GICV3 model doesn't have any particular dependency on TCG, remove it. Rename the Kconfig selector ARM_GICV3_TCG -> ARM_GICV3. Fixes: a8a5546798c ("hw/intc/arm_gicv3: Introduce CONFIG_ARM_GIC_TCG Kconfig selector") Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Phil Dennis-Jordan Tested-by: Phil Dennis-Jordan Message-Id: <20241227202435.48055-2-philmd@linaro.org> --- hw/intc/Kconfig | 6 +++--- hw/intc/meson.build | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/intc/Kconfig b/hw/intc/Kconfig index dd405bdb5d2..7547528f2c2 100644 --- a/hw/intc/Kconfig +++ b/hw/intc/Kconfig @@ -23,13 +23,13 @@ config APIC config ARM_GIC bool - select ARM_GICV3_TCG if TCG + select ARM_GICV3 if TCG select ARM_GIC_KVM if KVM select MSI_NONBROKEN -config ARM_GICV3_TCG +config ARM_GICV3 bool - depends on ARM_GIC && TCG + depends on ARM_GIC config ARM_GIC_KVM bool diff --git a/hw/intc/meson.build b/hw/intc/meson.build index 510fdfb6886..602da304b02 100644 --- a/hw/intc/meson.build +++ b/hw/intc/meson.build @@ -6,7 +6,7 @@ system_ss.add(when: 'CONFIG_ARM_GIC', if_true: files( 'arm_gicv3_common.c', 'arm_gicv3_its_common.c', )) -system_ss.add(when: 'CONFIG_ARM_GICV3_TCG', if_true: files( +system_ss.add(when: 'CONFIG_ARM_GICV3', if_true: files( 'arm_gicv3.c', 'arm_gicv3_dist.c', 'arm_gicv3_its.c', @@ -39,7 +39,7 @@ endif specific_ss.add(when: 'CONFIG_APIC', if_true: files('apic.c', 'apic_common.c')) specific_ss.add(when: 'CONFIG_ARM_GIC', if_true: files('arm_gicv3_cpuif_common.c')) -specific_ss.add(when: 'CONFIG_ARM_GICV3_TCG', if_true: files('arm_gicv3_cpuif.c')) +specific_ss.add(when: 'CONFIG_ARM_GICV3', if_true: files('arm_gicv3_cpuif.c')) specific_ss.add(when: 'CONFIG_ARM_GIC_KVM', if_true: files('arm_gic_kvm.c')) specific_ss.add(when: ['CONFIG_ARM_GIC_KVM', 'TARGET_AARCH64'], if_true: files('arm_gicv3_kvm.c', 'arm_gicv3_its_kvm.c')) specific_ss.add(when: 'CONFIG_ARM_V7M', if_true: files('armv7m_nvic.c')) From patchwork Wed Mar 5 01:21:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870512 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550810wrg; Tue, 4 Mar 2025 17:24:32 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUsJwjCKXmOb540UvXdOZBr3j2xc7raX4sBCSVZedbps/cLheiJRJzlbNseqwwIHYHg6bLqHw==@linaro.org X-Google-Smtp-Source: AGHT+IEIUh7nTSOs5PH2AnnzBi0Xo2VwiTXmTgAwtMChSHUpc3Kn5jaIcO7JwyQmvIIGNOJBFdNT X-Received: by 2002:ac8:5fcc:0:b0:475:42d:ea0a with SMTP id d75a77b69052e-4750b4c8f45mr17137901cf.38.1741137872677; Tue, 04 Mar 2025 17:24:32 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137872; cv=none; d=google.com; s=arc-20240605; b=SQk8KoV3prnuQX3wX6FDl7RrljckvpCUnVPB+AEgLnyBYTHu65PfGTR7Fxl4FRq1hW 2xkFyx7dlhYUf23yxic/T66UevOfALHPdcOIK1fjr2V/7I2dSYoRXLIzJ/jsv5OnuG1j wEBiWO997vu0OFZMteiQHw7XEdhT7BbSjvrOWkNqinVwSgGfhKaIkHFqFYbilf2qxNfU nZTnnI4+kmlvVyyxx/CCSCocWX4A3H7CpsMmgi1dPxmTQGePcDgjp5t4HMCMHl4+rB0O szSbro8NmEbyarBU86flP+mMoV4qEqXb825loLSQBanvy/obU9ihwp9JrUQyPbgIIkpX zoJw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=UmR5ArYjxZGIeXGnw2haxlZWQ2j6JF05kRSnp+2VEoM=; fh=AdYF5RYt5fYx7GJKmBEOH7ZPgadoSF7n/ZKU5cjPlZM=; b=cXQ6NQoy2iASosA0EpoIHt4EcQJMt9r2G7/N0EYgIwvkA2TQZnPtNB6T3rACG5Cr5T MfIg0hkq5SB+5qo/SvBksC/ltMExt5JSqzrJiMBfmyl7hPRf6hOlEj5PYdJf78ghQEho bDfOGgqLzuV9DG6XaK7ceXr9plX9RON90f53VOsp5R3L2e/DzBw3/JCAADBQzPjcZ8NS sLUEqJ1eA0FdzGsykWaGrFQJfO9x4mDYbTS7ny8axZ2E9pgGlaMXJ7iPW4SpDjdsBED9 fD0qeL3RSWDzH7IsZ4Mm0t/4AZCOsh4c4j0aKjHhjziiNeiCnhmFC9VbNWiwsuMmwn5O ZABQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=weizFo6v; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474eadc996dsi49873921cf.242.2025.03.04.17.24.32 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:24:32 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=weizFo6v; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdSg-0007ta-7B; Tue, 04 Mar 2025 20:22:14 -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 1tpdSe-0007tK-LC for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:12 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdSc-0006uK-RN for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:12 -0500 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-43bcc02ca41so11953505e9.0 for ; Tue, 04 Mar 2025 17:22:10 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137729; x=1741742529; 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=UmR5ArYjxZGIeXGnw2haxlZWQ2j6JF05kRSnp+2VEoM=; b=weizFo6v4wnjRaEC0Grk/N/RBTcCg66kguq8IYTA7DYE/L6Nu8MjPqpfDiP15ZCvHz YtuScyd9TopoVqpu9WdjrfKaQGbFiX3BROFwzD40uOEEIf+Qh0OBL9N92R5vHdDqHdMv tvlk1STLE++ImPXO0K4yADfS3t2ZOPd6EWne8iVmSxN+1eHZDG5rSyRuqexkKqQamx2I VMwdofi/LBDCiODJZ7tRbT1PJNb2wbHu1i7JmH/118+RoR5vxBI5Z2VfyC5tu7BxZ8GE i6CoyArN62ruGDy7xoLdoxuXl+CLvU2EvXldGXkMFgKBF7TcU+ZiSa5rfZvDFqFLYxvo fUaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137729; x=1741742529; 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=UmR5ArYjxZGIeXGnw2haxlZWQ2j6JF05kRSnp+2VEoM=; b=KOW02BBazUUq/wqVyM/H4reFFL2NikcNxfsESuQgHHjRnvWj+yhH1hNFyGLt+73+PT tYcNtM6D0iDguHDhwlLc9Wphqc54rVgG7q8D8AVsDvks0aqFpEmTzjtYPtykSZlhumpe bGF4x8lsUJxD7k1GvSHwdqu5c+iGUhibse9Dm40Y9ATPLjfZ3UODWL0tGI4p/yKwLTni KbTT19d85THxCVNQRZfba0n5RH4nUV5pS429ALkIZKeF+bAfnQ2V5QwmatKUOpMqNuo2 8mEaL8V1HE9tFP2+DYq2ov4NTCy+qB+8sWQbL+rQiTejR2h9GLdCA3mysv3Pvrm69jDb PYHw== X-Gm-Message-State: AOJu0YyEMJrUYzi53F1oK7VWeZA00hUwqGrGL4UmeYf6/ZqEZxj1ZMRb odpj/8voKLrZyCB+BGJaSKv8MgFQ2qke7WVIMQdUncJeJk7x9LU2nLQ0z5w/NjCpRIDIZ5DllNd xVwI= X-Gm-Gg: ASbGncsCuHQq81jZpwUSl/wCFsv5hwtSP+P4Iv4jxDl1PkrtQskf7lCBEm3PAA1x3j9 B4OuuCwWV4dShJ4p8a/jrKdRCN2pMu7t+WczTUYdWMiESI0DYbfNpmjnodhhIi7P1PIf/l3+d5z WUdVxl7hoy4BlGeAv0Fn3mPm/YL9EZSA24Qpm2Ws350TesTrOWDneMT0deqKtWIF7xrSiEEvQW5 4N5282yHLF6hMph83Ds2XGGaE2tchK81wh7m2A3wTdMetViQyeDIKkADg3HEP62GIcsSeHvcxEV xwC8qlE1TgN1rGtiqcFjhTekuCB/QJUqHjTPUwxlGK/PraEMMi0KGWiLfutf67LHo7Rs0a/MHyt 4tqCX0+wb4tiEPksPnZ4= X-Received: by 2002:a05:6000:188b:b0:38f:2bd4:4f83 with SMTP id ffacd0b85a97d-3911f728a05mr750808f8f.16.1741137728704; Tue, 04 Mar 2025 17:22:08 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4795da5sm19606063f8f.15.2025.03.04.17.22.07 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:08 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alexander Graf , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Phil Dennis-Jordan , Akihiko Odaki Subject: [PULL 02/41] hw/misc/pvpanic: Add MMIO interface Date: Wed, 5 Mar 2025 02:21:17 +0100 Message-ID: <20250305012157.96463-3-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::333; envelope-from=philmd@linaro.org; helo=mail-wm1-x333.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Alexander Graf In addition to the ISA and PCI variants of pvpanic, let's add an MMIO platform device that we can use in embedded arm environments. Signed-off-by: Alexander Graf Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko Odaki Tested-by: Akihiko Odaki Message-ID: <20241223221645.29911-8-phil@philjordan.eu> Signed-off-by: Philippe Mathieu-Daudé --- include/hw/misc/pvpanic.h | 1 + hw/misc/pvpanic-mmio.c | 60 +++++++++++++++++++++++++++++++++++++++ hw/misc/Kconfig | 4 +++ hw/misc/meson.build | 1 + 4 files changed, 66 insertions(+) create mode 100644 hw/misc/pvpanic-mmio.c diff --git a/include/hw/misc/pvpanic.h b/include/hw/misc/pvpanic.h index 9a71a5ad0d7..049a94c1125 100644 --- a/include/hw/misc/pvpanic.h +++ b/include/hw/misc/pvpanic.h @@ -26,6 +26,7 @@ #define TYPE_PVPANIC_ISA_DEVICE "pvpanic" #define TYPE_PVPANIC_PCI_DEVICE "pvpanic-pci" +#define TYPE_PVPANIC_MMIO_DEVICE "pvpanic-mmio" #define PVPANIC_IOPORT_PROP "ioport" diff --git a/hw/misc/pvpanic-mmio.c b/hw/misc/pvpanic-mmio.c new file mode 100644 index 00000000000..70097cecc74 --- /dev/null +++ b/hw/misc/pvpanic-mmio.c @@ -0,0 +1,60 @@ +/* + * QEMU simulated pvpanic device (MMIO frontend) + * + * Copyright © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" + +#include "hw/qdev-properties.h" +#include "hw/misc/pvpanic.h" +#include "hw/sysbus.h" +#include "standard-headers/misc/pvpanic.h" + +OBJECT_DECLARE_SIMPLE_TYPE(PVPanicMMIOState, PVPANIC_MMIO_DEVICE) + +#define PVPANIC_MMIO_SIZE 0x2 + +struct PVPanicMMIOState { + SysBusDevice parent_obj; + + PVPanicState pvpanic; +}; + +static void pvpanic_mmio_initfn(Object *obj) +{ + PVPanicMMIOState *s = PVPANIC_MMIO_DEVICE(obj); + + pvpanic_setup_io(&s->pvpanic, DEVICE(s), PVPANIC_MMIO_SIZE); + sysbus_init_mmio(SYS_BUS_DEVICE(obj), &s->pvpanic.mr); +} + +static const Property pvpanic_mmio_properties[] = { + DEFINE_PROP_UINT8("events", PVPanicMMIOState, pvpanic.events, + PVPANIC_PANICKED | PVPANIC_CRASH_LOADED), +}; + +static void pvpanic_mmio_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + + device_class_set_props(dc, pvpanic_mmio_properties); + set_bit(DEVICE_CATEGORY_MISC, dc->categories); +} + +static const TypeInfo pvpanic_mmio_info = { + .name = TYPE_PVPANIC_MMIO_DEVICE, + .parent = TYPE_SYS_BUS_DEVICE, + .instance_size = sizeof(PVPanicMMIOState), + .instance_init = pvpanic_mmio_initfn, + .class_init = pvpanic_mmio_class_init, +}; + +static void pvpanic_register_types(void) +{ + type_register_static(&pvpanic_mmio_info); +} + +type_init(pvpanic_register_types) diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig index 82bd68b4bb8..ec0fa5aa9f8 100644 --- a/hw/misc/Kconfig +++ b/hw/misc/Kconfig @@ -148,6 +148,10 @@ config PVPANIC_ISA depends on ISA_BUS select PVPANIC_COMMON +config PVPANIC_MMIO + bool + select PVPANIC_COMMON + config AUX bool select I2C diff --git a/hw/misc/meson.build b/hw/misc/meson.build index 0b5187a2f74..6d47de482c5 100644 --- a/hw/misc/meson.build +++ b/hw/misc/meson.build @@ -126,6 +126,7 @@ system_ss.add(when: 'CONFIG_ARMSSE_MHU', if_true: files('armsse-mhu.c')) system_ss.add(when: 'CONFIG_PVPANIC_ISA', if_true: files('pvpanic-isa.c')) system_ss.add(when: 'CONFIG_PVPANIC_PCI', if_true: files('pvpanic-pci.c')) +system_ss.add(when: 'CONFIG_PVPANIC_MMIO', if_true: files('pvpanic-mmio.c')) system_ss.add(when: 'CONFIG_AUX', if_true: files('auxbus.c')) system_ss.add(when: 'CONFIG_ASPEED_SOC', if_true: files( 'aspeed_hace.c', From patchwork Wed Mar 5 01:21:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870507 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550389wrg; Tue, 4 Mar 2025 17:22:59 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUXfGJm1jpilAEW2x54zQ68hsPZGmuXTSGZZ/XoC6PxK9/q6ft0XXkQZZFLFk2Czw49aDo0BQ==@linaro.org X-Google-Smtp-Source: AGHT+IFNd16udhRejiEcBB97oFbKnuRo6sMQw/BSY2PGfyCvGI36ZyREgagC5ALzXg68TRjNcSov X-Received: by 2002:a05:620a:26a7:b0:7c0:b3b5:90b with SMTP id af79cd13be357-7c3d8e862d7mr279827685a.56.1741137779411; Tue, 04 Mar 2025 17:22:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137779; cv=none; d=google.com; s=arc-20240605; b=GDbK4AyXPhXbb1NYRrCVfLdSq3x1OefqvH/dDG3V7e3fZAKpKEIFbnEc7JiogGvbgK SklUcjw00qZ5RL/itOmhg1/Skfs/SAnpy5hasPxBVu3EQdTtvrs2iTICXfsXbg1t3h2V f38xWMVOX2Uw7lpqkBAK7B/auReR1et8WoYCPULZhjOZptxUYSXq4Qs7A5rL9EqeLPcn yL1Xmm1RghhnyR0RnCYns+uwE11PvZaN45SIpN89vsspFX8su7ejyPSk50iWxlhJ4zmt CY9Tj5StzqLFad0A9vwNOBHXEZcqCIzAUFuG7yD+FGivec7Z7WHG6UEI1kPTSKAnCbP4 WLcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=iWTIGs3Go4pPr1LSJFmoU+Pe9bQjzTfRf/I5FzOXuf0=; fh=JfjgrjACOQYSbU1oI5IucLYY0iFzHOFn64TDAErOBec=; b=WzZL9jalKoudwwofVerKteht6xF8UXV3o8+6fycm0kWzlbQmxBjCyj09Wdp7qKhWb1 XrlVid3t0q4v+ZKJm672IBhPUroSzCjraKYU2nHOyxBNwkQD8mZYMwJB6dqq+tzMPT9U zLG4Id5dMMHFETzQVxjTnmoft82uC6jvGkWwUl9Tps95CXT15A380P75FKZiXxzObKHJ BAh+QFMut8qwWe2N6qYPxf74BmDptme7X1oLjP+G+0wHxgldMOaB6Oy7xKo0eoyrh3tq fExjHZXXPF7hKAk82JgnATbM0qS7M3ev4g+l3WI04TxDlZ9zQhGfwUkVOaiI/lujjf+O e18g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yZuAppqB; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e8976c0ba8si116213756d6.256.2025.03.04.17.22.59 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:22:59 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yZuAppqB; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdSu-000824-64; Tue, 04 Mar 2025 20:22:30 -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 1tpdSl-0007wJ-F2 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:20 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdSh-0006ux-3p for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:19 -0500 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4394a0c65fcso66888235e9.1 for ; Tue, 04 Mar 2025 17:22:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137733; x=1741742533; 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=iWTIGs3Go4pPr1LSJFmoU+Pe9bQjzTfRf/I5FzOXuf0=; b=yZuAppqB+n66CTZnuKDSWzLR+EXhHmPV9alGEhgWutXPeLcu0Z3V4iP+cqV0AMQtPG /CP0BX2UnlwyCziyc2/NggDChh35r1hFa6OODDePhpGCNslCFXYMXXFdk20e++qM/AOn BQiPWSpID+Wa/zjyA5HtEUk6OsY0H3PaybeO1lNJ6XOmv3u//YltPOH4AD2cm//YJKgm whB6EV7KWUMKTmmXOzrd0iwukMrSpC0HGbW07X4yYl/9Aq52qFOLkTo2uI+lDBeFygBK NA9zMCMA8zgcxpRCR0sw06VXBDZmRJ2ZMYtxq8gNpehjsUOcNE5UPwd9FxxGN1/0kjDa iRjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137733; x=1741742533; 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=iWTIGs3Go4pPr1LSJFmoU+Pe9bQjzTfRf/I5FzOXuf0=; b=HTMTgAzmXyfkL5a0JqXza09IDd3jTnjZzt5cBsFhtFLmmJdPZbhFtFvTlVBcrAQIjX 2W7EtD+YPrFUh+CVNs7D49/hiY8koA9sujU/U6qtx9LSk/d3uGWgrnRifKDZf21CzFKF DRwL9rIDwOkb+j2+WbzLYO3b1EYhzRuZYBQfxd1IRZ8yekXHebPpcn//rrNU/kc00Pk7 2cnlF8lttEr88BAJYQVYzQ/eU6HuRZxWMS+Zyaq7WIE+JGs5ABD4bb2O/sieqRN2VIec aYFnNAWT8wOpY3bGwOGxcHbIHPSOW80OooOJq0qeMLs5+WR2GUhBOw1huJUaC6qt0pO5 LEfg== X-Gm-Message-State: AOJu0YxGm050LO5BPTmYbmDDG5q77YLHExRZEZjGCEOXgYhrvDUZv9gd ki+K7g/7SqiPl1L0A5QzyaTTAdBkiGJO/9Sf9ANLp3Cs+NgLTmzibiNSfv4lV7jqZ5Q0tyzo+r7 bZLk= X-Gm-Gg: ASbGncuRMdZQTwr0z9Wu+yvkSg2udVbIaX9bq0LKD1AhJ6GUmBSqAk7jZIDemoHtlA+ 9GiXidZa9IgKX+ghMw0Y6XdkGzt+Y7tYruQA60vEUlNLHF4SzwSLY3axQOtPBhu+g7vl2Rm2p7y 3H6vDuwtbVY6lhpFTUYjukZXFUpPPbcWVuB5Db0T0n9K1pT+ee9Zk3aetbd7MP2FrlsbfMUWuzG AoJXC42hwRfzl2Fk33OboaugSO3sLc7Apm8ILvgEGT7CUQSScXWIiJWMNRtgK/ICXQ1zcH5Bs2H rQCX2ro18iK4waajUHxop0MjmUs20a6tS7eh1HPpszEtJehdWgyO2cGOhqgdwAjQ1qjEurwKtZY sUR2DmHirDc8YiFkg2QQ= X-Received: by 2002:a5d:64e3:0:b0:391:888:f534 with SMTP id ffacd0b85a97d-3911f7403cfmr576579f8f.20.1741137733296; Tue, 04 Mar 2025 17:22:13 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47a66bcsm19090251f8f.21.2025.03.04.17.22.12 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:12 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Phil Dennis-Jordan , Akihiko Odaki , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 03/41] hw: Add vmapple subdir Date: Wed, 5 Mar 2025 02:21:18 +0100 Message-ID: <20250305012157.96463-4-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Alexander Graf We will introduce a number of devices that are specific to the vmapple target machine. To keep them all tidily together, let's put them into a single target directory. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko Odaki Tested-by: Akihiko Odaki Message-ID: <20241223221645.29911-7-phil@philjordan.eu> Signed-off-by: Philippe Mathieu-Daudé --- MAINTAINERS | 7 +++++++ meson.build | 1 + hw/vmapple/trace.h | 2 ++ hw/Kconfig | 1 + hw/meson.build | 1 + hw/vmapple/Kconfig | 1 + hw/vmapple/meson.build | 1 + hw/vmapple/trace-events | 2 ++ 8 files changed, 16 insertions(+) create mode 100644 hw/vmapple/trace.h create mode 100644 hw/vmapple/Kconfig create mode 100644 hw/vmapple/meson.build create mode 100644 hw/vmapple/trace-events diff --git a/MAINTAINERS b/MAINTAINERS index 2e7fc6fa912..0e160360918 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2820,6 +2820,13 @@ F: hw/misc/ivshmem-flat.c F: include/hw/misc/ivshmem-flat.h F: docs/system/devices/ivshmem-flat.rst +VMapple +M: Alexander Graf +M: Phil Dennis-Jordan +S: Maintained +F: hw/vmapple/* +F: include/hw/vmapple/* + Subsystems ---------- Overall Audio backends diff --git a/meson.build b/meson.build index 0a2c61d2bfa..d1b807aa53f 100644 --- a/meson.build +++ b/meson.build @@ -3605,6 +3605,7 @@ if have_system 'hw/usb', 'hw/vfio', 'hw/virtio', + 'hw/vmapple', 'hw/watchdog', 'hw/xen', 'hw/gpio', diff --git a/hw/vmapple/trace.h b/hw/vmapple/trace.h new file mode 100644 index 00000000000..d099d5ecd9e --- /dev/null +++ b/hw/vmapple/trace.h @@ -0,0 +1,2 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +#include "trace/trace-hw_vmapple.h" diff --git a/hw/Kconfig b/hw/Kconfig index 1b4e9bb07f7..2871784cfdc 100644 --- a/hw/Kconfig +++ b/hw/Kconfig @@ -41,6 +41,7 @@ source ufs/Kconfig source usb/Kconfig source virtio/Kconfig source vfio/Kconfig +source vmapple/Kconfig source xen/Kconfig source watchdog/Kconfig diff --git a/hw/meson.build b/hw/meson.build index b827c82c5d7..9c4f6d0d636 100644 --- a/hw/meson.build +++ b/hw/meson.build @@ -39,6 +39,7 @@ subdir('ufs') subdir('usb') subdir('vfio') subdir('virtio') +subdir('vmapple') subdir('watchdog') subdir('xen') subdir('xenpv') diff --git a/hw/vmapple/Kconfig b/hw/vmapple/Kconfig new file mode 100644 index 00000000000..315c06b689c --- /dev/null +++ b/hw/vmapple/Kconfig @@ -0,0 +1 @@ +# SPDX-License-Identifier: GPL-2.0-or-later diff --git a/hw/vmapple/meson.build b/hw/vmapple/meson.build new file mode 100644 index 00000000000..315c06b689c --- /dev/null +++ b/hw/vmapple/meson.build @@ -0,0 +1 @@ +# SPDX-License-Identifier: GPL-2.0-or-later diff --git a/hw/vmapple/trace-events b/hw/vmapple/trace-events new file mode 100644 index 00000000000..21125794121 --- /dev/null +++ b/hw/vmapple/trace-events @@ -0,0 +1,2 @@ +# See docs/devel/tracing.rst for syntax documentation. +# SPDX-License-Identifier: GPL-2.0-or-later From patchwork Wed Mar 5 01:21:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870509 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550653wrg; Tue, 4 Mar 2025 17:23:59 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUmxqUbQOHgo1OlmiHDC3SXNsVbpOpuQon0tzVPcy9Mc8sl9D6+/TfmswbP4qrKWGv2Tj7CrQ==@linaro.org X-Google-Smtp-Source: AGHT+IE23IJZRfzGofmqi1rV7/+PdWFlppQgQ5tpKaLrqnU+iGxk0MfhJTH6ptWcQ3sFS60z/pnv X-Received: by 2002:a05:620a:6292:b0:7c0:ae2e:62ff with SMTP id af79cd13be357-7c3d8e5556emr270934685a.22.1741137838698; Tue, 04 Mar 2025 17:23:58 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137838; cv=none; d=google.com; s=arc-20240605; b=Il1bpCn9fdWX7ZxtgFoM2d4MwllNv2GsLFDSgUCuwQ6k+3Sv5duWAkD05zyWVzFGbO dc/UGKYUID7Y0YaXbi6PapedQngbIgAj90trZZmTs1Unh2NPLFSiUgTFHA5/6jqcMB/Q nCs5sfkR59fQnlGHno1JN+jezJQ86orQRaKz6BmGGejVckvqqVko9tVlLyZXFxdkk54j wTqdajrN3X9lsMBwxneEAL22mEcXYJ41cv/45TJvoZPlkF5EvyFmnNPO86vzeTwQm+81 wwD/dzBFDrh4hdCiHQaiCHJnJNJyUwVjDH57O/oDvGPDhWNRDaoxdvbZCdanoUs56riE 4rZA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=r5rpcyDvWbnxvTTCjrmVb5aa1NZLCxegMnpu7yEyG8k=; fh=JfjgrjACOQYSbU1oI5IucLYY0iFzHOFn64TDAErOBec=; b=b6jkzWgTfTgPAmjPUQzAoYK6gG584ebI/QRir++T8mhCDpx0wwBZTNzFM3Rzt/IU5J TkaRknLP/wh1pcuz3jtkWtmUm9vDrGvhNVxY/f6yF4qw6pZ9Q1Vq/vxTg3DbgUmQXSFd 11SOTqK7OKXCluWz0qtcrsxFea5sdG/X4uqpbtcGz+ZRi1EpKSdgryqK8sjQUkaQKRqr SiWB/tkkqkJQCvlZDOKun1yUn2564fXP1CJIxhIg6cBux3+Uzq7BOYczO83QX6qyM+Eo 7zuMfvhv8JR8rkADX9YJum0MHoeFn6ptfoY71tRS9JEUQYrKR9appwzEqOytSaPIi9c7 2OqA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Ik4uSt76; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3ac4dcea5si714751885a.282.2025.03.04.17.23.58 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:23:58 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Ik4uSt76; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdTT-0008Lm-8U; Tue, 04 Mar 2025 20:23:07 -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 1tpdSq-00084b-K4 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:28 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdSn-0006vg-Fy for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:24 -0500 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-390df0138beso3265175f8f.0 for ; Tue, 04 Mar 2025 17:22:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137740; x=1741742540; 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=r5rpcyDvWbnxvTTCjrmVb5aa1NZLCxegMnpu7yEyG8k=; b=Ik4uSt76T/mrizPeBk+Loz7A+Iyb8e+DZEjZRobMmyBryuGH6ZX5opuHUraHCuKXyC i1phhY8uD26n96yYNQ4mRPnvh2V1HlD8aW9poUfbny9pszXMpkA7UVKuVZAEnok9lE1W uKLd4Vn4g2Jd+2FMmX5UrjFKhRdr3pNXSZMpuVL3vcDlpi1XzukMwSVlv/bjPxPAPcQr HRDisZ9ITFZj1BB94Ap4+aNEmEzyOwDf4jfYBug6veI4Iz2EI99QioydHk5oYPez+Fyc RcjtFsbHdSKNM+Z4mUvHBUzW8kt86tOX9c9YhIJzvu70Lk4e1RYN/XlDeQqW/93p8v7K tSFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137740; x=1741742540; 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=r5rpcyDvWbnxvTTCjrmVb5aa1NZLCxegMnpu7yEyG8k=; b=QcFscVlYip/s3a9uUE6WAgzc0ud222Ugzqq9KHpZUQKqPubltLEv6zcpAMyNWq6WGP 94gH0C4NAki1fgCNOpp0YoYuTK367ApJZv0vKwCujOABVULNHQTZnGh0zC0rVxkAGUAW 0El1rK9fUXacNagoKi7EuC2w0LJd2uyyWDyh1roeXvJSqo2QD9EEMoRkDP89JPqqBAM5 fIehi+QVaHRQ2x0cZaNqfjSVbPDcFZm9ljuSDLpEBjDoDQFwoE8oCAdp7/J+YrYRtMtK d4dC08NfND5TDnyEUrn0A0T64Qxp+p4vILZc5pS0fmrvRc52auWJeMNv1i8NKQa22ypv Z8Xw== X-Gm-Message-State: AOJu0Yzz6np48lt0Pq3WTgxknxT05ZszbvhUdr6DtU9hHdZwBvifRmWd 8XjgUBM+9LzEUoO4OgAjgCyE0qzwpI+9GGAtGDYVM9LG23NtJeYDUHbgPE/A4wdbF48Ke94dtWq 6NIc= X-Gm-Gg: ASbGncvjL3JQgWL1yt30fb1y1IVfv5WUAz3hsbCwE+vm9P4wuA84IcnibZXkN2a43R/ CwuHMiwGqQJZ8r03QLx7XI6uCRzXAaKqUqCIiTnhhWdZou5vlCfVk+jwh+f8UbUjqW72KcnrJfj leHicsZ6mezAcPq50MYY06E6q9VsnOgJYzfU4SZcOYT+KkfY+t/NAQS41Vm+3+2ZuwiAwFhtswA sqQ2iBWqKcs2jhWktO64WENcU62NRFtePmhX1XWYBfYUg9Ph3XTzZwbzJaAdGwWcqScDKmW/F7M c8C5YEr/1iqmTZEEYPMLY8Cece1E8mDDAD6ghVmKkdIrDbou+OpzCyk4y9F22E7Jp3I48dXAwgb t5mAN2p0IqhUh9Zdtguc= X-Received: by 2002:a05:6000:18ac:b0:390:feb7:1f65 with SMTP id ffacd0b85a97d-3911f7c868emr707098f8f.49.1741137739517; Tue, 04 Mar 2025 17:22:19 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd426c01bsm2038115e9.2.2025.03.04.17.22.17 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:18 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Phil Dennis-Jordan , Akihiko Odaki , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 04/41] hw/vmapple/aes: Introduce aes engine Date: Wed, 5 Mar 2025 02:21:19 +0100 Message-ID: <20250305012157.96463-5-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42a; envelope-from=philmd@linaro.org; helo=mail-wr1-x42a.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Alexander Graf VMApple contains an "aes" engine device that it uses to encrypt and decrypt its nvram. It has trivial hard coded keys it uses for that purpose. Add device emulation for this device model. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko Odaki Tested-by: Akihiko Odaki Message-ID: <20241223221645.29911-10-phil@philjordan.eu> Signed-off-by: Philippe Mathieu-Daudé --- include/hw/vmapple/vmapple.h | 17 + include/qemu/cutils.h | 15 + hw/vmapple/aes.c | 581 +++++++++++++++++++++++++++++++++++ util/hexdump.c | 18 ++ hw/vmapple/Kconfig | 3 + hw/vmapple/meson.build | 2 + hw/vmapple/trace-events | 14 + 7 files changed, 650 insertions(+) create mode 100644 include/hw/vmapple/vmapple.h create mode 100644 hw/vmapple/aes.c diff --git a/include/hw/vmapple/vmapple.h b/include/hw/vmapple/vmapple.h new file mode 100644 index 00000000000..6762b6c869f --- /dev/null +++ b/include/hw/vmapple/vmapple.h @@ -0,0 +1,17 @@ +/* + * Devices specific to the VMApple machine type + * + * Copyright © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_VMAPPLE_VMAPPLE_H +#define HW_VMAPPLE_VMAPPLE_H + +#define TYPE_APPLE_AES "apple-aes" + +#endif /* HW_VMAPPLE_VMAPPLE_H */ diff --git a/include/qemu/cutils.h b/include/qemu/cutils.h index 34a9b9b2204..36c68ce86c5 100644 --- a/include/qemu/cutils.h +++ b/include/qemu/cutils.h @@ -302,4 +302,19 @@ GString *qemu_hexdump_line(GString *str, const void *buf, size_t len, void qemu_hexdump(FILE *fp, const char *prefix, const void *bufptr, size_t size); +/** + * qemu_hexdump_to_buffer: + * @buffer: output string buffer + * @buffer_size: amount of available space in buffer. Must be at least + * data_size*2+1. + * @data: input bytes + * @data_size: number of bytes in data + * + * Converts the @data_size bytes in @data into hex digit pairs, writing them to + * @buffer. Finally, a nul terminating character is written; @buffer therefore + * needs space for (data_size*2+1) chars. + */ +void qemu_hexdump_to_buffer(char *restrict buffer, size_t buffer_size, + const uint8_t *restrict data, size_t data_size); + #endif diff --git a/hw/vmapple/aes.c b/hw/vmapple/aes.c new file mode 100644 index 00000000000..3a7641ab4b0 --- /dev/null +++ b/hw/vmapple/aes.c @@ -0,0 +1,581 @@ +/* + * QEMU Apple AES device emulation + * + * Copyright © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "trace.h" +#include "crypto/hash.h" +#include "crypto/aes.h" +#include "crypto/cipher.h" +#include "hw/irq.h" +#include "hw/sysbus.h" +#include "hw/vmapple/vmapple.h" +#include "migration/vmstate.h" +#include "qemu/cutils.h" +#include "qemu/log.h" +#include "qemu/module.h" +#include "system/dma.h" + +OBJECT_DECLARE_SIMPLE_TYPE(AESState, APPLE_AES) + +#define MAX_FIFO_SIZE 9 + +#define CMD_KEY 0x1 +#define CMD_KEY_CONTEXT_SHIFT 27 +#define CMD_KEY_CONTEXT_MASK (0x1 << CMD_KEY_CONTEXT_SHIFT) +#define CMD_KEY_SELECT_MAX_IDX 0x7 +#define CMD_KEY_SELECT_SHIFT 24 +#define CMD_KEY_SELECT_MASK (CMD_KEY_SELECT_MAX_IDX << CMD_KEY_SELECT_SHIFT) +#define CMD_KEY_KEY_LEN_NUM 4u +#define CMD_KEY_KEY_LEN_SHIFT 22 +#define CMD_KEY_KEY_LEN_MASK ((CMD_KEY_KEY_LEN_NUM - 1u) << CMD_KEY_KEY_LEN_SHIFT) +#define CMD_KEY_ENCRYPT_SHIFT 20 +#define CMD_KEY_ENCRYPT_MASK (0x1 << CMD_KEY_ENCRYPT_SHIFT) +#define CMD_KEY_BLOCK_MODE_SHIFT 16 +#define CMD_KEY_BLOCK_MODE_MASK (0x3 << CMD_KEY_BLOCK_MODE_SHIFT) +#define CMD_IV 0x2 +#define CMD_IV_CONTEXT_SHIFT 26 +#define CMD_IV_CONTEXT_MASK (0x3 << CMD_KEY_CONTEXT_SHIFT) +#define CMD_DSB 0x3 +#define CMD_SKG 0x4 +#define CMD_DATA 0x5 +#define CMD_DATA_KEY_CTX_SHIFT 27 +#define CMD_DATA_KEY_CTX_MASK (0x1 << CMD_DATA_KEY_CTX_SHIFT) +#define CMD_DATA_IV_CTX_SHIFT 25 +#define CMD_DATA_IV_CTX_MASK (0x3 << CMD_DATA_IV_CTX_SHIFT) +#define CMD_DATA_LEN_MASK 0xffffff +#define CMD_STORE_IV 0x6 +#define CMD_STORE_IV_ADDR_MASK 0xffffff +#define CMD_WRITE_REG 0x7 +#define CMD_FLAG 0x8 +#define CMD_FLAG_STOP_MASK BIT(26) +#define CMD_FLAG_RAISE_IRQ_MASK BIT(27) +#define CMD_FLAG_INFO_MASK 0xff +#define CMD_MAX 0x10 + +#define CMD_SHIFT 28 + +#define REG_STATUS 0xc +#define REG_STATUS_DMA_READ_RUNNING BIT(0) +#define REG_STATUS_DMA_READ_PENDING BIT(1) +#define REG_STATUS_DMA_WRITE_RUNNING BIT(2) +#define REG_STATUS_DMA_WRITE_PENDING BIT(3) +#define REG_STATUS_BUSY BIT(4) +#define REG_STATUS_EXECUTING BIT(5) +#define REG_STATUS_READY BIT(6) +#define REG_STATUS_TEXT_DPA_SEEDED BIT(7) +#define REG_STATUS_UNWRAP_DPA_SEEDED BIT(8) + +#define REG_IRQ_STATUS 0x18 +#define REG_IRQ_STATUS_INVALID_CMD BIT(2) +#define REG_IRQ_STATUS_FLAG BIT(5) +#define REG_IRQ_ENABLE 0x1c +#define REG_WATERMARK 0x20 +#define REG_Q_STATUS 0x24 +#define REG_FLAG_INFO 0x30 +#define REG_FIFO 0x200 + +static const uint32_t key_lens[CMD_KEY_KEY_LEN_NUM] = { + [0] = 16, + [1] = 24, + [2] = 32, + [3] = 64, +}; + +typedef struct Key { + uint32_t key_len; + uint8_t key[32]; +} Key; + +typedef struct IV { + uint32_t iv[4]; +} IV; + +static Key builtin_keys[CMD_KEY_SELECT_MAX_IDX + 1] = { + [1] = { + .key_len = 32, + .key = { 0x1 }, + }, + [2] = { + .key_len = 32, + .key = { 0x2 }, + }, + [3] = { + .key_len = 32, + .key = { 0x3 }, + } +}; + +struct AESState { + SysBusDevice parent_obj; + + qemu_irq irq; + MemoryRegion iomem1; + MemoryRegion iomem2; + AddressSpace *as; + + uint32_t status; + uint32_t q_status; + uint32_t irq_status; + uint32_t irq_enable; + uint32_t watermark; + uint32_t flag_info; + uint32_t fifo[MAX_FIFO_SIZE]; + uint32_t fifo_idx; + Key key[2]; + IV iv[4]; + bool is_encrypt; + QCryptoCipherMode block_mode; +}; + +static void aes_update_irq(AESState *s) +{ + qemu_set_irq(s->irq, !!(s->irq_status & s->irq_enable)); +} + +static uint64_t aes1_read(void *opaque, hwaddr offset, unsigned size) +{ + AESState *s = opaque; + uint64_t res = 0; + + switch (offset) { + case REG_STATUS: + res = s->status; + break; + case REG_IRQ_STATUS: + res = s->irq_status; + break; + case REG_IRQ_ENABLE: + res = s->irq_enable; + break; + case REG_WATERMARK: + res = s->watermark; + break; + case REG_Q_STATUS: + res = s->q_status; + break; + case REG_FLAG_INFO: + res = s->flag_info; + break; + + default: + qemu_log_mask(LOG_UNIMP, "%s: Unknown AES MMIO offset %" PRIx64 "\n", + __func__, offset); + break; + } + + trace_aes_read(offset, res); + + return res; +} + +static void fifo_append(AESState *s, uint64_t val) +{ + if (s->fifo_idx == MAX_FIFO_SIZE) { + /* Exceeded the FIFO. Bail out */ + return; + } + + s->fifo[s->fifo_idx++] = val; +} + +static bool has_payload(AESState *s, uint32_t elems) +{ + return s->fifo_idx >= elems + 1; +} + +static bool cmd_key(AESState *s) +{ + uint32_t cmd = s->fifo[0]; + uint32_t key_select = (cmd & CMD_KEY_SELECT_MASK) >> CMD_KEY_SELECT_SHIFT; + uint32_t ctxt = (cmd & CMD_KEY_CONTEXT_MASK) >> CMD_KEY_CONTEXT_SHIFT; + uint32_t key_len; + + switch ((cmd & CMD_KEY_BLOCK_MODE_MASK) >> CMD_KEY_BLOCK_MODE_SHIFT) { + case 0: + s->block_mode = QCRYPTO_CIPHER_MODE_ECB; + break; + case 1: + s->block_mode = QCRYPTO_CIPHER_MODE_CBC; + break; + default: + return false; + } + + s->is_encrypt = cmd & CMD_KEY_ENCRYPT_MASK; + key_len = key_lens[(cmd & CMD_KEY_KEY_LEN_MASK) >> CMD_KEY_KEY_LEN_SHIFT]; + + if (key_select) { + trace_aes_cmd_key_select_builtin(ctxt, key_select, + s->is_encrypt ? "en" : "de", + QCryptoCipherMode_str(s->block_mode)); + s->key[ctxt] = builtin_keys[key_select]; + } else { + trace_aes_cmd_key_select_new(ctxt, key_len, + s->is_encrypt ? "en" : "de", + QCryptoCipherMode_str(s->block_mode)); + if (key_len > sizeof(s->key[ctxt].key)) { + return false; + } + if (!has_payload(s, key_len / sizeof(uint32_t))) { + /* wait for payload */ + qemu_log_mask(LOG_GUEST_ERROR, "%s: No payload\n", __func__); + return false; + } + memcpy(&s->key[ctxt].key, &s->fifo[1], key_len); + s->key[ctxt].key_len = key_len; + } + + return true; +} + +static bool cmd_iv(AESState *s) +{ + uint32_t cmd = s->fifo[0]; + uint32_t ctxt = (cmd & CMD_IV_CONTEXT_MASK) >> CMD_IV_CONTEXT_SHIFT; + + if (!has_payload(s, 4)) { + /* wait for payload */ + return false; + } + memcpy(&s->iv[ctxt].iv, &s->fifo[1], sizeof(s->iv[ctxt].iv)); + trace_aes_cmd_iv(ctxt, s->fifo[1], s->fifo[2], s->fifo[3], s->fifo[4]); + + return true; +} + +static void dump_data(const char *desc, const void *p, size_t len) +{ + static const size_t MAX_LEN = 0x1000; + char hex[MAX_LEN * 2 + 1] = ""; + + if (len > MAX_LEN) { + return; + } + + qemu_hexdump_to_buffer(hex, sizeof(hex), p, len); + trace_aes_dump_data(desc, hex); +} + +static bool cmd_data(AESState *s) +{ + uint32_t cmd = s->fifo[0]; + uint32_t ctxt_iv = 0; + uint32_t ctxt_key = (cmd & CMD_DATA_KEY_CTX_MASK) >> CMD_DATA_KEY_CTX_SHIFT; + uint32_t len = cmd & CMD_DATA_LEN_MASK; + uint64_t src_addr = s->fifo[2]; + uint64_t dst_addr = s->fifo[3]; + QCryptoCipherAlgo alg; + g_autoptr(QCryptoCipher) cipher = NULL; + g_autoptr(GByteArray) src = NULL; + g_autoptr(GByteArray) dst = NULL; + MemTxResult r; + + src_addr |= ((uint64_t)s->fifo[1] << 16) & 0xffff00000000ULL; + dst_addr |= ((uint64_t)s->fifo[1] << 32) & 0xffff00000000ULL; + + trace_aes_cmd_data(ctxt_key, ctxt_iv, src_addr, dst_addr, len); + + if (!has_payload(s, 3)) { + /* wait for payload */ + qemu_log_mask(LOG_GUEST_ERROR, "%s: No payload\n", __func__); + return false; + } + + if (ctxt_key >= ARRAY_SIZE(s->key) || + ctxt_iv >= ARRAY_SIZE(s->iv)) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Invalid key or iv\n", __func__); + return false; + } + + src = g_byte_array_sized_new(len); + g_byte_array_set_size(src, len); + dst = g_byte_array_sized_new(len); + g_byte_array_set_size(dst, len); + + r = dma_memory_read(s->as, src_addr, src->data, len, MEMTXATTRS_UNSPECIFIED); + if (r != MEMTX_OK) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: DMA read of %"PRIu32" bytes " + "from 0x%"PRIx64" failed. (r=%d)\n", + __func__, len, src_addr, r); + return false; + } + + dump_data("cmd_data(): src_data=", src->data, len); + + switch (s->key[ctxt_key].key_len) { + case 128 / 8: + alg = QCRYPTO_CIPHER_ALGO_AES_128; + break; + case 192 / 8: + alg = QCRYPTO_CIPHER_ALGO_AES_192; + break; + case 256 / 8: + alg = QCRYPTO_CIPHER_ALGO_AES_256; + break; + default: + qemu_log_mask(LOG_GUEST_ERROR, "%s: Invalid key length\n", __func__); + return false; + } + cipher = qcrypto_cipher_new(alg, s->block_mode, + s->key[ctxt_key].key, + s->key[ctxt_key].key_len, NULL); + if (!cipher) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Failed to create cipher object\n", + __func__); + return false; + } + if (s->block_mode != QCRYPTO_CIPHER_MODE_ECB) { + if (qcrypto_cipher_setiv(cipher, (void *)s->iv[ctxt_iv].iv, + sizeof(s->iv[ctxt_iv].iv), NULL) != 0) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Failed to set IV\n", __func__); + return false; + } + } + if (s->is_encrypt) { + if (qcrypto_cipher_encrypt(cipher, src->data, dst->data, len, NULL) != 0) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Encryption failed\n", __func__); + return false; + } + } else { + if (qcrypto_cipher_decrypt(cipher, src->data, dst->data, len, NULL) != 0) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Decryption failed\n", __func__); + return false; + } + } + + dump_data("cmd_data(): dst_data=", dst->data, len); + r = dma_memory_write(s->as, dst_addr, dst->data, len, MEMTXATTRS_UNSPECIFIED); + if (r != MEMTX_OK) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: DMA write of %"PRIu32" bytes " + "to 0x%"PRIx64" failed. (r=%d)\n", + __func__, len, src_addr, r); + return false; + } + + return true; +} + +static bool cmd_store_iv(AESState *s) +{ + uint32_t cmd = s->fifo[0]; + uint32_t ctxt = (cmd & CMD_IV_CONTEXT_MASK) >> CMD_IV_CONTEXT_SHIFT; + uint64_t addr = s->fifo[1]; + MemTxResult dma_result; + + if (!has_payload(s, 1)) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: No payload\n", __func__); + return false; + } + + if (ctxt >= ARRAY_SIZE(s->iv)) { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Invalid context. ctxt = %u, allowed: 0..%zu\n", + __func__, ctxt, ARRAY_SIZE(s->iv) - 1); + return false; + } + + addr |= ((uint64_t)cmd << 32) & 0xff00000000ULL; + dma_result = dma_memory_write(&address_space_memory, addr, + &s->iv[ctxt].iv, sizeof(s->iv[ctxt].iv), + MEMTXATTRS_UNSPECIFIED); + + trace_aes_cmd_store_iv(ctxt, addr, s->iv[ctxt].iv[0], s->iv[ctxt].iv[1], + s->iv[ctxt].iv[2], s->iv[ctxt].iv[3]); + + return dma_result == MEMTX_OK; +} + +static bool cmd_flag(AESState *s) +{ + uint32_t cmd = s->fifo[0]; + uint32_t raise_irq = cmd & CMD_FLAG_RAISE_IRQ_MASK; + + /* We always process data when it's coming in, so fire an IRQ immediately */ + if (raise_irq) { + s->irq_status |= REG_IRQ_STATUS_FLAG; + } + + s->flag_info = cmd & CMD_FLAG_INFO_MASK; + + trace_aes_cmd_flag(!!raise_irq, s->flag_info); + + return true; +} + +static void fifo_process(AESState *s) +{ + uint32_t cmd = s->fifo[0] >> CMD_SHIFT; + bool success = false; + + if (!s->fifo_idx) { + return; + } + + switch (cmd) { + case CMD_KEY: + success = cmd_key(s); + break; + case CMD_IV: + success = cmd_iv(s); + break; + case CMD_DATA: + success = cmd_data(s); + break; + case CMD_STORE_IV: + success = cmd_store_iv(s); + break; + case CMD_FLAG: + success = cmd_flag(s); + break; + default: + s->irq_status |= REG_IRQ_STATUS_INVALID_CMD; + break; + } + + if (success) { + s->fifo_idx = 0; + } + + trace_aes_fifo_process(cmd, success); +} + +static void aes1_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) +{ + AESState *s = opaque; + + trace_aes_write(offset, val); + + switch (offset) { + case REG_IRQ_STATUS: + s->irq_status &= ~val; + break; + case REG_IRQ_ENABLE: + s->irq_enable = val; + break; + case REG_FIFO: + fifo_append(s, val); + fifo_process(s); + break; + default: + qemu_log_mask(LOG_UNIMP, + "%s: Unknown AES MMIO offset %"PRIx64", data %"PRIx64"\n", + __func__, offset, val); + return; + } + + aes_update_irq(s); +} + +static const MemoryRegionOps aes1_ops = { + .read = aes1_read, + .write = aes1_write, + .endianness = DEVICE_NATIVE_ENDIAN, + .valid = { + .min_access_size = 4, + .max_access_size = 8, + }, + .impl = { + .min_access_size = 4, + .max_access_size = 4, + }, +}; + +static uint64_t aes2_read(void *opaque, hwaddr offset, unsigned size) +{ + uint64_t res = 0; + + switch (offset) { + case 0: + res = 0; + break; + default: + qemu_log_mask(LOG_UNIMP, + "%s: Unknown AES MMIO 2 offset %"PRIx64"\n", + __func__, offset); + break; + } + + trace_aes_2_read(offset, res); + + return res; +} + +static void aes2_write(void *opaque, hwaddr offset, uint64_t val, unsigned size) +{ + trace_aes_2_write(offset, val); + + switch (offset) { + default: + qemu_log_mask(LOG_UNIMP, + "%s: Unknown AES MMIO 2 offset %"PRIx64", data %"PRIx64"\n", + __func__, offset, val); + return; + } +} + +static const MemoryRegionOps aes2_ops = { + .read = aes2_read, + .write = aes2_write, + .endianness = DEVICE_NATIVE_ENDIAN, + .valid = { + .min_access_size = 4, + .max_access_size = 8, + }, + .impl = { + .min_access_size = 4, + .max_access_size = 4, + }, +}; + +static void aes_reset(Object *obj, ResetType type) +{ + AESState *s = APPLE_AES(obj); + + s->status = 0x3f80; + s->q_status = 2; + s->irq_status = 0; + s->irq_enable = 0; + s->watermark = 0; +} + +static void aes_init(Object *obj) +{ + AESState *s = APPLE_AES(obj); + + memory_region_init_io(&s->iomem1, obj, &aes1_ops, s, TYPE_APPLE_AES, 0x4000); + memory_region_init_io(&s->iomem2, obj, &aes2_ops, s, TYPE_APPLE_AES, 0x4000); + sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->iomem1); + sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->iomem2); + sysbus_init_irq(SYS_BUS_DEVICE(s), &s->irq); + s->as = &address_space_memory; +} + +static void aes_class_init(ObjectClass *klass, void *data) +{ + ResettableClass *rc = RESETTABLE_CLASS(klass); + + rc->phases.hold = aes_reset; +} + +static const TypeInfo aes_info = { + .name = TYPE_APPLE_AES, + .parent = TYPE_SYS_BUS_DEVICE, + .instance_size = sizeof(AESState), + .class_init = aes_class_init, + .instance_init = aes_init, +}; + +static void aes_register_types(void) +{ + type_register_static(&aes_info); +} + +type_init(aes_register_types) diff --git a/util/hexdump.c b/util/hexdump.c index ae0d4992dcf..f29ffceb746 100644 --- a/util/hexdump.c +++ b/util/hexdump.c @@ -15,6 +15,7 @@ #include "qemu/osdep.h" #include "qemu/cutils.h" +#include "qemu/host-utils.h" static inline char hexdump_nibble(unsigned x) { @@ -97,3 +98,20 @@ void qemu_hexdump(FILE *fp, const char *prefix, } } + +void qemu_hexdump_to_buffer(char *restrict buffer, size_t buffer_size, + const uint8_t *restrict data, size_t data_size) +{ + size_t i; + uint64_t required_buffer_size; + bool overflow = umul64_overflow(data_size, 2, &required_buffer_size); + overflow |= uadd64_overflow(required_buffer_size, 1, &required_buffer_size); + assert(!overflow && buffer_size >= required_buffer_size); + + for (i = 0; i < data_size; i++) { + uint8_t val = data[i]; + *(buffer++) = hexdump_nibble(val >> 4); + *(buffer++) = hexdump_nibble(val & 0xf); + } + *buffer = '\0'; +} diff --git a/hw/vmapple/Kconfig b/hw/vmapple/Kconfig index 315c06b689c..b1944d73129 100644 --- a/hw/vmapple/Kconfig +++ b/hw/vmapple/Kconfig @@ -1 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-or-later + +config VMAPPLE_AES + bool diff --git a/hw/vmapple/meson.build b/hw/vmapple/meson.build index 315c06b689c..a701d06a39d 100644 --- a/hw/vmapple/meson.build +++ b/hw/vmapple/meson.build @@ -1 +1,3 @@ # SPDX-License-Identifier: GPL-2.0-or-later + +system_ss.add(when: 'CONFIG_VMAPPLE_AES', if_true: files('aes.c')) diff --git a/hw/vmapple/trace-events b/hw/vmapple/trace-events index 21125794121..188547a6ad8 100644 --- a/hw/vmapple/trace-events +++ b/hw/vmapple/trace-events @@ -1,2 +1,16 @@ # See docs/devel/tracing.rst for syntax documentation. # SPDX-License-Identifier: GPL-2.0-or-later + +# aes.c +aes_read(uint64_t offset, uint64_t res) "offset=0x%"PRIx64" res=0x%"PRIx64 +aes_cmd_key_select_builtin(uint32_t ctx, uint32_t key_id, const char *direction, const char *cipher) "[%d] Selecting builtin key %d to %scrypt with %s" +aes_cmd_key_select_new(uint32_t ctx, uint32_t key_len, const char *direction, const char *cipher) "[%d] Selecting new key size=%d to %scrypt with %s" +aes_cmd_iv(uint32_t ctx, uint32_t iv0, uint32_t iv1, uint32_t iv2, uint32_t iv3) "[%d] 0x%08x 0x%08x 0x%08x 0x%08x" +aes_cmd_data(uint32_t key, uint32_t iv, uint64_t src, uint64_t dst, uint32_t len) "[key=%d iv=%d] src=0x%"PRIx64" dst=0x%"PRIx64" len=0x%x" +aes_cmd_store_iv(uint32_t ctx, uint64_t addr, uint32_t iv0, uint32_t iv1, uint32_t iv2, uint32_t iv3) "[%d] addr=0x%"PRIx64"x -> 0x%08x 0x%08x 0x%08x 0x%08x" +aes_cmd_flag(uint32_t raise, uint32_t flag_info) "raise=%d flag_info=0x%x" +aes_fifo_process(uint32_t cmd, bool success) "cmd=%d success=%d" +aes_write(uint64_t offset, uint64_t val) "offset=0x%"PRIx64" val=0x%"PRIx64 +aes_2_read(uint64_t offset, uint64_t res) "offset=0x%"PRIx64" res=0x%"PRIx64 +aes_2_write(uint64_t offset, uint64_t val) "offset=0x%"PRIx64" val=0x%"PRIx64 +aes_dump_data(const char *desc, const char *hex) "%s%s" From patchwork Wed Mar 5 01:21:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870508 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550531wrg; Tue, 4 Mar 2025 17:23:30 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXqr5MN6im4l/5OSmiTmqjXENXlmNIxWY6Wax4u43/LC1SqA1EUv9WxVzouq28XaUci5jfLNA==@linaro.org X-Google-Smtp-Source: AGHT+IGoDSn890gNnqRVkPsWDpVJTMxf1ngSco1glN+JU0uq4Qwo3907hrpOqjxExcs/XOVCzjvg X-Received: by 2002:a05:6214:2026:b0:6e6:4969:f005 with SMTP id 6a1803df08f44-6e8e6d443e4mr21414696d6.30.1741137810109; Tue, 04 Mar 2025 17:23:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137810; cv=none; d=google.com; s=arc-20240605; b=O+818IFLlTSTH2ZBu3QLUcChtREBDMBGAex8zmytDor5utTXnLlLWgQcABnvgwK33p nvWEVU65INMJVf8YVes4+Eo4Fl7Wg49zkAAFv3Hz9smqAbuefjA6SGA0s0Nznpp3k+cU 5DaJOO2U17IiGw+c0/gNFV9/7yiwq0nEKq4yFcyzpZ5bEcEN9AD8GyMY4f50nooFo/XK hS/xFWFBL25jML7IewSao0uSk0yLgDnjjt20X65nuiVDKmP33X1L8FduOGLDwK/Zi7je hDeuleGYrIjMm5VR6PVx3vkolLQtNrRf9h1T4d5ZA88xNyuSZMb/TYfTi76lWxvUa1h7 P0XA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=3ljppgKKf0FYL9KCQRnRz1JHGPRuMWcGj+dWfaNgXo0=; fh=JfjgrjACOQYSbU1oI5IucLYY0iFzHOFn64TDAErOBec=; b=dQ60kREBsnf0r/wvnvF4Qe6j900Xx3qWdBDjzKhx9Y96vEGMCFq9OHbhFDizaV5MzD +Z9/fBeFUI9xRTXuRL/IYM4OOGm+ifffyfJB970JCpNDL0soLx5C+QrTUtHqWTGZcFuV OmmPFTcNBbCO2HhZUGUqDsadI2Ppwoq3aWjOQqHCmONTiNAeU0as/+BakhgweYo6YYte Z7ojS+RR9e5RtH8Bs8v0I3UAePTNvTiMUIVOxXyX3cOuhtZ8sigFbNAuB6dzTNsrtxUE fpp7IB3/UtiFPk4t+tHUFLR9+7zUTLZxMrS/qcfX/iFnMyTHuCeTS69/qp3LFX98lWTz wjHQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UMu3rZL2; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e8976c05c9si119782586d6.189.2025.03.04.17.23.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:23:30 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=UMu3rZL2; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdTo-0000bE-LS; Tue, 04 Mar 2025 20:23:25 -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 1tpdSw-000891-7Q for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:32 -0500 Received: from mail-wm1-x336.google.com ([2a00:1450:4864:20::336]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdSs-0006wR-EM for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:28 -0500 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-43bcf9612f4so6814435e9.3 for ; Tue, 04 Mar 2025 17:22:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137744; x=1741742544; 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=3ljppgKKf0FYL9KCQRnRz1JHGPRuMWcGj+dWfaNgXo0=; b=UMu3rZL2IEOhkXDKWSjeHFpBiUG+fouCNsKbc/WosDhRm8emdKaKW9ZjTA7f9WRRMN c8ek8ITMzmTqaj8kReF9rpgshr+HQARhia5oX5dt+vdKq3wlHiA25RhfA/rY7qESK7pN FTL6e/fA95VPWRCFdNchJi3MtXvCXcYqQyRjpu2TFmTgiXDYFyCXswSfiJtDW3HEdxGO txZljMgmbhkrWlQ7fIfpOHC6wlj3ZamKwnwWFi9CiE2v9u3iXEHgRcdeBXlIqSUimREd +4opBixbb5piZDtzmQrcgCI1165I9mvLUK4sNBmKhLqrAuwBMxJ4TEq5n2mzUqjMFare 4TLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137744; x=1741742544; 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=3ljppgKKf0FYL9KCQRnRz1JHGPRuMWcGj+dWfaNgXo0=; b=AZQeLS1qr6DJXD2o3+c4jrE0rzqql5GEF8LPmP+XBFPFvBQaXhzbzzenZBdHsHjQL2 HHzNS6m/jfSquw1+K1/wIHJoTjpmYi7rtkf1hCvWA9/+AFJV2AvFWzOKOVvesWg3ekBG BAloVuBItPqBxZ+aThT7xHuctniD3Kfo2teM0/w4w2VNHlbNh6vFXYhFuvir4IS9VJbO JSEsrjp6J1KT9ORKNZfwD0VKvE5b52DV9nwvkcMJ/Jr58y5xXht75vpMojwid13U8wsU dAURZdSbzP/YIzHc1hr4mwq87Un+jthlWRHuXRzFlAEO7yu5yBWyyhZepE+1XnAKfYSm VAKA== X-Gm-Message-State: AOJu0Ywvfis8yJnhSTKcsBEba7HFYY/6V31gBOn8uAqGSLbtL98Hwiz6 Ea+LuFZSYzg5/SY8P5IkJwL2ezS09Imkx6tr9WtUo1QB3EVKKzkL1IXsis6/svMCFYP7dA+a9+d pQ5c= X-Gm-Gg: ASbGncuX6mMotMeJN1EOM3q5WIM5mN0Rgat8GDGRjfnPufyBrzoVFt73yZDhRN2cJYU xoyaKwJqSt059kGuoKmNZSqiuFQLGZpJMCsLC5y9GceZ1lAbW2tXHSItj9/gj+2pFTAp8NnD0UL adN2eRb6d2STJRGwGxMKY9iccNXqnddJ1bO3f6jSiVaDvO/LD5W9HJr0dkAlUAkOI06VD5b2fMI W3p1UUvwHMAcx8d5gtMaOPfk6d4LEMhdjEmVtRaJLnqUN3R9cTNGpaOq7I5vwjZa8by4PvHkLf/ x0MdAEtdgU3FMMd3gk3KYP8IBAzEGyQNo/C3uwWIJYZxksstkU6pofeNN3XpuLMvsc9YPcrpCqp b00U19Z+SD1sMquMb13M= X-Received: by 2002:a05:600c:3ba8:b0:43b:cd0d:944f with SMTP id 5b1f17b1804b1-43bd2945f10mr7214395e9.5.1741137744212; Tue, 04 Mar 2025 17:22:24 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd42badefsm1958265e9.18.2025.03.04.17.22.23 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:23 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Phil Dennis-Jordan , Akihiko Odaki , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 05/41] hw/vmapple/bdif: Introduce vmapple backdoor interface Date: Wed, 5 Mar 2025 02:21:20 +0100 Message-ID: <20250305012157.96463-6-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::336; envelope-from=philmd@linaro.org; helo=mail-wm1-x336.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Alexander Graf The VMApple machine exposes AUX and ROOT block devices (as well as USB OTG emulation) via virtio-pci as well as a special, simple backdoor platform device. This patch implements this backdoor platform device to the best of my understanding. I left out any USB OTG parts; they're only needed for guest recovery and I don't understand the protocol yet. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko Odaki Tested-by: Akihiko Odaki Message-ID: <20241223221645.29911-11-phil@philjordan.eu> Signed-off-by: Philippe Mathieu-Daudé --- include/hw/vmapple/vmapple.h | 2 + hw/vmapple/bdif.c | 274 +++++++++++++++++++++++++++++++++++ hw/vmapple/Kconfig | 3 + hw/vmapple/meson.build | 1 + hw/vmapple/trace-events | 5 + 5 files changed, 285 insertions(+) create mode 100644 hw/vmapple/bdif.c diff --git a/include/hw/vmapple/vmapple.h b/include/hw/vmapple/vmapple.h index 6762b6c869f..9090e9c5ac8 100644 --- a/include/hw/vmapple/vmapple.h +++ b/include/hw/vmapple/vmapple.h @@ -14,4 +14,6 @@ #define TYPE_APPLE_AES "apple-aes" +#define TYPE_VMAPPLE_BDIF "vmapple-bdif" + #endif /* HW_VMAPPLE_VMAPPLE_H */ diff --git a/hw/vmapple/bdif.c b/hw/vmapple/bdif.c new file mode 100644 index 00000000000..5827dd2aab8 --- /dev/null +++ b/hw/vmapple/bdif.c @@ -0,0 +1,274 @@ +/* + * VMApple Backdoor Interface + * + * Copyright © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/units.h" +#include "qemu/log.h" +#include "qemu/module.h" +#include "trace.h" +#include "hw/vmapple/vmapple.h" +#include "hw/sysbus.h" +#include "hw/block/block.h" +#include "qapi/error.h" +#include "system/block-backend.h" +#include "system/dma.h" + +OBJECT_DECLARE_SIMPLE_TYPE(VMAppleBdifState, VMAPPLE_BDIF) + +struct VMAppleBdifState { + SysBusDevice parent_obj; + + BlockBackend *aux; + BlockBackend *root; + MemoryRegion mmio; +}; + +#define VMAPPLE_BDIF_SIZE 0x00200000 + +#define REG_DEVID_MASK 0xffff0000 +#define DEVID_ROOT 0x00000000 +#define DEVID_AUX 0x00010000 +#define DEVID_USB 0x00100000 + +#define REG_STATUS 0x0 +#define REG_STATUS_ACTIVE BIT(0) +#define REG_CFG 0x4 +#define REG_CFG_ACTIVE BIT(1) +#define REG_UNK1 0x8 +#define REG_BUSY 0x10 +#define REG_BUSY_READY BIT(0) +#define REG_UNK2 0x400 +#define REG_CMD 0x408 +#define REG_NEXT_DEVICE 0x420 +#define REG_UNK3 0x434 + +typedef struct VblkSector { + uint32_t pad; + uint32_t pad2; + uint32_t sector; + uint32_t pad3; +} VblkSector; + +typedef struct VblkReqCmd { + uint64_t addr; + uint32_t len; + uint32_t flags; +} VblkReqCmd; + +typedef struct VblkReq { + VblkReqCmd sector; + VblkReqCmd data; + VblkReqCmd retval; +} VblkReq; + +#define VBLK_DATA_FLAGS_READ 0x00030001 +#define VBLK_DATA_FLAGS_WRITE 0x00010001 + +#define VBLK_RET_SUCCESS 0 +#define VBLK_RET_FAILED 1 + +static uint64_t bdif_read(void *opaque, hwaddr offset, unsigned size) +{ + uint64_t ret = -1; + uint64_t devid = offset & REG_DEVID_MASK; + + switch (offset & ~REG_DEVID_MASK) { + case REG_STATUS: + ret = REG_STATUS_ACTIVE; + break; + case REG_CFG: + ret = REG_CFG_ACTIVE; + break; + case REG_UNK1: + ret = 0x420; + break; + case REG_BUSY: + ret = REG_BUSY_READY; + break; + case REG_UNK2: + ret = 0x1; + break; + case REG_UNK3: + ret = 0x0; + break; + case REG_NEXT_DEVICE: + switch (devid) { + case DEVID_ROOT: + ret = 0x8000000; + break; + case DEVID_AUX: + ret = 0x10000; + break; + } + break; + } + + trace_bdif_read(offset, size, ret); + return ret; +} + +static void le2cpu_sector(VblkSector *sector) +{ + sector->sector = le32_to_cpu(sector->sector); +} + +static void le2cpu_reqcmd(VblkReqCmd *cmd) +{ + cmd->addr = le64_to_cpu(cmd->addr); + cmd->len = le32_to_cpu(cmd->len); + cmd->flags = le32_to_cpu(cmd->flags); +} + +static void le2cpu_req(VblkReq *req) +{ + le2cpu_reqcmd(&req->sector); + le2cpu_reqcmd(&req->data); + le2cpu_reqcmd(&req->retval); +} + +static void vblk_cmd(uint64_t devid, BlockBackend *blk, uint64_t gp_addr, + uint64_t static_off) +{ + VblkReq req; + VblkSector sector; + uint64_t off = 0; + g_autofree char *buf = NULL; + uint8_t ret = VBLK_RET_FAILED; + int r; + MemTxResult dma_result; + + dma_result = dma_memory_read(&address_space_memory, gp_addr, + &req, sizeof(req), MEMTXATTRS_UNSPECIFIED); + if (dma_result != MEMTX_OK) { + goto out; + } + + le2cpu_req(&req); + + if (req.sector.len != sizeof(sector)) { + goto out; + } + + /* Read the vblk command */ + dma_result = dma_memory_read(&address_space_memory, req.sector.addr, + §or, sizeof(sector), + MEMTXATTRS_UNSPECIFIED); + if (dma_result != MEMTX_OK) { + goto out; + } + le2cpu_sector(§or); + + off = sector.sector * 512ULL + static_off; + + /* Sanity check that we're not allocating bogus sizes */ + if (req.data.len > 128 * MiB) { + goto out; + } + + buf = g_malloc0(req.data.len); + switch (req.data.flags) { + case VBLK_DATA_FLAGS_READ: + r = blk_pread(blk, off, req.data.len, buf, 0); + trace_bdif_vblk_read(devid == DEVID_AUX ? "aux" : "root", + req.data.addr, off, req.data.len, r); + if (r < 0) { + goto out; + } + dma_result = dma_memory_write(&address_space_memory, req.data.addr, buf, + req.data.len, MEMTXATTRS_UNSPECIFIED); + if (dma_result == MEMTX_OK) { + ret = VBLK_RET_SUCCESS; + } + break; + case VBLK_DATA_FLAGS_WRITE: + /* Not needed, iBoot only reads */ + break; + default: + break; + } + +out: + dma_memory_write(&address_space_memory, req.retval.addr, &ret, 1, + MEMTXATTRS_UNSPECIFIED); +} + +static void bdif_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ + VMAppleBdifState *s = opaque; + uint64_t devid = (offset & REG_DEVID_MASK); + + trace_bdif_write(offset, size, value); + + switch (offset & ~REG_DEVID_MASK) { + case REG_CMD: + switch (devid) { + case DEVID_ROOT: + vblk_cmd(devid, s->root, value, 0x0); + break; + case DEVID_AUX: + vblk_cmd(devid, s->aux, value, 0x0); + break; + } + break; + } +} + +static const MemoryRegionOps bdif_ops = { + .read = bdif_read, + .write = bdif_write, + .endianness = DEVICE_NATIVE_ENDIAN, + .valid = { + .min_access_size = 1, + .max_access_size = 8, + }, + .impl = { + .min_access_size = 1, + .max_access_size = 8, + }, +}; + +static void bdif_init(Object *obj) +{ + VMAppleBdifState *s = VMAPPLE_BDIF(obj); + + memory_region_init_io(&s->mmio, obj, &bdif_ops, obj, + "VMApple Backdoor Interface", VMAPPLE_BDIF_SIZE); + sysbus_init_mmio(SYS_BUS_DEVICE(obj), &s->mmio); +} + +static const Property bdif_properties[] = { + DEFINE_PROP_DRIVE("aux", VMAppleBdifState, aux), + DEFINE_PROP_DRIVE("root", VMAppleBdifState, root), +}; + +static void bdif_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + + dc->desc = "VMApple Backdoor Interface"; + device_class_set_props(dc, bdif_properties); +} + +static const TypeInfo bdif_info = { + .name = TYPE_VMAPPLE_BDIF, + .parent = TYPE_SYS_BUS_DEVICE, + .instance_size = sizeof(VMAppleBdifState), + .instance_init = bdif_init, + .class_init = bdif_class_init, +}; + +static void bdif_register_types(void) +{ + type_register_static(&bdif_info); +} + +type_init(bdif_register_types) diff --git a/hw/vmapple/Kconfig b/hw/vmapple/Kconfig index b1944d73129..ff5f97c292e 100644 --- a/hw/vmapple/Kconfig +++ b/hw/vmapple/Kconfig @@ -2,3 +2,6 @@ config VMAPPLE_AES bool + +config VMAPPLE_BDIF + bool diff --git a/hw/vmapple/meson.build b/hw/vmapple/meson.build index a701d06a39d..e2aca6b7c2b 100644 --- a/hw/vmapple/meson.build +++ b/hw/vmapple/meson.build @@ -1,3 +1,4 @@ # SPDX-License-Identifier: GPL-2.0-or-later system_ss.add(when: 'CONFIG_VMAPPLE_AES', if_true: files('aes.c')) +system_ss.add(when: 'CONFIG_VMAPPLE_BDIF', if_true: files('bdif.c')) diff --git a/hw/vmapple/trace-events b/hw/vmapple/trace-events index 188547a6ad8..93380ede145 100644 --- a/hw/vmapple/trace-events +++ b/hw/vmapple/trace-events @@ -14,3 +14,8 @@ aes_write(uint64_t offset, uint64_t val) "offset=0x%"PRIx64" val=0x%"PRIx64 aes_2_read(uint64_t offset, uint64_t res) "offset=0x%"PRIx64" res=0x%"PRIx64 aes_2_write(uint64_t offset, uint64_t val) "offset=0x%"PRIx64" val=0x%"PRIx64 aes_dump_data(const char *desc, const char *hex) "%s%s" + +# bdif.c +bdif_read(uint64_t offset, uint32_t size, uint64_t value) "offset=0x%"PRIx64" size=0x%x value=0x%"PRIx64 +bdif_write(uint64_t offset, uint32_t size, uint64_t value) "offset=0x%"PRIx64" size=0x%x value=0x%"PRIx64 +bdif_vblk_read(const char *dev, uint64_t addr, uint64_t offset, uint32_t len, int r) "dev=%s addr=0x%"PRIx64" off=0x%"PRIx64" size=0x%x r=%d" From patchwork Wed Mar 5 01:21:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870518 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551332wrg; Tue, 4 Mar 2025 17:26:30 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXVtlE/H+Tsolt3xyXK/3eDjE1nUqMg1234I0JAEJuwcA0xePDv1e71sNGOmyuVxZyy6hUqsA==@linaro.org X-Google-Smtp-Source: AGHT+IFgFWO49FeZHFww0EiJZ8SgsGgmrQgGszv7LWYJtAKDVBHiITvu5XWkVTamdbcPe1C+yp04 X-Received: by 2002:a05:620a:6290:b0:7c0:b0b7:494c with SMTP id af79cd13be357-7c3d8bd2969mr249017785a.9.1741137990403; Tue, 04 Mar 2025 17:26:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137990; cv=none; d=google.com; s=arc-20240605; b=etMp/S5tM+RxBlXU6p/g5+eOiK7mV68Fo7wlCI8IWAyH050ILI1phlk+NSvssvq4Uq iZiJ9sbfrVFNoDrfKXjq/vqQqCT9OryYzEEuzaWstGJOnnKCyi15Z0PgN+Da2STjYXlj O8RiEXUvhjU9cCbPiCEnRLUO/9GjTojGmq0zQgd4pQOL0hij8MTznebE3Y7xBHWeKBc+ DnmA+R+J+HhZMDrckrqEQZKrQkpor+d2YzYzbxDkwh1XJZB+j11YA3sPnf1omZ5uywHV fHw3sLNs5jFACI3DXWKzKQHtjH7iIPmlDklWz1Kr2SxO+JkjboApkkehbD7qQvGyGCDG 6cgA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=D9JV1AwMjPXWkW/cDeAqd6rBcTJqKFQb5kxMIynKBuE=; fh=JfjgrjACOQYSbU1oI5IucLYY0iFzHOFn64TDAErOBec=; b=I61Iw67y3NF5uQVr3qsWkAKQvhREnQL8/EL4LQBc65D7JCx2wcO1/olz2L6ZxByn7h mRCGxv04r1Jy8d5e2e1e09gZxHC8ohS2+TO4FLxVqeZ5CVoLDhFWR/uAduZM6+owix34 Wko0FNVU6p9KuQCxwpn1QtkUoGCsVun7WF2ipspNOcKI3l7MrQFHd5oTd9Jw9enMdE2F 9rRGBa9KX4QmR9gVkRigfgd9b9PrgqErmb98Dcs7sJCn+nn/OWhc7tIuaD3FTzqiBGde DoSUQ6/jAO8Ia0y58Y7mkkUrL81fQ0Wh46oiCPm0luLuy/uDKWL/lYNxN3NtQ9Jxyttg FDrQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QLJkps5Q; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c367954791si1166619385a.0.2025.03.04.17.26.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:30 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QLJkps5Q; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdTc-0008WI-00; Tue, 04 Mar 2025 20:23:14 -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 1tpdSz-00089d-4J for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:37 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdSw-0006x3-UJ for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:32 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-390f69e71c8so216038f8f.0 for ; Tue, 04 Mar 2025 17:22:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137749; x=1741742549; 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=D9JV1AwMjPXWkW/cDeAqd6rBcTJqKFQb5kxMIynKBuE=; b=QLJkps5QAekbnkdeQeMRRRgUUEl071Jdt0/lsWIeHy7ADdlhyRrPs3JJrislJHlT0T mjZjDLulifR3zWPLMek1TAHE+Xd7LhUTxtuVE1Rhg9V3VzvJZe27d9xIWakCBTW1fgrP 71X9Y4aazAsckCMPw2YVxfRtHdcYJHqidOxRM5OMPQ15TOrIPwugiczWw76RLxAcGDxm Ub8T0DnlVo2nX4c6ZV7ycgQFL150rfbPhgUAFst1OXt8t7DOfp9SKuIkOdryoI/WNOJQ y/hSULcSlTqHXiiZjTNQtO6FpAGlxt/PaArta4FmiUXVLMWlSkGEisvZMH4PngBSZjd1 7w2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137749; x=1741742549; 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=D9JV1AwMjPXWkW/cDeAqd6rBcTJqKFQb5kxMIynKBuE=; b=wSlXmwyCupFoRjf/7zrw4VKrfuIu5M57P6/+FnOfvIXS9Aqt/63E1Ao4yUycoiNjOn ml787au9iTphqZDaM6ZUtMcmtBTslWbnY2rSUVc4eHf8Nn5la7pZ7BGYS2+eywf4LA5B WgIkv6d83A7uJiahv+pafVaEK+U/20L+fxUrrTv+0euT8ZM/w2/5khJdApANqWOeeAwH vZMeFYuOWJA4LmgsMDdolEc1M6MlC7UJvBR/475cDF61bB0GCJpPi6TJZ7OQcGOsDDnk QfyziesdEwWGdE1/ySsNeQFiY65cqVR8zWVR9qRqwHYQsxGGg8X3dzgdqGhtnLJG3Vb9 aMWg== X-Gm-Message-State: AOJu0YwzYKYYUD3OIoVV4dOhALeZ5GA7np9CaiPKidjLiPBsaciVFJEP qQ0Nx4zzTd1qCuv2aVMJIbfyri/Oex3RsnSmiNfIDPq8fS2ilicMmV0aTfCndoZf+eRIgs0ClyQ 2YtA= X-Gm-Gg: ASbGnctpXjvo6t6LQgaTP6BU/LLP3gpNoLUhBTp0C5kZzztwh7N0iXzFseT7zJg2ht5 Ob4I01/eIf879CVzia36O6oV22DcJUr9wiyD0nqtAxAy0kFGvz5AyzCIJez8bYsPfizRpgRgZIN OLLuFDCUW7HVrV8wqcez+l6sATJhENSggmZZQHdTnvIz7X7K5jwl2wWsmZKrJqQPsWtNt/4GmX1 mm6puslICBTKlBWpEXqcWtvq/zZqVXglYoEZBT+4Bm7oty3Dw+VgxDf6UleORwUQqEPykVVCUhO yGQcR2qcvpwc3K+Lv3nYg16e6Ltqnnn0zqM2lKEetiGy2kOzqmi/se46YHOctMRHdjD1dm6FuVW UKtIHHuGZ97sogy2pMOk= X-Received: by 2002:a5d:47af:0:b0:390:f116:d220 with SMTP id ffacd0b85a97d-3911e9f75d4mr872380f8f.17.1741137748778; Tue, 04 Mar 2025 17:22:28 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47b6cd8sm19035086f8f.44.2025.03.04.17.22.28 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:28 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Phil Dennis-Jordan , Akihiko Odaki , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 06/41] hw/vmapple/cfg: Introduce vmapple cfg region Date: Wed, 5 Mar 2025 02:21:21 +0100 Message-ID: <20250305012157.96463-7-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=philmd@linaro.org; helo=mail-wr1-x42b.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Alexander Graf Instead of device tree or other more standardized means, VMApple passes platform configuration to the first stage boot loader in a binary encoded format that resides at a dedicated RAM region in physical address space. This patch models this configuration space as a qdev device which we can then map at the fixed location in the address space. That way, we can influence and annotate all configuration fields easily. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko Odaki Tested-by: Akihiko Odaki Message-ID: <20241223221645.29911-12-phil@philjordan.eu> Signed-off-by: Philippe Mathieu-Daudé --- include/hw/vmapple/vmapple.h | 2 + hw/vmapple/cfg.c | 195 +++++++++++++++++++++++++++++++++++ hw/vmapple/Kconfig | 3 + hw/vmapple/meson.build | 1 + 4 files changed, 201 insertions(+) create mode 100644 hw/vmapple/cfg.c diff --git a/include/hw/vmapple/vmapple.h b/include/hw/vmapple/vmapple.h index 9090e9c5ac8..3bba59f5ec7 100644 --- a/include/hw/vmapple/vmapple.h +++ b/include/hw/vmapple/vmapple.h @@ -16,4 +16,6 @@ #define TYPE_VMAPPLE_BDIF "vmapple-bdif" +#define TYPE_VMAPPLE_CFG "vmapple-cfg" + #endif /* HW_VMAPPLE_VMAPPLE_H */ diff --git a/hw/vmapple/cfg.c b/hw/vmapple/cfg.c new file mode 100644 index 00000000000..63414d801fe --- /dev/null +++ b/hw/vmapple/cfg.c @@ -0,0 +1,195 @@ +/* + * VMApple Configuration Region + * + * Copyright © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include "qemu/osdep.h" +#include "hw/vmapple/vmapple.h" +#include "hw/sysbus.h" +#include "qemu/log.h" +#include "qemu/module.h" +#include "qapi/error.h" +#include "net/net.h" + +OBJECT_DECLARE_SIMPLE_TYPE(VMAppleCfgState, VMAPPLE_CFG) + +#define VMAPPLE_CFG_SIZE 0x00010000 + +typedef struct VMAppleCfg { + uint32_t version; /* 0x000 */ + uint32_t nr_cpus; /* 0x004 */ + uint32_t unk1; /* 0x008 */ + uint32_t unk2; /* 0x00c */ + uint32_t unk3; /* 0x010 */ + uint32_t unk4; /* 0x014 */ + uint64_t ecid; /* 0x018 */ + uint64_t ram_size; /* 0x020 */ + uint32_t run_installer1; /* 0x028 */ + uint32_t unk5; /* 0x02c */ + uint32_t unk6; /* 0x030 */ + uint32_t run_installer2; /* 0x034 */ + uint32_t rnd; /* 0x038 */ + uint32_t unk7; /* 0x03c */ + MACAddr mac_en0; /* 0x040 */ + uint8_t pad1[2]; + MACAddr mac_en1; /* 0x048 */ + uint8_t pad2[2]; + MACAddr mac_wifi0; /* 0x050 */ + uint8_t pad3[2]; + MACAddr mac_bt0; /* 0x058 */ + uint8_t pad4[2]; + uint8_t reserved[0xa0]; /* 0x060 */ + uint32_t cpu_ids[0x80]; /* 0x100 */ + uint8_t scratch[0x200]; /* 0x180 */ + char serial[32]; /* 0x380 */ + char unk8[32]; /* 0x3a0 */ + char model[32]; /* 0x3c0 */ + uint8_t unk9[32]; /* 0x3e0 */ + uint32_t unk10; /* 0x400 */ + char soc_name[32]; /* 0x404 */ +} VMAppleCfg; + +struct VMAppleCfgState { + SysBusDevice parent_obj; + VMAppleCfg cfg; + + MemoryRegion mem; + char *serial; + char *model; + char *soc_name; +}; + +static void vmapple_cfg_reset(Object *obj, ResetType type) +{ + VMAppleCfgState *s = VMAPPLE_CFG(obj); + VMAppleCfg *cfg; + + cfg = memory_region_get_ram_ptr(&s->mem); + memset(cfg, 0, VMAPPLE_CFG_SIZE); + *cfg = s->cfg; +} + +static bool set_fixlen_property_or_error(char *restrict dst, + const char *restrict src, + size_t dst_size, Error **errp, + const char *property_name) +{ + ERRP_GUARD(); + size_t len; + + len = g_strlcpy(dst, src, dst_size); + if (len < dst_size) { /* len does not count nul terminator */ + return true; + } + + error_setg(errp, "Provided value too long for property '%s'", property_name); + error_append_hint(errp, "length (%zu) exceeds maximum of %zu\n", + len, dst_size - 1); + return false; +} + +#define set_fixlen_property_or_return(dst_array, src, errp, property_name) \ + do { \ + if (!set_fixlen_property_or_error((dst_array), (src), \ + ARRAY_SIZE(dst_array), \ + (errp), (property_name))) { \ + return; \ + } \ + } while (0) + +static void vmapple_cfg_realize(DeviceState *dev, Error **errp) +{ + VMAppleCfgState *s = VMAPPLE_CFG(dev); + uint32_t i; + + if (!s->serial) { + s->serial = g_strdup("1234"); + } + if (!s->model) { + s->model = g_strdup("VM0001"); + } + if (!s->soc_name) { + s->soc_name = g_strdup("Apple M1 (Virtual)"); + } + + set_fixlen_property_or_return(s->cfg.serial, s->serial, errp, "serial"); + set_fixlen_property_or_return(s->cfg.model, s->model, errp, "model"); + set_fixlen_property_or_return(s->cfg.soc_name, s->soc_name, errp, "soc_name"); + set_fixlen_property_or_return(s->cfg.unk8, "D/A", errp, "unk8"); + s->cfg.version = 2; + s->cfg.unk1 = 1; + s->cfg.unk2 = 1; + s->cfg.unk3 = 0x20; + s->cfg.unk4 = 0; + s->cfg.unk5 = 1; + s->cfg.unk6 = 1; + s->cfg.unk7 = 0; + s->cfg.unk10 = 1; + + if (s->cfg.nr_cpus > ARRAY_SIZE(s->cfg.cpu_ids)) { + error_setg(errp, + "Failed to create %u CPUs, vmapple machine supports %zu max", + s->cfg.nr_cpus, ARRAY_SIZE(s->cfg.cpu_ids)); + return; + } + for (i = 0; i < s->cfg.nr_cpus; i++) { + s->cfg.cpu_ids[i] = i; + } +} + +static void vmapple_cfg_init(Object *obj) +{ + VMAppleCfgState *s = VMAPPLE_CFG(obj); + + memory_region_init_ram(&s->mem, obj, "VMApple Config", VMAPPLE_CFG_SIZE, + &error_fatal); + sysbus_init_mmio(SYS_BUS_DEVICE(obj), &s->mem); +} + +static const Property vmapple_cfg_properties[] = { + DEFINE_PROP_UINT32("nr-cpus", VMAppleCfgState, cfg.nr_cpus, 1), + DEFINE_PROP_UINT64("ecid", VMAppleCfgState, cfg.ecid, 0), + DEFINE_PROP_UINT64("ram-size", VMAppleCfgState, cfg.ram_size, 0), + DEFINE_PROP_UINT32("run_installer1", VMAppleCfgState, cfg.run_installer1, 0), + DEFINE_PROP_UINT32("run_installer2", VMAppleCfgState, cfg.run_installer2, 0), + DEFINE_PROP_UINT32("rnd", VMAppleCfgState, cfg.rnd, 0), + DEFINE_PROP_MACADDR("mac-en0", VMAppleCfgState, cfg.mac_en0), + DEFINE_PROP_MACADDR("mac-en1", VMAppleCfgState, cfg.mac_en1), + DEFINE_PROP_MACADDR("mac-wifi0", VMAppleCfgState, cfg.mac_wifi0), + DEFINE_PROP_MACADDR("mac-bt0", VMAppleCfgState, cfg.mac_bt0), + DEFINE_PROP_STRING("serial", VMAppleCfgState, serial), + DEFINE_PROP_STRING("model", VMAppleCfgState, model), + DEFINE_PROP_STRING("soc_name", VMAppleCfgState, soc_name), +}; + +static void vmapple_cfg_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + ResettableClass *rc = RESETTABLE_CLASS(klass); + + dc->realize = vmapple_cfg_realize; + dc->desc = "VMApple Configuration Region"; + device_class_set_props(dc, vmapple_cfg_properties); + rc->phases.hold = vmapple_cfg_reset; +} + +static const TypeInfo vmapple_cfg_info = { + .name = TYPE_VMAPPLE_CFG, + .parent = TYPE_SYS_BUS_DEVICE, + .instance_size = sizeof(VMAppleCfgState), + .instance_init = vmapple_cfg_init, + .class_init = vmapple_cfg_class_init, +}; + +static void vmapple_cfg_register_types(void) +{ + type_register_static(&vmapple_cfg_info); +} + +type_init(vmapple_cfg_register_types) diff --git a/hw/vmapple/Kconfig b/hw/vmapple/Kconfig index ff5f97c292e..f5898661a91 100644 --- a/hw/vmapple/Kconfig +++ b/hw/vmapple/Kconfig @@ -5,3 +5,6 @@ config VMAPPLE_AES config VMAPPLE_BDIF bool + +config VMAPPLE_CFG + bool diff --git a/hw/vmapple/meson.build b/hw/vmapple/meson.build index e2aca6b7c2b..9e881c7b555 100644 --- a/hw/vmapple/meson.build +++ b/hw/vmapple/meson.build @@ -2,3 +2,4 @@ system_ss.add(when: 'CONFIG_VMAPPLE_AES', if_true: files('aes.c')) system_ss.add(when: 'CONFIG_VMAPPLE_BDIF', if_true: files('bdif.c')) +system_ss.add(when: 'CONFIG_VMAPPLE_CFG', if_true: files('cfg.c')) From patchwork Wed Mar 5 01:21:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870514 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550841wrg; Tue, 4 Mar 2025 17:24:41 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCViknKxBIcXqJQQJAx58Ak0zLoKILi1O+iqMWsZsp/GzxeXcIBx+Dpi6TRzhIWQVDz+bQL26w==@linaro.org X-Google-Smtp-Source: AGHT+IFc8ssfsahY4lmDOG+Wz/SQev1z7r19V8D6CvqlOy3/Rnq443gi1G6DRUZ8/3ejnlMvRzTJ X-Received: by 2002:a05:6214:29ee:b0:6d8:a39e:32a4 with SMTP id 6a1803df08f44-6e8e6d48130mr20544336d6.25.1741137881176; Tue, 04 Mar 2025 17:24:41 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137881; cv=none; d=google.com; s=arc-20240605; b=R5SppfqH/Lca1nvKCPcQhnCYGES9BX+7OEn7itbT7oYtgj65C3hyXjmZJClANexD8k sAQuCbKojyLmhaCU+q//47Ed16rs4i+zv2PCtvHSJVHmxr4LKAD5vBqk6oIQjLzOFwLf vsH8Ibu8gzGYSjS/vzTlkvoza6vZ5y9nC4/a+HPZQPQJZrKpYlWLoJsqlXZebmgI0JG7 c5I7Ip4EryEPppWJr2HBXltMwB+gjetCRErnuGBcrrA9jEYQJ3fxGSXgDRpzAQRwi2ae Ymmh+fa5mDlIZtr6QHnblLrjnAsHml9ZT69nvmgeM2qA5eSs1ARTwkbnD6XM8SthU54K 5JlQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=k2OK8nUsarIuWp1CFvRrcwYaNwraYG3HrUgdRWw4ex4=; fh=ipDWQYa0Klf7CwD05/uyFsa02FGVbVQ8gTfnKiWdjc4=; b=jHlMcQjJKXtFmGbMWBKo/i3Z/Lyd6CiUTl5CoN9M98G0v2Ks3sk2hycbrdqAYJeLDd lGDz/fdoL8O5YZdgxvKR32x7aAgWFJA/dz9SN4V+acbMVjh2EOnvs3G1C4hR4GbH7Wwk 5jVdRrmsvAQN+Tiv//Iu9jSCbQMksI02RJSCd7Y62c7tjCT0nPPNG4BQEZGkx8K9FyMb UF9W5hk1AHyriPTi//GaCVA6N6iUdnVOqug27lK8LE6MY0s2++rtH5fg6mub5tDH2MVY pGIlXGSBOYWcKV6OvhesU6vO8XTN/2pK1C4CJ3qeuWNpY56KwSKvnldPVqjFGYvjboCv hWuA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Zj9X9vIq; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e8e8da15a7si2604196d6.492.2025.03.04.17.24.41 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:24:41 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Zj9X9vIq; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdTi-0000MV-Nm; Tue, 04 Mar 2025 20:23:19 -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 1tpdT7-0008DM-EN for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:43 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdT4-0006xr-NL for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:41 -0500 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-43bcf9612f4so6815265e9.3 for ; Tue, 04 Mar 2025 17:22:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137755; x=1741742555; 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=k2OK8nUsarIuWp1CFvRrcwYaNwraYG3HrUgdRWw4ex4=; b=Zj9X9vIqAcXWYLQchK4r04y7v8Vamn9ruZ/eUnvAgVFwssveQvXGrfYfmcI8hMBscW vJraWUlHIYwBkidElfoW9sWgmOzCqeCCdd0FpKS66AljICY7T7yspJlNfe564PcXfZ93 XbeQgPVYvc0mmg0ilqsAVjX6z58TygX0yoEw53aQKxU58hIbgFmJVN/asyc+NsecyLHu Bos1bwoOanW50JVs3V9FKm9gHORfsnJzdHk9A7KkeUByliEGxzfiUK++l7BEWq6f61Ff xmT/GoJo7fdzXb1y6Bp4WWS73Slo5WDXDfZeaEwnBwjdncWXsvES2EDQWs/XJo6eaCej I/lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137755; x=1741742555; 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=k2OK8nUsarIuWp1CFvRrcwYaNwraYG3HrUgdRWw4ex4=; b=aEU4S8h6frbsNaFze0MDvOY15H7M1cZ7gsR6jG/CV662la0vs1OoT7oiNlauTup8Hp WnWWPjlHM0p7oLxs/cuz+gl5TA6L9oWczfaFQ+654IQdflAhzXOQJtWkh33297Mn5uBG c6psvmjYq1zGzPQcQGH8/EGGXxafTBcYB12xp58LavZJg93fvTCewZ/toVjjfkLorJYb XAnfYXBIPrmqgPvpdicRjwSl+k+Z/I+j+LzeMWQIPPADPi2VucsExJd4nSdTU7iNXBQU JSVmrvvn3lBl20kRQsHqa1r+WK24ErmEHcYSZNTFuTd9S2p7T0tm3rBu6FMCLARXNg31 fXRw== X-Gm-Message-State: AOJu0Yy+cdU5uhYjtfq0pCNlcnmBMPCGovV0km1HqU/9SNHKPq+9Nd43 mm+Zp8ZQYSOz2MaasPs0PuJTeJrDdtBTiHFu+GqxSGcTMoCF5dNY8RQ9ln7XvhPBLHozQe2vp+9 G2Ck= X-Gm-Gg: ASbGnctvAO/z5TURYpx4lLu/ohbO9O+W8cQyqeG12hbH9e91hYiumjmESOuf4LJCHv1 a3yctzRz6vvjYJX61GqgJkuhXvibCAtaEud2lfcjV/CIeDyR6GFmQMoSt7l2uyRqgGFk3wIe4+a EUYYcCxFH2TQFQ8t+tJL+155mvaDVrEn7+v4yvrvt21dloasLNEcZlW7trPDtZ+OLUXRFawVOSJ q3BxNymLB0Ygh8KM+WIaC47NCQzwNnM4z99T+lg2qWd/j8RbGJ1PcFAnn88SFMaM6gVrUHhxiSw OBnGO2+ADHogCVGTonwQzmhqmqpJXV6tK/YR78tir6dSx/y/TRz3wBXa1JYXueW2SGd26g+9axD nQBXFH/NWLCNXPJ6lDic= X-Received: by 2002:a05:6000:42c7:b0:390:f738:2467 with SMTP id ffacd0b85a97d-3911f7523cemr450398f8f.33.1741137755027; Tue, 04 Mar 2025 17:22:35 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47b6ceesm19051751f8f.45.2025.03.04.17.22.32 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:33 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Phil Dennis-Jordan , Akihiko Odaki , "Michael S. Tsirkin" , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 07/41] hw/vmapple/virtio-blk: Add support for apple virtio-blk Date: Wed, 5 Mar 2025 02:21:22 +0100 Message-ID: <20250305012157.96463-8-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Alexander Graf Apple has its own virtio-blk PCI device ID where it deviates from the official virtio-pci spec slightly: It puts a new "apple type" field at a static offset in config space and introduces a new barrier command. This patch first creates a mechanism for virtio-blk downstream classes to handle unknown commands. It then creates such a downstream class and a new vmapple-virtio-blk-pci class which support the additional apple type config identifier as well as the barrier command. The 'aux' or 'root' device type are selected using the 'variant' property. Signed-off-by: Alexander Graf Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko Odaki Tested-by: Akihiko Odaki Reviewed-by: Michael S. Tsirkin Message-ID: <20241223221645.29911-13-phil@philjordan.eu> Signed-off-by: Philippe Mathieu-Daudé --- qapi/virtio.json | 14 ++ include/hw/pci/pci_ids.h | 1 + include/hw/qdev-properties-system.h | 6 + include/hw/virtio/virtio-blk.h | 11 +- include/hw/vmapple/vmapple.h | 2 + hw/block/virtio-blk.c | 17 ++- hw/core/qdev-properties-system.c | 9 ++ hw/vmapple/virtio-blk.c | 204 ++++++++++++++++++++++++++++ hw/vmapple/Kconfig | 3 + hw/vmapple/meson.build | 1 + 10 files changed, 264 insertions(+), 4 deletions(-) create mode 100644 hw/vmapple/virtio-blk.c diff --git a/qapi/virtio.json b/qapi/virtio.json index 2529c2d8b20..d351d2166ef 100644 --- a/qapi/virtio.json +++ b/qapi/virtio.json @@ -992,3 +992,17 @@ ## { 'enum': 'GranuleMode', 'data': [ '4k', '8k', '16k', '64k', 'host' ] } + +## +# @VMAppleVirtioBlkVariant: +# +# @unspecified: The default, not a valid setting. +# +# @root: Block device holding the root volume +# +# @aux: Block device holding auxiliary data required for boot +# +# Since: 9.2 +## +{ 'enum': 'VMAppleVirtioBlkVariant', + 'data': [ 'unspecified', 'root', 'aux' ] } diff --git a/include/hw/pci/pci_ids.h b/include/hw/pci/pci_ids.h index f1a53fea8d6..33e2898be95 100644 --- a/include/hw/pci/pci_ids.h +++ b/include/hw/pci/pci_ids.h @@ -191,6 +191,7 @@ #define PCI_DEVICE_ID_APPLE_UNI_N_AGP 0x0020 #define PCI_DEVICE_ID_APPLE_U3_AGP 0x004b #define PCI_DEVICE_ID_APPLE_UNI_N_GMAC 0x0021 +#define PCI_DEVICE_ID_APPLE_VIRTIO_BLK 0x1a00 #define PCI_VENDOR_ID_SUN 0x108e #define PCI_DEVICE_ID_SUN_EBUS 0x1000 diff --git a/include/hw/qdev-properties-system.h b/include/hw/qdev-properties-system.h index ead4dfc2f02..b921392c525 100644 --- a/include/hw/qdev-properties-system.h +++ b/include/hw/qdev-properties-system.h @@ -31,6 +31,7 @@ extern const PropertyInfo qdev_prop_pcie_link_width; extern const PropertyInfo qdev_prop_cpus390entitlement; extern const PropertyInfo qdev_prop_iothread_vq_mapping_list; extern const PropertyInfo qdev_prop_endian_mode; +extern const PropertyInfo qdev_prop_vmapple_virtio_blk_variant; #define DEFINE_PROP_PCI_DEVFN(_n, _s, _f, _d) \ DEFINE_PROP_SIGNED(_n, _s, _f, _d, qdev_prop_pci_devfn, int32_t) @@ -104,4 +105,9 @@ extern const PropertyInfo qdev_prop_endian_mode; #define DEFINE_PROP_ENDIAN_NODEFAULT(_name, _state, _field) \ DEFINE_PROP_ENDIAN(_name, _state, _field, ENDIAN_MODE_UNSPECIFIED) +#define DEFINE_PROP_VMAPPLE_VIRTIO_BLK_VARIANT(_name, _state, _fld, _default) \ + DEFINE_PROP_UNSIGNED(_name, _state, _fld, _default, \ + qdev_prop_vmapple_virtio_blk_variant, \ + VMAppleVirtioBlkVariant) + #endif diff --git a/include/hw/virtio/virtio-blk.h b/include/hw/virtio/virtio-blk.h index 8a16218c409..3d8dee7ec15 100644 --- a/include/hw/virtio/virtio-blk.h +++ b/include/hw/virtio/virtio-blk.h @@ -24,7 +24,7 @@ #include "qapi/qapi-types-virtio.h" #define TYPE_VIRTIO_BLK "virtio-blk-device" -OBJECT_DECLARE_SIMPLE_TYPE(VirtIOBlock, VIRTIO_BLK) +OBJECT_DECLARE_TYPE(VirtIOBlock, VirtIOBlkClass, VIRTIO_BLK) /* This is the last element of the write scatter-gather list */ struct virtio_blk_inhdr @@ -100,6 +100,15 @@ typedef struct MultiReqBuffer { bool is_write; } MultiReqBuffer; +typedef struct VirtIOBlkClass { + /*< private >*/ + VirtioDeviceClass parent; + /*< public >*/ + bool (*handle_unknown_request)(VirtIOBlockReq *req, MultiReqBuffer *mrb, + uint32_t type); +} VirtIOBlkClass; + void virtio_blk_handle_vq(VirtIOBlock *s, VirtQueue *vq); +void virtio_blk_req_complete(VirtIOBlockReq *req, unsigned char status); #endif diff --git a/include/hw/vmapple/vmapple.h b/include/hw/vmapple/vmapple.h index 3bba59f5ec7..9c1ad1bd8c3 100644 --- a/include/hw/vmapple/vmapple.h +++ b/include/hw/vmapple/vmapple.h @@ -18,4 +18,6 @@ #define TYPE_VMAPPLE_CFG "vmapple-cfg" +#define TYPE_VMAPPLE_VIRTIO_BLK_PCI "vmapple-virtio-blk-pci" + #endif /* HW_VMAPPLE_VMAPPLE_H */ diff --git a/hw/block/virtio-blk.c b/hw/block/virtio-blk.c index a1829e3abdf..5135b4d8f1e 100644 --- a/hw/block/virtio-blk.c +++ b/hw/block/virtio-blk.c @@ -50,7 +50,7 @@ static void virtio_blk_init_request(VirtIOBlock *s, VirtQueue *vq, req->mr_next = NULL; } -static void virtio_blk_req_complete(VirtIOBlockReq *req, unsigned char status) +void virtio_blk_req_complete(VirtIOBlockReq *req, unsigned char status) { VirtIOBlock *s = req->dev; VirtIODevice *vdev = VIRTIO_DEVICE(s); @@ -961,8 +961,18 @@ static int virtio_blk_handle_request(VirtIOBlockReq *req, MultiReqBuffer *mrb) break; } default: - virtio_blk_req_complete(req, VIRTIO_BLK_S_UNSUPP); - g_free(req); + { + /* + * Give subclasses a chance to handle unknown requests. This way the + * class lookup is not in the hot path. + */ + VirtIOBlkClass *vbk = VIRTIO_BLK_GET_CLASS(s); + if (!vbk->handle_unknown_request || + !vbk->handle_unknown_request(req, mrb, type)) { + virtio_blk_req_complete(req, VIRTIO_BLK_S_UNSUPP); + g_free(req); + } + } } return 0; } @@ -2029,6 +2039,7 @@ static const TypeInfo virtio_blk_info = { .instance_size = sizeof(VirtIOBlock), .instance_init = virtio_blk_instance_init, .class_init = virtio_blk_class_init, + .class_size = sizeof(VirtIOBlkClass), }; static void virtio_register_types(void) diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c index 89f954f569e..a91551a5ee8 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -1294,3 +1294,12 @@ const PropertyInfo qdev_prop_endian_mode = { .set = qdev_propinfo_set_enum, .set_default_value = qdev_propinfo_set_default_value_enum, }; + +const PropertyInfo qdev_prop_vmapple_virtio_blk_variant = { + .name = "VMAppleVirtioBlkVariant", + .description = "unspecified/root/aux", + .enum_table = &VMAppleVirtioBlkVariant_lookup, + .get = qdev_propinfo_get_enum, + .set = qdev_propinfo_set_enum, + .set_default_value = qdev_propinfo_set_default_value_enum, +}; diff --git a/hw/vmapple/virtio-blk.c b/hw/vmapple/virtio-blk.c new file mode 100644 index 00000000000..aa3f18c47db --- /dev/null +++ b/hw/vmapple/virtio-blk.c @@ -0,0 +1,204 @@ +/* + * VMApple specific VirtIO Block implementation + * + * Copyright © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * VMApple uses almost standard VirtIO Block, but with a few key differences: + * + * - Different PCI device/vendor ID + * - An additional "type" identifier to differentiate AUX and Root volumes + * - An additional BARRIER command + */ + +#include "qemu/osdep.h" +#include "hw/vmapple/vmapple.h" +#include "hw/virtio/virtio-blk.h" +#include "hw/virtio/virtio-pci.h" +#include "qemu/bswap.h" +#include "qemu/log.h" +#include "qemu/module.h" +#include "qapi/error.h" + +#define TYPE_VMAPPLE_VIRTIO_BLK "vmapple-virtio-blk" +OBJECT_DECLARE_TYPE(VMAppleVirtIOBlk, VMAppleVirtIOBlkClass, VMAPPLE_VIRTIO_BLK) + +typedef struct VMAppleVirtIOBlkClass { + VirtIOBlkClass parent; + + void (*get_config)(VirtIODevice *vdev, uint8_t *config); +} VMAppleVirtIOBlkClass; + +typedef struct VMAppleVirtIOBlk { + VirtIOBlock parent_obj; + + uint32_t apple_type; +} VMAppleVirtIOBlk; + +/* + * vmapple-virtio-blk-pci: This extends VirtioPCIProxy. + */ +OBJECT_DECLARE_SIMPLE_TYPE(VMAppleVirtIOBlkPCI, VMAPPLE_VIRTIO_BLK_PCI) + +#define VIRTIO_BLK_T_APPLE_BARRIER 0x10000 + +static bool vmapple_virtio_blk_handle_unknown_request(VirtIOBlockReq *req, + MultiReqBuffer *mrb, + uint32_t type) +{ + switch (type) { + case VIRTIO_BLK_T_APPLE_BARRIER: + qemu_log_mask(LOG_UNIMP, "%s: Barrier requests are currently no-ops\n", + __func__); + virtio_blk_req_complete(req, VIRTIO_BLK_S_OK); + g_free(req); + return true; + default: + return false; + } +} + +/* + * VMApple virtio-blk uses the same config format as normal virtio, with one + * exception: It adds an "apple type" specififer at the same location that + * the spec reserves for max_secure_erase_sectors. Let's hook into the + * get_config code path here, run it as usual and then patch in the apple type. + */ +static void vmapple_virtio_blk_get_config(VirtIODevice *vdev, uint8_t *config) +{ + VMAppleVirtIOBlk *dev = VMAPPLE_VIRTIO_BLK(vdev); + VMAppleVirtIOBlkClass *vvbk = VMAPPLE_VIRTIO_BLK_GET_CLASS(dev); + struct virtio_blk_config *blkcfg = (struct virtio_blk_config *)config; + + vvbk->get_config(vdev, config); + + g_assert(dev->parent_obj.config_size >= endof(struct virtio_blk_config, zoned)); + + /* Apple abuses the field for max_secure_erase_sectors as type id */ + stl_he_p(&blkcfg->max_secure_erase_sectors, dev->apple_type); +} + +static void vmapple_virtio_blk_class_init(ObjectClass *klass, void *data) +{ + VirtIOBlkClass *vbk = VIRTIO_BLK_CLASS(klass); + VirtioDeviceClass *vdc = VIRTIO_DEVICE_CLASS(klass); + VMAppleVirtIOBlkClass *vvbk = VMAPPLE_VIRTIO_BLK_CLASS(klass); + + vbk->handle_unknown_request = vmapple_virtio_blk_handle_unknown_request; + vvbk->get_config = vdc->get_config; + vdc->get_config = vmapple_virtio_blk_get_config; +} + +static const TypeInfo vmapple_virtio_blk_info = { + .name = TYPE_VMAPPLE_VIRTIO_BLK, + .parent = TYPE_VIRTIO_BLK, + .instance_size = sizeof(VMAppleVirtIOBlk), + .class_size = sizeof(VMAppleVirtIOBlkClass), + .class_init = vmapple_virtio_blk_class_init, +}; + +/* PCI Devices */ + +struct VMAppleVirtIOBlkPCI { + VirtIOPCIProxy parent_obj; + + VMAppleVirtIOBlk vdev; + VMAppleVirtioBlkVariant variant; +}; + +static const Property vmapple_virtio_blk_pci_properties[] = { + DEFINE_PROP_UINT32("class", VirtIOPCIProxy, class_code, 0), + DEFINE_PROP_BIT("ioeventfd", VirtIOPCIProxy, flags, + VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true), + DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, + DEV_NVECTORS_UNSPECIFIED), + DEFINE_PROP_VMAPPLE_VIRTIO_BLK_VARIANT("variant", VMAppleVirtIOBlkPCI, variant, + VM_APPLE_VIRTIO_BLK_VARIANT_UNSPECIFIED), +}; + +static void vmapple_virtio_blk_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp) +{ + ERRP_GUARD(); + VMAppleVirtIOBlkPCI *dev = VMAPPLE_VIRTIO_BLK_PCI(vpci_dev); + DeviceState *vdev = DEVICE(&dev->vdev); + VirtIOBlkConf *conf = &dev->vdev.parent_obj.conf; + + if (dev->variant == VM_APPLE_VIRTIO_BLK_VARIANT_UNSPECIFIED) { + error_setg(errp, "vmapple virtio block device variant unspecified"); + error_append_hint(errp, + "Variant property must be set to 'aux' or 'root'.\n" + "Use a regular virtio-blk-pci device instead when " + "neither is applicaple.\n"); + return; + } + + if (conf->num_queues == VIRTIO_BLK_AUTO_NUM_QUEUES) { + conf->num_queues = virtio_pci_optimal_num_queues(0); + } + + if (vpci_dev->nvectors == DEV_NVECTORS_UNSPECIFIED) { + vpci_dev->nvectors = conf->num_queues + 1; + } + + /* + * We don't support zones, but we need the additional config space size. + * Let's just expose the feature so the rest of the virtio-blk logic + * allocates enough space for us. The guest will ignore zones anyway. + */ + virtio_add_feature(&dev->vdev.parent_obj.host_features, VIRTIO_BLK_F_ZONED); + /* Propagate the apple type down to the virtio-blk device */ + dev->vdev.apple_type = dev->variant; + /* and spawn the virtio-blk device */ + qdev_realize(vdev, BUS(&vpci_dev->bus), errp); + + /* + * The virtio-pci machinery adjusts its vendor/device ID based on whether + * we support modern or legacy virtio. Let's patch it back to the Apple + * identifiers here. + */ + pci_config_set_vendor_id(vpci_dev->pci_dev.config, PCI_VENDOR_ID_APPLE); + pci_config_set_device_id(vpci_dev->pci_dev.config, + PCI_DEVICE_ID_APPLE_VIRTIO_BLK); +} + +static void vmapple_virtio_blk_pci_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc = DEVICE_CLASS(klass); + VirtioPCIClass *k = VIRTIO_PCI_CLASS(klass); + PCIDeviceClass *pcidev_k = PCI_DEVICE_CLASS(klass); + + set_bit(DEVICE_CATEGORY_STORAGE, dc->categories); + device_class_set_props(dc, vmapple_virtio_blk_pci_properties); + k->realize = vmapple_virtio_blk_pci_realize; + pcidev_k->vendor_id = PCI_VENDOR_ID_APPLE; + pcidev_k->device_id = PCI_DEVICE_ID_APPLE_VIRTIO_BLK; + pcidev_k->revision = VIRTIO_PCI_ABI_VERSION; + pcidev_k->class_id = PCI_CLASS_STORAGE_SCSI; +} + +static void vmapple_virtio_blk_pci_instance_init(Object *obj) +{ + VMAppleVirtIOBlkPCI *dev = VMAPPLE_VIRTIO_BLK_PCI(obj); + + virtio_instance_init_common(obj, &dev->vdev, sizeof(dev->vdev), + TYPE_VMAPPLE_VIRTIO_BLK); +} + +static const VirtioPCIDeviceTypeInfo vmapple_virtio_blk_pci_info = { + .generic_name = TYPE_VMAPPLE_VIRTIO_BLK_PCI, + .instance_size = sizeof(VMAppleVirtIOBlkPCI), + .instance_init = vmapple_virtio_blk_pci_instance_init, + .class_init = vmapple_virtio_blk_pci_class_init, +}; + +static void vmapple_virtio_blk_register_types(void) +{ + type_register_static(&vmapple_virtio_blk_info); + virtio_pci_types_register(&vmapple_virtio_blk_pci_info); +} + +type_init(vmapple_virtio_blk_register_types) diff --git a/hw/vmapple/Kconfig b/hw/vmapple/Kconfig index f5898661a91..5586fd460b7 100644 --- a/hw/vmapple/Kconfig +++ b/hw/vmapple/Kconfig @@ -8,3 +8,6 @@ config VMAPPLE_BDIF config VMAPPLE_CFG bool + +config VMAPPLE_VIRTIO_BLK + bool diff --git a/hw/vmapple/meson.build b/hw/vmapple/meson.build index 9e881c7b555..3553ec61518 100644 --- a/hw/vmapple/meson.build +++ b/hw/vmapple/meson.build @@ -3,3 +3,4 @@ system_ss.add(when: 'CONFIG_VMAPPLE_AES', if_true: files('aes.c')) system_ss.add(when: 'CONFIG_VMAPPLE_BDIF', if_true: files('bdif.c')) system_ss.add(when: 'CONFIG_VMAPPLE_CFG', if_true: files('cfg.c')) +system_ss.add(when: 'CONFIG_VMAPPLE_VIRTIO_BLK', if_true: files('virtio-blk.c')) From patchwork Wed Mar 5 01:21:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870543 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp554124wrg; Tue, 4 Mar 2025 17:36:00 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCX7h+A5rc4K7CJsSnXrQmTV3aYdxKbHYzqUiklPOAq2Xm8/Adc7Jm7JcvPfYtpSVC5/OlURaQ==@linaro.org X-Google-Smtp-Source: AGHT+IEa3kwdScpYdCltZsVFkL9Ggot8ydCSiyqt8jvc9fqtTLnTz5WTxmIlqj66KAitgvaPRKs4 X-Received: by 2002:a05:620a:269f:b0:7c3:c88d:18c1 with SMTP id af79cd13be357-7c3d8e66f9bmr212224685a.20.1741138560277; Tue, 04 Mar 2025 17:36:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138560; cv=none; d=google.com; s=arc-20240605; b=F8Hh4qK4UuKPIJ8QbfhtBLKd1BBLVESuKMUJ+E6QYxoJoJWO+R2LvUKaO0GMGX+Z4k E++RofzYGqod0TKY8xsWlDQnxWgBkQuRBKLCFlZ3kbLzLq4snfQFjDQUTvCAkmSnlVdc qhsXZa/WuYKE7bBOu3IhvBazD4vk5ek5vSjLmD0U/U1CZQvRB53wXrgyicmBO36QuNzk H0kZ1SvHuFAGOylPRlaAuLQ1gvOO8iQ3SSFENB7x3VQcJH2bQJdbCbyeHiNEed3Wn4NV 09yCrvty9Jxp3/LMo62UFtprwQtWRMrvF/GmNlLcD44dK6b3najNF1VyOYgREDlEsmug txZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jzLF6WZxlhetZaZPRfOe7fKCtkMcxscueckYeAPjn3I=; fh=WFBdicru1D9bSpCyezuvlbmKZ6DpYs++MhPzIQUvDzA=; b=ZqDq0NI786UMJ6CwsmymqzCMfTCyVu8PedyDhPVqJyI1gg0W2cfFXvNaHdRJrwvnxp j4cyi2s6GnHxRH6XHkQ/qwjpCMDApCVw2mGYKi2D6XALtIJjuwIXKu4kleMVNcWa8r7U b/GrGtxjxYSajNUsm5gpbqBttmHvsdxeEd6DITUnAtFEhx07kOgYrC1BfNkd7zY+JezQ HcRsR3XU08m/ofauzvIJM4o7moJhohjnoAmpXXyrCFnSAvkIKNz/rKfyKxa06qB+zRT4 PWhiOQzpAfRZCnSkPEB59A9dcU3OBoDvA3HZ428M2Eo11KURnDSCgi2R4SWReQj2QA2j O1lw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="M/PeVj4d"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3cb278097si293602185a.366.2025.03.04.17.36.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:36:00 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="M/PeVj4d"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdU7-0001Rl-SF; Tue, 04 Mar 2025 20:23:43 -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 1tpdTB-0008ES-T6 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:53 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdT8-0006yg-Bq for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:44 -0500 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-43996e95114so42446825e9.3 for ; Tue, 04 Mar 2025 17:22:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137760; x=1741742560; 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=jzLF6WZxlhetZaZPRfOe7fKCtkMcxscueckYeAPjn3I=; b=M/PeVj4dw7tUxqzLOXL2zPIl9u7sLALOThyIPD6D6l8vWR3CLmFFwGQeqUkxOp6rmp 1Cz2KVmkDuMjlHVkK/4f3bdBiYgodIn9VSM4oK4Ldurg4aNTA7f+hTFEuwIlVXKV5SaY KErEz+SEMv+3OSwsteYuHR+PQQhzEA2dsfis57IwK78u2+g4M62c8mUdU0mSYlD/I44y /F2+A9nSHF+RE6Xb2WCQF9Lk5vxaUYXmJ7hTXAP+elh8YxnXOMAzxUjtjGWHOAnlx2H9 ByELEIF3ihDLB2nOHrcA1MSlKXqbF9a0XVhExj8qJNDxuSuONbjMztJu8FANgy1Y0JVT sdLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137760; x=1741742560; 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=jzLF6WZxlhetZaZPRfOe7fKCtkMcxscueckYeAPjn3I=; b=PJjxcJRQ8b4pjdy/bHU/eblchp5ztsVDUzDuHH554WprZsXEyrPtxf3N+09MFxlm9I IcVUVHQEJRn+kwqFzwFgyWiw8TeTv9Im6exYM/4zyn5kl+pgEbic6ExWcpMOOJ99lgMw 9HZWoIaM0Qu0pC/6cxYwIxC66CJSAOdlIL42oZ0wEYb+pqbdgbnmFqOXo1i42arzHFO/ DhRFEjZbtSLeBEio81Mlpff/gFgN2MYPR4eEdxmJzfdNKrAkPLZr2gTYzwOvNEIhEPjy mVOg+VV5HfK2F+Rjy4xqQLPUhhW3RvHHephEu30e68qOLLtwKe2xoejldeKQGGHbBC0+ s5zg== X-Gm-Message-State: AOJu0Yyqr+hbdG8ICDkh+UPbEXOqEg/mUSjTn+Yrt6BUczjkqs6wsgV8 gJ730FX1gSd0w6oQQO7xSTmFWlBcinaMhSSDftY003VgvHXJHkiNRIh9kV3ixi4h/Dw0ccffu+A n7Mg= X-Gm-Gg: ASbGncsN2imeQRSTvGdyxBx/JFFo/Au+0OFAEJmv1vnsacB0LGNhLYVd/M70RSsxsmg pjvopAqILgSxYQCufkPYKOT7tbYR1yD9g2yu/TZB3MloSEkkMIzUiHwM2t9FbxFaVeS4CnczxIo QsVO4lwqoJQXfUa6Ritl8YGr2/cqpDd5LFrrUBLFNntJXdHYIbjfAh40gNRr2D7hwFChGW2pS6x j/IlzrXBKDvBlIGYa+EXKiT6Ox1ChLufMPV4Eittv9RbE3dcW3nucBisufPfNygraNzkjn6isVt F8DtKbQkaGd6fAqkbeL+k+TfZFATICCCPPuAjBiifV1gH7N41q7x/aLsaDHsquFOx1rUaqyUG6q 6yuUmrnSNPYjoiqfGEz8= X-Received: by 2002:a05:6000:2c6:b0:385:f249:c336 with SMTP id ffacd0b85a97d-3911f7c4703mr616891f8f.45.1741137760367; Tue, 04 Mar 2025 17:22:40 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e485dbe7sm19453481f8f.93.2025.03.04.17.22.38 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:39 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Phil Dennis-Jordan , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 08/41] hw/usb/hcd-xhci-pci: Adds property for disabling mapping in IRQ mode Date: Wed, 5 Mar 2025 02:21:23 +0100 Message-ID: <20250305012157.96463-9-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=philmd@linaro.org; helo=mail-wm1-x330.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Phil Dennis-Jordan This change addresses an edge case that trips up macOS guest drivers for PCI based XHCI controllers. The guest driver would attempt to schedule events to XHCI event rings 1 and 2 even when using PCI pin-based interrupts. Interrupts would therefore be dropped, and events only handled on timeout. So, in addition to disabling interrupter mapping if numintrs is 1, a callback is added to xhci to check whether interrupter mapping should be enabled. The PCI XHCI device type now provides an implementation of this callback if the new "conditional-intr-mapping" property is enabled. (default: disabled) When enabled, interrupter mapping is only enabled when MSI-X or MSI is active. This means that when using pin-based interrupts, events are only submitted to interrupter 0 regardless of selected target. This allows the macOS guest drivers to work with the device in those configurations. Signed-off-by: Phil Dennis-Jordan Resolves: https://gitlab.com/qemu-project/qemu/-/issues/2705 Message-ID: <20241227121336.25838-6-phil@philjordan.eu> Signed-off-by: Philippe Mathieu-Daudé --- hw/usb/hcd-xhci-pci.h | 1 + hw/usb/hcd-xhci.h | 5 +++++ hw/usb/hcd-xhci-pci.c | 24 ++++++++++++++++++++++++ hw/usb/hcd-xhci.c | 3 ++- 4 files changed, 32 insertions(+), 1 deletion(-) diff --git a/hw/usb/hcd-xhci-pci.h b/hw/usb/hcd-xhci-pci.h index 08f70ce97cc..5b61ae84555 100644 --- a/hw/usb/hcd-xhci-pci.h +++ b/hw/usb/hcd-xhci-pci.h @@ -40,6 +40,7 @@ typedef struct XHCIPciState { XHCIState xhci; OnOffAuto msi; OnOffAuto msix; + bool conditional_intr_mapping; } XHCIPciState; #endif diff --git a/hw/usb/hcd-xhci.h b/hw/usb/hcd-xhci.h index 9609b835141..9c3974f1489 100644 --- a/hw/usb/hcd-xhci.h +++ b/hw/usb/hcd-xhci.h @@ -193,6 +193,11 @@ typedef struct XHCIState { uint32_t max_pstreams_mask; void (*intr_update)(XHCIState *s, int n, bool enable); bool (*intr_raise)(XHCIState *s, int n, bool level); + /* + * Callback for special-casing interrupter mapping support. NULL for most + * implementations, for defaulting to enabled mapping unless numintrs == 1. + */ + bool (*intr_mapping_supported)(XHCIState *s); DeviceState *hostOpaque; /* Operational Registers */ diff --git a/hw/usb/hcd-xhci-pci.c b/hw/usb/hcd-xhci-pci.c index 49642aab58e..d908eb787d3 100644 --- a/hw/usb/hcd-xhci-pci.c +++ b/hw/usb/hcd-xhci-pci.c @@ -82,6 +82,21 @@ static bool xhci_pci_intr_raise(XHCIState *xhci, int n, bool level) return false; } +static bool xhci_pci_intr_mapping_conditional(XHCIState *xhci) +{ + XHCIPciState *s = container_of(xhci, XHCIPciState, xhci); + PCIDevice *pci_dev = PCI_DEVICE(s); + + /* + * Implementation of the "conditional-intr-mapping" property, which only + * enables interrupter mapping if MSI or MSI-X is available and active. + * Forces all events onto interrupter/event ring 0 in pin-based IRQ mode. + * Provides compatibility with macOS guests on machine types where MSI(-X) + * is not available. + */ + return msix_enabled(pci_dev) || msi_enabled(pci_dev); +} + static void xhci_pci_reset(DeviceState *dev) { XHCIPciState *s = XHCI_PCI(dev); @@ -119,6 +134,9 @@ static void usb_xhci_pci_realize(struct PCIDevice *dev, Error **errp) object_property_set_link(OBJECT(&s->xhci), "host", OBJECT(s), NULL); s->xhci.intr_update = xhci_pci_intr_update; s->xhci.intr_raise = xhci_pci_intr_raise; + if (s->conditional_intr_mapping) { + s->xhci.intr_mapping_supported = xhci_pci_intr_mapping_conditional; + } if (!qdev_realize(DEVICE(&s->xhci), NULL, errp)) { return; } @@ -201,6 +219,8 @@ static void xhci_instance_init(Object *obj) static const Property xhci_pci_properties[] = { DEFINE_PROP_ON_OFF_AUTO("msi", XHCIPciState, msi, ON_OFF_AUTO_AUTO), DEFINE_PROP_ON_OFF_AUTO("msix", XHCIPciState, msix, ON_OFF_AUTO_AUTO), + DEFINE_PROP_BOOL("conditional-intr-mapping", XHCIPciState, + conditional_intr_mapping, false), }; static void xhci_class_init(ObjectClass *klass, void *data) @@ -215,6 +235,10 @@ static void xhci_class_init(ObjectClass *klass, void *data) k->exit = usb_xhci_pci_exit; k->class_id = PCI_CLASS_SERIAL_USB; device_class_set_props(dc, xhci_pci_properties); + object_class_property_set_description(klass, "conditional-intr-mapping", + "When true, disables interrupter mapping for pin-based IRQ mode. " + "Intended to be used with guest drivers with questionable behaviour, " + "such as macOS's."); } static const TypeInfo xhci_pci_info = { diff --git a/hw/usb/hcd-xhci.c b/hw/usb/hcd-xhci.c index 00d5bc37792..64c3a23b9b7 100644 --- a/hw/usb/hcd-xhci.c +++ b/hw/usb/hcd-xhci.c @@ -644,7 +644,8 @@ static void xhci_event(XHCIState *xhci, XHCIEvent *event, int v) dma_addr_t erdp; unsigned int dp_idx; - if (xhci->numintrs == 1) { + if (xhci->numintrs == 1 || + (xhci->intr_mapping_supported && !xhci->intr_mapping_supported(xhci))) { v = 0; } From patchwork Wed Mar 5 01:21:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870522 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551329wrg; Tue, 4 Mar 2025 17:26:30 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVDFBaCf2a3yfcxxrcZplXz4BNmc7UYl/7bxYhF3iwqGeOdkw9CvGmmgdcEqkqob/0g+Mgqzw==@linaro.org X-Google-Smtp-Source: AGHT+IEmXngTG+fi7IRantEDQT8+g1v2LkvIIw6N41UhS1Qap66zO5L0pFnRw1b21gGlAC5fSaHB X-Received: by 2002:ad4:5ba3:0:b0:6e4:2e5f:c03b with SMTP id 6a1803df08f44-6e8e6d60dbfmr23340996d6.22.1741137989991; Tue, 04 Mar 2025 17:26:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137989; cv=none; d=google.com; s=arc-20240605; b=U9xCzywFIkfsYFygf0RwCqxbxBBnuTPfNUpvef3fpgEf8Dxo5x1uKkKgR/zkRgA0I5 i1QgC98AUjsHW4Gk/EDFk+tCnFgm0LDf9MXyGwf7m/szFR4nrJFA7Zr/nww9yGRdgLIg 0y4xInHcOaZ+iSA35N9OAW9A/eIBnzvi9hjH53qfP2KDX3uIC85gDBOms9y28MK9+8Dl +3hZW+MCvPH1Cwy1VOjprS8hBlhyVr12xPLVSWiAkldgfR7XoEsGZ7j6tLX/W0aBca1X 1lAJd/ovBAdYGLMED9A99tiK6zhOnOi/d3XUFkRHY17mmFA81z+kXqluW6Oyzdxn8GFG I5dg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=SPUpypQZ2LXw+I58ulYTyqaYJo2Hf3jVeCz2jXbt7w8=; fh=JfjgrjACOQYSbU1oI5IucLYY0iFzHOFn64TDAErOBec=; b=HmX9yQGb8mIflteXD4xidPCGWF/mNbqU+H1ixHOTm9gJtUjralp6bj0ODpAy5MPrlc kxYrw67QqRByA5DEfL8t5vyrololRLlOUNvcOo/f2aPNYkr2+a7sc8bx2Eg7rp3oBCQ7 X2w8MA6y61v3HsVXyFG0ZvTvAtpc4SnQdWhTN1r3RvgyncAB5pjPUT7U9s0vjyY8s+lb 4H7NgrtYYVdSc9y8RGsC1qo7HLIqUSs7fi9c+cymMihRNPHV4NQCPEuyj7MtHruBEsWu /A3bI7oKOyFB9DWj3eS3tOCiz3B6jz1JhtdnnyluhD/Yrypu983zg/AGc2V+lFeXceia Yb2g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FdxcEncz; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474f77f1e2esi36514141cf.78.2025.03.04.17.26.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:29 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FdxcEncz; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdU1-00018w-G4; Tue, 04 Mar 2025 20:23:37 -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 1tpdTH-0008J6-IZ for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:54 -0500 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTD-0006zQ-JW for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:51 -0500 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-439ac3216dcso42529555e9.1 for ; Tue, 04 Mar 2025 17:22:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137766; x=1741742566; 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=SPUpypQZ2LXw+I58ulYTyqaYJo2Hf3jVeCz2jXbt7w8=; b=FdxcEncz/kZJQa28w7bX0NSrqfys198HTSy1xvug3fcErMcb+GcsI4b2FcrcUubAPT klun8yq2MzlfO5+yQBGPLdxFZuRtFcDDfpeTA6AmDyGEkRSVDKA3SlJ+o0clyv262a8q tdtDP++kWozwihB2GXRq8Fwt/Gs7SvYvVrNdnGqv9nI465eXHQ8Ao3Xrev2OSnc7v+Un 9IuozecySNssv+kNNKmv1axYgziI1LK6/5gi/PClA1Xvb5HPBcEzAHN91xosnhysmMK+ KqIOokmOkXCpz1pXUjor4LiY2kn3qUxb/YYD1/s6TzkbQvHfTxZwBZQry8gzeRXQwxyh oVrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137766; x=1741742566; 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=SPUpypQZ2LXw+I58ulYTyqaYJo2Hf3jVeCz2jXbt7w8=; b=oaUATj4Z7LEorP510ymNFJeN1/+kMciWJIJ6XapGoQ3DjrrDGdow3E8yRCJOTps6f8 AI1KsIFXMt+W46p4/icFK9/21QQfnDatfIuC6guvPimzSwuCMm0f6ZZBObBJevYQCgNI GJkvcp4850ygO/ukIhdqKN1bYA2vy51Tr/hFhvG7JWwlC7n1j/XdEpZIL95V+euZ5mpg bvqC2WWAU/+xIIrEyDCRmnGVNfXDMzY9+Xc17z2BUl/k4eRBY+OKgeQqz+PVzsfUp20v 2CQtOW3zOR2fOfTjz9IWxbQF6UyjwPpQA6uwQypTbdVFEFTtT16X7rEBE+KJYMfpLo1o PbsA== X-Gm-Message-State: AOJu0YyQGECNDltQI1zWwbizj5Tbb2y3MaJhSa5M5+7yVfVKkMxVxVeZ 8RGeGT05ykyHB1RE02VqJza4TVHOqhk+y13eWvXwgZKXU6LIYeIUy/K6UQN7NkaoeutMGw8/Uxz z0LY= X-Gm-Gg: ASbGncsVmftkalAbJ3Q02hn0lhkL7Naow8qJSwPy5SGAG6AVw+uUqJcH8wZI8g2EjDx O9kwkO1Rcrba76aY60BODR83ZViZwFksWtDiBGRZyQnwgu41wimdOpGGajJplYkqCRH8mxZsvO2 +iwXJqIEbISRsn1lXadmN06E68ixSvcMjO2NKCLioJ+awVqwoOr8TpWt8DwnVUc9xbRC4fJI7+C EN2qgWejInXoZxG2cu47IB1otTohrJ+/UUdClfdkbB3wGHFERxMdVqsRApiwf5PQ/537AWGJgAR HS5vUjmKcyy/VxBlaAc+NmX/ygNPiWHLGMZTisJbmqpLMeenbkOOfHb5YZCfW7CGMYr739Pv1pZ Lr5rBrkvPoZFXx5Z5riQ= X-Received: by 2002:a5d:47a7:0:b0:391:5f:fa13 with SMTP id ffacd0b85a97d-3911f7c5584mr610678f8f.47.1741137765549; Tue, 04 Mar 2025 17:22:45 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47a7473sm19561396f8f.38.2025.03.04.17.22.44 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:44 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alexander Graf , Phil Dennis-Jordan , Akihiko Odaki , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 09/41] hw/vmapple/vmapple: Add vmapple machine type Date: Wed, 5 Mar 2025 02:21:24 +0100 Message-ID: <20250305012157.96463-10-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=philmd@linaro.org; helo=mail-wm1-x32b.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Alexander Graf Apple defines a new "vmapple" machine type as part of its proprietary macOS Virtualization.Framework vmm. This machine type is similar to the virt one, but with subtle differences in base devices, a few special vmapple device additions and a vastly different boot chain. This patch reimplements this machine type in QEMU. To use it, you have to have a readily installed version of macOS for VMApple, run on macOS with -accel hvf, pass the Virtualization.Framework boot rom (AVPBooter) in via -bios, pass the aux and root volume as pflash and pass aux and root volume as virtio drives. In addition, you also need to find the machine UUID and pass that as -M vmapple,uuid= parameter: $ qemu-system-aarch64 -accel hvf -M vmapple,uuid=0x1234 -m 4G \ -bios /System/Library/Frameworks/Virtualization.framework/Versions/A/Resources/AVPBooter.vmapple2.bin -drive file=aux,if=pflash,format=raw \ -drive file=root,if=pflash,format=raw \ -drive file=aux,if=none,id=aux,format=raw \ -device vmapple-virtio-blk-pci,variant=aux,drive=aux \ -drive file=root,if=none,id=root,format=raw \ -device vmapple-virtio-blk-pci,variant=root,drive=root With all these in place, you should be able to see macOS booting successfully. Known issues: - Currently only macOS 12 guests are supported. The boot process for 13+ will need further investigation and adjustment. Signed-off-by: Alexander Graf Co-authored-by: Phil Dennis-Jordan Signed-off-by: Phil Dennis-Jordan Reviewed-by: Akihiko Odaki Tested-by: Akihiko Odaki Message-ID: <20241223221645.29911-15-phil@philjordan.eu> Signed-off-by: Philippe Mathieu-Daudé --- MAINTAINERS | 1 + docs/system/arm/vmapple.rst | 65 ++++ docs/system/target-arm.rst | 1 + hw/vmapple/vmapple.c | 618 ++++++++++++++++++++++++++++++++++++ contrib/vmapple/uuid.sh | 12 + hw/vmapple/Kconfig | 21 ++ hw/vmapple/meson.build | 1 + 7 files changed, 719 insertions(+) create mode 100644 docs/system/arm/vmapple.rst create mode 100644 hw/vmapple/vmapple.c create mode 100755 contrib/vmapple/uuid.sh diff --git a/MAINTAINERS b/MAINTAINERS index 0e160360918..d1e69539de0 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2826,6 +2826,7 @@ M: Phil Dennis-Jordan S: Maintained F: hw/vmapple/* F: include/hw/vmapple/* +F: docs/system/arm/vmapple.rst Subsystems ---------- diff --git a/docs/system/arm/vmapple.rst b/docs/system/arm/vmapple.rst new file mode 100644 index 00000000000..35c329ea5a8 --- /dev/null +++ b/docs/system/arm/vmapple.rst @@ -0,0 +1,65 @@ +.. SPDX-License-Identifier: GPL-2.0-or-later + +VMApple machine emulation +======================================================================================== + +VMApple is the device model that the macOS built-in hypervisor called "Virtualization.framework" +exposes to Apple Silicon macOS guests. The "vmapple" machine model in QEMU implements the same +device model, but does not use any code from Virtualization.Framework. + +Prerequisites +------------- + +To run the vmapple machine model, you need to + + * Run on Apple Silicon + * Run on macOS 12.0 or above + * Have an already installed copy of a Virtualization.Framework macOS 12 virtual + machine. Note that newer versions than 12.x are currently NOT supported on + the guest side. I will assume that you installed it using the + `macosvm `__ CLI. + +First, we need to extract the UUID from the virtual machine that you installed. You can do this +by running the shell script in contrib/vmapple/uuid.sh on the macosvm.json file. + +.. code-block:: bash + :caption: uuid.sh script to extract the UUID from a macosvm.json file + + $ contrib/vmapple/uuid.sh "path/to/macosvm.json" + +Now we also need to trim the aux partition. It contains metadata that we can just discard: + +.. code-block:: bash + :caption: Command to trim the aux file + + $ dd if="aux.img" of="aux.img.trimmed" bs=$(( 0x4000 )) skip=1 + +How to run +---------- + +Then, we can launch QEMU with the Virtualization.Framework pre-boot environment and the readily +installed target disk images. I recommend to port forward the VM's ssh and vnc ports to the host +to get better interactive access into the target system: + +.. code-block:: bash + :caption: Example execution command line + + $ UUID="$(contrib/vmapple/uuid.sh 'macosvm.json')" + $ AVPBOOTER="/System/Library/Frameworks/Virtualization.framework/Resources/AVPBooter.vmapple2.bin" + $ AUX="aux.img.trimmed" + $ DISK="disk.img" + $ qemu-system-aarch64 \ + -serial mon:stdio \ + -m 4G \ + -accel hvf \ + -M vmapple,uuid="$UUID" \ + -bios "$AVPBOOTER" \ + -drive file="$AUX",if=pflash,format=raw \ + -drive file="$DISK",if=pflash,format=raw \ + -drive file="$AUX",if=none,id=aux,format=raw \ + -drive file="$DISK",if=none,id=root,format=raw \ + -device vmapple-virtio-blk-pci,variant=aux,drive=aux \ + -device vmapple-virtio-blk-pci,variant=root,drive=root \ + -netdev user,id=net0,ipv6=off,hostfwd=tcp::2222-:22,hostfwd=tcp::5901-:5900 \ + -device virtio-net-pci,netdev=net0 + diff --git a/docs/system/target-arm.rst b/docs/system/target-arm.rst index a43ec8f10e0..b96a05a9206 100644 --- a/docs/system/target-arm.rst +++ b/docs/system/target-arm.rst @@ -103,6 +103,7 @@ Board-specific documentation arm/stellaris arm/stm32 arm/virt + arm/vmapple arm/xenpvh arm/xlnx-versal-virt arm/xlnx-zynq diff --git a/hw/vmapple/vmapple.c b/hw/vmapple/vmapple.c new file mode 100644 index 00000000000..fa117bf1511 --- /dev/null +++ b/hw/vmapple/vmapple.c @@ -0,0 +1,618 @@ +/* + * VMApple machine emulation + * + * Copyright © 2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * VMApple is the device model that the macOS built-in hypervisor called + * "Virtualization.framework" exposes to Apple Silicon macOS guests. The + * machine model in this file implements the same device model in QEMU, but + * does not use any code from Virtualization.Framework. + */ + +#include "qemu/osdep.h" +#include "qemu/bitops.h" +#include "qemu/datadir.h" +#include "qemu/error-report.h" +#include "qemu/guest-random.h" +#include "qemu/help-texts.h" +#include "qemu/log.h" +#include "qemu/module.h" +#include "qemu/option.h" +#include "qemu/units.h" +#include "monitor/qdev.h" +#include "hw/boards.h" +#include "hw/irq.h" +#include "hw/loader.h" +#include "hw/qdev-properties.h" +#include "hw/sysbus.h" +#include "hw/usb.h" +#include "hw/arm/boot.h" +#include "hw/arm/primecell.h" +#include "hw/char/pl011.h" +#include "hw/intc/arm_gic.h" +#include "hw/intc/arm_gicv3_common.h" +#include "hw/misc/pvpanic.h" +#include "hw/pci-host/gpex.h" +#include "hw/usb/hcd-xhci-pci.h" +#include "hw/virtio/virtio-pci.h" +#include "hw/vmapple/vmapple.h" +#include "net/net.h" +#include "qapi/error.h" +#include "qapi/visitor.h" +#include "qapi/qapi-visit-common.h" +#include "qobject/qlist.h" +#include "standard-headers/linux/input.h" +#include "system/hvf.h" +#include "system/reset.h" +#include "system/runstate.h" +#include "system/system.h" + +struct VMAppleMachineState { + MachineState parent; + + Notifier machine_done; + struct arm_boot_info bootinfo; + const MemMapEntry *memmap; + const int *irqmap; + DeviceState *gic; + DeviceState *cfg; + DeviceState *pvpanic; + Notifier powerdown_notifier; + PCIBus *bus; + MemoryRegion fw_mr; + MemoryRegion ecam_alias; + uint64_t uuid; +}; + +#define TYPE_VMAPPLE_MACHINE MACHINE_TYPE_NAME("vmapple") +OBJECT_DECLARE_SIMPLE_TYPE(VMAppleMachineState, VMAPPLE_MACHINE) + +/* Number of external interrupt lines to configure the GIC with */ +#define NUM_IRQS 256 + +enum { + VMAPPLE_FIRMWARE, + VMAPPLE_CONFIG, + VMAPPLE_MEM, + VMAPPLE_GIC_DIST, + VMAPPLE_GIC_REDIST, + VMAPPLE_UART, + VMAPPLE_RTC, + VMAPPLE_PCIE, + VMAPPLE_PCIE_MMIO, + VMAPPLE_PCIE_ECAM, + VMAPPLE_GPIO, + VMAPPLE_PVPANIC, + VMAPPLE_APV_GFX, + VMAPPLE_APV_IOSFC, + VMAPPLE_AES_1, + VMAPPLE_AES_2, + VMAPPLE_BDOOR, + VMAPPLE_MEMMAP_LAST, +}; + +static const MemMapEntry memmap[] = { + [VMAPPLE_FIRMWARE] = { 0x00100000, 0x00100000 }, + [VMAPPLE_CONFIG] = { 0x00400000, 0x00010000 }, + + [VMAPPLE_GIC_DIST] = { 0x10000000, 0x00010000 }, + [VMAPPLE_GIC_REDIST] = { 0x10010000, 0x00400000 }, + + [VMAPPLE_UART] = { 0x20010000, 0x00010000 }, + [VMAPPLE_RTC] = { 0x20050000, 0x00001000 }, + [VMAPPLE_GPIO] = { 0x20060000, 0x00001000 }, + [VMAPPLE_PVPANIC] = { 0x20070000, 0x00000002 }, + [VMAPPLE_BDOOR] = { 0x30000000, 0x00200000 }, + [VMAPPLE_APV_GFX] = { 0x30200000, 0x00010000 }, + [VMAPPLE_APV_IOSFC] = { 0x30210000, 0x00010000 }, + [VMAPPLE_AES_1] = { 0x30220000, 0x00004000 }, + [VMAPPLE_AES_2] = { 0x30230000, 0x00004000 }, + [VMAPPLE_PCIE_ECAM] = { 0x40000000, 0x10000000 }, + [VMAPPLE_PCIE_MMIO] = { 0x50000000, 0x1fff0000 }, + + /* Actual RAM size depends on configuration */ + [VMAPPLE_MEM] = { 0x70000000ULL, GiB}, +}; + +static const int irqmap[] = { + [VMAPPLE_UART] = 1, + [VMAPPLE_RTC] = 2, + [VMAPPLE_GPIO] = 0x5, + [VMAPPLE_APV_IOSFC] = 0x10, + [VMAPPLE_APV_GFX] = 0x11, + [VMAPPLE_AES_1] = 0x12, + [VMAPPLE_PCIE] = 0x20, +}; + +#define GPEX_NUM_IRQS 16 + +static void create_bdif(VMAppleMachineState *vms, MemoryRegion *mem) +{ + DeviceState *bdif; + SysBusDevice *bdif_sb; + DriveInfo *di_aux = drive_get(IF_PFLASH, 0, 0); + DriveInfo *di_root = drive_get(IF_PFLASH, 0, 1); + + if (!di_aux) { + error_report("No AUX device. Please specify one as pflash drive."); + exit(1); + } + + if (!di_root) { + /* Fall back to the first IF_VIRTIO device as root device */ + di_root = drive_get(IF_VIRTIO, 0, 0); + } + + if (!di_root) { + error_report("No root device. Please specify one as virtio drive."); + exit(1); + } + + /* PV backdoor device */ + bdif = qdev_new(TYPE_VMAPPLE_BDIF); + bdif_sb = SYS_BUS_DEVICE(bdif); + sysbus_mmio_map(bdif_sb, 0, vms->memmap[VMAPPLE_BDOOR].base); + + qdev_prop_set_drive(DEVICE(bdif), "aux", blk_by_legacy_dinfo(di_aux)); + qdev_prop_set_drive(DEVICE(bdif), "root", blk_by_legacy_dinfo(di_root)); + + sysbus_realize_and_unref(bdif_sb, &error_fatal); +} + +static void create_pvpanic(VMAppleMachineState *vms, MemoryRegion *mem) +{ + SysBusDevice *pvpanic; + + vms->pvpanic = qdev_new(TYPE_PVPANIC_MMIO_DEVICE); + pvpanic = SYS_BUS_DEVICE(vms->pvpanic); + sysbus_mmio_map(pvpanic, 0, vms->memmap[VMAPPLE_PVPANIC].base); + + sysbus_realize_and_unref(pvpanic, &error_fatal); +} + +static bool create_cfg(VMAppleMachineState *vms, MemoryRegion *mem, + Error **errp) +{ + ERRP_GUARD(); + SysBusDevice *cfg; + MachineState *machine = MACHINE(vms); + uint32_t rnd = 1; + + vms->cfg = qdev_new(TYPE_VMAPPLE_CFG); + cfg = SYS_BUS_DEVICE(vms->cfg); + sysbus_mmio_map(cfg, 0, vms->memmap[VMAPPLE_CONFIG].base); + + qemu_guest_getrandom_nofail(&rnd, sizeof(rnd)); + + qdev_prop_set_uint32(vms->cfg, "nr-cpus", machine->smp.cpus); + qdev_prop_set_uint64(vms->cfg, "ecid", vms->uuid); + qdev_prop_set_uint64(vms->cfg, "ram-size", machine->ram_size); + qdev_prop_set_uint32(vms->cfg, "rnd", rnd); + + if (!sysbus_realize_and_unref(cfg, errp)) { + error_prepend(errp, "Error creating vmapple cfg device: "); + return false; + } + + return true; +} + +static void create_gfx(VMAppleMachineState *vms, MemoryRegion *mem) +{ + int irq_gfx = vms->irqmap[VMAPPLE_APV_GFX]; + int irq_iosfc = vms->irqmap[VMAPPLE_APV_IOSFC]; + SysBusDevice *gfx; + + gfx = SYS_BUS_DEVICE(qdev_new("apple-gfx-mmio")); + sysbus_mmio_map(gfx, 0, vms->memmap[VMAPPLE_APV_GFX].base); + sysbus_mmio_map(gfx, 1, vms->memmap[VMAPPLE_APV_IOSFC].base); + sysbus_connect_irq(gfx, 0, qdev_get_gpio_in(vms->gic, irq_gfx)); + sysbus_connect_irq(gfx, 1, qdev_get_gpio_in(vms->gic, irq_iosfc)); + sysbus_realize_and_unref(gfx, &error_fatal); +} + +static void create_aes(VMAppleMachineState *vms, MemoryRegion *mem) +{ + int irq = vms->irqmap[VMAPPLE_AES_1]; + SysBusDevice *aes; + + aes = SYS_BUS_DEVICE(qdev_new(TYPE_APPLE_AES)); + sysbus_mmio_map(aes, 0, vms->memmap[VMAPPLE_AES_1].base); + sysbus_mmio_map(aes, 1, vms->memmap[VMAPPLE_AES_2].base); + sysbus_connect_irq(aes, 0, qdev_get_gpio_in(vms->gic, irq)); + sysbus_realize_and_unref(aes, &error_fatal); +} + +static int arm_gic_ppi_index(int cpu_nr, int ppi_index) +{ + return NUM_IRQS + cpu_nr * GIC_INTERNAL + ppi_index; +} + +static void create_gic(VMAppleMachineState *vms, MemoryRegion *mem) +{ + MachineState *ms = MACHINE(vms); + /* We create a standalone GIC */ + SysBusDevice *gicbusdev; + QList *redist_region_count; + int i; + unsigned int smp_cpus = ms->smp.cpus; + + vms->gic = qdev_new(gicv3_class_name()); + qdev_prop_set_uint32(vms->gic, "revision", 3); + qdev_prop_set_uint32(vms->gic, "num-cpu", smp_cpus); + /* + * Note that the num-irq property counts both internal and external + * interrupts; there are always 32 of the former (mandated by GIC spec). + */ + qdev_prop_set_uint32(vms->gic, "num-irq", NUM_IRQS + 32); + + uint32_t redist0_capacity = + vms->memmap[VMAPPLE_GIC_REDIST].size / GICV3_REDIST_SIZE; + uint32_t redist0_count = MIN(smp_cpus, redist0_capacity); + + redist_region_count = qlist_new(); + qlist_append_int(redist_region_count, redist0_count); + qdev_prop_set_array(vms->gic, "redist-region-count", redist_region_count); + + gicbusdev = SYS_BUS_DEVICE(vms->gic); + sysbus_realize_and_unref(gicbusdev, &error_fatal); + sysbus_mmio_map(gicbusdev, 0, vms->memmap[VMAPPLE_GIC_DIST].base); + sysbus_mmio_map(gicbusdev, 1, vms->memmap[VMAPPLE_GIC_REDIST].base); + + /* + * Wire the outputs from each CPU's generic timer and the GICv3 + * maintenance interrupt signal to the appropriate GIC PPI inputs, + * and the GIC's IRQ/FIQ/VIRQ/VFIQ interrupt outputs to the CPU's inputs. + */ + for (i = 0; i < smp_cpus; i++) { + DeviceState *cpudev = DEVICE(qemu_get_cpu(i)); + + /* Map the virt timer to PPI 27 */ + qdev_connect_gpio_out(cpudev, GTIMER_VIRT, + qdev_get_gpio_in(vms->gic, + arm_gic_ppi_index(i, 27))); + + /* Map the GIC IRQ and FIQ lines to CPU */ + sysbus_connect_irq(gicbusdev, i, qdev_get_gpio_in(cpudev, ARM_CPU_IRQ)); + sysbus_connect_irq(gicbusdev, i + smp_cpus, + qdev_get_gpio_in(cpudev, ARM_CPU_FIQ)); + } +} + +static void create_uart(const VMAppleMachineState *vms, int uart, + MemoryRegion *mem, Chardev *chr) +{ + hwaddr base = vms->memmap[uart].base; + int irq = vms->irqmap[uart]; + DeviceState *dev = qdev_new(TYPE_PL011); + SysBusDevice *s = SYS_BUS_DEVICE(dev); + + qdev_prop_set_chr(dev, "chardev", chr); + sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + memory_region_add_subregion(mem, base, + sysbus_mmio_get_region(s, 0)); + sysbus_connect_irq(s, 0, qdev_get_gpio_in(vms->gic, irq)); +} + +static void create_rtc(const VMAppleMachineState *vms) +{ + hwaddr base = vms->memmap[VMAPPLE_RTC].base; + int irq = vms->irqmap[VMAPPLE_RTC]; + + sysbus_create_simple("pl031", base, qdev_get_gpio_in(vms->gic, irq)); +} + +static DeviceState *gpio_key_dev; +static void vmapple_powerdown_req(Notifier *n, void *opaque) +{ + /* use gpio Pin 3 for power button event */ + qemu_set_irq(qdev_get_gpio_in(gpio_key_dev, 0), 1); +} + +static void create_gpio_devices(const VMAppleMachineState *vms, int gpio, + MemoryRegion *mem) +{ + DeviceState *pl061_dev; + hwaddr base = vms->memmap[gpio].base; + int irq = vms->irqmap[gpio]; + SysBusDevice *s; + + pl061_dev = qdev_new("pl061"); + /* Pull lines down to 0 if not driven by the PL061 */ + qdev_prop_set_uint32(pl061_dev, "pullups", 0); + qdev_prop_set_uint32(pl061_dev, "pulldowns", 0xff); + s = SYS_BUS_DEVICE(pl061_dev); + sysbus_realize_and_unref(s, &error_fatal); + memory_region_add_subregion(mem, base, sysbus_mmio_get_region(s, 0)); + sysbus_connect_irq(s, 0, qdev_get_gpio_in(vms->gic, irq)); + gpio_key_dev = sysbus_create_simple("gpio-key", -1, + qdev_get_gpio_in(pl061_dev, 3)); +} + +static void vmapple_firmware_init(VMAppleMachineState *vms, + MemoryRegion *sysmem) +{ + hwaddr size = vms->memmap[VMAPPLE_FIRMWARE].size; + hwaddr base = vms->memmap[VMAPPLE_FIRMWARE].base; + const char *bios_name; + int image_size; + char *fname; + + bios_name = MACHINE(vms)->firmware; + if (!bios_name) { + error_report("No firmware specified"); + exit(1); + } + + fname = qemu_find_file(QEMU_FILE_TYPE_BIOS, bios_name); + if (!fname) { + error_report("Could not find ROM image '%s'", bios_name); + exit(1); + } + + memory_region_init_ram(&vms->fw_mr, NULL, "firmware", size, &error_fatal); + image_size = load_image_mr(fname, &vms->fw_mr); + + g_free(fname); + if (image_size < 0) { + error_report("Could not load ROM image '%s'", bios_name); + exit(1); + } + + memory_region_add_subregion(get_system_memory(), base, &vms->fw_mr); +} + +static void create_pcie(VMAppleMachineState *vms) +{ + hwaddr base_mmio = vms->memmap[VMAPPLE_PCIE_MMIO].base; + hwaddr size_mmio = vms->memmap[VMAPPLE_PCIE_MMIO].size; + hwaddr base_ecam = vms->memmap[VMAPPLE_PCIE_ECAM].base; + hwaddr size_ecam = vms->memmap[VMAPPLE_PCIE_ECAM].size; + int irq = vms->irqmap[VMAPPLE_PCIE]; + MemoryRegion *mmio_alias; + MemoryRegion *mmio_reg; + MemoryRegion *ecam_reg; + DeviceState *dev; + int i; + PCIHostState *pci; + DeviceState *usb_controller; + USBBus *usb_bus; + + dev = qdev_new(TYPE_GPEX_HOST); + qdev_prop_set_uint32(dev, "num-irqs", GPEX_NUM_IRQS); + sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + + /* Map only the first size_ecam bytes of ECAM space */ + ecam_reg = sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0); + memory_region_init_alias(&vms->ecam_alias, OBJECT(dev), "pcie-ecam", + ecam_reg, 0, size_ecam); + memory_region_add_subregion(get_system_memory(), base_ecam, + &vms->ecam_alias); + + /* + * Map the MMIO window from [0x50000000-0x7fff0000] in PCI space into + * system address space at [0x50000000-0x7fff0000]. + */ + mmio_alias = g_new0(MemoryRegion, 1); + mmio_reg = sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 1); + memory_region_init_alias(mmio_alias, OBJECT(dev), "pcie-mmio", + mmio_reg, base_mmio, size_mmio); + memory_region_add_subregion(get_system_memory(), base_mmio, mmio_alias); + + for (i = 0; i < GPEX_NUM_IRQS; i++) { + sysbus_connect_irq(SYS_BUS_DEVICE(dev), i, + qdev_get_gpio_in(vms->gic, irq + i)); + gpex_set_irq_num(GPEX_HOST(dev), i, irq + i); + } + + pci = PCI_HOST_BRIDGE(dev); + vms->bus = pci->bus; + g_assert(vms->bus); + + while ((dev = qemu_create_nic_device("virtio-net-pci", true, NULL))) { + qdev_realize_and_unref(dev, BUS(vms->bus), &error_fatal); + } + + if (defaults_enabled()) { + usb_controller = qdev_new(TYPE_QEMU_XHCI); + qdev_realize_and_unref(usb_controller, BUS(pci->bus), &error_fatal); + + usb_bus = USB_BUS(object_resolve_type_unambiguous(TYPE_USB_BUS, + &error_fatal)); + usb_create_simple(usb_bus, "usb-kbd"); + usb_create_simple(usb_bus, "usb-tablet"); + } +} + +static void vmapple_reset(void *opaque) +{ + VMAppleMachineState *vms = opaque; + hwaddr base = vms->memmap[VMAPPLE_FIRMWARE].base; + + cpu_set_pc(first_cpu, base); +} + +static void mach_vmapple_init(MachineState *machine) +{ + VMAppleMachineState *vms = VMAPPLE_MACHINE(machine); + MachineClass *mc = MACHINE_GET_CLASS(machine); + const CPUArchIdList *possible_cpus; + MemoryRegion *sysmem = get_system_memory(); + int n; + unsigned int smp_cpus = machine->smp.cpus; + unsigned int max_cpus = machine->smp.max_cpus; + + vms->memmap = memmap; + machine->usb = true; + + possible_cpus = mc->possible_cpu_arch_ids(machine); + assert(possible_cpus->len == max_cpus); + for (n = 0; n < possible_cpus->len; n++) { + Object *cpu; + CPUState *cs; + + if (n >= smp_cpus) { + break; + } + + cpu = object_new(possible_cpus->cpus[n].type); + object_property_set_int(cpu, "mp-affinity", + possible_cpus->cpus[n].arch_id, &error_fatal); + + cs = CPU(cpu); + cs->cpu_index = n; + + numa_cpu_pre_plug(&possible_cpus->cpus[cs->cpu_index], DEVICE(cpu), + &error_fatal); + + if (object_property_find(cpu, "has_el3")) { + object_property_set_bool(cpu, "has_el3", false, &error_fatal); + } + if (object_property_find(cpu, "has_el2")) { + object_property_set_bool(cpu, "has_el2", false, &error_fatal); + } + object_property_set_int(cpu, "psci-conduit", QEMU_PSCI_CONDUIT_HVC, + &error_fatal); + + /* Secondary CPUs start in PSCI powered-down state */ + if (n > 0) { + object_property_set_bool(cpu, "start-powered-off", true, + &error_fatal); + } + + object_property_set_link(cpu, "memory", OBJECT(sysmem), &error_abort); + qdev_realize(DEVICE(cpu), NULL, &error_fatal); + object_unref(cpu); + } + + memory_region_add_subregion(sysmem, vms->memmap[VMAPPLE_MEM].base, + machine->ram); + + create_gic(vms, sysmem); + create_bdif(vms, sysmem); + create_pvpanic(vms, sysmem); + create_aes(vms, sysmem); + create_gfx(vms, sysmem); + create_uart(vms, VMAPPLE_UART, sysmem, serial_hd(0)); + create_rtc(vms); + create_pcie(vms); + + create_gpio_devices(vms, VMAPPLE_GPIO, sysmem); + + vmapple_firmware_init(vms, sysmem); + create_cfg(vms, sysmem, &error_fatal); + + /* connect powerdown request */ + vms->powerdown_notifier.notify = vmapple_powerdown_req; + qemu_register_powerdown_notifier(&vms->powerdown_notifier); + + vms->bootinfo.ram_size = machine->ram_size; + vms->bootinfo.board_id = -1; + vms->bootinfo.loader_start = vms->memmap[VMAPPLE_MEM].base; + vms->bootinfo.skip_dtb_autoload = true; + vms->bootinfo.firmware_loaded = true; + arm_load_kernel(ARM_CPU(first_cpu), machine, &vms->bootinfo); + + qemu_register_reset(vmapple_reset, vms); +} + +static CpuInstanceProperties +vmapple_cpu_index_to_props(MachineState *ms, unsigned cpu_index) +{ + MachineClass *mc = MACHINE_GET_CLASS(ms); + const CPUArchIdList *possible_cpus = mc->possible_cpu_arch_ids(ms); + + assert(cpu_index < possible_cpus->len); + return possible_cpus->cpus[cpu_index].props; +} + + +static int64_t vmapple_get_default_cpu_node_id(const MachineState *ms, int idx) +{ + return idx % ms->numa_state->num_nodes; +} + +static const CPUArchIdList *vmapple_possible_cpu_arch_ids(MachineState *ms) +{ + int n; + unsigned int max_cpus = ms->smp.max_cpus; + + if (ms->possible_cpus) { + assert(ms->possible_cpus->len == max_cpus); + return ms->possible_cpus; + } + + ms->possible_cpus = g_malloc0(sizeof(CPUArchIdList) + + sizeof(CPUArchId) * max_cpus); + ms->possible_cpus->len = max_cpus; + for (n = 0; n < ms->possible_cpus->len; n++) { + ms->possible_cpus->cpus[n].type = ms->cpu_type; + ms->possible_cpus->cpus[n].arch_id = + arm_build_mp_affinity(n, GICV3_TARGETLIST_BITS); + ms->possible_cpus->cpus[n].props.has_thread_id = true; + ms->possible_cpus->cpus[n].props.thread_id = n; + } + return ms->possible_cpus; +} + +static GlobalProperty vmapple_compat_defaults[] = { + { TYPE_VIRTIO_PCI, "disable-legacy", "on" }, + /* + * macOS XHCI driver attempts to schedule events onto even rings 1 & 2 + * even when (as here) there is no MSI(-X) support. Disabling interrupter + * mapping in the XHCI controller works around the problem. + */ + { TYPE_XHCI_PCI, "conditional-intr-mapping", "on" }, +}; + +static void vmapple_machine_class_init(ObjectClass *oc, void *data) +{ + MachineClass *mc = MACHINE_CLASS(oc); + + mc->init = mach_vmapple_init; + mc->max_cpus = 32; + mc->block_default_type = IF_VIRTIO; + mc->no_cdrom = 1; + mc->pci_allow_0_address = true; + mc->minimum_page_bits = 12; + mc->possible_cpu_arch_ids = vmapple_possible_cpu_arch_ids; + mc->cpu_index_to_instance_props = vmapple_cpu_index_to_props; + mc->default_cpu_type = ARM_CPU_TYPE_NAME("host"); + mc->get_default_cpu_node_id = vmapple_get_default_cpu_node_id; + mc->default_ram_id = "mach-vmapple.ram"; + mc->desc = "Apple aarch64 Virtual Machine"; + + compat_props_add(mc->compat_props, vmapple_compat_defaults, + G_N_ELEMENTS(vmapple_compat_defaults)); +} + +static void vmapple_instance_init(Object *obj) +{ + VMAppleMachineState *vms = VMAPPLE_MACHINE(obj); + + vms->irqmap = irqmap; + + object_property_add_uint64_ptr(obj, "uuid", &vms->uuid, + OBJ_PROP_FLAG_READWRITE); + object_property_set_description(obj, "uuid", "Machine UUID (SDOM)"); +} + +static const TypeInfo vmapple_machine_info = { + .name = TYPE_VMAPPLE_MACHINE, + .parent = TYPE_MACHINE, + .instance_size = sizeof(VMAppleMachineState), + .class_init = vmapple_machine_class_init, + .instance_init = vmapple_instance_init, +}; + +static void machvmapple_machine_init(void) +{ + type_register_static(&vmapple_machine_info); +} +type_init(machvmapple_machine_init); + diff --git a/contrib/vmapple/uuid.sh b/contrib/vmapple/uuid.sh new file mode 100755 index 00000000000..f5637221d23 --- /dev/null +++ b/contrib/vmapple/uuid.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# +# Used for converting a guest provisioned using Virtualization.framework +# for use with the QEMU 'vmapple' aarch64 machine type. +# +# Extracts the Machine UUID from Virtualization.framework VM JSON file. +# (as produced by 'macosvm', passed as command line argument) +# +# SPDX-License-Identifier: GPL-2.0-or-later + +plutil -extract machineId raw "$1" | base64 -d | plutil -extract ECID raw - + diff --git a/hw/vmapple/Kconfig b/hw/vmapple/Kconfig index 5586fd460b7..2382b297672 100644 --- a/hw/vmapple/Kconfig +++ b/hw/vmapple/Kconfig @@ -11,3 +11,24 @@ config VMAPPLE_CFG config VMAPPLE_VIRTIO_BLK bool + +config VMAPPLE + bool + depends on ARM + depends on HVF + default y if ARM + imply PCI_DEVICES + select ARM_GICV3 + select PLATFORM_BUS + select PCI_EXPRESS + select PCI_EXPRESS_GENERIC_BRIDGE + select PL011 # UART + select PL031 # RTC + select PL061 # GPIO + select GPIO_PWR + select PVPANIC_MMIO + select VMAPPLE_AES + select VMAPPLE_BDIF + select VMAPPLE_CFG + select MAC_PVG_MMIO + select VMAPPLE_VIRTIO_BLK diff --git a/hw/vmapple/meson.build b/hw/vmapple/meson.build index 3553ec61518..23bc4c999e3 100644 --- a/hw/vmapple/meson.build +++ b/hw/vmapple/meson.build @@ -4,3 +4,4 @@ system_ss.add(when: 'CONFIG_VMAPPLE_AES', if_true: files('aes.c')) system_ss.add(when: 'CONFIG_VMAPPLE_BDIF', if_true: files('bdif.c')) system_ss.add(when: 'CONFIG_VMAPPLE_CFG', if_true: files('cfg.c')) system_ss.add(when: 'CONFIG_VMAPPLE_VIRTIO_BLK', if_true: files('virtio-blk.c')) +specific_ss.add(when: 'CONFIG_VMAPPLE', if_true: files('vmapple.c')) From patchwork Wed Mar 5 01:21:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870520 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551347wrg; Tue, 4 Mar 2025 17:26:32 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUIdMsLPMHuhvnYiIus0GdYBkrOWVk2qrdTa1zsBOu/K76IQGLYR4QvItP2EqrElra3Lk3azg==@linaro.org X-Google-Smtp-Source: AGHT+IGi901FJ7zL/t2Syz9OlV/UchL9NBjTpbfFyclUBvUuU6RECqa6S7O1YN2ctrQvDCEi2/bI X-Received: by 2002:ad4:574f:0:b0:6e4:42bb:5ee0 with SMTP id 6a1803df08f44-6e8e6d436b9mr25104786d6.28.1741137991905; Tue, 04 Mar 2025 17:26:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137991; cv=none; d=google.com; s=arc-20240605; b=S8kZ+z73na+Up5eZeViGXKgwtF6XqZ7lH7Buc9Pu0kfoaTR1fqdW6tBoVdAryef92I ndiz8pQFbVGAI/kNE+j52A2ToDiaFpdm8hqK4Nk/r2dI1WMbchQUbr8Gg2gOKRqqLPRx jhEacj76fCcBb/ak3RVcI6jHzIZtjwQYgsBh0mxlEgwQenhkvthRB3gYuSp8XJTVIelT SbMpuglWJ0LdbHEinXEIiXKAebzpk54B3V1EUZuN30TCPf2uUhDfnqYxpsl4Zekid2Gy IenXGcvLvB+VywV9Qwejuizk54L24OFUP40W8oAOjuFk3ZVnMnyeixyM3VzlmDRiv+me bEig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=stXxHtQ0ysec4RTH3tLbFblvlwVcUcFY/+2ohtZUeAg=; fh=mhxMj7Ai+Yqn+yfPSkrNXyjil+3t/zRMmu5bqXoeo04=; b=IbsGGpz2Brxs1x/8v/dkmNrczCsnPO9rU83qT1vzQRMI/6jz3hEE86y+sBOry7Wt/f DCC4SDAZArYLWqHZHiS2JmbTIaRBI40L/XcuCURhputRBSphlJHZq/pNPdM/O4rFFdl0 HCxjGnT4vSlJiaev+9bdgYAjF8fVMoO9M83hXWDXVJXZ9QPDoOQHGQ4Y0tYh2sy7IMhx 4fZMI8zSt31/qPr33r/KXgaqL2pptljJHUTnIgISTt+MZUO1DUEJh+MeKK8hdEIAE0L4 VhOYsLT0EThb0eoUJMn1oZ4BIxqzL5gXh9ivVB0xHArvlU/yvmvDlzX1qqYsBWAFeRiu lpYA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QlgXeVIC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e8b0ecf05esi79306616d6.17.2025.03.04.17.26.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:31 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=QlgXeVIC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdTu-0000p8-9l; Tue, 04 Mar 2025 20:23:31 -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 1tpdTL-0008Ox-AI for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:57 -0500 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTI-0006zm-Ha for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:54 -0500 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-38f406e9f80so4730832f8f.2 for ; Tue, 04 Mar 2025 17:22:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137770; x=1741742570; 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=stXxHtQ0ysec4RTH3tLbFblvlwVcUcFY/+2ohtZUeAg=; b=QlgXeVICKr9WPBfJuln9+cdlJfTLPQdaGOTowahZtbNU5Djyg2hYkHcfnT9oxckMeJ 9d0vKhQYkv6qHQ4ZJaB+un7/OyVBQ4+XSZWS00KIxjUM2p2kANztSnUOd0x3Z0e0QFE7 7M15bgk7Uh0qbe3dtlnIrFZ7H4MBvl7FJzi4iu+A70aAmgT5Z6ZEnF0SrwAW+VAt7zO/ lo1npBcjz3hvfQR/s47LjUiTlNpESckRi63vlh2UC8pzjO6mPQBfOwhuWRqhI5Q6oN3Q 9+uyukkqlgc0sU53NFWVP1mdMaRUc5chJi4slZE4+bVJEFwY48QXq/AS1UgLIcAKQmQf AVRw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137770; x=1741742570; 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=stXxHtQ0ysec4RTH3tLbFblvlwVcUcFY/+2ohtZUeAg=; b=XH1ozMt0DVrDR2oEZLDd8x67Gasxtwb/Fzgb+E8wCbBVfWgtO1wPsoY8COegGd3v6M oY5/kiQx0iVE11vcTZG497Smjrl5NahVhX1O532R773X2oCLcRQyT2y3pUyrJKSb8Jau MryEh82H3YvSPjmTfCNTdHdJQWyXRfGJd1lVbfyZZ3i3GYRs1+pT17FBhHRcWNNM5U54 F/8AHRQc4pBs04ygmYtvWA6BfkTGgWMAMZyKic6SYAUMRWl+OwFd2ZbSnQwsKzZ8ONi6 cqigMGwYgwjhZMH7uvh6iBZv69kFjPx3CJO081WbAVx5Fc46DRxNSl5eRGfJ/yfgR7Hb BHug== X-Gm-Message-State: AOJu0YzeMyssBD+NgodaLCc+cv4qP+LfK7+a7Mr9XPu12XkbKuWMBrxp zrH/KTGLFd8xG9Dqso1VJIctlbKk9lH1akk7uoJDeGFRRC4KPvxrVtAsqEN3v9+1YVRdCMPDsz8 I/w4= X-Gm-Gg: ASbGncuScK/0JMqYBTDZo5aYDKnk5OdX+nFEBaOGgNAl6D/8ktfKprG5qdzVsMeSzOF o9ew/To6NfGogPV5IBR+1wf+o2U0/JpDcrfdkZRiXSkBw/9MPfhZhkaJe3w/FsS3kVhflKjkSV2 sELXlWixzm2cxk51vxTFZ50Zu17XDQ4jNuN4FAu135fTuAioYa8XkAOHJBnIqOY1Mdk7pHEAuhR zhAYN56qk8oaNZd+LfYOhv02u6DouadnoDfcPU70Uach7Pml+pz0uaYTkY+GhwB42RdPDMVhwNO s8aTWU0pE9nUo01LoGfyaxmKIJ4c9TSyQ0hyYMyMIggRaES0XbTGeVBTeIh+ohG2nacbkrMRdb8 uJEz68LQ7LAIal/FhLhs= X-Received: by 2002:a05:6000:1546:b0:38d:d0ea:b04c with SMTP id ffacd0b85a97d-3911f7bb84fmr763818f8f.38.1741137770058; Tue, 04 Mar 2025 17:22:50 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e479608fsm19575557f8f.14.2025.03.04.17.22.49 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:49 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Harsh Prateek Bora Subject: [PULL 10/41] hw/ppc/spapr: Restrict part of PAGE_INIT hypercall to TCG Date: Wed, 5 Mar 2025 02:21:25 +0100 Message-ID: <20250305012157.96463-11-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::436; envelope-from=philmd@linaro.org; helo=mail-wr1-x436.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Restrict the tb_flush() call to TCG. Assert we are using KVM or TCG. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Harsh Prateek Bora Message-Id: <20250127102620.39159-3-philmd@linaro.org> --- hw/ppc/spapr_hcall.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/hw/ppc/spapr_hcall.c b/hw/ppc/spapr_hcall.c index f8ab7670630..f987ff323f8 100644 --- a/hw/ppc/spapr_hcall.c +++ b/hw/ppc/spapr_hcall.c @@ -299,8 +299,10 @@ static target_ulong h_page_init(PowerPCCPU *cpu, SpaprMachineState *spapr, if (flags & (H_ICACHE_SYNCHRONIZE | H_ICACHE_INVALIDATE)) { if (kvm_enabled()) { kvmppc_icbi_range(cpu, pdst, len); - } else { + } else if (tcg_enabled()) { tb_flush(CPU(cpu)); + } else { + g_assert_not_reached(); } } From patchwork Wed Mar 5 01:21:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870510 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550772wrg; Tue, 4 Mar 2025 17:24:27 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCU+Arr9GLih2BVxr3UunXxzSm77LY8eaVYN6DUVmqbD/0lvAbSUSLzDR2HPiS+O5ZBCRA8xdQ==@linaro.org X-Google-Smtp-Source: AGHT+IF0yt1teZ3yc2cETW5Jh5mT7K5XBL253oElkXLUNzC+nNCPmOWm4IoL9o7YyNguxKa+E5WN X-Received: by 2002:a05:620a:8908:b0:7c3:d215:e9bf with SMTP id af79cd13be357-7c3d8ea1af4mr341311585a.54.1741137866831; Tue, 04 Mar 2025 17:24:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137866; cv=none; d=google.com; s=arc-20240605; b=C5mokQhBETw1Zwyzke6/Wi2efClrOqKbMFEvjrsrDuH7q2zWKM8SGYSR5DSsdaKkQH sPW2VWVX/4QyehDuV0f0LJOYdYEUraAJXN3YFDmAluqw1bdnvCEXmlqNVqz2mfKWukB9 volZtY8gUn78t1+kw9MegM224ZCm7MblFrCXJfiCXSOZfeaC95H0+TVujPnOgj4R9Ptn pdGhsggFLTVR1Md8NcKNn/adBVJt9wA8/FASu9VKW1a8uySNEEGpEhO04ukFGAD9I2uJ C7OVY+XcITHA42qz6pwCooP8LwQC+c8N/R57+WKn8Nl/+Vci2NSh1v4mBzJwb6Ors/zy o+rQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Q8ln23H4+MbGK4gitXxRZRuS6c4E+4FT/FZeDk/HlDc=; fh=wpSl1kerOJJxRwilk/rV5erxTUIIj/LL/kKC3aJLifA=; b=IIevVp81d+u4yWIx9ko0I7lk6NKFReJUS+7xO+tXNkL6EcsUm2HkPxRSynhTgDEPL+ SaiDIzTVR1cCHGlu5T7v0OyLK93C4z+630ByaRrlXNJRxHQZZJhMGkVDweAI0ET1DOic Hjqm4o287GdGPuZSGvtUp/vLyR34UF6p5QTYhF66fBD1yW7jg2paMhvl+2DdFizr4dob acfO3svRj2Jb8+AGIW89AFeAF5HvyxzB9jsaA2PMwX5VDYs4edJtKObRMrfyRTMK6hmW wcLIub0LbfnSHSpIe5GncExfmTazBS6yMUfrDeY98roUVSRJholM6+t4TUoZztUlH3Q5 cjTw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Y+zkgcrf; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3749e001dsi1199825685a.387.2025.03.04.17.24.26 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:24:26 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Y+zkgcrf; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdU4-00018X-S9; Tue, 04 Mar 2025 20:23:40 -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 1tpdTR-0008So-92 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:03 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTM-00070Z-6U for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:22:58 -0500 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-43bc6a6aaf7so20956275e9.2 for ; Tue, 04 Mar 2025 17:22:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137774; x=1741742574; 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=Q8ln23H4+MbGK4gitXxRZRuS6c4E+4FT/FZeDk/HlDc=; b=Y+zkgcrfbeG7skCZY0nx+sUcjCCZJ7+F3P0ymyYJo7ILHXnpjCw5vCultb9bAK1Hkj y2Qj+Y9LtSsNMNGHTuP9Aa4k/Y0t6hD/f/lOqej5KWuYA4Bo59DL1J3vn9rjGmIMpobx yRtF+Th0REM07PLKK7uhWygTrXN4smUQhXbYfSYofh/4ZDTm/OcaSDtZDhx/aNfrlEdh BzGeUJJXT4BAJef5ZBph6MdW8mDlVIjy088pmXaKBH0kz4oZH1EPakqelVYq0oombHeK yFG5ltH4UiGF0t+ND14AOMDeT1p4oXV2ljCXDBSqT2IV3K1XCkcbaFqj97s2FYhA1Tlm aTDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137774; x=1741742574; 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=Q8ln23H4+MbGK4gitXxRZRuS6c4E+4FT/FZeDk/HlDc=; b=djQd92hwE92YNhT+Td86wWNdoMM5e42lbKjiwYEW/v4LzjG9mrPttoCgavPANVC3A2 b5Z0nuBGr6sJhS6UxxMe971M+WO0VMLbTI/aoGQpGXtPOtHtBnLp5VduSNXn9S+v0W4j Rnx5NiHLwd4UmOnbZwy50eQBMRxv5tDby4m41j1rQB86DvaHiE9DCwxGsCV9cQz8BEi3 EFJ+64FAk5L0cqmClKBabyEmojdr/ejHkWp6trKKrlI+w+CLZWekfLRaIEt9r3BfLY17 ev5i10MNxYzdA1yGbxG3zact0y4Ab6qlV6o3Jtcnoc2eWTUT7C9hTCtan2tfqfupvZMC 3u/w== X-Gm-Message-State: AOJu0YyQfPqCFJSWBkHesTzGLAViP5lqy4nU9yC4/Onh7VeFYv95EoCn NMmNiluZdKSTF1vSjjnzbrRMcsfJP6tHiVBo8EAXvXg4QgzrYakrIf/hkFz+ctooFXdqIyW2pJI WzD0= X-Gm-Gg: ASbGnctZ+IuEcEI6ejLG6WT3+Y3AxrEaSIIemDzTiX24mzkf8w1OoDRI5uIf7P/EJeg TqDqnPnq8bnhUhuJ2Rz5XUMYZDPQm6VnY/KqjZXfkwCEKj1sBYFOa7Yt6GA26VjdXeOMGSYHdUw w6LqExwk70A1IQL2+m66Sm433VeVcyU5K+JnCLxeZ9SUzGPRljszzZrhXGWMn24Atg7ZaZFMMyS yFfBYPVP9jNSoNyfs4AwavjS5Vq0Du8F2qRkMrl1uTYNVWEGQDGEnnA1PAe5qYo81+hi+OJqfEM JcL7FKFExZVy9+f7wotmmvTfrY9Cu10FRO1fJ3ennsToof6WqS+4hxMwcRV6kDYuWKMvw0y6H4V IQZz1NwNVQcC5ef9UF8Q= X-Received: by 2002:a5d:5f50:0:b0:390:f4c7:ea20 with SMTP id ffacd0b85a97d-3911f756fa6mr777720f8f.24.1741137774502; Tue, 04 Mar 2025 17:22:54 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47b7d69sm19684867f8f.60.2025.03.04.17.22.53 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:54 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Gavin Shan , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 11/41] hw/acpi/ghes: Make ghes_record_cper_errors() static Date: Wed, 5 Mar 2025 02:21:26 +0100 Message-ID: <20250305012157.96463-12-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Gavin Shan acpi_ghes_memory_errors() is the only caller, no need to expose the function. Besides, the last 'return' in this function isn't necessary and remove it. No functional changes intended. Signed-off-by: Gavin Shan Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250214041635.608012-2-gshan@redhat.com> Signed-off-by: Philippe Mathieu-Daudé --- include/hw/acpi/ghes.h | 2 -- hw/acpi/ghes.c | 6 ++---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/include/hw/acpi/ghes.h b/include/hw/acpi/ghes.h index 39619a2457c..578a582203c 100644 --- a/include/hw/acpi/ghes.h +++ b/include/hw/acpi/ghes.h @@ -75,8 +75,6 @@ void acpi_build_hest(GArray *table_data, GArray *hardware_errors, void acpi_ghes_add_fw_cfg(AcpiGhesState *vms, FWCfgState *s, GArray *hardware_errors); int acpi_ghes_memory_errors(uint16_t source_id, uint64_t error_physical_addr); -void ghes_record_cper_errors(const void *cper, size_t len, - uint16_t source_id, Error **errp); /** * acpi_ghes_present: Report whether ACPI GHES table is present diff --git a/hw/acpi/ghes.c b/hw/acpi/ghes.c index b709c177cde..b85bb48195a 100644 --- a/hw/acpi/ghes.c +++ b/hw/acpi/ghes.c @@ -390,8 +390,8 @@ static void get_hw_error_offsets(uint64_t ghes_addr, *read_ack_register_addr = ghes_addr + sizeof(uint64_t); } -void ghes_record_cper_errors(const void *cper, size_t len, - uint16_t source_id, Error **errp) +static void ghes_record_cper_errors(const void *cper, size_t len, + uint16_t source_id, Error **errp) { uint64_t cper_addr = 0, read_ack_register_addr = 0, read_ack_register; AcpiGedState *acpi_ged_state; @@ -440,8 +440,6 @@ void ghes_record_cper_errors(const void *cper, size_t len, /* Write the generic error data entry into guest memory */ cpu_physical_memory_write(cper_addr, cper, len); - - return; } int acpi_ghes_memory_errors(uint16_t source_id, uint64_t physical_address) From patchwork Wed Mar 5 01:21:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870511 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550791wrg; Tue, 4 Mar 2025 17:24:29 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVSxrZwoyaJ0utYbCmmkJKXRjxbFSPDjmj0VlrtRk0FGoYAAsZAuMJ0kOL1jyBxJ5rbhecc5g==@linaro.org X-Google-Smtp-Source: AGHT+IGJdF/dd9wdD10OXKfFglupIdDAs76FQIMoE1FSzorsGouZWN7b/UM+LsqgeDycqNiJXyLh X-Received: by 2002:a05:620a:2814:b0:7c0:a3bd:a787 with SMTP id af79cd13be357-7c3d8e2f2a7mr306977185a.13.1741137869327; Tue, 04 Mar 2025 17:24:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137869; cv=none; d=google.com; s=arc-20240605; b=E+ErLcWRKfIB+oRfi6Ie73sgyWtbc7s5c+SSdBDBc7yF701W/MEn1DAaEGvRGSfjjk GmkPSh7w9v0dli+4aNx5ZhJA8/Mh8a+EE6d7ORmISK9/hGsS8UtYOW/jLzt24U8SgCCJ myeLoyBWP8HBMKpYxw1ouiP3ZL2uNDfLRILasRBTlD0lhLWEwxApzsIBcGufsVouIPP4 9nb9btl+D9dIySnV5wbaYMP8EAuewQMbjBlMLLXeTrVIiMvpVWKnWXxdbz6evQ7cI/Qt uIMuoXcyQvd7LA7n9wpNPNi6GVUMMOv1jRIVEJr7bay+VkoqjwW02xmv2SevWetsBspY ZsZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=DXmZv1/YGvLlH9tVUnIp5UMqICtZ1kO2g7onsOxZU/A=; fh=lA8KdGRRCLcXxei5dR52XWsTSutqQE1F1yBegzCCPPE=; b=HRnPh3+HowMluhapCNxWNiy15rJQdVEcDmoolHpsd5UpPLOe7jKC7cG5S/LckWcAPM S6Rv6IZeCXdKbAuclLR00qLpfD6txJoiK/xm5jDz5YZPZtliuqeM+oMzG/Zpt+pbbrdu mVjOciSgJ9p38D97RIjaxjwNJ+nwg937USw0Ic95iGqSJsLR20KJkGa2xDewLcPhIYHN qznLOjN0ZAF8cCKZTErLFfoWHS74WkoBrVwgxiWUK8dyfGCrLuWqVl2GPxomWHvb9UyC dQzNwzGZEPflDE6ANNalD5ucDjLtKcpE0Orqtc/H2cYyqAB/e1atdMxfxOKhIHifGs1q jmaQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vh7GAW80; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3db41eab3si14619085a.27.2025.03.04.17.24.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:24:29 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vh7GAW80; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUC-0001ib-Ew; Tue, 04 Mar 2025 20:23:48 -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 1tpdTV-00006O-6U for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:09 -0500 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTR-000712-24 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:04 -0500 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-4394a0c65fcso66891085e9.1 for ; Tue, 04 Mar 2025 17:23:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137779; x=1741742579; 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=DXmZv1/YGvLlH9tVUnIp5UMqICtZ1kO2g7onsOxZU/A=; b=vh7GAW80Tn56xake/45rgWZhDzVR59nUuc8WDY4LwEG5iWOELXMMrbLOxAaQVhZ5g8 Nm4qoNQ154W8x66KYMVF0aiCBm8B1Tp6yN4Mm9/nPRnNZP3VKV3PB/CZWOnT0bBn7+9F QPGQj2ORnuO2L6EBzzkW7Nb8OuT3dS976Cg4hi+zRjPxLlrc7eTJXbJz6L8n5DQ0APap MRVrnktOkriQvEhl/c9Qmgx3LdniDTZRDd3ukApOAISCcPm3RL2FyNst+zf2Z6HO+Cb5 Y3X/OT3GtHzqifyaE77ikK7euL7dNAGx3TUaCvwIgti5dlZvcdoNpAzUS0zcqPoI6rzi bFTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137779; x=1741742579; 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=DXmZv1/YGvLlH9tVUnIp5UMqICtZ1kO2g7onsOxZU/A=; b=ajxOdj6sl9qfj/E2gMfSDavoCpadMrg/NyhFUgaxcdcu7qpdiUb+x+OFBL337eLpXp hzy/bVjY7+tMkm+xI1sktvEXVCZBVMBF0+l96vEH4yUkNFGSWfCOrWZeavGBQrHu4MMF LIt3ae8jGRpbQxGdMt8WkU+jrSJpxCIAsYdPpGRC7nlCvO4aPYPh1kzmLhN51gtA8JEf pr9IzRfuD3oymfQe85SbMv4U+DqMRwUQhlCza2aDHnjl8iEMoZQC8D5MDhGwpAkpqdMp 2DGMDWo5wEKfZsQYvBs4eIjf8ZHhqM57a5ty1bUpdVx17p6SCEvoau0NCHErlzgWeQME DOPQ== X-Gm-Message-State: AOJu0YxPjZWyFA0yH+FJ04Acp9NrNhj/X53jIlkFOsh9ch2dN67VzDDg u9s33KOCuRs04YEs1dFyZW2fBCOT8dqCg4oK8xERh4q4s9JNVnMVswMhKX6oheZu/tS7hcqOm5u D33I= X-Gm-Gg: ASbGncszd3vXA+r4tFf+BcZBGL/zoIkQw4dBnK+B0xuTDOu596BilEF2yh2bhCnCLLP kT2DwGeRkdXCOrpQBE+YM3x+VIegvBv0aZHzzLHcMPMlvQrrbICIyDyEoC9kXhCUEVK2xjskLDZ uCfBTl2s0+oSzRWrkpNv3ApQIYD8IQ/FMnUte6dvKfRWY08nOuvmjVDn9JOhnRFP01hZOUUkUNV i79JYqU0mz43p53MKN9LJTGyoHySQ4Nqf+StJl2rx49q+uoIOsZogFdkyMkQWhewgfP2S4z72JK UMCxcWORZVf0Cc/9ffwp1xhjgGwjGEE0vy76wHML2JfAT5I454+mYIxHZucNHnZaRVpKyhUJZPM ZAV7R6k25W7WkV4V9cHo= X-Received: by 2002:a05:600c:4750:b0:439:9f97:7d5b with SMTP id 5b1f17b1804b1-43bd29bd98amr6362685e9.23.1741137778967; Tue, 04 Mar 2025 17:22:58 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47960b6sm19705434f8f.17.2025.03.04.17.22.58 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:22:58 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , "Edgar E. Iglesias" Subject: [PULL 12/41] hw/arm: Do not expose the virt machine on Xen-only binary Date: Wed, 5 Mar 2025 02:21:27 +0100 Message-ID: <20250305012157.96463-13-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=philmd@linaro.org; helo=mail-wm1-x334.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Since the Virt machine is useless under Xen, do not even try to build it there. A Xen-only binary now only offers the XenPVH machine: $ qemu-system-aarch64 -M help Supported machines are: none empty machine xenpvh Xen PVH ARM machine Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Edgar E. Iglesias Message-Id: <20250218162618.46167-3-philmd@linaro.org> --- hw/arm/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index faa00d1db3b..15200a2d7e7 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -2,6 +2,7 @@ config ARM_VIRT bool default y depends on ARM + depends on TCG || KVM || HVF imply PCI_DEVICES imply TEST_DEVICES imply VFIO_AMD_XGBE From patchwork Wed Mar 5 01:21:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870515 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551043wrg; Tue, 4 Mar 2025 17:25:18 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXjUtTPsZt3lFMan/MyIXTx6iG5RkjotVmAU0TF82kiKBVTIjaS2EE9ZpJloPytFVHPWMCxVg==@linaro.org X-Google-Smtp-Source: AGHT+IFBlK/JlAP/z81gPFz7chjvSlU03ftvBKDRajtOErUtu+e6Irq4QpkATx5m85qHWmmp0d3o X-Received: by 2002:a05:6214:21c3:b0:6e4:6ee1:a26e with SMTP id 6a1803df08f44-6e8e6d20c15mr22802786d6.13.1741137918469; Tue, 04 Mar 2025 17:25:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137918; cv=none; d=google.com; s=arc-20240605; b=Cufp3fB8fl9bl3ZQyU30vZGm85l+t2ok0UpKYKz0m+8rtxBcylV4jKx62JNaGT9+J9 noctGMJUXgfhIax8JbpJyLdSUR7+pF1R3ZGjL5WDjZ1Aptuhv6vaMOMFyCuUniksxNgJ URsCY8LD0BcFOJ6L9TV4VJNg7cwWNYgmgdb+67ANtqnjThZ5BPIwkbe66eRGSRM5WLgr leCOa0Jdu5baPbVtuzGn55R3QWgzQKNULNn42qlF5jkjC6OxofjBvX6IjC4JroLp1IKy kryF9ShmjnZ2+h7F8suRoe6ShLqCNJWZJxiXszk6oJJRXmUEY62VsoBgb2SKO1G7H1wD zsRg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=z1HY9sBjuk9kbpZKm7s52igZtwUaZd0dmJ6wZJ2aD0c=; fh=lA8KdGRRCLcXxei5dR52XWsTSutqQE1F1yBegzCCPPE=; b=BZdC26QzEzSs1AycM69U7SN5RqK8fpw0sIboOARvJvjWLjT8znIlSRo8f16WmOWUXQ igP2P69ugMPsuS2SEllQThnttolEL9X3VHpUDEx0dMV29oMuMvyzgfwY5SlnfBqmduQN Z+Rt/oYsnFgPzh5Hv3an2eDIAlXkjuWec+rTx5HpdHS+qjjiSkjiZSk3xC3e07LTzgDO QBuJEmt13IsP+6yMga9BUOi3U2YbTJvas6JX1deGx0Nc0FE7VlF+Ad73WyZACjTgJpjT M7jNl5npg5lNXfxsgRWrBNsSwGzjJrgMgQIylaOdm4R77jdYq4fV67LrTpHllfK3O8zC nbjw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=blyXb4n7; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474ead20a20si50847441cf.384.2025.03.04.17.25.18 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:25:18 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=blyXb4n7; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUG-0001wB-66; Tue, 04 Mar 2025 20:23:52 -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 1tpdTZ-0000BC-6c for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:11 -0500 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTV-00071e-6M for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:07 -0500 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-43948f77f1aso40736085e9.0 for ; Tue, 04 Mar 2025 17:23:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137783; x=1741742583; 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=z1HY9sBjuk9kbpZKm7s52igZtwUaZd0dmJ6wZJ2aD0c=; b=blyXb4n7rIarjWat9guQIA2HxtaZD7jdUg4C+SzPCMlxA50rWHaupiWH3duaXDzKsX MIzah7xmzFK8pub6Zp3t6mVs44pg1Hka824qd1OmNros6B64muGrCmR/dZvAXpIKVqab LBStIj12poTlHnq7TMm28QwiQ+VF0/UStvMtzwMC7rAXFO60IL1jrlXY67FsCQ8m6WK4 In+23n/17Q3fKF9DvbMgQHDVBDa9OnGv50Tomm8opYxae0p0/K4SaOe46GEf7YxnnuBr Vp5PBN+Q4h+LwyUiAeiJJMkLlU7uAv19MB7DrGFlRK7HfH4j1yyx/XcKvQp93KypPRrq MxyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137783; x=1741742583; 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=z1HY9sBjuk9kbpZKm7s52igZtwUaZd0dmJ6wZJ2aD0c=; b=hvhi1sfdJXCYIDBY5yoOmNtcQ82zZ8oVFQhtLgRUgA+18r29hPlS/eYJN0NnsC/NAI cVl7iO65MvmyazHukHogxDEjxrVzjyBy3waH/AtHm1LS1GISlPvqOxCV/f/+WyqUDB1E 2fl3opEkmNqDaqOc6YcvsZCfnarM7+fiI+c+hEX2Ef9E1Y7rjA/os7OK0CX+PSXt0Rwd 7LoQXI8XXuir1hbqzpCloeMaVRKGRuF2jXbxTA35Xo8HylLS+0C15rVSsOcpeR4j0jyo JIrfADOIxLy/N/DINK5jPgVz7qQGT34RiAN4ahLoAcjkyLtoendml6BEfTxDJvDWLt3E mmPA== X-Gm-Message-State: AOJu0Ywo2nCjgZdtlVGX/+LwZHOtdrYIxp66tYry4cMtn2yoDTZ92XQ4 Huir9FOYHBOW8gL1LGmlQrRdmleJD6UPSNaLyG4Nq6YfQnWw0cg1F2eQZ4LvzHqsTiUcP8OH2db l9b4= X-Gm-Gg: ASbGncs1A2SeeJcF9JMD9syTRprqcjBIp+HzQ8rspDPQ2pYyTiCpsP/tB3GfkEsMZKP fGZcjJbU50f1AtUMjkaUk/MP2ARtQPDR4v4+l7U1TyRQ5zkF78k6X3tAHeMd0spqN/9WIcZwa41 o1GzXoAojXTmO4ipXc1qFT9d7Z5RxF22Sf6Yunx9p2USwD/qaby4QpKUUMQpNFq8Uka1vkaJpCK e3svpIFA4rDEf+mTUVI9DMMCWbuPZh0iGVeNkX6Aa3PwjT+TDKCKzIOX49Km5EY+s2tVHf3wwNT kkzHvRI1FmywkRpfNMl8ML0aLC8bjvpXf3lwxJBCZmm084vZ3AhI0hEg6lQdo3svtvUPsuBltyo bV28hOwdyA8Gkx/bJJPY= X-Received: by 2002:a05:600c:35c3:b0:439:9ac3:a8b3 with SMTP id 5b1f17b1804b1-43bd29dd2b6mr5818615e9.18.1741137783469; Tue, 04 Mar 2025 17:23:03 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4844a38sm19442661f8f.75.2025.03.04.17.23.02 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:03 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , "Edgar E. Iglesias" Subject: [PULL 13/41] hw/xen: Link XenPVH with GPEX PCIe bridge Date: Wed, 5 Mar 2025 02:21:28 +0100 Message-ID: <20250305012157.96463-14-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=philmd@linaro.org; helo=mail-wm1-x334.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org XenPVH requires the PCIe/GPEX device. Add it to Kconfig to avoid when configuring using --without-default-devices: /usr/bin/ld: libqemu-aarch64-softmmu.a.p/hw_xen_xen-pvh-common.c.o: in function `xenpvh_gpex_init': hw/xen/xen-pvh-common.c:174: undefined reference to `gpex_set_irq_num' /usr/bin/ld: libqemu-aarch64-softmmu.a.p/hw_xen_xen-hvm-common.c.o: in function `pci_dev_bus_num': include/hw/pci/pci.h:337: undefined reference to `pci_bus_num' /usr/bin/ld: include/hw/pci/pci.h:337: undefined reference to `pci_bus_num' /usr/bin/ld: include/hw/pci/pci.h:337: undefined reference to `pci_bus_num' /usr/bin/ld: include/hw/pci/pci.h:337: undefined reference to `pci_bus_num' /usr/bin/ld: include/hw/pci/pci.h:337: undefined reference to `pci_bus_num' /usr/bin/ld: libqemu-aarch64-softmmu.a.p/hw_xen_xen-hvm-common.c.o: in function `cpu_ioreq_config': hw/xen/xen-hvm-common.c:412: undefined reference to `pci_host_config_read_common' /usr/bin/ld: hw/xen/xen-hvm-common.c:428: undefined reference to `pci_host_config_read_common' /usr/bin/ld: hw/xen/xen-hvm-common.c:438: undefined reference to `pci_host_config_write_common' Fixes: f22e598a72c ("hw/xen: pvh-common: Add support for creating PCIe/GPEX") Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Edgar E. Iglesias Message-Id: <20250218162618.46167-2-philmd@linaro.org> --- accel/Kconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/accel/Kconfig b/accel/Kconfig index 794e0d18d21..4263cab7227 100644 --- a/accel/Kconfig +++ b/accel/Kconfig @@ -16,4 +16,5 @@ config KVM config XEN bool select FSDEV_9P if VIRTFS + select PCI_EXPRESS_GENERIC_BRIDGE select XEN_BUS From patchwork Wed Mar 5 01:21:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870534 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552580wrg; Tue, 4 Mar 2025 17:30:57 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCU0YND6JXSoKRhvHxKXQAXwGotxkJozthQv0dg/GGPT82QgfEl2gCTYSpUh0G6gVzSpZnrMGA==@linaro.org X-Google-Smtp-Source: AGHT+IGt1kY2EweNfs1cSsHqG50RUMJuHCVEPg+5i8ClTIP4k02mHUdpizu6wYdYBwAWe09ngxP2 X-Received: by 2002:a05:620a:63c5:b0:7c3:c7f8:9f6c with SMTP id af79cd13be357-7c3d8e55a2dmr280413685a.40.1741138256926; Tue, 04 Mar 2025 17:30:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138256; cv=none; d=google.com; s=arc-20240605; b=ZVLsuHYjZ7KYQX9KDjdb7xR0YPU1fVW0YfUsRfjqPS7og82OKUOFsasTTMgwwaCqIR ySJzQUog07xO0b86kM54ZjcHeeP+vBvuPb61I0okmeLbtQclcKSoYXIkMhiBjWcHKi/U qOex5NTJU3Z87K4Amp71yBe60cFYLfvD2x2AeivrSa4NeAymfFmbClpayvMJVOFw1sEp nHYq/AYpO+vrm/wetHh8M9hTbvaI2ZDpoerj8MqgF1lEzS1z91jrYnEQEGWHTd8KrBKh EMf4+ssKGTwBA7o4+nQ01fKMn7FpSXNP5IITrCF7ETSFa6Tmnv8b9Q7NT3TtmO8LxSCs ePHw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=aeQ4l2OYCtamyJNS0OGrQ+B6RH9yuhSbCm/kTfeIjFw=; fh=lA8KdGRRCLcXxei5dR52XWsTSutqQE1F1yBegzCCPPE=; b=jA/PBBus9r+y2ZCsPou/DLQqrm7e5Hj+46H4q8kHf+Q5tHg/UNRi9bCeR2rfFTYWO3 yBJNOnBn85YU7ojDkOC8vWZm550TdzlITEKSMUJmJJCx05C8RfIHpI7UALlse7MekRMq 94tHKzq7hLQmBmNZuQuNA7tgFGiQH2Pw2M8pb87mJBoeROvngTFT37asnVqvmVC+rEIg Xl2SWXeBMPRrkOuE7W1Zy0qyrK4QSBBg3XRppidafJKcEb2UtsTo1MCQsgT8/ea4Z5zo bCpX4K3BnlX4rd4Cqu9VeXp6b1hDJtz0LbrX11e8ztXH0Tv/m4Umvn64lfeN5kQAnuFr ieDA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="sHuL/Nui"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3d314d491si162622985a.620.2025.03.04.17.30.56 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:30:56 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="sHuL/Nui"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUj-0002fO-63; Tue, 04 Mar 2025 20:24:23 -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 1tpdTb-0000Cw-K5 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:14 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTZ-00072K-R2 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:11 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-43bc0b8520cso18283125e9.1 for ; Tue, 04 Mar 2025 17:23:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137788; x=1741742588; 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=aeQ4l2OYCtamyJNS0OGrQ+B6RH9yuhSbCm/kTfeIjFw=; b=sHuL/NuiwUnmUgf9vSd4+e4dcqwHfNMzS6WvPuHPb5ejnVnN5XQmK3zgpgdPCYza8w cb9GIEWiYDocMNlYsU+ioQOC+d6Dl7UYQ1iaukqBcXQKF9IrcVIlSaeOpxycxE3+SM4Z QQ4hlWDrCSirRxNxUaV9EBevQCmuBr7yKdVUtgD4I2eeGZ2KmZoLH0Xlw7spr7seMhRY cgV18xqB3rkgIrusf+zebm6DZKCtQ5eSjKCHYXdHnALbfucC1FtyfO8UOerluP82MQS3 yjqY4nQco/DrhEjU6+PrczvfyQNDgJkSptbDCroEwQ2yWWVompncH+2d3GKw0VtXVS/p aLUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137788; x=1741742588; 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=aeQ4l2OYCtamyJNS0OGrQ+B6RH9yuhSbCm/kTfeIjFw=; b=b/Xvp0kmG6AtPxP1L0Fy+5qBCtbAqbjiN4UbxUgNW+mJiJex3Bh7fPyaedGgp4wHhm UeniYTynt/scGhkaYVsf1+U3bdc1mSHHZrVBjQSNvaane3LzZIlF5ty2zP5qzegRt1S3 cMgFqWJ3sni0U4cZc5r0VJ4rHwEkRNFZEd6SYhB56DBvXnmskSNHc8HpiSbn6w+gzUBR Udl34SW1YYSKn5gaG8TRfx1JMdIUTsosHxHgOH5oaUfIbLYRxp6seoilb8GtZfL43i/p fVXec9IHGcgONS5j/+ZlM/xqZOUofvVGtcm1H75oSy9qCSlj2rHS4Pk51cQZswxT8iUG 1aCQ== X-Gm-Message-State: AOJu0YzYLaGak6KNVWP+UidJ6xv1OPMaiImSSU4u5P6uTSL2pQAA0dZH aanws5d+ezeWlDVnRKIPbsNITeQafWAt6Ibj+FVS9GTNA8+JLiHFa+UvhOPX3IowVR8/OFKhQ84 YDH8= X-Gm-Gg: ASbGnctUXlZfv7xtIRHgWxIBJx47+zklkWhedEVwx3X+5w20aSBTxtvNrH44TwvfxH3 X8U335nKxNn270hG5SgHJVKCcXGDIUjxjahBN9Ao1EDjbUa3NMt0VgiVfYnEaqlX9ywen3pn/qp OAm93dB4pgz+uQ6LgFT/5VugR3beQePXiDjF4bbPlBzrySsZ77ywjTjo+/qjhugkty9p/FNevQM cEYom2BrDR7MkvvXQlTwOgXjb8oOvBUkCEvtEHBCoajW2Bwff0htaGfOnnv6oUj//UAEMhD69+J JbLqHGK57XojhHDFqPVlIVkekoNdua5GVsbxRWkyO5cTnjGxhobaiRwtsXM00ZkAvQqpzYAkppf P8f9D+aOSbLCb/N0wGis= X-Received: by 2002:a05:6000:1448:b0:391:ab2:9e87 with SMTP id ffacd0b85a97d-3911f7264e3mr616606f8f.6.1741137787876; Tue, 04 Mar 2025 17:23:07 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4847fe5sm19388500f8f.73.2025.03.04.17.23.07 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:07 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , "Edgar E. Iglesias" Subject: [PULL 14/41] hw/xen/xen-pvh: Reduce included headers Date: Wed, 5 Mar 2025 02:21:29 +0100 Message-ID: <20250305012157.96463-15-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=philmd@linaro.org; helo=mail-wm1-x32c.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Have "hw/xen/xen-pvh-common.h" include the bare minimal set of headers. Adapt sources to avoid errors when refactoring unrelated headers such: hw/i386/xen/xen-pvh.c: In function ‘xen_pvh_machine_class_init’: hw/i386/xen/xen-pvh.c:84:28: error: ‘TARGET_DEFAULT_CPU_TYPE’ undeclared (first use in this function) 84 | mc->default_cpu_type = TARGET_DEFAULT_CPU_TYPE; | ^~~~~~~~~~~~~~~~~~~~~~~ hw/xen/xen-pvh-common.c: In function ‘xen_pvh_init’: hw/xen/xen-pvh-common.c:217:43: error: ‘MiB’ undeclared (first use in this function) 217 | if (s->cfg.pci_ecam.size != 256 * MiB) { | ^~~ hw/xen/xen-hvm-common.c:18:6: error: no previous prototype for ‘xen_mr_is_memory’ [-Werror=missing-prototypes] 18 | bool xen_mr_is_memory(MemoryRegion *mr) | ^~~~~~~~~~~~~~~~ Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Edgar E. Iglesias Message-Id: <20250218162618.46167-5-philmd@linaro.org> --- include/hw/xen/xen-pvh-common.h | 8 ++++---- hw/i386/xen/xen-pvh.c | 1 + hw/xen/xen-pvh-common.c | 5 ++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/include/hw/xen/xen-pvh-common.h b/include/hw/xen/xen-pvh-common.h index 5cdd23c2f4d..17c5a58a5a4 100644 --- a/include/hw/xen/xen-pvh-common.h +++ b/include/hw/xen/xen-pvh-common.h @@ -9,11 +9,11 @@ #ifndef XEN_PVH_COMMON_H__ #define XEN_PVH_COMMON_H__ -#include -#include "hw/sysbus.h" -#include "hw/hw.h" -#include "hw/xen/xen-hvm-common.h" +#include "exec/memory.h" +#include "qom/object.h" +#include "hw/boards.h" #include "hw/pci-host/gpex.h" +#include "hw/xen/xen-hvm-common.h" #define TYPE_XEN_PVH_MACHINE MACHINE_TYPE_NAME("xen-pvh-base") OBJECT_DECLARE_TYPE(XenPVHMachineState, XenPVHMachineClass, diff --git a/hw/i386/xen/xen-pvh.c b/hw/i386/xen/xen-pvh.c index 33c10279763..f6356f2a7ed 100644 --- a/hw/i386/xen/xen-pvh.c +++ b/hw/i386/xen/xen-pvh.c @@ -14,6 +14,7 @@ #include "hw/xen/arch_hvm.h" #include #include "hw/xen/xen-pvh-common.h" +#include "target/i386/cpu.h" #define TYPE_XEN_PVH_X86 MACHINE_TYPE_NAME("xenpvh") OBJECT_DECLARE_SIMPLE_TYPE(XenPVHx86State, XEN_PVH_X86) diff --git a/hw/xen/xen-pvh-common.c b/hw/xen/xen-pvh-common.c index 9c21fa858d3..d675f7a8aeb 100644 --- a/hw/xen/xen-pvh-common.c +++ b/hw/xen/xen-pvh-common.c @@ -8,14 +8,13 @@ #include "qemu/osdep.h" #include "qemu/error-report.h" -#include "qapi/error.h" +#include "qemu/units.h" #include "qapi/visitor.h" #include "hw/boards.h" #include "hw/irq.h" -#include "hw/sysbus.h" -#include "system/system.h" #include "system/tpm.h" #include "system/tpm_backend.h" +#include "system/runstate.h" #include "hw/xen/xen-pvh-common.h" #include "trace.h" From patchwork Wed Mar 5 01:21:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870521 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551348wrg; Tue, 4 Mar 2025 17:26:32 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVC2tDzIw5Datvv1RPGjJ1418WoAxaA1Xv2OBdpOkfEQzC5vrtN7gQmtZGvix9u6vn+dDc2mQ==@linaro.org X-Google-Smtp-Source: AGHT+IFrvW6SqElH6g8Op2wO/CESKuRMty/r68HGFfVfVagCJz+lVkVpnrKqyJfNDlRv9OYLpxmq X-Received: by 2002:ac8:5715:0:b0:471:a523:6ac1 with SMTP id d75a77b69052e-4750b2471femr18813001cf.6.1741137991936; Tue, 04 Mar 2025 17:26:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137991; cv=none; d=google.com; s=arc-20240605; b=fl3UTwv2FjACO54bwhflEnW+3KFp7P8fU0BkWVpPJNixsRnkMv/G4cyRANzXj3NSCV kdc4KEZoNuKV4X1WAy5YxMXgF6QpR32OtRpLEYQe5WWb1ilfW2UypxsXYOX72J2WfZZs U+uo25vsw2BZV6xZMhwuIKC+NW3v3OsPK8SCEwNX9dnLvw9lZgt1nQyevUgRcXn9dtKL 9vP72smYYM81c5as+YBzwDkROBi6xe2e9NlXgm7wpWQGCYyzKe8I9udxAyvUZ5CYLZ3o aCcrU35rxEemyd9Fc5T7czjDiALacNkpEuByg94uRtkkB2W2bCNwvM1HTt25takMOsmZ rONg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=q2IHjjPDhAlThC5AYDDLcqpca6XJWi3ImZ01k6AVQ1k=; fh=TM0qOTteXYAw142lAYC5z6/vi3PJwa+7UA9Dw/o5Tj8=; b=JQ/szoEQJyUhV0FEtj5dCvXT1xIdtQfbJABIdlatUvQ+KvHu9XThskhAt+pLShbMqI meviUtsBHcaBwOogqNXxT/HZWiROTF/zF9SRBYXUpPDXAJsWT2mLysnyW0k+NQPpTbKu vZOPZL2C/bOWbsIXR7dsXTDeFJc5WL6BdKf4dJ92DjCbX7uXftWJLjvTPaSIYxFAdAu0 VZAFEOTexeY1AstOPzlRRvVg4S1GJAUUUZY5cUxabBCmeE2EFFGtvtcCJ/7YvqOBJTGl UzAoU3/elZlJppIOs1Zb8l1ckh5v4nf40XBTkEH5SiLBSp0iqcWD1RN6r60q8v3e+3Nq PCQw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=h727yHxx; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474691acab0si123513171cf.159.2025.03.04.17.26.31 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:31 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=h727yHxx; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUO-00025k-FY; Tue, 04 Mar 2025 20:24:10 -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 1tpdTg-0000MS-TV for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:18 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTe-00073A-G1 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:16 -0500 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-38f406e9f80so4730969f8f.2 for ; Tue, 04 Mar 2025 17:23:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137792; x=1741742592; 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=q2IHjjPDhAlThC5AYDDLcqpca6XJWi3ImZ01k6AVQ1k=; b=h727yHxxlFu8IHv/fSPHUjGxf7eBGh8Gghj+BPPI/vJVqyuVizsyrbIdrEqf8oiSfI z8JzyUyl/FDcGrOMGfrW6FWo4xvgeDVt2qZEbZE4kNnrsSWDUKhKwC5fWPZV9u8zoPuO R2dgEu7MxatphqIcqMssuSjhPy58hTiFX8LqKeVdwuVXEJWyUZb4c2MRmbYdL97by2xl /lvJ2z6yh3tbVZwSjOeTE8A1mFyilVNs23rV6xGf9ziTjsLZ9EUWSNApa/HyTAjBIZ7f WBhVLzlFT9T05/trv3I4fuGvs3HS2SEbvWEqp1k+IG8PrrawxN3Mia6vA0dZpMda8hcj 5fkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137792; x=1741742592; 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=q2IHjjPDhAlThC5AYDDLcqpca6XJWi3ImZ01k6AVQ1k=; b=N1TIpaVOoExgCTrdiV7lO2iksjUhQptSN+PJih02DY1XC2gC48/An8ShA3RcKR2Ygy MqzPwsMWm1THHazuvIkMx80x7x6MiTzlrGWIpD0KdzNq1R/TP0fv8ZrZjhCEoMJDroAe vC4E/v3FiviJ0/9O2hiW30WkDnUHdkN4UOJdAz5BFD8tz/aJ1M6Exe8mNX6zgGnh1ukO eNE89/w3QVC2ggHhf8n2tHjEZyt9MfRx8KjcYcnh2g84Eu/lVfwUJU0D+9ectlp3nfIw 9HstJlnY24ipf0HB7gyakFNSQXO5/UY0MOXEtISQwXw5WgB8+KK0gJW/V5whncsjbjQm xBDQ== X-Gm-Message-State: AOJu0Yzg99y6U2+EAxQ60lX7NciR/aoBLEY2p7MOgE+if85k3ts/qh7f cpHXapJ3WR76nhxcyW5CtvylLoiwPTAB11AiTuN+NT9K7SX1GX4UK/3LOkiW1y3v4gTljbXA7kS ofNY= X-Gm-Gg: ASbGncsqDRsEllb9D37HeaF0wbEH2WWWZGZz0dHHw73GJibYpdObmm5lGwwVT0V0YpX DYuawkYeLT6J60CauSAGCJ5gteA1NRLwh1hV40jWvPyBHZpdJCHO0DRLUZSS8nGdRaXcDmgKUc5 4GmMXY8DRIKn+W0qi3iuUSHhQIGAbI9BBOMoKd2817ROqyr2liZuMtEp/++q4FdgaJe84ZwaG0k WiCsccSVWWHcC7qKvzsWCyzXVSl94x5nhDUPUYbY5rDwLRbTn/Sy886/3ez0u1EpNfzFCZGyGOV 9mlaIBKqYUBYuL/lz2dy1fwrylX2wiDA0p3ZH9HU2KfowywiR2MXGhq87xO4d0cTXyDGQTIiE9q SxndNqngSBSpHCVCtNy8= X-Received: by 2002:a05:6000:4007:b0:38d:e584:81ea with SMTP id ffacd0b85a97d-3911f7c8308mr650163f8f.45.1741137792366; Tue, 04 Mar 2025 17:23:12 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e485d6cdsm19218804f8f.84.2025.03.04.17.23.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:11 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Anthony PERARD Subject: [PULL 15/41] hw/xen/xen-hvm: Reduce included headers Date: Wed, 5 Mar 2025 02:21:30 +0100 Message-ID: <20250305012157.96463-16-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=philmd@linaro.org; helo=mail-wr1-x42f.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Have "hw/xen/xen-hvm-common.h" include the bare minimal set of headers. Adapt sources to avoid errors when refactoring unrelated headers such: include/hw/xen/xen-hvm-common.h:71:5: error: unknown type name ‘xenevtchn_handle’ 71 | xenevtchn_handle *xce_handle; | ^~~~~~~~~~~~~~~~ hw/xen/xen-hvm-common.c: In function ‘cpu_get_ioreq’: hw/xen/xen-hvm-common.c:227:13: error: implicit declaration of function ‘hw_error’ 227 | hw_error("Fatal error while trying to get io event!\n"); | ^~~~~~~~ | herror hw/xen/xen-hvm-common.c: In function ‘handle_ioreq’: hw/xen/xen-hvm-common.c:446:34: error: ‘target_ulong’ undeclared (first use in this function) 446 | (req->size < sizeof (target_ulong))) { | ^~~~~~~~~~~~ hw/i386/xen/xen-hvm.c: In function ‘xen_add_to_physmap’: hw/i386/xen/xen-hvm.c:298:22: error: implicit declaration of function ‘xen_replace_cache_entry’ 298 | uint8_t *p = xen_replace_cache_entry(phys_offset, start_addr, size); | ^~~~~~~~~~~~~~~~~~~~~~~ hw/i386/xen/xen-hvm.c:314:9: error: implicit declaration of function 'error_report' is invalid in C99 314 | error_report("relocate_memory %lu pages from GFN %"HWADDR_PRIx ^~~~~~~~~~~~ hw/i386/xen/xen-hvm.c: In function ‘xen_log_global_start’: hw/i386/xen/xen-hvm.c:465:9: error: implicit declaration of function ‘xen_enabled’ 465 | if (xen_enabled()) { | ^~~~~~~~~~~ hw/i386/xen/xen-hvm.c: In function ‘regs_to_cpu’: hw/i386/xen/xen-hvm.c:487:5: error: unknown type name ‘X86CPU’ 487 | X86CPU *cpu; | ^~~~~~ hw/i386/xen/xen-hvm.c:492:15: error: ‘R_EAX’ undeclared (first use in this function) 492 | env->regs[R_EAX] = req->data; | ^~~~~ | REG_RAX Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Anthony PERARD Message-Id: <20250218162618.46167-6-philmd@linaro.org> --- include/hw/xen/xen-hvm-common.h | 14 +++----------- hw/arm/xen-stubs.c | 5 ++--- hw/i386/xen/xen-hvm.c | 6 ++++++ hw/xen/xen-hvm-common.c | 7 +++++++ 4 files changed, 18 insertions(+), 14 deletions(-) diff --git a/include/hw/xen/xen-hvm-common.h b/include/hw/xen/xen-hvm-common.h index c1ea2c0d787..19df5600a39 100644 --- a/include/hw/xen/xen-hvm-common.h +++ b/include/hw/xen/xen-hvm-common.h @@ -1,18 +1,10 @@ #ifndef HW_XEN_HVM_COMMON_H #define HW_XEN_HVM_COMMON_H -#include "qemu/units.h" - -#include "cpu.h" -#include "hw/pci/pci.h" -#include "hw/hw.h" +#include "qemu/queue.h" +#include "exec/hwaddr.h" #include "hw/xen/xen_native.h" -#include "hw/xen/xen-legacy-backend.h" -#include "system/runstate.h" -#include "system/system.h" -#include "system/xen.h" -#include "system/xen-mapcache.h" -#include "qemu/error-report.h" +#include "hw/xen/xen_backend_ops.h" #include extern MemoryRegion xen_memory; diff --git a/hw/arm/xen-stubs.c b/hw/arm/xen-stubs.c index 34beb8b08cb..5551584dc20 100644 --- a/hw/arm/xen-stubs.c +++ b/hw/arm/xen-stubs.c @@ -5,10 +5,9 @@ */ #include "qemu/osdep.h" -#include "qemu/error-report.h" #include "qapi/qapi-commands-migration.h" -#include "hw/boards.h" -#include "system/system.h" +#include "system/xen.h" +#include "hw/hw.h" #include "hw/xen/xen-hvm-common.h" #include "hw/xen/arch_hvm.h" diff --git a/hw/i386/xen/xen-hvm.c b/hw/i386/xen/xen-hvm.c index d3df488c483..d4516acec69 100644 --- a/hw/i386/xen/xen-hvm.c +++ b/hw/i386/xen/xen-hvm.c @@ -10,10 +10,12 @@ #include "qemu/osdep.h" #include "qemu/units.h" +#include "qemu/error-report.h" #include "qapi/error.h" #include "qapi/qapi-commands-migration.h" #include "trace.h" +#include "hw/hw.h" #include "hw/i386/pc.h" #include "hw/irq.h" #include "hw/i386/apic-msidef.h" @@ -24,6 +26,10 @@ #include "hw/xen/arch_hvm.h" #include #include "exec/target_page.h" +#include "target/i386/cpu.h" +#include "system/runstate.h" +#include "system/xen-mapcache.h" +#include "system/xen.h" static MemoryRegion ram_640k, ram_lo, ram_hi; static MemoryRegion *framebuffer; diff --git a/hw/xen/xen-hvm-common.c b/hw/xen/xen-hvm-common.c index 7ffbbfea23b..9a677e8ed74 100644 --- a/hw/xen/xen-hvm-common.c +++ b/hw/xen/xen-hvm-common.c @@ -1,14 +1,21 @@ #include "qemu/osdep.h" #include "qemu/units.h" +#include "qemu/error-report.h" #include "qapi/error.h" +#include "exec/target_long.h" #include "exec/target_page.h" #include "trace.h" +#include "hw/hw.h" #include "hw/pci/pci_host.h" #include "hw/xen/xen-hvm-common.h" #include "hw/xen/xen-bus.h" #include "hw/boards.h" #include "hw/xen/arch_hvm.h" +#include "system/runstate.h" +#include "system/system.h" +#include "system/xen.h" +#include "system/xen-mapcache.h" MemoryRegion xen_memory, xen_grants; From patchwork Wed Mar 5 01:21:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870524 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551413wrg; Tue, 4 Mar 2025 17:26:42 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXh4D3LTkUx5YVRnwNKWDr6rWhLQ5dTLM0NPk5ePBVlsNeRpbbKYzczrT4SxBkp0f0Vyyov/w==@linaro.org X-Google-Smtp-Source: AGHT+IHeJ4+2BhKzobq1jRzFURTxeXzUoYxHgVCyOGZyz0wHkszhVwGyXoPn5r79pvuZ4Mvw1Vtq X-Received: by 2002:a05:620a:1d09:b0:7c0:a550:89b5 with SMTP id af79cd13be357-7c3d8b7cd0emr246115585a.0.1741138002631; Tue, 04 Mar 2025 17:26:42 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138002; cv=none; d=google.com; s=arc-20240605; b=LKx2wk9VNDdY/JiKTw7nXqfUuIULpSJsLYWmLmFaQS92p/eaIa2ju2nU1MfXTYN3hj DnnpeFPj3/ftpTSCcUCTprtioED5p9FsTdDTaj04YGNdIPaUvypJXZL5IPXgOX+XM140 0Y0VRqxtzs1329daObuNJHoGRMhc+VNGDKoTWvYjkGip/iRv3bvsGOFzLdaMr+tC3m+r E4S+EB+zwPf5d0yatpHwORSF7j77wGhG+VDG7JtdQyooM1rf8iHktmv0jBEgm9uw/nKs nunViKXh30WShWKnVeob9XLhn5HlzovrxQmh9Kamf+CWaWu8+Z7Q7ZqNMcHBr9J0aLeF tBLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=/CnzfLPf8xf4AIvAaiMSlLZCOnCeYXV9atLF0rIWAMo=; fh=TM0qOTteXYAw142lAYC5z6/vi3PJwa+7UA9Dw/o5Tj8=; b=RXZajAAJqfd0CjofEly9I3WJ40NFW8+gsutJ1/xbtBXg1sCTl/rJl+I3tVs8yuSmR0 DFGmWD8rH44NKtJNRay3CMdKHM12WDAHBj12ScVQlK9h2NRrsQWeEqaQxPYdNEd+FxL8 G1606umVjBMVunNA7Avy/W88xNelFpO7w5VZ7YQ672rVfRyqMRHbZaI8Yp+v0Hp6aT4F eJIBFwjvx2wsUxCIGl3rFdVO7cCeK3UiYQPr5l+kn/IN9VpSXqbouve4ZkaZnSz08+Lx X0Ysfzl4GgYEbduug/V+c1lrw5+T5Kb8HUi4YxrAW701L7GE+QkDsqsT+XySa9tHoUCn 6Dng==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FxAVF24Y; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3c1bb7844si446070985a.97.2025.03.04.17.26.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:42 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=FxAVF24Y; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUg-0002bG-PC; Tue, 04 Mar 2025 20:24:19 -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 1tpdTl-0000Tq-5C for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:21 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTj-00073u-FP for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:20 -0500 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-43948f77f1aso40736675e9.0 for ; Tue, 04 Mar 2025 17:23:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137797; x=1741742597; 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=/CnzfLPf8xf4AIvAaiMSlLZCOnCeYXV9atLF0rIWAMo=; b=FxAVF24YHZlO+GjDz/e+w7dyogpILrg9osDD728ihec58NCDMLhp+31HMlruxhsczC tvDjz1mkxmi27L8sYN6658A5rT7dmplp6T3YZjf31gXm9K+0szcv2tLa8LV/GJzYYeh8 8XWhXMonIp+rMBooiij8iRgaU8VsyzCT0aHsbrTWYMptvTwusMExC0kYvAxaKLnaTHFc NBbLq1CMkqxk76/7Dwdi5yUTdY1hss4GOfJrcYdSCNgJpHoiNwStk9lYq/nUUafQrSPa ffn26hPHe4/nAtZxXY71v0xbO72Y5LCgs8R/i5q8YusCVgeLveAMjFa34/SS+01I3jwu NJ6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137797; x=1741742597; 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=/CnzfLPf8xf4AIvAaiMSlLZCOnCeYXV9atLF0rIWAMo=; b=jourZ2djC8GxffWqSpH56w29i0RuUoi3rDlA59Y+di9j2HJ5wyUnUU9UHn7JB4VE8t NXGGwwzlkxnz8j4dCLlhMA7DB24pSaMkeJ0Vik4suG1kr2Fkyb5cS3Aqq2dvD8gMa8Vg OWY75dAU2CaWq+1Gzs2Bk6OblDL3JiTIDjJE5J9MzGvFGsEJnYobYIjtrxSkRd5JicQ/ k+nMNsSPaio7Jl7sADD+WQjCf4m/p7ZED7LJL1jg35RUlVWtJ4IHWlBKUxRHEvQNeksg WjhgNO9ce/VN+E7ch8EzhEoRhh3Mnx4QrIqkXfNlp/n6GpOl3C0ezewIuYWtY6XRUrdY BYQg== X-Gm-Message-State: AOJu0YxlqNjHA7xAh4zuGVB1nPTq1vQOICwi7Hy03MMaOWbJfhZLLMmv HHJuU3RDWZDJaDZ65X2Q2j5QYwBw9D8KC3gXAMnAcYkuK2RKJHuPVw5bzaTkS8X/M62VQcVgf20 iOCA= X-Gm-Gg: ASbGncvbKXmjFGR+pezoTj9xFd2pNxkZIt3WeQRXnAdUEKxYZ13lB6Cy80hAZ6dR7qE VlcG+w4tM+9x3PgdgdnbYhBr7LlUiYrfXNaut7tCESdUcmEYQ/8GiAX2H40ieRxpBwFx2YpxfXi Yktv1uV0V8pvEfAu90mDN/ODy9pA80J9W4GXcAFOjfCG7CAgvUQEaiaa8lIuTbjGAm7uO5rccWo k3S20VR1W+Mo/+0Q1Te7s0xLJIZ0XvZoEFcIS0PJOVUbamNq3XNPTNIG1sJCjoPijsZPQFR94Ld KftV3ADd+yjPMnWFksV7W9A0ger2pLs+UDIVMGvT5ye/LUiLKRllm/I8w2dpQgawt9MSGh15Nlp NGTUBHXVj5OhtC2TCwZc= X-Received: by 2002:a05:600c:510f:b0:43b:cf12:2ca5 with SMTP id 5b1f17b1804b1-43bd29bdf43mr5928775e9.8.1741137797615; Tue, 04 Mar 2025 17:23:17 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd4310539sm1908815e9.35.2025.03.04.17.23.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:16 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Anthony PERARD Subject: [PULL 16/41] hw/xen/xen-bus: Reduce included headers Date: Wed, 5 Mar 2025 02:21:31 +0100 Message-ID: <20250305012157.96463-17-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Have "hw/xen/xen-bus" include the bare minimal set of headers. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Anthony PERARD Message-Id: <20250218162618.46167-7-philmd@linaro.org> --- include/hw/xen/xen-bus.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/hw/xen/xen-bus.h b/include/hw/xen/xen-bus.h index 2adb2af8391..bdbf1ed6fd0 100644 --- a/include/hw/xen/xen-bus.h +++ b/include/hw/xen/xen-bus.h @@ -8,9 +8,10 @@ #ifndef HW_XEN_BUS_H #define HW_XEN_BUS_H +#include "hw/qdev-core.h" #include "hw/xen/xen_backend_ops.h" -#include "hw/sysbus.h" #include "qemu/notify.h" +#include "qemu/queue.h" #include "qom/object.h" typedef struct XenEventChannel XenEventChannel; From patchwork Wed Mar 5 01:21:32 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870516 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551051wrg; Tue, 4 Mar 2025 17:25:19 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVlJoJEVLkEUrwts4APAHyvs2FjmYF2U8AzfAIDQ2WH0AJqPl/AvVsbZIXurlpsatgCfmz7Zw==@linaro.org X-Google-Smtp-Source: AGHT+IG4QpjI7eRK8LWJAZ/a07CHhK8nCrcCtwUL2oP5CdXcuXnaZ90hfNB0tzZmSDGjm5yB9XPg X-Received: by 2002:a05:620a:1d09:b0:7c0:a550:89b5 with SMTP id af79cd13be357-7c3d8b7cd0emr245680485a.0.1741137919300; Tue, 04 Mar 2025 17:25:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137919; cv=none; d=google.com; s=arc-20240605; b=HmfoJmFc7B4POR0BCU2S9z19NEP2RLsfqpwQ/DFS5RFJ4RC78zBqkvFsQx4Is98eg5 +qT+ahsyhVX7sv04DPIyosvfNqATV5Np2PWwkUC1N78pcD+YBq2fm2UwudnheUAGKv20 CVtnpabmodW7Hk0kZo0x674h1XIjF2NuigMpnf9wjzz/PzB5PjJofkFQUaBHzVPRGIxg g+75BYmXRtijgPDAqjECFII8kBY5FtLexjW0n2d5tqlYpmhSiNdwgaA2CatEv3buPsGY Z/l72XbUN/xgiAHUz/Ez8IkRLCCJPgT/kDtlXMyX1NiWTH5yrWzER/AzE3AmnXWue3Kg 4V5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=/QUbgFdH+LpUBvr3jWV7pVNPKK1k5LRXJFBmyMiAPQM=; fh=TM0qOTteXYAw142lAYC5z6/vi3PJwa+7UA9Dw/o5Tj8=; b=KQGapCrwRpsn+aEYoQu3QQLLq05KZgq3InfbfGtZ/KH0RTfHDz1QqjPJTM5SJHz56K 9STms4rKdY2ihXUjQp8Es2ocV+JmlY1xwtSpCGvr9RJoVHnakOhPXytKCTLIFrcFLekl QkerZOsEu+eNKErTUUDRtyZG0UR8gtOgMEpD6Hwm83G2jromSVQU8Wigy2HUVqChQ4Yy LVR7l38VrXEDDc4+KGYbeCm0HcQ+EWA8VyZTNzyxggR1USL3aNpSTRsChzXcWI8N93Hy mOGf569Gba6vSnzt+aH7Dcjs/3nozEAzv1ugBx7fnjwBx8yVEinx7ui17h1QByrwl1S7 SQ6g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=w3W9wYSq; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3c1f1c52csi438362385a.239.2025.03.04.17.25.19 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:25:19 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=w3W9wYSq; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUu-0003BE-7a; Tue, 04 Mar 2025 20:24:34 -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 1tpdTq-0000hB-8P for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:26 -0500 Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTn-00074U-R0 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:25 -0500 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-390effd3e85so4770627f8f.0 for ; Tue, 04 Mar 2025 17:23:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137802; x=1741742602; 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=/QUbgFdH+LpUBvr3jWV7pVNPKK1k5LRXJFBmyMiAPQM=; b=w3W9wYSqKFkjVuCqfdOLwMdquHGCBVKpYoj9WukBRl5bx+EQbr2OGAa5H8v8QOQEXF caJrjlA3eMhK/j8+tHyb7oGD1ALNP9ShShZQiMIu/3MX5oddODay4RuVM323m8mwXTIq sjbax4sWgdspIq9NR+O2UDiFzTpR5nW4oprZOOKvkctfBYXyKJ2oXXWBo1Susl5gXstG bNngnxdn80ai06MsZYJoLTvAvCh6wUWT59T5bAPIPTzVXGJXimKywgTkalOvbr2UaBBO iN9vco/msSJW3SAbiJemdCGZd8LRVkR/ECXkwTMDxDzzCoo9eGRoNoT0TxdAEZMw+Z/x Q8bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137802; x=1741742602; 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=/QUbgFdH+LpUBvr3jWV7pVNPKK1k5LRXJFBmyMiAPQM=; b=Vz4jvsl6zDc5xHHPmP49huC14ao0Uovyl6iUR44kBImJWFK24EQN/ZOCT9I8RWCWe9 lblms1Yh8YlBtRJ1I86ZzIXxpyyxU/06sO5XuCgG62dBd840ftxxLxnhjluDauL5tjP1 +M58XdyDWokAveO9QGFJB138LOmfErozwU8B+WGhn3902HiybWF8En/aVU2ko9JfKglC KCx0uOwScq2PjFQtMBNE839QhVswJ6rW7erYS1Tc6emda0vHHubbAvgn9Fz0Ut/L5MJB T1nVPjzMRc1jYI22U9zmrKRIIunDyaQMhtfBjthuR5aN++jJKl/D8I23OmZEFFsexz7G J9Fw== X-Gm-Message-State: AOJu0YyXLWmDASvhemRVfDg2aUQwO4tHXD9nMi05245ydgmLkv8o8bFx kkCLRJMl5/VQ+RfvJmsKk6ppJhvpA9QdC+gnp12WsCde5NWUEZx9jsrvhouIAgzHX9ecfUbLkQ3 kzec= X-Gm-Gg: ASbGnctFCZa+j+qAZwdMfqIS2QitlFoN9vKYEA9cqWkbCJuN1gmBQLCYMCbDurcOVP/ 9PEUgrvNs4SHxtke948eWDM3dcs5zlyXHRHZKdfW/BEKkdYQLngwAMgkRW6u+nsi7BJmHWYAjfD nBnHf6ya/Oji6rk+BVqe5jVF7wOIRrrQEUKblfGbImeryUrdv6DpbbYPSnlxe/ds13O+GN2MABO lkNfEcydpxrdFJuPuhuKxbq6S01eXId4Eie7RZfG7j5OR2spmIEWH/Fz5jO8mj6TD4W7uX3nasG F7nDpRAZZjDj/01yOolxSOkU+bJFaBo5j65e0qilQC/WIkNR+zcDLNykI6tJUa9D9ShtJPEcgV5 Gs3wRfRwxIQVWY+yeuLs= X-Received: by 2002:a5d:64a6:0:b0:390:eb32:3fd2 with SMTP id ffacd0b85a97d-3911f57cc31mr909806f8f.0.1741137802156; Tue, 04 Mar 2025 17:23:22 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4795978sm18925528f8f.3.2025.03.04.17.23.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:21 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Anthony PERARD Subject: [PULL 17/41] hw/xen/xen-legacy-backend: Remove unused 'net/net.h' header Date: Wed, 5 Mar 2025 02:21:32 +0100 Message-ID: <20250305012157.96463-18-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42a; envelope-from=philmd@linaro.org; helo=mail-wr1-x42a.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Anthony PERARD Message-Id: <20250218162618.46167-8-philmd@linaro.org> --- include/hw/xen/xen-legacy-backend.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/hw/xen/xen-legacy-backend.h b/include/hw/xen/xen-legacy-backend.h index e198b120c5d..2d0cbfecade 100644 --- a/include/hw/xen/xen-legacy-backend.h +++ b/include/hw/xen/xen-legacy-backend.h @@ -3,7 +3,6 @@ #include "hw/xen/xen_backend_ops.h" #include "hw/xen/xen_pvdev.h" -#include "net/net.h" #include "qom/object.h" #define TYPE_XENSYSDEV "xen-sysdev" From patchwork Wed Mar 5 01:21:33 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870513 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp550825wrg; Tue, 4 Mar 2025 17:24:36 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXdMKFvRD8DqrIGxzQeIsSyUJvLEVKIzrjJRm1J/32krLaWqFF9UnqvAjWwlfLNcAPb8M0cRg==@linaro.org X-Google-Smtp-Source: AGHT+IHILUCr48i3eURJIskDd77PiKlggFyftEzy2ZDGeQoePK/s+OdGxznALKdQ5Kw8vtRScAhS X-Received: by 2002:a05:620a:601b:b0:7c0:97c2:cff3 with SMTP id af79cd13be357-7c3d8e48211mr258535385a.18.1741137876503; Tue, 04 Mar 2025 17:24:36 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137876; cv=none; d=google.com; s=arc-20240605; b=JmMQdVcaQNwvIeNP79Ko3rnmQkjNngnBzWduTCksmhMFEMqCmQ1oN/XO4dkQrR0Tun TPrruHsGqkmkvq9+RchNF3t5+qY7GJIGRSli2odH3UpKEVP5J/jPCpcL7324NfUWu8CE RimK5T9XTDNi7p2+GU+QKxQasNSX8utGsQ0InYpGEFB6KYGmspn1SvA6LIFQerTvPMO6 Ak9Dv+sN0YpC+vAw2R9oBc++1JKBjlsLU8h6Rb0YyIHu9KivCREtTrehV/n6DPdFAO3m WUiP9LwiGDJNIeO0mH3Czp33Dqyki9fwY4CYAAuq7SiHZT8eL1HMeCF+hP4GKtzA+mNj YNBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=9zYIkt9GKGIYdkcKWEhjNfLJXtEaeim06qAhvggPTOw=; fh=FIbYwJh3qUo+bGJA3g8Ei87rsDZvyEyMFUHir3PvCEA=; b=lFVA4FQjy/xGEHVW1kadh7eUB2mEpWt0qk9HBW9e7dpUxKO5SenRBXqVd90WpE8asP k4oDXMsp5vgsX4uTLNdk2WrwvQdFOVebCxUB6jiIhifSI3qaE0L8xgu14CaKlG/q0MaT C//jGqA0wgji4wfswORpqaCstnzctkDklnyPiE+ABxyL6luPPphDMbAsHVFlc1L1HVM7 MGz1gNa9XGX6K3feCc5aPkKsMR8yWU3v0JxagaBdzNJz1qXDDAi2pHrz/vTDgQCgxUu6 FqEY2BAbr4xUqU6Jax6jRa8OnG4dnCqa4wyYlCvR34qIEuSj3vGryVjqwYSdwgSLeCXe zVTA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MEBVe2ZV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3ac73260dsi725941285a.24.2025.03.04.17.24.36 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:24:36 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=MEBVe2ZV; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUF-0001v5-Kg; Tue, 04 Mar 2025 20:23:52 -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 1tpdTv-0000vv-1D for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:31 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTt-00075s-8U for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:30 -0500 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-43bcc85ba13so10403895e9.0 for ; Tue, 04 Mar 2025 17:23:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137807; x=1741742607; 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=9zYIkt9GKGIYdkcKWEhjNfLJXtEaeim06qAhvggPTOw=; b=MEBVe2ZV2f2gZbAVC+RZBjJGmSh/7ixmfUkjzrECeHDDwxXhYeJRsrrhIwOWGAdvId imi58FtR7XUvujqMVb9YVIVoSSwdNIZ+OAePqsdF+q3spENY8Lef64qIrKH/tQY6BKtU ECb4Xfv8oc7sYY41pAllzeEgpwPfAL/XVZgeoIYx/pXBTyN5Mq2kV5FvFYNi1qZWxMOu j6jaQHqAIuz6bhjjY7hLNwnvXXDX+tI2DIqBKguDeOurvYPZuSIfS/UOb5mJ/zZtJ4MN H4USQTU/VfTgdrOzhtmiRs7gT418Gj9dAAZfYOA+gDdzQU7f38E58Uj3nACC1z1HT1mS MReg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137807; x=1741742607; 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=9zYIkt9GKGIYdkcKWEhjNfLJXtEaeim06qAhvggPTOw=; b=wm0qoOV8sbXyz7PKSuaDyUj5LC/hMay+N67/pTCvM03vszrtmrxA8UL8Yc3zyIEaaV 1sFiUB3b1mXgjyJq0/2TIiFmDHqwRtH3h2OVfi6vX1qARY9anmr65sBzdRFy1tOf7pyG WouxLUiWJQ7t0arQkWTXrWvr+LSJIN3JWrf6vWSyKIaPWG6wcSupovti9Ug/qYS6ouyt S1mAwNagDhvFJHRgdPiSoqVw4k9td0mxCfAMl+zQDDkgVfg52ioPcQrxuieI08hYnvo8 9EAATRpavAe3Lpz6EV9scgYvfQCLZdgucA/4U8YdbOhTJ2ZvZjnXR1jO1pG9mRHiaKlq Gctg== X-Gm-Message-State: AOJu0YweN1f18PMjKAg6kDchU90Xlvs4A+gl8UeRv4uQv4zbjfxCwpwM yFLSCPxHVeA/TA4OW3igkr8zqxNhQBMVB1o4lJNF6xEEWH/MG+ircxEuTq5ombgvdUu6OIPO8Oy SaGY= X-Gm-Gg: ASbGnct6Jea7lTRIR98MwIj0N+BsIjNl/CC6Igd1ukHXlzxDIQ/dOzwW14SVH/XJs7E Jo69vt1BbSi1WiH8hoGJrFq7selytDVi8/CNnWRmGaaRM/k9zotnDVREBKBw4JnZxaPmD9o53Xw ze9p/khDg8nhTAV6SfCmBIjlwPm6yTSs/bJNfa3OCJf4S+4430NynibUW6NSpexHSyzmd0EwOBc NYTioLRLTlWH8LxHqp+GYqks2bqYYVt24zUlXlwz5FVyjo/rYAkGYp+2aBquBElt4X7ZuBavx4j asFwrI3/bCd1KyDMg8UlhebROhj+Y+rEp5oHDVA/kirEHBr7PqqMqcg0WkWrgUfIg2KSB1NjCfi RoSnOYHPm5KGm8qr7cYM= X-Received: by 2002:a05:600c:4ece:b0:43b:c94d:e1e2 with SMTP id 5b1f17b1804b1-43bd2ae54bcmr5223275e9.25.1741137807422; Tue, 04 Mar 2025 17:23:27 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd426c01bsm2058145e9.2.2025.03.04.17.23.25 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:26 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: BALATON Zoltan , Bernhard Beschow , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 18/41] hw/net/fsl_etsec: Set eTSEC device description and category Date: Wed, 5 Mar 2025 02:21:33 +0100 Message-ID: <20250305012157.96463-19-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=philmd@linaro.org; helo=mail-wm1-x32f.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: BALATON Zoltan Add description and set category for eTSEC device so it shows up better in -device help. Signed-off-by: BALATON Zoltan Reviewed-by: Bernhard Beschow Message-ID: <20250218155407.838774E600E@zero.eik.bme.hu> Signed-off-by: Philippe Mathieu-Daudé --- hw/net/fsl_etsec/etsec.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c index 3ce4fa2662d..adde6448926 100644 --- a/hw/net/fsl_etsec/etsec.c +++ b/hw/net/fsl_etsec/etsec.c @@ -423,8 +423,10 @@ static void etsec_class_init(ObjectClass *klass, void *data) DeviceClass *dc = DEVICE_CLASS(klass); dc->realize = etsec_realize; + dc->desc = "Freescale Enhanced Three-Speed Ethernet Controller"; device_class_set_legacy_reset(dc, etsec_reset); device_class_set_props(dc, etsec_properties); + set_bit(DEVICE_CATEGORY_NETWORK, dc->categories); } static const TypeInfo etsec_types[] = { From patchwork Wed Mar 5 01:21:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870523 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551369wrg; Tue, 4 Mar 2025 17:26:35 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWnK51aTOxBByvCURt9UsMBc5OQCQzgXlcneqjOTItCfAZiT8eCr4MNAKL3zZRkKQgIIHgx5w==@linaro.org X-Google-Smtp-Source: AGHT+IFsf3yT2CvqmLP0OdQvX1xevTlzMRz7HguEilKWFSgauHfnQcoJkIAxCCab958bd4r1/GMW X-Received: by 2002:ac8:5d4f:0:b0:472:31:851 with SMTP id d75a77b69052e-4750b448474mr17937311cf.22.1741137994913; Tue, 04 Mar 2025 17:26:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137994; cv=none; d=google.com; s=arc-20240605; b=ftDtdsI2wivAYIf5twXC+ozKtLvoPTo/4gWWyRgQ2fdphYZxb32ndsQ3uZpe9Vrlgw hHM6gDh98l3Y796Q96q1w2CJm2XvOywZudsmhKJrPXY2Gbt1CbAnn1/KekzYptp8P1+z hGOqJQh8W+wA4K7PaiGG0NCdoaUeIac1Gze7WU5qcFpovXvb6BXC5tDsLwY47cYMVowO KIyTtsD6hbPfl7vvnsWtnEJXFuhiCm+E5AaZrzJZLEZbQZsfawTNmsnCilqh77zyaLSs aMHjjPi7XvMx4VZ4oIyZh+hLuO8zRexvbOSaaYpBZH+8Zc5NVW8uf2T9a2k2HFJu+yVH 2XAg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=YXL5B5zw3pZta0/9DCa7fbyWVn6oj5wqXc+Tu2wdyGc=; fh=9DLyNDBFtS22m2yIEtfCqg2tLfqboWhSCRa/yJlXpM4=; b=iB4dUuBKyv/j4iX1qSqnLWJb2QzHCYfuJKSO9istM8dKHl7+tp/ni9EUYBWnhSbwCV +EyR8dHA76uFkCjDwHBd3rwwy1LtvT4NUxLeq7Kt2RYXAMAOyNqqtgvZOX3sBGAhyfUt cCSqc+IaM2p0rHMVMPHOCCxN/qoW27ybqA06WleenxGNg5LmC7Ist3rfpoab66xWe+6Q S0XsWl3brPlSWwiVnpHnZ1Enf2hpgCFTaiGQqCjJ0OFg4WGBb3ZwTb2Z0H/s9t2eRTXi 1hn+2EHoSC8lb2ZwOT/xNgOBZjH763/91MNPlDk7D1KUzEGc8sbKw8WmAsYmslvpf1HD 5+ag==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=lPhjsJhh; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474f54c9bdfsi39037081cf.474.2025.03.04.17.26.34 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:34 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=lPhjsJhh; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUr-00037j-Vo; Tue, 04 Mar 2025 20:24:31 -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 1tpdU0-00017G-L8 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:36 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdTy-00076h-TB for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:36 -0500 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-43bc63876f1so21509305e9.3 for ; Tue, 04 Mar 2025 17:23:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137813; x=1741742613; 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=YXL5B5zw3pZta0/9DCa7fbyWVn6oj5wqXc+Tu2wdyGc=; b=lPhjsJhh1qGpQTamOxZIoAJ6mnhtpFCBrkCBdqaVgtNDLpyk0Cb3opFylqsOTLEdWA Lp6QTM9o9im3+WoMPNwod0Nq9CwJPhoho1o+4kERSY7cBvUbcOS5if4jK8oRtlMSWG8n I6jbph/wRMWET26IMhK6CSzfaAgdrAXTi/zi02yz6A818cX0Uq0tbg2+dTWZWtkjlZ3B r35pB3c+MxSVXJNlQ5FPrV+Xjugv5qGENU/dtTQmKWw8zRdio5aayz7NkEWJncM/w37N 8InxAFZ6Ntp/EfT1QMLp8ZziXFY/2t/7rlAbMybkoM714VK1VVXVEMvTGKf8Qte2AkJi +saA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137813; x=1741742613; 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=YXL5B5zw3pZta0/9DCa7fbyWVn6oj5wqXc+Tu2wdyGc=; b=sROAVgZdid3AHzqIENrRBfVvYALefCveAS2+qgS56fh/TkMYKLa9hovOn0+he52cDM W+wY8GwWwDqASmtwuujyQAgps2RoSR6AgkiliKRmRFuIRIp5LrdiC8E8mt5pHUS391FQ Jv/4Ac25IwAI2AOHrBxxBL+joz24Sh8fPb+cMixtEOmNS6QCXEu0sszyANmlDyq2fnjy cssn7GLQQLPVEj9iQ6F5kZnwXvzlAUFsvAb2aRdo+SWBrHjxIEmWez5lmbJyd4smZQt4 ukYQyz/oRzoV5VYb9tChpcTQkKm5jVI+nJvfQoedpKfpA1PntT6wHRNUhz0VPA8IJxkO Qo2A== X-Gm-Message-State: AOJu0Yx2vqg0hJtp3nbQUzxh+k1MrfecBX52Wr3rz4zNEuucD/wtaVol BTFqxpu/NQe3wOyABcUDiqqdCzqUFCkp1x30yNcronfH2y5UBv6Tq/++FeuctaA0dmC4aEX1pGJ SynI= X-Gm-Gg: ASbGncvZhYTbvLxemymL9Fqqx4DRXc272tw0dv/U+3MgtxjuxBsOn/2FlasPKpLvPoH FklUjiau4SiJIRK/7rSd4CJwyFKXo3mdhmvL6FZpb6zNY+lkWJbqH4tEFLsT+/pFHLMTlxb82tC MR6EopKPo9YiHfs+fCWnLZ83Fm+ivrXprZXoQbpyHbX0tdnxn5NjJsUAiHJpe9xE8dQVIyKxUBX EnCGCBSAWV/Zz0dsFzholFpwRLiz9JdfaNnkwdcMGfCr1CqH/hGioBn6ia2bSZhBTtGvJFiGAsf yY6OIUkrSS8D9psKJtLlDINOP4prSLaEfospGGHFy8h6d4y63fMeYfXhZ40dV6HsNsxFo27Yzps 6wP6YLRM16kdv0jaOIyA= X-Received: by 2002:a05:6000:4185:b0:391:5f:fa4e with SMTP id ffacd0b85a97d-3911f7476b5mr487607f8f.29.1741137812850; Tue, 04 Mar 2025 17:23:32 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd42e51e8sm1956345e9.26.2025.03.04.17.23.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:32 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Richard Henderson , Luc Michel Subject: [PULL 19/41] hw/char/pl011: Warn when using disabled receiver Date: Wed, 5 Mar 2025 02:21:34 +0100 Message-ID: <20250305012157.96463-20-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=philmd@linaro.org; helo=mail-wm1-x335.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org We shouldn't receive characters when the full UART or its receiver is disabled. However we don't want to break the possibly incomplete "my first bare metal assembly program"s, so we choose to simply display a warning when this occurs. Reviewed-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Luc Michel Message-Id: <20250220092903.3726-2-philmd@linaro.org> --- hw/char/pl011.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/hw/char/pl011.c b/hw/char/pl011.c index 06ce851044d..12a2d4bc7bd 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -85,6 +85,7 @@ DeviceState *pl011_create(hwaddr addr, qemu_irq irq, Chardev *chr) #define CR_OUT1 (1 << 12) #define CR_RTS (1 << 11) #define CR_DTR (1 << 10) +#define CR_RXE (1 << 9) #define CR_TXE (1 << 8) #define CR_LBE (1 << 7) #define CR_UARTEN (1 << 0) @@ -487,6 +488,14 @@ static int pl011_can_receive(void *opaque) PL011State *s = (PL011State *)opaque; int r; + if (!(s->cr & CR_UARTEN)) { + qemu_log_mask(LOG_GUEST_ERROR, + "PL011 receiving data on disabled UART\n"); + } + if (!(s->cr & CR_RXE)) { + qemu_log_mask(LOG_GUEST_ERROR, + "PL011 receiving data on disabled RX UART\n"); + } r = s->read_count < pl011_get_fifo_depth(s); trace_pl011_can_receive(s->lcr, s->read_count, r); return r; From patchwork Wed Mar 5 01:21:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870528 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552084wrg; Tue, 4 Mar 2025 17:29:21 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWiZyXGXtSynKOjtITknvYXjbnxo3krIVJgsIqkE74slg19lZZbwMGsK92myHpe5hHFIBSdZA==@linaro.org X-Google-Smtp-Source: AGHT+IE9NJZqmZ5i8Qgn7D6KXK+Oa/8Xy4Rpa+GOmu1jFg3Q128XrNpKia1yzqxpzmMboO05Rzkh X-Received: by 2002:a05:6214:c48:b0:6e8:c713:321d with SMTP id 6a1803df08f44-6e8e6d13bf9mr17994586d6.11.1741138161532; Tue, 04 Mar 2025 17:29:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138161; cv=none; d=google.com; s=arc-20240605; b=HkiexSgZhftwcy1k3SXpd8XzrRjnzNWHPGPLcfYFxRh8Lgnw2xjOLP2nER3U3K/T6i ZwyWLKhY7v5HHKd6BQtcHg/UVjB8TVRz1S/0DMmKLz10Ay9gl1EqEjnhkB+HwoICD2cv 55U9MS6E4g4t4hVdEdBxqLm0h9oV0t26SrVbycGsA8VVUsAoHILSrqsd0SyOwarqdGYE vD5WNlRBF1SxaS1mQUAoNEYI+LgQokGzaqktesptKJl9rEG5AvZTvBy1faZPflZiYYmH ghYumDfol2SGUDUVN2GHFoKf5WMhyWrr7mLNATqBSN7KVoA9rKkz3l906p46GTHzYjvk sFwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=LY4o8wZMDwjmmvlDp+QFAxvztgqIF0167Zll+crzCoA=; fh=cr4X+ZspQYCefajZ6Az3uv/8/jRF+87//zpKtwMha9U=; b=GzapuQ33qlgqdt7/p8sNdN/LO+Z0nOmNP5tT36r8EWoMIu00VnV1VAI4Vj30YV6FyW euXGvMQP4qSA9NRGU22OtHQGhY6ssgl+pkMJ3zoUrm5SsjjaBmBx7iS9la4Erv+5f3Za 27rAH5OeUi3gbv0peO/QKPqcrdfveindiBULnfgInmSBIlDPeAeSGY0Fj9mlP0HryEu9 v/M3FE3sW9K9UGb2Rb9agiKks8IYBzW2SaL7NJCN5BCB2aV6AaBGdfas/dBaATNJ+2oV 9NDN3JIP05hC8+FN+YrRgoUT7RlBR7xiUxOIFsH3TQce4VbfItKZr4FBvLzaBseEKP/B vOxA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=IkcZV7oZ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3be900493si475344985a.128.2025.03.04.17.29.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:29:21 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=IkcZV7oZ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdV3-0003oI-HN; Tue, 04 Mar 2025 20:24:41 -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 1tpdU4-0001L7-TG for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:40 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdU3-00077N-5j for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:40 -0500 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-43bc638686eso1801335e9.1 for ; Tue, 04 Mar 2025 17:23:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137817; x=1741742617; 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=LY4o8wZMDwjmmvlDp+QFAxvztgqIF0167Zll+crzCoA=; b=IkcZV7oZFTXWk+kM7I7vnX2hNI+yA3huw0FyyrrTevQ8ZiumVWC+9wQaX/cSXoOByc YL/B9bisFooyO+C/REdtfKpLmT4dn2nlh5S4b8AMnqfvtQbmivpgjdhIrZZoAkHlIIX3 xpK4X3MHODMmNwQpl5TnRUe4mcLlVNFSr7TCu+K39D8jEtFvEY14lV4a8ZP67jG4eF42 Xv8MXmpLDX30bT4TI9SZpX1xCSaEYsacEWiGMjKgYX6kve2PhudzUegZP8r4/topwg2d 6MjawXghSl++BmsmGBFeV9A1g/IRDRFnCbNDpCaZ7z880qpGzd5FPcwGp0lUWOUjRfZa Pe3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137817; x=1741742617; 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=LY4o8wZMDwjmmvlDp+QFAxvztgqIF0167Zll+crzCoA=; b=GlTCl7Rjl379bymYv/ksEM3GsjMlGfwVoJK9iTjr/U8I2Wqbe0aw/KNvhJ/UMsSHfF nBpZBBiFymxKAxKvBaEADp/KM5QwkOWflTEHJbXwvq1aYGEgbOFWTcHI6488Z7mxhrph kM1ocg0+oUu/7TnZMLzm8K6QW4bv3tjM6UjRu/Xi1Nm33CNH7ouBApUo9gE9JpZ54CAc 86TvZq+OghUMdb8DGvJQ37WRlrb4Gz+KPONTicY5EzmwIOtT/5momVe1DYnw+oxWyBTV Kfi01W2IkIZJvfncPhyFHheUDXfLkWbXsMBzAH0DnYN7RF+8h1Q1oEA/7ixWT1S6bYdT Nx5A== X-Gm-Message-State: AOJu0YwAbS3UabvaPZT+YM5KOFIU/zpl18bFaactiCnTvPp2AhIOmfTv 50ngCIzl0lpzDkkDnclQPfozE02u6fYDaBQGpg5EaDdrcVanp2sXEgiQgjOu2AHM5DjBAlZ6xek PHhM= X-Gm-Gg: ASbGnctm4cIDC3c878VpHWX1P+wdTTFd52s1sDbwdNrSXXWJvb5FB2UCNJYfXNIm+32 7QP4wF4OR3aFx4vDiN9x2FEz9PH3UxRJv2MY1psMn9arBSQha5fGi1O51DJwSXqHy7Sb5CFVuNQ Dhueg1hLPSBPkCK/C1j3QV8aSiu4kQbxcKlKNGog565CMxtsv7/AEp1TU1kfGbWfrEtjArHHeo5 pEK/qKIXFpmDuCn+gNBUmk4v3LTPxuPCnLfMDbqBfAKHbqyVeIirnNczJJUSe/aRifJETYynAYR bKaq70gAMlrnV1UBIFa36TwsxbtbQfycOIvzac7jgaj+Y4JE0l2NTf6jfZehw1Q7agS20bVz1YV cpEM2bBfJlXCktnGDzww= X-Received: by 2002:a5d:588a:0:b0:391:865:5a93 with SMTP id ffacd0b85a97d-3911ea4130amr856807f8f.22.1741137817331; Tue, 04 Mar 2025 17:23:37 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e485ddedsm18938636f8f.89.2025.03.04.17.23.36 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:36 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Luc Michel , Richard Henderson Subject: [PULL 20/41] hw/char/pl011: Simplify a bit pl011_can_receive() Date: Wed, 5 Mar 2025 02:21:35 +0100 Message-ID: <20250305012157.96463-21-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=philmd@linaro.org; helo=mail-wm1-x32f.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Introduce 'fifo_depth' and 'fifo_available' local variables to better express the 'r' variable use. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Luc Michel Reviewed-by: Richard Henderson Message-Id: <20250220092903.3726-3-philmd@linaro.org> --- hw/char/pl011.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/char/pl011.c b/hw/char/pl011.c index 12a2d4bc7bd..5bb83c54216 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -486,7 +486,9 @@ static void pl011_write(void *opaque, hwaddr offset, static int pl011_can_receive(void *opaque) { PL011State *s = (PL011State *)opaque; - int r; + unsigned fifo_depth = pl011_get_fifo_depth(s); + unsigned fifo_available = fifo_depth - s->read_count; + int r = fifo_available ? 1 : 0; if (!(s->cr & CR_UARTEN)) { qemu_log_mask(LOG_GUEST_ERROR, @@ -496,7 +498,6 @@ static int pl011_can_receive(void *opaque) qemu_log_mask(LOG_GUEST_ERROR, "PL011 receiving data on disabled RX UART\n"); } - r = s->read_count < pl011_get_fifo_depth(s); trace_pl011_can_receive(s->lcr, s->read_count, r); return r; } From patchwork Wed Mar 5 01:21:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870531 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552462wrg; Tue, 4 Mar 2025 17:30:34 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVDTfcS2v+Tt+2BliZZKwwOMpGyR8d+VuvlL8CtqtgfYhSuh1IuD4OcnceqR8bqM9I/ydlsQg==@linaro.org X-Google-Smtp-Source: AGHT+IHn8PqJlhe1Ae/tx4HZH7OsQHXvz9G6zblrfw9HtoXWTgH/OIxJhFUOQtMkwuta6PnWEmC6 X-Received: by 2002:ad4:5d4b:0:b0:6e4:5317:64a0 with SMTP id 6a1803df08f44-6e8da8870d1mr81667916d6.13.1741138234377; Tue, 04 Mar 2025 17:30:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138234; cv=none; d=google.com; s=arc-20240605; b=Stb4oo3u6God8TczTyFA9jzjH+GVuD7wDdHBQ0C9ZhRG3p2+cWGBD08LwX8X/axzhB Clh9Xt52xYmhq/jfyz8dwwoLeQGGmWZcq1sWt4rvFj/9rDcdFWq6cTCQMrzJcyf5ZBOi eKWhI/96a0Jc6ZKxkA7iEoKIwXi7RulXTVexm2p+3mNy7f0oxr6J1bo1PopV48+/3gFD JLWXmGyW3SagWS0awtpaHIxwDmQ5vcD5bxsOeB/T1AM76ZombMGNPdyheGLdwDla5Ekj on3DgGy4wQddcKdsbd1n/kIPBKOb2G9IZjJQXlQhbsgcBB33qB4yRyrSSPU2LNES4Re+ r8Bg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=flZzPJvyMRfjjg+eGkch3F0VvTnr5vwIJOoCHfTrgLI=; fh=vRc5O3J6PEgAIUWZQiUbwxLuPfjwJYkZrZnoPN5djjY=; b=EXv7uhlqmGaSmsTJ2liRBTptjco4oTejzV8lAfVNNGCgLUWoEykcbnP+RAub/golvk cRVcae2aj3QYMJmGapSz1bmt47bBW3F70j89EAQ2f8RxokalW4lB1qKiq9jR4nRIWmxG dBkRwnFxw8Nv2YgiEbQqn3mXfeKT6HAQuuDtHucmvD1ipm+FFO9rHsZiOkLF0rFBX9nH hREvntLuYVS1TylGfjqVBiNeBFtlvHKlR62ojqDLRu5S96T8nzlKTsdO1hHHCQw6BAgH ot799g/qEVXj1WTOsrPMQubWoGklQfxMr2cjUHRdXaGI9PkpyuOG6v0sJPXRCCX0IPl3 Ge2g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="NH5ah1M/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTP id 6a1803df08f44-6e8976df9fesi116657506d6.374.2025.03.04.17.30.34 for ; Tue, 04 Mar 2025 17:30:34 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="NH5ah1M/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdV2-0003on-Fp; Tue, 04 Mar 2025 20:24:41 -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 1tpdU9-0001iQ-Vp for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:46 -0500 Received: from mail-wr1-x435.google.com ([2a00:1450:4864:20::435]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdU7-000785-NZ for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:45 -0500 Received: by mail-wr1-x435.google.com with SMTP id ffacd0b85a97d-38f403edb4eso3753946f8f.3 for ; Tue, 04 Mar 2025 17:23:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137822; x=1741742622; 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=flZzPJvyMRfjjg+eGkch3F0VvTnr5vwIJOoCHfTrgLI=; b=NH5ah1M/6PA1SP+nhSAtD862QsGto/IoMrABa+++YLrHX94buabEEHlzZbaYfV7/Rm VAjDteZNC8Q5q7d8rIxm+bPD0YYYejjWXWFZYn8l3/GPntSQi0q+oxQ0915dydweRqOP ZPsNnvZ7ak7RBfPNFy1R22pwq2MzEBmfSX7Exk2razPwBmXIUJhBpgtj3k0aUE6Nb70q 5YhsDB/c9A9mRjvMyMF5eDx9j7ZTMDPe7QT9yVcVlf1ANzayR16kIjqbZPXstQ7LiR9U d52GYhaz/SLSD60IoDXPwudNrunGK+O5O83X4J4IaDXAohX+xVG4HAvwu7+M0Vyy9f2e vBSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137822; x=1741742622; 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=flZzPJvyMRfjjg+eGkch3F0VvTnr5vwIJOoCHfTrgLI=; b=OW8NXAOx9EGqyKUsDyAzyaR+7Euf4y4gSjXc+lURnb4SLvCrl3xIxSK5bC7VhU9nyG AJunYPkYJ5nSNX3FJTzTXECnqCyRzgmfgbzugw+VZSNJ9aEAyEqBSgRTB3GS63sF0C4U 8QI/+LYmg5Rg5g+Wu0mfHQZb2vA65SJEXa1Tl1HDBvy845qUXnfzwwOx+ro3neu9FUfl l6GGDH9MbvofChtEwbElAi9WzuvSD/f6RWOG2GhgSwaUW+0URz3Out53tGfxuzE6WdWv hPec6IEs4MMiZkp9tjSa/19uNaE+eIbgABBQbJr2CLPoIBskwer6YG81l5yiivTlL/1Z BDbQ== X-Gm-Message-State: AOJu0Yz2CWBM4xWl33lNqno3xBWWZIgHWWMrjr4ySteAmdLxVQ2IrMRc N8z2lHJyB9nVVWW7I5UQj5Hn51bSv9+GP3TB3iBlVcRwCEeGj1jVi12bSrrlE+UsbLAKr8TE5ci epD0= X-Gm-Gg: ASbGncvK+1tIhLUv/9wCyuMBTg9auHNq92VQ0GYhYkywv4KDedUZtog5JRPhUfvkdU/ GYJLFgQA5Q12OlOd7Yb98ue7IHGsTdj6AzuZtjqZNBDnL2NA09jOKmkBGUQUuBIm6Vmi2HOpc9y Q06KewGU2n3DHvWak7q8gsm/gNuvZlX/68Bb6QuWzzPZHQBGhkr74HaygDJMrrPKrP4WjhT89xq VGfn42qRWmW071o/Zs7Nk0aKEr64JSr8II23Uu4aT7Ma+HUPjVmFVJ7qf4HTZUmRSFYOh0QO83r XuFIg4DdpsmcIM8gzm7gaOZLJvNEYd25O2N6rUOd0aDG2Bg9xTaluZ0nHyxx1wf38C44bjDGsdw tC6qWqm0IbatLYeoC8UU= X-Received: by 2002:a05:6000:2ac:b0:38d:e48b:1766 with SMTP id ffacd0b85a97d-3911f726200mr554415f8f.6.1741137821811; Tue, 04 Mar 2025 17:23:41 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd426cd51sm2049175e9.6.2025.03.04.17.23.41 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:41 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , =?utf-8?q?A?= =?utf-8?q?lex_Benn=C3=A9e?= , Luc Michel , Richard Henderson Subject: [PULL 21/41] hw/char/pl011: Improve RX flow tracing events Date: Wed, 5 Mar 2025 02:21:36 +0100 Message-ID: <20250305012157.96463-22-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::435; envelope-from=philmd@linaro.org; helo=mail-wr1-x435.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Log FIFO use (availability and depth). Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Alex Bennée Reviewed-by: Luc Michel Reviewed-by: Richard Henderson Message-Id: <20250220092903.3726-4-philmd@linaro.org> --- hw/char/pl011.c | 10 ++++++---- hw/char/trace-events | 7 ++++--- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/hw/char/pl011.c b/hw/char/pl011.c index 5bb83c54216..f7485e7c541 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -185,7 +185,7 @@ static void pl011_fifo_rx_put(void *opaque, uint32_t value) s->read_fifo[slot] = value; s->read_count++; s->flags &= ~PL011_FLAG_RXFE; - trace_pl011_fifo_rx_put(value, s->read_count); + trace_pl011_fifo_rx_put(value, s->read_count, pipe_depth); if (s->read_count == pipe_depth) { trace_pl011_fifo_rx_full(); s->flags |= PL011_FLAG_RXFF; @@ -248,12 +248,13 @@ static void pl011_write_txdata(PL011State *s, uint8_t data) static uint32_t pl011_read_rxdata(PL011State *s) { uint32_t c; + unsigned fifo_depth = pl011_get_fifo_depth(s); s->flags &= ~PL011_FLAG_RXFF; c = s->read_fifo[s->read_pos]; if (s->read_count > 0) { s->read_count--; - s->read_pos = (s->read_pos + 1) & (pl011_get_fifo_depth(s) - 1); + s->read_pos = (s->read_pos + 1) & (fifo_depth - 1); } if (s->read_count == 0) { s->flags |= PL011_FLAG_RXFE; @@ -261,7 +262,7 @@ static uint32_t pl011_read_rxdata(PL011State *s) if (s->read_count == s->read_trigger - 1) { s->int_level &= ~INT_RX; } - trace_pl011_read_fifo(s->read_count); + trace_pl011_read_fifo(s->read_count, fifo_depth); s->rsr = c >> 8; pl011_update(s); qemu_chr_fe_accept_input(&s->chr); @@ -498,12 +499,13 @@ static int pl011_can_receive(void *opaque) qemu_log_mask(LOG_GUEST_ERROR, "PL011 receiving data on disabled RX UART\n"); } - trace_pl011_can_receive(s->lcr, s->read_count, r); + trace_pl011_can_receive(s->lcr, s->read_count, fifo_depth, fifo_available); return r; } static void pl011_receive(void *opaque, const uint8_t *buf, int size) { + trace_pl011_receive(size); /* * In loopback mode, the RX input signal is internally disconnected * from the entire receiving logics; thus, all inputs are ignored, diff --git a/hw/char/trace-events b/hw/char/trace-events index b2e3d25ae34..05a33036c12 100644 --- a/hw/char/trace-events +++ b/hw/char/trace-events @@ -60,12 +60,13 @@ imx_serial_put_data(const char *chrname, uint32_t value) "%s: 0x%" PRIx32 # pl011.c pl011_irq_state(int level) "irq state %d" pl011_read(uint32_t addr, uint32_t value, const char *regname) "addr 0x%03x value 0x%08x reg %s" -pl011_read_fifo(int read_count) "FIFO read, read_count now %d" +pl011_read_fifo(unsigned rx_fifo_used, size_t rx_fifo_depth) "RX FIFO read, used %u/%zu" pl011_write(uint32_t addr, uint32_t value, const char *regname) "addr 0x%03x value 0x%08x reg %s" -pl011_can_receive(uint32_t lcr, int read_count, int r) "LCR 0x%08x read_count %d returning %d" -pl011_fifo_rx_put(uint32_t c, int read_count) "new char 0x%02x read_count now %d" +pl011_can_receive(uint32_t lcr, unsigned rx_fifo_used, size_t rx_fifo_depth, unsigned rx_fifo_available) "LCR 0x%02x, RX FIFO used %u/%zu, can_receive %u chars" +pl011_fifo_rx_put(uint32_t c, unsigned read_count, size_t rx_fifo_depth) "RX FIFO push char [0x%02x] %d/%zu depth used" pl011_fifo_rx_full(void) "RX FIFO now full, RXFF set" pl011_baudrate_change(unsigned int baudrate, uint64_t clock, uint32_t ibrd, uint32_t fbrd) "new baudrate %u (clk: %" PRIu64 "hz, ibrd: %" PRIu32 ", fbrd: %" PRIu32 ")" +pl011_receive(int size) "recv %d chars" # cmsdk-apb-uart.c cmsdk_apb_uart_read(uint64_t offset, uint64_t data, unsigned size) "CMSDK APB UART read: offset 0x%" PRIx64 " data 0x%" PRIx64 " size %u" From patchwork Wed Mar 5 01:21:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870530 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552317wrg; Tue, 4 Mar 2025 17:30:10 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWoHhXMXO04Rz7X1uuymGwBnX/OMEwfYsB6LRbNASp2Z3LHJfYTYt02zD/5AVmtNgasy6LacA==@linaro.org X-Google-Smtp-Source: AGHT+IGoIFR7QEguone35WPVxZ2WEjY/UZEiwdvz3RBHAh46Frvb+ZU0dcgz6KbKaiGSTcBS8TOr X-Received: by 2002:a05:622a:1a1e:b0:475:5f2:d445 with SMTP id d75a77b69052e-4750b442ef5mr16855451cf.19.1741138210564; Tue, 04 Mar 2025 17:30:10 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138210; cv=none; d=google.com; s=arc-20240605; b=LVpKSTdhHI6PyrS1x1iaAiYcHh2MxiwK2GK7upQnbysryOmEkk/XTCCV7pYfwlBh6d cgnHRdyXraznkRr8QrE5WxMxsa1gaWWpHrWwk7Nca2tAYTDj1WTWNXj86WpKkrWD1T69 xry1hnE5NFGpAkoVDwwpiKD8Cneu9OtskEIyfcgr9pg2gCf38dL+CvkBYjkV8bXWZVu0 Lx8OoVKLh5xKbvMAsRUvLOP4agyFlMSoy0ZzLwB/Zh3gaBeg3QfLGTKmi4mCoIziryS3 NGVX5vK4Sga2igjWZ5uf0fJmdx97foUwnRGfcxhPjwCn4ZKxBH2saHfWHXGdtjIy0fvd yi/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=mcgROWvnD1tl+yrdTbb0OGaatnzB/uZ+RCngGMPfVPI=; fh=4B/lz1bDsVvTXRRcqfLvKtb3LWlzk/TG8Cb1cskY8xc=; b=R8UvQt81IMk9GRYO0N87IA4x8X53MpCuUOlj30nZTXPaupGTuvmaIacEOHNN6eISzu /FiOXW4sMQzDAWFUCoXv92YwZvY8SRzX3h79BaLeXW2LvEbkYdmLyRwsiuWaawvjiV8p wdx1pBWOcDPaR2rX0e5CtjVAjKp7j+5j7puSB6S7pCIPezdNHQWGbtKwxUFwn2HuvZvH 3FpxdsUK3OC7gtA35IauU741uqYpF3A7mjDf1MnMK0eW2ZCMNcFMT7+pdINn/tZeh4rX cDbU+gZT2qnG/i+FifakzN4FR+n6HneGsfeIY1xPUYYgQZY234/kIZQEGXTT7e7gPFC0 Ck8Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kwNqBOVo; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4750396d4fesi16982391cf.72.2025.03.04.17.30.10 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:30:10 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=kwNqBOVo; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWl-00062x-9N; Tue, 04 Mar 2025 20:26: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 1tpdUE-0001v4-5l for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:50 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUC-00078k-9C for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:49 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-43bc638686eso1801685e9.1 for ; Tue, 04 Mar 2025 17:23:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137826; x=1741742626; 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=mcgROWvnD1tl+yrdTbb0OGaatnzB/uZ+RCngGMPfVPI=; b=kwNqBOVoIKq4isWbIsuNMEaGOeiprGc7QpBlix9Blo1RglkvVlT8tJxFlNgWrxipoH N9WiiWjcKvad5WSeBQ/pY/R+m9wiCzCWfM1w/i8UB7E9yjcs8VRWUrXo7hnUR4I9qJFR PGTsoTOxuNrDCvQZgq/zZeaPwECVi6Ztb/KWQWYoYW3iZJIKCVQkHkbPWyNdkDp6lOO3 8xEhjn5wbY82JvUB8YaGU3SVGKb00Q4AOvPfzbFqEYbaTitJMEYyp7cUbqt9BqofhO+I gJUC6Q6cRMpAI6j2X1EuL8dShzJPBP6Lp8JMk7d1s/JMSYjFsYhElbR0Vl3QIBkjitPC hiJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137826; x=1741742626; 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=mcgROWvnD1tl+yrdTbb0OGaatnzB/uZ+RCngGMPfVPI=; b=qkhsM4NrrzgtOOjT1j5mG+hNWB6imYV45hWyiYzVyqh5xUv2PYAHFA8V70A58bUOf9 vv4ciVIXf1QTelH1MBnsJ8MQWA7gGaAp6cjIXSg3WzZYzVhQak7lABlsJVXRGKytOkqf VVch3FBFFTMX0xAzb+1HEL2Ya1TTLpwSwR99HzEdAx7pMkVfQIaBONIPvEHwhliHZjbh BKFGaeHCLgrrlx1HPHI2LTk3byF3ZbcGZW/OT7KCHOOo99c1w14/FYOI9fsNYvz0+xWQ U6EUBfLi5o08RS9PlngEx5vqjoGwl6wAKU9eraZlyG74gRoiva78rDu/lXpeKcSPu556 +r/A== X-Gm-Message-State: AOJu0Yy5ggElejZK+YczNHunPOI6x00+raVNWIVhWExWC1HY7xbH4jjJ gqKLw4WVW9O7td7KBVTzmSFwoLYWhNYVlWgbIv3ojCLdnoNOCOWzMGHbDumA3MPCFN6SA97SlCJ hT7k= X-Gm-Gg: ASbGncsaLnh2g9GV6KN2yrNp/QWlxD6qa7/vR/wilqNUVoV/NxEOwNz+/N2DxgwDOrz FiGF0FFjnIww5ohejMaJoW5gWAXh/tmXRvEps7JlJwOHELb7MhJLy7Wgt26VJOEMtGdLzGeJGrU GCyLUMMGRG1tnLHDR92r/kjw4KLy958JJ3siwHrkxZ8A3LAiTFGSB8yCoe3GyK4Udd4AIBLmyNf /t8jv4DWjH92HAeox43HfXggBYCWN80bxTIK3QAG1K81fef8cqmomgZsNvOQWvicR9uv1/wtGB1 RhUY4BsxdsSthvaxw2qX0NHjzwTyOf6vkfGDEXhKyqb1xjHXIaWQZsiUhIV9DGSwh30Zv88o74L uZgJMLn5JucFoMx56Y7E= X-Received: by 2002:adf:e183:0:b0:391:22e2:ccd2 with SMTP id ffacd0b85a97d-39122e2d080mr64186f8f.3.1741137826487; Tue, 04 Mar 2025 17:23:46 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd426cbc2sm2045285e9.4.2025.03.04.17.23.45 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:46 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Peter Maydell , Luc Michel , Richard Henderson Subject: [PULL 22/41] hw/char/pl011: Really use RX FIFO depth Date: Wed, 5 Mar 2025 02:21:37 +0100 Message-ID: <20250305012157.96463-23-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org While we model a 16-elements RX FIFO since the PL011 model was introduced in commit cdbdb648b7c ("ARM Versatile Platform Baseboard emulation"), we only read 1 char at a time! Have the IOCanReadHandler handler return how many elements are available, and use that in the IOReadHandler handler. Example of FIFO better used by enabling the pl011 tracing events and running the tests/functional/test_aarch64_virt.py tests: pl011_can_receive LCR 0x70, RX FIFO used 0/16, can_receive 16 chars pl011_receive recv 5 chars pl011_fifo_rx_put RX FIFO push char [0x72] 1/16 depth used pl011_irq_state irq state 1 pl011_fifo_rx_put RX FIFO push char [0x6f] 2/16 depth used pl011_fifo_rx_put RX FIFO push char [0x6f] 3/16 depth used pl011_fifo_rx_put RX FIFO push char [0x74] 4/16 depth used pl011_fifo_rx_put RX FIFO push char [0x0d] 5/16 depth used pl011_can_receive LCR 0x70, RX FIFO used 5/16, can_receive 11 chars pl011_can_receive LCR 0x70, RX FIFO used 5/16, can_receive 11 chars pl011_write addr 0x038 value 0x00000050 reg IMSC pl011_irq_state irq state 1 pl011_can_receive LCR 0x70, RX FIFO used 5/16, can_receive 11 chars pl011_read addr 0x03c value 0x00000030 reg RIS pl011_write addr 0x044 value 0x00000000 reg ICR pl011_irq_state irq state 1 pl011_read addr 0x018 value 0x00000080 reg FR pl011_read_fifo RX FIFO read, used 4/16 pl011_irq_state irq state 1 pl011_read addr 0x000 value 0x00000072 reg DR pl011_can_receive LCR 0x70, RX FIFO used 4/16, can_receive 12 chars pl011_read addr 0x018 value 0x00000080 reg FR pl011_read_fifo RX FIFO read, used 3/16 pl011_irq_state irq state 1 pl011_read addr 0x000 value 0x0000006f reg DR pl011_can_receive LCR 0x70, RX FIFO used 3/16, can_receive 13 chars pl011_read addr 0x018 value 0x00000080 reg FR pl011_read_fifo RX FIFO read, used 2/16 pl011_irq_state irq state 1 pl011_read addr 0x000 value 0x0000006f reg DR pl011_can_receive LCR 0x70, RX FIFO used 2/16, can_receive 14 chars pl011_read addr 0x018 value 0x00000080 reg FR pl011_read_fifo RX FIFO read, used 1/16 pl011_irq_state irq state 1 pl011_read addr 0x000 value 0x00000074 reg DR pl011_can_receive LCR 0x70, RX FIFO used 1/16, can_receive 15 chars pl011_read addr 0x018 value 0x00000080 reg FR pl011_read_fifo RX FIFO read, used 0/16 pl011_irq_state irq state 0 pl011_read addr 0x000 value 0x0000000d reg DR pl011_can_receive LCR 0x70, RX FIFO used 0/16, can_receive 16 chars pl011_read addr 0x018 value 0x00000090 reg FR pl011_read addr 0x03c value 0x00000020 reg RIS pl011_write addr 0x038 value 0x00000050 reg IMSC pl011_irq_state irq state 0 pl011_can_receive LCR 0x70, RX FIFO used 0/16, can_receive 16 chars pl011_can_receive LCR 0x70, RX FIFO used 0/16, can_receive 16 chars pl011_read addr 0x018 value 0x00000090 reg FR pl011_write addr 0x000 value 0x00000072 reg DR Inspired-by: Peter Maydell Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Luc Michel Reviewed-by: Richard Henderson Message-Id: <20250220092903.3726-5-philmd@linaro.org> --- hw/char/pl011.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/hw/char/pl011.c b/hw/char/pl011.c index f7485e7c541..23a9db8c57c 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -489,7 +489,6 @@ static int pl011_can_receive(void *opaque) PL011State *s = (PL011State *)opaque; unsigned fifo_depth = pl011_get_fifo_depth(s); unsigned fifo_available = fifo_depth - s->read_count; - int r = fifo_available ? 1 : 0; if (!(s->cr & CR_UARTEN)) { qemu_log_mask(LOG_GUEST_ERROR, @@ -500,7 +499,8 @@ static int pl011_can_receive(void *opaque) "PL011 receiving data on disabled RX UART\n"); } trace_pl011_can_receive(s->lcr, s->read_count, fifo_depth, fifo_available); - return r; + + return fifo_available; } static void pl011_receive(void *opaque, const uint8_t *buf, int size) @@ -515,7 +515,9 @@ static void pl011_receive(void *opaque, const uint8_t *buf, int size) return; } - pl011_fifo_rx_put(opaque, *buf); + for (int i = 0; i < size; i++) { + pl011_fifo_rx_put(opaque, buf[i]); + } } static void pl011_event(void *opaque, QEMUChrEvent event) From patchwork Wed Mar 5 01:21:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870532 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552526wrg; Tue, 4 Mar 2025 17:30:46 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCV40vGiHsAkLO9+xb5DBB8PL4mr48nEBpUzHEpJkATavCCwJDVbRbf/XWH/3dajP16h0gu4sA==@linaro.org X-Google-Smtp-Source: AGHT+IHvsgNYEFV1RkjaY0OAFfUwQ1JsJFj+w8gKbAzur/jNi41L2912PFCAuAoghLhYjyDTu5Rb X-Received: by 2002:ad4:5f87:0:b0:6e6:682b:804d with SMTP id 6a1803df08f44-6e8e6cffda0mr21978636d6.25.1741138246658; Tue, 04 Mar 2025 17:30:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138246; cv=none; d=google.com; s=arc-20240605; b=T+WypUwil05Gpsa03AQ8V8yUEN9AAijbQ2fy+eSsmf5plDdCwcdbb+iObJXCJ+MiVr tE5Pqu9qHZSiw24YHFSKiNyNDNTiIcvSYXMH7BAz1H0t7ZHb3B0UUK1+PEjsB0fI2htC CwAuERV/kIhgef4JBGHVC6pveNVQfQUgEhRwQ45rnmSS/J+aKrdjXJ9E/S0IuFgCYwMt 8QgjGS7blEsF68Kw87898LOmZaq8ASs8GQU1/wicN+lnboqH4VJdkS6gZF3lPqu7is9Q WH3IiiHN6nRiLUxY6ii33q+OQPZCpbST+oekoc8xxTQsYvoZNzJJwpxTKQ/u3vl9/3ab otww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=ZnAwaBdhJN/kNZhyvNDoVKLIcUFbc7BOsa1ZC7/+qgE=; fh=cr4X+ZspQYCefajZ6Az3uv/8/jRF+87//zpKtwMha9U=; b=kFIu8dXPaj2NUNNzFmU3UGC/qQ3C5WJGpIBsNNoJqDBaXfcpvBXm60kWRnwmbInpNI UUXXYc1x7UCMeSMcXl+OcavzUlN2hwYctChBw0TPB6VhlY8aG/yEHG20rBNDvQ3Uf8sx p0Lb7A28Qw7+R7QcKaJ5VUtmF3a0oUBuz7r3vPMQZyU04ZoyEmh1gie4dbfCvtFNK3uX WPLQP/adkwxoOFIWTyqcktvwarWqsASHOvRIHEgtwW7dGjLtlYk0BVrJcYCvstm9Ux13 d8oxQy5ttjhFqReLcQhhqho+lCMhBJ9S/SjU4UgqN8yBPUf3aVcbYUDgR8w09yrvw+fn YwiA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ckD8q9cC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e8cb6c0c23si52787406d6.441.2025.03.04.17.30.46 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:30:46 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ckD8q9cC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdVb-0004QT-En; Tue, 04 Mar 2025 20:25:17 -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 1tpdUI-00021w-8t for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:55 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUG-00079J-M7 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:54 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-43bcad638efso10144815e9.2 for ; Tue, 04 Mar 2025 17:23:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137831; x=1741742631; 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=ZnAwaBdhJN/kNZhyvNDoVKLIcUFbc7BOsa1ZC7/+qgE=; b=ckD8q9cCjeg07PFn5jvflfQRaryZPLVyiyMTnrDScblq4oZfVB7/qjFD54p+fU08Oq 2FtE90CgjjcNcS3KK05g8kqFV0m3pj5Pth/8iU9exYyZu51TMgOS8oIoy1tyMp2mwKYH Vh/CzpeGOabTwusaruXBzUvEQGqayGJ/RMju39w/HXdDNwjxqaO9z3GCYUsxFhgAwH/B Arvr3v3/3vDReg5mOzKfYit+3plxYzJiS9Y3is84moqWyGNuET8+CBM2oTkEXIxZGbez yffAFcyP91Yxs3jazH1c9gQPalEP1uV630ORxFxQp7aqSRb7jqrTL1oHrYyZ926Rmz6k sVLA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137831; x=1741742631; 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=ZnAwaBdhJN/kNZhyvNDoVKLIcUFbc7BOsa1ZC7/+qgE=; b=aXMwooP8B0sIt51phEjp8bnZnwsZpdHMLzbT+XaBmA9tkzHy0APVqlMwWW9U6PLXlt 8daVNz7BVz7NaCLqTvW0QEDBvrQCNp3A9RAHTVUi91UpHHfCYNOa6Qsdbr/oi+ep64lo ubGa+EJXO3D+fiaxMHS/ku5RFICvr+eisWYpW7pzdUoS0nSIwVcPiUkHlPzei2CtKNKD 9y09J0FMLVxDXHgytEitlPqnyrHubQ6pUIneoFPR3yXGwilxA50E/bW84sShjXsMVZ+O Fn709MBRvzQoNOXuI3jBHexGGyTMBipyeWsr/SnqJk2sis3XS7/aMCOTUonaJG6E3do0 EkvQ== X-Gm-Message-State: AOJu0YzqhoMwrdd61TksbE6cl5nu2+WlhzILdHMEtWGGEoXp2AuVz0SJ I3Gt5dpDUYnxUIbSG9Qyjm2gYpQRsV73W0j0i4JwTYKhGhXrirlJ4/h4yCdck2RSbKGJPD9QC69 RioM= X-Gm-Gg: ASbGncvSp2GAX3XleuOzwew8sEfdjrNKQgxFLppKtySYu6DnKXCBfpbKUDnScdbmaif MqfcAaM5PaQIrBJE0SYPIY+7m86oJYRmDAEYBAQXR9F160+ORkLaE5ejCfMkMxQF+S04Lu19QSr 0DxswN1tFaMvtVGx5S6sDc+nUaEuARpJorwqFw/F+bjFdZBr7rkulMwMCsJLT2tQrORyWOuzp44 2R2nXdb7KIsiZLffFvzZiMl51tLyy3oRmOqj+ok2a3qn83XgwLbeoREWb2EWbTpKifdchcA9Iud +gTNjC8Hh9LO1zr8q/H+zkOsbeYyM2ut3YhidFPJbWhPBQy4Xt1sIm8T2RPaSTpsEZRnuZqkLdu QZ+5vyEIlwM0ZkotHowk= X-Received: by 2002:a05:6000:156d:b0:391:10c5:d1a9 with SMTP id ffacd0b85a97d-3911f76e3a4mr736504f8f.31.1741137830987; Tue, 04 Mar 2025 17:23:50 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4795962sm19846140f8f.13.2025.03.04.17.23.50 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:50 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Luc Michel , Richard Henderson Subject: [PULL 23/41] hw/char/bcm2835_aux: Really use RX FIFO depth Date: Wed, 5 Mar 2025 02:21:38 +0100 Message-ID: <20250305012157.96463-24-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org While we model a 8-elements RX FIFO since the BCM2835 AUX model was introduced in commit 97398d900ca ("bcm2835_aux: add emulation of BCM2835 AUX block") we only read 1 char at a time! Have the IOCanReadHandler handler return how many elements are available, and use that in the IOReadHandler handler. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Luc Michel Reviewed-by: Richard Henderson Message-Id: <20250220092903.3726-6-philmd@linaro.org> --- hw/char/bcm2835_aux.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c index 73ad5934067..c6e7eccf7dd 100644 --- a/hw/char/bcm2835_aux.c +++ b/hw/char/bcm2835_aux.c @@ -221,7 +221,7 @@ static int bcm2835_aux_can_receive(void *opaque) { BCM2835AuxState *s = opaque; - return s->read_count < BCM2835_AUX_RX_FIFO_LEN; + return BCM2835_AUX_RX_FIFO_LEN - s->read_count; } static void bcm2835_aux_put_fifo(void *opaque, uint8_t value) @@ -243,7 +243,9 @@ static void bcm2835_aux_put_fifo(void *opaque, uint8_t value) static void bcm2835_aux_receive(void *opaque, const uint8_t *buf, int size) { - bcm2835_aux_put_fifo(opaque, *buf); + for (int i = 0; i < size; i++) { + bcm2835_aux_put_fifo(opaque, buf[i]); + } } static const MemoryRegionOps bcm2835_aux_ops = { From patchwork Wed Mar 5 01:21:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870537 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp553195wrg; Tue, 4 Mar 2025 17:32:45 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUGuIG74KBBdqgy04l4nLULp5fImDDPeZ9+c+KQwXl5YMapmpKOL6PR5DcQr63Smj8OVMXUkQ==@linaro.org X-Google-Smtp-Source: AGHT+IEA1hdxklgiQBFF8XGrsdaAR/EcaKmj1xR+Ozo+wrgLfnPwRUnXVLSU5F7+hrQjzBCfZ9lq X-Received: by 2002:a05:6214:cca:b0:6e1:700e:488a with SMTP id 6a1803df08f44-6e8e6d0d673mr20135796d6.22.1741138365203; Tue, 04 Mar 2025 17:32:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138365; cv=none; d=google.com; s=arc-20240605; b=eP1ZmtcnCN6hK5GB/dTV/BFZJ2LgwX/D+cpprotc/lydWoaW0xi7oD6/lLcfju+V2N Fkmsppl+d9MuQRYVk+kpF9YMLnqksZDYPUS8O9ghm8Dfz9vw57UPvYI2M5RoBqIVdNwS oho1RqA2zLd2QowTDwgsJQYPQguv6Zvk0OEt/H6vJe60E0WyVEbMXJ6VbSy6QXR9rcHn WLT3A/RLyJVXPoAXMcAy5KNOzdVTqKdWMkRbF5/QKlXFAcEV8/aC5RyMRMS0MWUbOfPY 3odT/300yirkdXFc6NNe2dqMCw42oXmk3Trkog89xHOhSauvK1YD4oTXFB4WSc8PuFeb c4dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=qd7m5wMCz+XZxcgvBF3/5ywn7cJ5I9SW91UZjpHUbeA=; fh=sFndbgxoaFpywggGwA+Qk8Y5y6dNOWx2Q2bjyCOL1Gg=; b=bNp+29BNkhOOufVi8j+cZdOl+CLTSyss7BrRnXfXwEOyOlG/EtjvVhlrxqNNb7zc31 wUTt74DiAi8JEenZA8kgKiD4zslLQ0U8oUmzQ6IxT6S2hW/D5dB34JCjhQ8HAaD/kyRh ZJv0I6Cqeah2Jsr73kw+p/yHXAhhktJiyMho2ZlLaTmaIYljNZlCquXV6lrkcqxwjCrg t/7XNRWNHL0Ojcwb52oxo34IMqmBSdkbB+vRmo0nitzSPWwYK/ONhPuqq/SgJhwlCRTx aVSE3RlomcU/fGiIGt1LqV3DkUaAgpH+Qg7KPgRjQb1fNGhUvc13mdgPVvlXmifRHeXj O2rg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cYsEZF4D; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e8a31d761bsi96846866d6.144.2025.03.04.17.32.45 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:32:45 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=cYsEZF4D; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWr-0006VQ-8M; Tue, 04 Mar 2025 20:26:33 -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 1tpdUN-0002Di-3D for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:00 -0500 Received: from mail-wr1-x429.google.com ([2a00:1450:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUL-0007AM-I2 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:23:58 -0500 Received: by mail-wr1-x429.google.com with SMTP id ffacd0b85a97d-390ddf037ffso3360399f8f.2 for ; Tue, 04 Mar 2025 17:23:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137835; x=1741742635; 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=qd7m5wMCz+XZxcgvBF3/5ywn7cJ5I9SW91UZjpHUbeA=; b=cYsEZF4DPwJbbCt2fcEC3RW4ULWbSjKrmFSsyxUxqf3vY1nCYW87qh0oHAI9zVhh5/ 6pl70pzVP1Opom2qJKsNV5QzuF++Mq1Inl+/nim0nBhV7q4+71MzBpr3iiw8m++giGO1 qxnEzfCdR5vlq7KHnYVV+5LRd1DWh5BfIyKgJB53AA19mfvqAYwvBi4wpqEjn1NTwYOR v1Un3+6KvPG9YtVPcIW4C8QltQvzFk5MsQwUOXsQGQ8ScxJBhqZd43dHUiFHDDg2Q81C KS1gCmkBdfFbSMk2a4LhiUq7QLLx8sRGqOlCT38y3YynIvCPvONf5F8K0gXuzNoFu9rY rAcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137835; x=1741742635; 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=qd7m5wMCz+XZxcgvBF3/5ywn7cJ5I9SW91UZjpHUbeA=; b=Awo44fFGfeZqqPNZXzGOppZGOv9Ug5FF8NE5H24lK5kU1N9LyUbcjH7McRYrQSd+mB 1h4lfHWLWcH8oHswepdAG1StsLSJyEIgqyhoqtS/r9MrBLEo44IPaDQnNUMvUzToHq2A KvlISm+hdIJc64D5CZX1jtv+fRCO8JjJtS3yxgmgwFpCVGdaQYiVc0ZdhlZmSAny7FHh 1bYKhKtBN25gqCa6ighF30q7z0YcfwE7P74UePPJGljGQP8L+JegdclRrrPyd54aNc5b /U2/0Tk3xxoEpdA5LvAQqvfNCSTsd2irKRseopgiNVRxqhSP5F6lnNDe6Q9ccOAQiJuO KA9g== X-Gm-Message-State: AOJu0Yx5HYI4NwhSiWy1IBNC+GMntEJ0ttMZSMURE0/WmShy8bVbQGA6 UyBGJkQ4XlEaUrDBEEPXJ5k5lCj6V6NEUC4s39LonL6Xy0StLnK+OqB8TC79oL0NnEelAO6FFAu nzzc= X-Gm-Gg: ASbGnctVnumn7uZWEozYHEe2A3uH+FH4Xub98GUrtX0WoCIpOHGPm+2YRWwL8Rk+a5R J+m7HyNvzAYQcKktbGJ0YfATt/UDI8GMIcSzEJ3tqG9xw/78xzVv6u0Hbc62vctoAdBPjpoQ3C8 OHqzmH61P54k8kRHe0/EIR5T26FtQq6M1ZydnvdGESUBxHHnn0bVMK4dXmtcQQ3JW+w5wY1Yw7m TVBCW59YXivH1Oa2SyVjP+dam4PxfxSnsN++RscEBE6oW3Bh1eXQoCXoB783WycRrZbFEOkNN2r Y27trYw9wCdVN2dwE7gjL5Z00nnEVKz6ahSmLngeFvJjlco40NpoSg+LX/fPWQIu+DXvCr0M+wt 7rTW/uYFSirzj/CJPWCg= X-Received: by 2002:a05:6000:381:b0:38f:2f0e:980c with SMTP id ffacd0b85a97d-3911f7d2fc9mr585329f8f.47.1741137835466; Tue, 04 Mar 2025 17:23:55 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4844c0dsm18880330f8f.80.2025.03.04.17.23.54 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:23:55 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Luc Michel , Richard Henderson , Bernhard Beschow Subject: [PULL 24/41] hw/char/imx_serial: Really use RX FIFO depth Date: Wed, 5 Mar 2025 02:21:39 +0100 Message-ID: <20250305012157.96463-25-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::429; envelope-from=philmd@linaro.org; helo=mail-wr1-x429.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org While we model a 32-elements RX FIFO since the IMX serial model was introduced in commit 988f2442971 ("hw/char/imx_serial: Implement receive FIFO and ageing timer") we only read 1 char at a time! Have the IOCanReadHandler handler return how many elements are available, and use that in the IOReadHandler handler. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Luc Michel Reviewed-by: Richard Henderson Tested-by: Bernhard Beschow Message-Id: <20250220092903.3726-7-philmd@linaro.org> --- hw/char/imx_serial.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c index 38b4865157e..6f14f8403a9 100644 --- a/hw/char/imx_serial.c +++ b/hw/char/imx_serial.c @@ -386,7 +386,8 @@ static void imx_serial_write(void *opaque, hwaddr offset, static int imx_can_receive(void *opaque) { IMXSerialState *s = (IMXSerialState *)opaque; - return s->ucr2 & UCR2_RXEN && fifo32_num_used(&s->rx_fifo) < FIFO_SIZE; + + return s->ucr2 & UCR2_RXEN ? fifo32_num_free(&s->rx_fifo) : 0; } static void imx_put_data(void *opaque, uint32_t value) @@ -417,7 +418,10 @@ static void imx_receive(void *opaque, const uint8_t *buf, int size) IMXSerialState *s = (IMXSerialState *)opaque; s->usr2 |= USR2_WAKE; - imx_put_data(opaque, *buf); + + for (int i = 0; i < size; i++) { + imx_put_data(opaque, buf[i]); + } } static void imx_event(void *opaque, QEMUChrEvent event) From patchwork Wed Mar 5 01:21:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870517 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551328wrg; Tue, 4 Mar 2025 17:26:30 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXhzvUx080keuU94gZ8Hc48aT3c5twLBFttQ/GpEvMG6bZ06ZOIAfZLMSaqF8rspKHNIManhw==@linaro.org X-Google-Smtp-Source: AGHT+IFxjayJJNZ4tpm6HfMr7tLFZSCay92t1DlQYQRMkhHvTr0Weii8wjWDMQodJBxuC1R4mlLY X-Received: by 2002:ac8:5782:0:b0:474:eff7:a478 with SMTP id d75a77b69052e-4750b4e7c78mr13218621cf.46.1741137989967; Tue, 04 Mar 2025 17:26:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137989; cv=none; d=google.com; s=arc-20240605; b=goA6Cl1gZfgUY7oHQJeDLKHP9Hg3X5MLdvEaDII7uVMM05hdAZGVEzhIN/bEb0ogXc Fd3Ewwra9fYQESW4lHB88B7ftBucrJKhhgrxJSyrHmsqZdA9bjz2k2EHEzXhVjHb6F14 rN31hA85BEL8LJZ/UO2AhE2Ef9US8Adw5gkheRawRC/ELKxdYLcSPCQApYlcdAN2Wxy5 BfuEnFRN7qzjxikXDYlX/pp/6iKiPFV4UtOPUFkhASCc/Y8C229wb8/LqGT2ZPSnINVM vWlkuR1Y4jOv/5ifsrjNqNQbeU2LWv+AudNt8bHxymsE3gYXgUJbNKAsjS2IRCl72k/x JO2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=GWCkeTUZ1Bwoa+5rt2QUs52v09pE2by6BJ43I/9OHfA=; fh=D37mpbcnIBXTxOJNKot+/T4Rc2cIvYe1OUtzfucLEDk=; b=XOStz4LyktzEttBBdDURvLirEdnq9mtN4+Dorp3yUTMfg3+2A7gtp9GFB0yShPPv6V 7FtCXtL5vK25fQMlWngx9ZNccpBr2iZ2hwQ49v7p6VzEG9UKWpW3B7VLAVeU71DvCW1o bzSjQalHoHRUWiJUt//NcF5U5VGrWJgdxQ48e0U+Y6Dsi4apsOainz4aR6+GZbGPpEg3 Fxmty4AmMUr9qHwjbpKJIBveX5u4ELqILWg7vgh/VcFhcAj+wzYsiI2kC9pb9r4ze0sm lVpvTxP81gV5PtWMWM6Fl9vybK+mNXspTKfZjHjY00QYcOhMJeq6/Hve8TuIqTkGHDPK luLg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GCfUfAtI; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474f61377e1si37174851cf.134.2025.03.04.17.26.29 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:29 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=GCfUfAtI; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWG-0004vm-Np; Tue, 04 Mar 2025 20:25:58 -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 1tpdUS-0002Fa-ON for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:11 -0500 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUR-0007BE-6f for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:04 -0500 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-43bcad638efso10145755e9.2 for ; Tue, 04 Mar 2025 17:24:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137841; x=1741742641; 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=GWCkeTUZ1Bwoa+5rt2QUs52v09pE2by6BJ43I/9OHfA=; b=GCfUfAtIrzHLlH/2PKgYp41BYSS/VC+sMlt2aBoOgsv5WWw96+LLCa7e9Ey5oolEMG s0aUcNBFNw8pSGl9wJFFx1keMLTIcGuLEf6ENh6PPWkB3dNlru6cgfbMI1dyLzZUM238 07DAOX6RJfb7B8+YXeKIxuO1VpRsCn66njZ2S0++aBqLh8ShV3LbTlMOb/6VWcrCWFNq bAoapJgQND1xUoWCuubtXc6bTcvLD7Ks74v5MIQ/J1ABryAxKk/hp4xVNuMfwPITICYS wmPqS+LBmsYqie7HrzzfDhDFv2UPzeuSBNuibXq7NZM3/U3mG59F5S/307ewz+68Ye5G nVjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137841; x=1741742641; 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=GWCkeTUZ1Bwoa+5rt2QUs52v09pE2by6BJ43I/9OHfA=; b=TCVDQI1a+T8X8laRZ8RvMShF6DVwZSjU4O7YRxyQv55o+wuBq4McljzZVCekcBVJOA d0AquUTBJVrpg+wt6DTZDnafFQNfXqzjjXwGPIqhDoaxPyXNBgbNzrIk+vpSGQ25RGRK 7g2nCgfWG9LxOB5n/2+ppQIm53362DP0Iz0bu5Kgav+3krwvbakQ3hwOkKBwT2NkxvCv Wugesf7IFGJ0dC8ylqTBpQ/DHBWJ9fMmPKT/pm16I2AJ07FfZALoeJHk6ENQyoNo3Pel a1MXuyNTTOv8Mlev4lbXC3QWMhDlaFWokSEguKPe3TMJTv9MX2/ZLLIDQ+RVo0ibCJHY 5/gw== X-Gm-Message-State: AOJu0YxzrrbPjijQUBZZThhAMoqf0HRqRI3G68uEVh/sgZTNBl4JrBuO KRgddAKO3WQPssOZt5t0i6r6AhoQDHaIq4Nkmm/ziJHu1RmneKo45CuyJ8foyOhd/3sZFsGRJVD cC50= X-Gm-Gg: ASbGncveFHx2qsJfrJDinjwwFaQyOfd+o4CaBlWbEZL7Lf3xbTfWizCVoa/EdTCKdFn ek7yM2bsdoX+2eIfOSSB4BlMb/PAhbp4rvItfJhSZK9SMa83Nrh0lx3o01TwGoaFgy+XeQDi+IF qI7gB5B/drA0qLNikaB0MSA3AfpJZu3Zc763x8AI+7wQ6FGPzPU/swD4P+JsZbwY32KdUtWDXTf t9k6GErlSgvEWRmLAD4ktqAWad6Z9fDNpEzSyXE5BjOPn0R2ofBlrWLTXBhX8OJV38WJ/TWwxAQ rtmMEfuphrp8M26i9J6Xhcf2OjdgB9M6BbQGKNksTGTWqB/Yb+o5cVj6H3x91poKYWjExflaEfH ZIDjcHdfMzPWTJ54I71E= X-Received: by 2002:a05:600c:4ed2:b0:439:a5e6:73ff with SMTP id 5b1f17b1804b1-43bd29d8441mr6558595e9.17.1741137840978; Tue, 04 Mar 2025 17:24:00 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd42e6bcfsm1952175e9.32.2025.03.04.17.23.59 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:00 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Luc Michel , Thomas Huth , Richard Henderson Subject: [PULL 25/41] hw/char/mcf_uart: Use FIFO_DEPTH definition instead of magic values Date: Wed, 5 Mar 2025 02:21:40 +0100 Message-ID: <20250305012157.96463-26-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::334; envelope-from=philmd@linaro.org; helo=mail-wm1-x334.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org Defines FIFO_DEPTH and use it, fixing coding style. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Luc Michel Reviewed-by: Thomas Huth Reviewed-by: Richard Henderson Message-Id: <20250220092903.3726-8-philmd@linaro.org> --- hw/char/mcf_uart.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c index 980a12fcb7d..95f269ee9b7 100644 --- a/hw/char/mcf_uart.c +++ b/hw/char/mcf_uart.c @@ -17,6 +17,8 @@ #include "chardev/char-fe.h" #include "qom/object.h" +#define FIFO_DEPTH 4 + struct mcf_uart_state { SysBusDevice parent_obj; @@ -27,7 +29,7 @@ struct mcf_uart_state { uint8_t imr; uint8_t bg1; uint8_t bg2; - uint8_t fifo[4]; + uint8_t fifo[FIFO_DEPTH]; uint8_t tb; int current_mr; int fifo_len; @@ -247,14 +249,16 @@ static void mcf_uart_reset(DeviceState *dev) static void mcf_uart_push_byte(mcf_uart_state *s, uint8_t data) { /* Break events overwrite the last byte if the fifo is full. */ - if (s->fifo_len == 4) + if (s->fifo_len == FIFO_DEPTH) { s->fifo_len--; + } s->fifo[s->fifo_len] = data; s->fifo_len++; s->sr |= MCF_UART_RxRDY; - if (s->fifo_len == 4) + if (s->fifo_len == FIFO_DEPTH) { s->sr |= MCF_UART_FFULL; + } mcf_uart_update(s); } From patchwork Wed Mar 5 01:21:41 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870544 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp554129wrg; Tue, 4 Mar 2025 17:36:01 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCV/sTMDhZdcynHw02FRv0czzLxLUJH9PVaU+jvT7eVnri1QIWpvF0CcbocvWvFcQM2OaBbRbA==@linaro.org X-Google-Smtp-Source: AGHT+IE5g+0c8wcfCYuaPzPH+zXJLWNANfKXNfR/7iNrsld4ygp5A6VTtug8IfMvKxtWoo+gf84y X-Received: by 2002:a05:6214:1c49:b0:6e6:6426:8c61 with SMTP id 6a1803df08f44-6e8e6dda35emr20073856d6.43.1741138561717; Tue, 04 Mar 2025 17:36:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138561; cv=none; d=google.com; s=arc-20240605; b=X2r0IEQgz1oer0+8NaXR2AuV+IDyEziL5kl8W7a+W4lrA1EAHWdNbTpjT6Ftxg7yDA Up1hrbC1P77uDTmwVDdsYyu9f3dnCHHkWEb2pb02i3vaBjlb/+ydMCMwRdPX+zTk+AnW XnGI4jGGM/BNi7+DOUk0aGkAfW+HMwnZmO0M6frgt8nLExHDq6j8tMpFQvAuv5FTAgM3 BanwfQke4p39fHa4VetZQeMydPS165MV8VorsI5X8lSaTisoGR+SpcvS1umyS6A/7Nz8 QDVwpAegMmhn3Cx1KyqkuP7WQkWm/KcbAcj1LLXe3eB0NbGUyBtYt9pPM4lTOsUQ2yt6 VQ2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=zsw3hWIwysJpMOxIWVwDgeawOr5AGtB31cvISbXkIjI=; fh=D37mpbcnIBXTxOJNKot+/T4Rc2cIvYe1OUtzfucLEDk=; b=WAMcIqfA4gXpu1y/Sa8tKlPEsR9NVc4zm7BTvLu/7HaY943OOUjuknEGiDhGXwPqMq cFTCTaedQNVdxVNEK4ajybnS331AAUf5vl5pAHr3heqecgdmPnC888279u07PDV0BMhd 11S2/Lpwr5pRzyTqITWzArJ9p4V5IMmASJEBHGpfUEPKvDX3dPjFa0KyQCz3udWbqXCf fy1Ipi4fmSm7XYRUdziih8N0kIY97xmOqnIrCue4nkW46ls6f72cUSnPeVhcfCi5CYH1 stYZMxeyNkYoBq/0jhqUqcrg/79eive6byf70zt19lTE3dsKaXLz+Upo/SsMXEjfErcG df3A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gB4KeL70; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3c1bb7844si447535785a.97.2025.03.04.17.36.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:36:01 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=gB4KeL70; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWK-00056U-CP; Tue, 04 Mar 2025 20:26:00 -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 1tpdUY-0002Lo-Q1 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:12 -0500 Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUW-0007CF-5v for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:09 -0500 Received: by mail-wm1-x32b.google.com with SMTP id 5b1f17b1804b1-43bbb440520so31789515e9.2 for ; Tue, 04 Mar 2025 17:24:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137846; x=1741742646; 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=zsw3hWIwysJpMOxIWVwDgeawOr5AGtB31cvISbXkIjI=; b=gB4KeL70UwMnRFx/HECn5QdOBHUVajlYN85JrM9ATad4YwGRr2Lx96JJdiVPR8/WKH wCKm9aN+BNZy2Wcxh4DeFteC0HILmPqBjxOCBbOzHexqP/Xqc7AkHNj97aEl+yBE5paX bvakTqmql+nAxAbW7T7M4ronz3Rz1JLhiZENe0cnCdnhHdgupJxbNRTH6p5eEY1lcvDn G2T+xZA9g2V33VT11RkdlA6p44YpcXHOVLXN7x6Au/BD15oiKQQf1HDJgIOu5YgOdM2X m4g66MnLwIkM//PpngZsR0IxX/vuxNWNvJ/AFyzn/0hELOt3vPOg+6zNTtIC/whcRzML POTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137846; x=1741742646; 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=zsw3hWIwysJpMOxIWVwDgeawOr5AGtB31cvISbXkIjI=; b=Y0lPJyl35H7EPINLzHLPMsczGpyG2pA0zVCGZFt2Fc1G1RYveQXfgfK3UyA1VR9eZW bCoJcRnGbnTcEcU+JLfi35xVMIfxNq9IXmtb0FmdLwVYBiTzNz8RQjFzA3iARyYdTgVp DESp7LoQP65Kj1+BdkaWgZ0Qa5Vb8vLUZf/jq4hTeFG0Fzrfy1XxhAG4hXUuWtK0aj2j pJvZ49buDmVrwfhIBXk2W3gKs4YPSuRqWu7HaFpfarWTx4s5+V1+nAyIzFcEXHbRwi6b buvJtsT8dGbeNocnTYEtCGWwzhiCDaLst+aDqf9Imcb1VindG1cXSvGLftsyalYqhkcb RvLA== X-Gm-Message-State: AOJu0YwRaXXWAowf3kNskItwY8s2Bq9vqbqbYEPFCYGhRVyrO8vVQMI6 GdxRP+gC1y4XbwXhGZTDpVHzIzg++roBVK0Tj33nbsLW8rhX2pMrMUAwP1g45QTaMtul1DlrntL EfOM= X-Gm-Gg: ASbGncv4pOqHbx2BGgyDLvVJPKqgf9sVDPLE0/+Wa4Yuobw1SgsXkl0F7+gFHZr69yv qx3yuJITx/sHxAoqvxpan6/utXnWUNBIkX8SVQ++N4oBwG2Mn8Ea1ZuWZbc4lA5iy0peJU7jP0m A+SJ8TOO1abAFGKOoHlGZ069a/HWFeXqgO0Vx3s37IafIML4Xxg4Mri3TbRXok/bILMaoQCjIwn 9FZ60o1KwTRy4WZhw/zkE+MHgqKu0imgyMdbvEeecxZEEtOK+tgxzOL+MVkQgVyFUjisfmls8/N D0hR7pkkiQU3Hcd5QinUfHdyRY0qzj2t2+DHoCiE2nmRuHkJfq/+V90qopLNUs/RNt64mFrSOdB pNf+lJXlmEwt9zDXYY20= X-Received: by 2002:a7b:ce94:0:b0:43b:cf9c:700c with SMTP id 5b1f17b1804b1-43bd29847ffmr8044605e9.16.1741137846353; Tue, 04 Mar 2025 17:24:06 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd42c8050sm1989855e9.21.2025.03.04.17.24.04 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:05 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Luc Michel , Thomas Huth , Richard Henderson Subject: [PULL 26/41] hw/char/mcf_uart: Really use RX FIFO depth Date: Wed, 5 Mar 2025 02:21:41 +0100 Message-ID: <20250305012157.96463-27-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32b; envelope-from=philmd@linaro.org; helo=mail-wm1-x32b.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org While we model a 4-elements RX FIFO since the MCF UART model was introduced in commit 20dcee94833 ("MCF5208 emulation"), we only read 1 char at a time! Have the IOCanReadHandler handler return how many elements are available, and use that in the IOReadHandler handler. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Luc Michel Tested-by: Thomas Huth Reviewed-by: Thomas Huth Reviewed-by: Richard Henderson Message-Id: <20250220092903.3726-9-philmd@linaro.org> --- hw/char/mcf_uart.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c index 95f269ee9b7..529c26be93a 100644 --- a/hw/char/mcf_uart.c +++ b/hw/char/mcf_uart.c @@ -281,14 +281,16 @@ static int mcf_uart_can_receive(void *opaque) { mcf_uart_state *s = (mcf_uart_state *)opaque; - return s->rx_enabled && (s->sr & MCF_UART_FFULL) == 0; + return s->rx_enabled ? FIFO_DEPTH - s->fifo_len : 0; } static void mcf_uart_receive(void *opaque, const uint8_t *buf, int size) { mcf_uart_state *s = (mcf_uart_state *)opaque; - mcf_uart_push_byte(s, buf[0]); + for (int i = 0; i < size; i++) { + mcf_uart_push_byte(s, buf[i]); + } } static const MemoryRegionOps mcf_uart_ops = { From patchwork Wed Mar 5 01:21:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870538 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp553225wrg; Tue, 4 Mar 2025 17:32:50 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXOIEax0spvDDwNC/Z/8sg2qFL1ptceSemWWYnINXub6kicoV7KSkbn6QwtaEFH7G/TAbVY1Q==@linaro.org X-Google-Smtp-Source: AGHT+IG2kRGpFLv1cmfWfr+6+U0SLSjoctzOn+qQ5KbRQ2VODN2veD7HNOd7VhZlFtA1z4hdPwwE X-Received: by 2002:a05:622a:1a1e:b0:474:f0b5:538d with SMTP id d75a77b69052e-4750b030151mr21499211cf.24.1741138369845; Tue, 04 Mar 2025 17:32:49 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138369; cv=none; d=google.com; s=arc-20240605; b=YUPexWpjlMp55gJ7oYgfRbdbi0q1ok8moM9GSJkywZ/BSLmsWsD2L/tXwIQ+obazWH ZtrYI2PaA0A9SfRY5paHe+pMkwzQY0/db8AC1LH2Cymb16iS3+fupPWmws76tSjWVCFf z6olSfqQXCqdB4xCBi2oi8Sygh4YaIsmyRh3EtvvOK29+h8FGWdmzbr3K6NlQ6oUwWkM TmIEon09JX6tZRQDfwR7BWQDQMtEEge7X3+HV7GvM71Pb2jt2HvwSKTcMfErATh+y0eQ X1tQ5eMQPYW3IC2qyYG6x9orDwWEyTmnMxIKFZAftBcSBPO4f3HxwmfYeUoyAVXug4WH bBgQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=H0YNIJlxmbjMyr4LODgtrAg0p6qQTSAHOFsEzvnJxFk=; fh=cr4X+ZspQYCefajZ6Az3uv/8/jRF+87//zpKtwMha9U=; b=Evl6e9oyykmfNPAIlaZoQ/7QnuAGr6biHi8oMWgTljvk/s8fWz0CaXM/9r6akbOQcL m6wez/5SIeLPWog2FwGojGsmABBV2TV1Opn7j+euRGAzYnRKCT5REvOehq05Tkt14r4W S9nHL74XFwngbLuvwYHzH+xtsLPQ2i+41JMLP8nQAX3uSQERjBc05l0jUVgAiVyQ359E SYlyTjRqc++44S90MUA1Eqo2v1gBZd728en1eCwy6hhOpIUX/8TvASZKAkMeHQifKDrB 0OkrNs5C9xO3U12afbu14nU+SC/oij722W5d9319NCsQU9QnCxryaZ9wpgJPgBYsc5ZK 48DA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nS4DNtB4; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4746919d64bsi120010081cf.103.2025.03.04.17.32.49 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:32:49 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=nS4DNtB4; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdV5-0003wj-Hs; Tue, 04 Mar 2025 20:24:45 -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 1tpdUc-0002Sv-L0 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:15 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUa-0007Ct-P0 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:14 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-43996e95114so42450515e9.3 for ; Tue, 04 Mar 2025 17:24:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137851; x=1741742651; 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=H0YNIJlxmbjMyr4LODgtrAg0p6qQTSAHOFsEzvnJxFk=; b=nS4DNtB4pnJCHZSbvX5cy1fNttUxfSwS1EUQ3gRI0GemZkRrIDf5Wwmf6mTW4+T9LD EIBBZxU3ALVsKPgBp/aA85+KE/d4wtEYp/YIZux6Nsf2E8j2zddhrnqUQBLgkbQkCgt7 Q914r8u4zG49i1rMsaYN6hOrQqlcecyQuVys8PXP3biJhgg9vxHP+t2cpwjWak0N+jlw 3TAnxLivCyCsV304FuOyICeGISsOsSDPjQ2/bk+J5VkBD+wxoY8FrnN8iFv6Ana5dkRK Pje1yooy5aGwm2RClJZItP3FX71J46X+0+dFPn2iQsqbcuBI/G0vycj+W1jktp7KLyLp T4vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137851; x=1741742651; 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=H0YNIJlxmbjMyr4LODgtrAg0p6qQTSAHOFsEzvnJxFk=; b=R3nEM87/tpD4cZarAfz1t/g2n469U/d9MpvGTvbdL4htpok5gDa0Z+/Ic5K9SntkFM lqokEZyQSjwIarL3u//pWlyfg60jG6WwVOQR9j7o/xU3M+6wt/NfzfQecPZ8fTjEvT+9 zq1bP8nHN/eh7R+sQiaa9WC4qHPEoScebCIBDlFPNjiP3OSSe6NyADes6fH+Hz45k64n kkjeSMYyQE7KGnYqBLLXncEO4ugrvszYw8rVlajS2eYK8kSs6tU6CY+83tLxiG3/KnzI j2a5umQOknCsb65/GL73RM1QQhy145rkJCVWRNRfzzBvqiE/seWaj10QeW3RpCdmaZNu n1dQ== X-Gm-Message-State: AOJu0YwNuxN3sui59bJN2/6c6pMlOgVp4k64Ps61JpyanPgxJcJQ75hQ fixPvFV/gx3HggsmxO037g6KSGGEHnMXpyfUwR125/l2zEBThMz+dd4v0UEw7QznM2A7+xWHNu2 VSTQ= X-Gm-Gg: ASbGncs+Q5qTBGQppdZlBitPuAtN0kWP0TaS8sCvoTFWSStd6zgmZ4ieccMs6tNf++Z SeU7v/VJFb6e9/efvdfSF++B+z4Sqr5x0a8uDVBrWzbbhcoY0ZyZgQMBd8PmHyduytgusqTWP1i KJ9abVMfo0GJFbrsggnjCjMETwGVyjopRbK14LgHrlJ0EzovnzWAVaDPLTCYM8o068rR5Vz+wKy KX3VCdCKEu8ZOc/z2+7wyiiYaI6H7le007mTQNcjG8x9pyWorOfOKd5tkr4+cr2tYP2KlrGq/oM GC5BZ0UwulTKVgzpq2wj58jn/6yR0aTVeeNt1KyU7a2dM9moAT+i1mE+SnqQ6TbP59wnnOwDjvr lZw1BmLWfLYWm8/L+qB4= X-Received: by 2002:a05:600c:1d0f:b0:43b:d203:da18 with SMTP id 5b1f17b1804b1-43bd295494bmr6488485e9.13.1741137850946; Tue, 04 Mar 2025 17:24:10 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd4292af0sm2020075e9.12.2025.03.04.17.24.10 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:10 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Luc Michel , Richard Henderson Subject: [PULL 27/41] hw/char/sh_serial: Return correct number of empty RX FIFO elements Date: Wed, 5 Mar 2025 02:21:42 +0100 Message-ID: <20250305012157.96463-28-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org In the IOCanReadHandler sh_serial_can_receive(), if the Serial Control Register 'Receive Enable' bit is set (bit 4), then we return a size of (1 << 4) which happens to be equal to 16, so effectively SH_RX_FIFO_LENGTH. The IOReadHandler, sh_serial_receive1() takes care to receive multiple chars, but if the FIFO is partly filled, we only process the number of free slots in the FIFO, discarding the other chars! Fix by returning how many elements the FIFO can queue in the IOCanReadHandler, so we don't have to process more than that in the IOReadHandler, thus not discarding anything. Remove the now unnecessary check on 's->rx_cnt < SH_RX_FIFO_LENGTH' in IOReadHandler, reducing the block indentation. Fixes: 63242a007a1 ("SH4: Serial controller improvement") Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Luc Michel Reviewed-by: Richard Henderson Message-Id: <20250220092903.3726-10-philmd@linaro.org> --- hw/char/sh_serial.c | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c index 247aeb071ac..41c8175a638 100644 --- a/hw/char/sh_serial.c +++ b/hw/char/sh_serial.c @@ -320,7 +320,7 @@ static uint64_t sh_serial_read(void *opaque, hwaddr offs, static int sh_serial_can_receive(SHSerialState *s) { - return s->scr & (1 << 4); + return s->scr & (1 << 4) ? SH_RX_FIFO_LENGTH - s->rx_head : 0; } static void sh_serial_receive_break(SHSerialState *s) @@ -353,22 +353,20 @@ static void sh_serial_receive1(void *opaque, const uint8_t *buf, int size) if (s->feat & SH_SERIAL_FEAT_SCIF) { int i; for (i = 0; i < size; i++) { - if (s->rx_cnt < SH_RX_FIFO_LENGTH) { - s->rx_fifo[s->rx_head++] = buf[i]; - if (s->rx_head == SH_RX_FIFO_LENGTH) { - s->rx_head = 0; - } - s->rx_cnt++; - if (s->rx_cnt >= s->rtrg) { - s->flags |= SH_SERIAL_FLAG_RDF; - if (s->scr & (1 << 6) && s->rxi) { - timer_del(&s->fifo_timeout_timer); - qemu_set_irq(s->rxi, 1); - } - } else { - timer_mod(&s->fifo_timeout_timer, - qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + 15 * s->etu); + s->rx_fifo[s->rx_head++] = buf[i]; + if (s->rx_head == SH_RX_FIFO_LENGTH) { + s->rx_head = 0; + } + s->rx_cnt++; + if (s->rx_cnt >= s->rtrg) { + s->flags |= SH_SERIAL_FLAG_RDF; + if (s->scr & (1 << 6) && s->rxi) { + timer_del(&s->fifo_timeout_timer); + qemu_set_irq(s->rxi, 1); } + } else { + timer_mod(&s->fifo_timeout_timer, + qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + 15 * s->etu); } } } else { From patchwork Wed Mar 5 01:21:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870519 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551334wrg; Tue, 4 Mar 2025 17:26:30 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXbYtWPI2O2ez0KQLgz3SutVCQqTQFH9nHRfB/b69ZKLmfoZHPsqiweiMCYuCspUkps7995Gg==@linaro.org X-Google-Smtp-Source: AGHT+IGG3zED1b/hubh0Fp+925Kd9yl3RwMfbMddnUa4jKhKoimuuwul3TGkCHMcjZkTrqZYQ3Uw X-Received: by 2002:a05:620a:4393:b0:7c3:c1b4:c8e9 with SMTP id af79cd13be357-7c3d8e3f295mr207948385a.15.1741137990651; Tue, 04 Mar 2025 17:26:30 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741137990; cv=none; d=google.com; s=arc-20240605; b=eizRKS9ptTNphgigquAOOqrfR2ercsSwmL7EnydIQgY2D+qCTCHr057lDs+yCIS2pp 4JIu+zazjdc2Mqo3hnbrhANvuIhRoUcU5ZOCrMWcjWnkR1Z5OzRg8kJ1V4FpppJ9/xZw sSDz/N7xxcReJsh9/R6mxa5JWpIn8pXOsFLcl8FIBOLaphU8fYcFqJcrc+hwi0LsmBMu iRBaLHiw3DUvLNp1HXc23lVcYAIy2trS049wOuCXxWWfvgk7ykdxA3ltdeIkvw3Jzm2G GDAJEWBdYo2FrbAfyixSR5gyZYEfdCmm4HK/u6aqxHc7z5RxJg3Kogo8O01SfFEiE7vC QOdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=0qqjRyLJXA943FvFgC6O1oaicZbTpbgR9SXUAwOPgKM=; fh=cbbGAr9sy+CnW+StKxwJMTMej+TKOfc1noHJdNewJv0=; b=PuWMdy+9G3qzVQYWwgoX8/sSfX5gNOCobfk1b3TNoWVbKDw1eMcq/bwoyh10pIwSC4 5sdplmW0NWVZsBxQHtXoHxvwfQ0inVe0RWZAki0FqfEHw81Mcj/xIg8yzzfZVE69blbl TDLrMNPADNeHFoxSwrBHSV6oSIP+bZ1K0gON835aso9ydjnlzRPCYv4/sPDYnPvSBUFK lT6SBX5A/yIrVkxIFFpjUMZyqBzoN47S8+d9X3TCNZ2B+icBraXmPUMkZ8oR8aOm8mTj r3hGvyzZzwZEAjlpOmr8zcjpIJhhpziLAqNKbeZ28rJbp8B+L0OPmdJhEzkSAspwB6Ly oObA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yGSEADqT; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3c50565fbsi386020185a.249.2025.03.04.17.26.30 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:30 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=yGSEADqT; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdUq-000320-LJ; Tue, 04 Mar 2025 20:24:29 -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 1tpdUh-0002g6-0s for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:19 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUf-0007Dl-AU for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:18 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-390dd3403fdso5299899f8f.0 for ; Tue, 04 Mar 2025 17:24:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137855; x=1741742655; 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=0qqjRyLJXA943FvFgC6O1oaicZbTpbgR9SXUAwOPgKM=; b=yGSEADqTL008eLG6S5OtMwHWaNS5Jv0QsxJRCztptOZ9CfbSq59aUfqUQ5F5YuTShK N7t51v7Wytk2EYKh0+zvrXlXmYEmLYqXX77RmFWhEf1IkajMs2Mg3GANpQ+TZITkBV3k XIeHQQyidSRZI1mIhsCkmQ6yNHUD8HyH9R6LB9FnlSBZglottM+KpMrVmLAz3TPpxUQt D5+/UIrFLCd6f+re/KH23EtIafbihiZD9NdEh0E8wvXLESTzpAdegFEUEayLVO27Fl/s C/SVY16QsFHoekcRxC2nDL8aHCCLQTB7UpnjUFwNLUEm27Bcuqf9epUa2CbEMQT4+teD wFPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137855; x=1741742655; 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=0qqjRyLJXA943FvFgC6O1oaicZbTpbgR9SXUAwOPgKM=; b=Y5hzl5x6dWAP3taqyx+7p0Xc+vbPWMpmAQGEpBS3MumJ/OJGwQmz9Tu7jSBRXI5Lh4 ky2Mc3PDdhfKW848R87Cb7Xz6UiEd6SGpa+nWQzo5erXHBjeywAGPjTDGKbNJFPm5JVG YWDRLBPDj+epFxIQgi8Be2B/YMzO/PXVLO3BHquVc8phyRHpHftmmNdTx6/K7W8nmmJc 2NEDpLj6J25uDkPWo/GypHnlyJfc195iKrUGzglwQ6AagXpbyVKUV6DvXA4eSt8PgAs6 lgm3v+a6PBxbWCEGOiG1M51qhifiYnqYSuOMhz++Kfw8PrbpJbHhveOEyfs7zlq8sAbg 3xWw== X-Gm-Message-State: AOJu0YzOKYBSZosDc5XaF//u8t8DjLuNvd3Wmqtgl15mulmeb1bafXo5 5bhyiVcPzwAakeEOraSTI14wwQVs4vRESAqpuvGuowD8rabNb5FreZHtnqm0MBQg4AqZL8ZBm44 JbUE= X-Gm-Gg: ASbGnctzstu2B9x5NLiBFcxSkRIBx8jrkdDhGV8la37rg3Iz0OJJ61DPUFXHYZpXHm5 tkj+OMykj4+X/l0VZ2xv4BPbfZer2RPbf90EIA0AUjNkoPBC79hWuwgykvttLQTnWxsjtZvNRc1 4QIBfaxpXpy4sWujDMZOo0fuHS8gr3iCaDXaNTeGiD+/DC/ArHjFroi8zn4p71Bell54nkgeS0b h56O+eEcT5IwSqt9wxPQvew2flACPecMY1UFKAILsqDAvB+3gbw0w/bFcmxknvQMsuMHH78dLN2 z8UWjmSEADD5URVKNKYBMIdrVfvOTVPUL1wnikxr2/idXkaPbEsNw39SYhSk/acANyAQnSqNrjt Ntpl07BgYczq9fWp9rjY= X-Received: by 2002:a05:6000:2b06:b0:391:4f9:a047 with SMTP id ffacd0b85a97d-3911f741393mr383577f8f.17.1741137855549; Tue, 04 Mar 2025 17:24:15 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47965ddsm19712111f8f.18.2025.03.04.17.24.14 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:15 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Alistair Francis , Alistair Francis , =?utf-8?q?Philippe_Mathieu-Dau?= =?utf-8?q?d=C3=A9?= , Daniel Henrique Barboza , =?utf-8?q?Cl=C3=A9ment?= =?utf-8?q?_Chigot?= Subject: [PULL 28/41] hw/char/sifive_uart: Free fifo on unrealize Date: Wed, 5 Mar 2025 02:21:43 +0100 Message-ID: <20250305012157.96463-29-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=philmd@linaro.org; helo=mail-wr1-x42b.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Alistair Francis We previously allocate the fifo on reset and never free it, which means we are leaking memory. Instead let's allocate on realize and free on unrealize. Signed-off-by: Alistair Francis Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Daniel Henrique Barboza Tested-by: Clément Chigot Message-ID: <20250303023120.157221-1-alistair.francis@wdc.com> Signed-off-by: Philippe Mathieu-Daudé --- hw/char/sifive_uart.c | 44 +++++++++++++++++++++++++++---------------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/hw/char/sifive_uart.c b/hw/char/sifive_uart.c index 4bc5767284b..b45e6c098c4 100644 --- a/hw/char/sifive_uart.c +++ b/hw/char/sifive_uart.c @@ -251,6 +251,23 @@ static int sifive_uart_be_change(void *opaque) return 0; } +static void sifive_uart_reset_enter(Object *obj, ResetType type) +{ + SiFiveUARTState *s = SIFIVE_UART(obj); + + s->txfifo = 0; + s->ie = 0; + s->ip = 0; + s->txctrl = 0; + s->rxctrl = 0; + s->div = 0; + + s->rx_fifo_len = 0; + + memset(s->rx_fifo, 0, SIFIVE_UART_RX_FIFO_SIZE); + fifo8_reset(&s->tx_fifo); +} + static const Property sifive_uart_properties[] = { DEFINE_PROP_CHR("chardev", SiFiveUARTState, chr), }; @@ -270,30 +287,24 @@ static void sifive_uart_realize(DeviceState *dev, Error **errp) { SiFiveUARTState *s = SIFIVE_UART(dev); + fifo8_create(&s->tx_fifo, SIFIVE_UART_TX_FIFO_SIZE); + s->fifo_trigger_handle = timer_new_ns(QEMU_CLOCK_VIRTUAL, fifo_trigger_update, s); - qemu_chr_fe_set_handlers(&s->chr, sifive_uart_can_rx, sifive_uart_rx, - sifive_uart_event, sifive_uart_be_change, s, - NULL, true); + if (qemu_chr_fe_backend_connected(&s->chr)) { + qemu_chr_fe_set_handlers(&s->chr, sifive_uart_can_rx, sifive_uart_rx, + sifive_uart_event, sifive_uart_be_change, s, + NULL, true); + } } -static void sifive_uart_reset_enter(Object *obj, ResetType type) +static void sifive_uart_unrealize(DeviceState *dev) { - SiFiveUARTState *s = SIFIVE_UART(obj); + SiFiveUARTState *s = SIFIVE_UART(dev); - s->txfifo = 0; - s->ie = 0; - s->ip = 0; - s->txctrl = 0; - s->rxctrl = 0; - s->div = 0; - - s->rx_fifo_len = 0; - - memset(s->rx_fifo, 0, SIFIVE_UART_RX_FIFO_SIZE); - fifo8_create(&s->tx_fifo, SIFIVE_UART_TX_FIFO_SIZE); + fifo8_destroy(&s->tx_fifo); } static void sifive_uart_reset_hold(Object *obj, ResetType type) @@ -329,6 +340,7 @@ static void sifive_uart_class_init(ObjectClass *oc, void *data) ResettableClass *rc = RESETTABLE_CLASS(oc); dc->realize = sifive_uart_realize; + dc->unrealize = sifive_uart_unrealize; dc->vmsd = &vmstate_sifive_uart; rc->phases.enter = sifive_uart_reset_enter; rc->phases.hold = sifive_uart_reset_hold; From patchwork Wed Mar 5 01:21:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870536 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552967wrg; Tue, 4 Mar 2025 17:32:02 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWNpw3jipjBP/PzE+GQoLdYrRqr4ubQBxu0xy2ORHQHmcp6W0YgSwRlpWLHQJvGRly5mLtMTw==@linaro.org X-Google-Smtp-Source: AGHT+IFvRnJ4dBHnNxfR1TmS10Wk1qegcP31FCBe3LL5BoFiThe9VIT3Nmqs0IkAAgPftJ+wbXv9 X-Received: by 2002:a05:620a:2841:b0:7c0:b1aa:ba49 with SMTP id af79cd13be357-7c3d8e93e03mr242115885a.30.1741138321773; Tue, 04 Mar 2025 17:32:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138321; cv=none; d=google.com; s=arc-20240605; b=YxPsJ846QOaKMwP5tBu52h2zpOMXURqSGSm9yZFJT1Fyhb7YVQDTtvvpbjVcf5Y24E rJgMpPNJRV3R8PfJc9i+qXhtYN3k9Y2wUNPApzBcujkmjYOLTwrSaPoi89yscMJjNssl TTJdqeQ+HvyvmGzMulNpCMz09gDfm4L1X++mCDtGP33yuNG2TAFxewVIxiIFcVbrPBZK 00RDVA+j1X0nXlX4ihCm8BC1ifI1n+UiLjvY8vua+xed0lkotF802qjBIHigITlSSPpU jd9OcT02l8ugyrt2+gUGjN/XCwARx8cr1Z+8DANKn7GiaH9QvQZVnPQuNnRcc4MZwaDo teEQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=xAGfCuU3Kbhb9h0Vekx8SOe9ZIxHfI7sjhoEbEJI7Ok=; fh=4s4RXtJVy5cixMDdZro8wby+s0Zm8ABrjBewbEWD24w=; b=ZRFPL6DafS49Ql/OuEPlvPednUFK9SM92k6Q59NyGYHBCpx4z8YF2keClbIXQ1yL5S a/OwX1A5EvOOrPtHZIYpI5V5TMPgJnTRlEkJOwp3LPMBJgOgIcuwyZBw4DBYDYtC8BCI SbM1j4nE1zpcyPxvjKr0wjByzg5WUvZt4BA9Ojqi9MNKp78ljF0cu3SejhnQMKcASiqm gwgW9/tkwFy2XEcFexlIF/w5k/03P0HXoqu10eRxHifob8XkliAdnidrUqw/70eG7rwO 94odEPRSkee+F5WD3Uf0MaTDkLG3BGLsNvdt0lDmo34xHLsZh+aH3DHsIeTcvsTtOS6t UfvQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hubTVO4R; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3cd0ba6b3si266940585a.256.2025.03.04.17.32.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:32:01 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=hubTVO4R; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWd-0005be-SD; Tue, 04 Mar 2025 20:26:22 -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 1tpdUo-0002yk-3f for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:27 -0500 Received: from mail-wm1-x32e.google.com ([2a00:1450:4864:20::32e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUk-0007EN-4K for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:24 -0500 Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-43bd03ed604so6218155e9.2 for ; Tue, 04 Mar 2025 17:24:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137860; x=1741742660; 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=xAGfCuU3Kbhb9h0Vekx8SOe9ZIxHfI7sjhoEbEJI7Ok=; b=hubTVO4R2p4r1S8gLTr3+QZlWXp5e8Oopx8eAOfNG7BWMlOy8WmoCLwX1vuy25cYNC Ky3Gq2uBYX2LNhJ6BkBpYoCIozd3Q56YPj5uL4dwevhUvIXbOiG1ugkWo/XarqwCS4G3 2wbg+WnitPfFlMKAM5/NcAmDPiCBjBiOiQcdUgLybzPXMioou4qCepDPH5yZTKTOS6Tv GF9oK12jCmgpCj/7n6vlP7zO33/tSekZDpnohGC89VN97X+b4vrcbvDJBFcWsnhWf9G0 oFZte12l6EACbw62RfAuCt1S2wBkWfqJmYjvM/cG3ZFgrti4Hk4oTL6HGa0+znDYD9g4 p5IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137860; x=1741742660; 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=xAGfCuU3Kbhb9h0Vekx8SOe9ZIxHfI7sjhoEbEJI7Ok=; b=e5NlyD7rnfAoo5S80kKYaNNnEEqssGwcf+p90zQG61vwd2epSierzMEzts2i7FtNiw 3k0czleK6+OQdGdE8Q/ihmxsikwaODi950d1lkabbajIqH/w0lWnegBDqJZMTnmiHjM1 gwXfYPeZZ6Q3GfqUaUy4NelXg44HXz2RbS3ms2u7wX3S7HOuFY0hU1eNMKWWQXFAmdov 2Jsvas1Uk7UK9/iOVbTX3fYFnoDdaF+eOTyFwj7yJG5zCz1dln5tPFnk0Kv0gnGzZoxA XRiePZSHAQLelggHVTtKF+OGmj62FxM2XhuyDBPCyg3dfN9MDMkE70W+G+a3kdg0QTVF 3SFA== X-Gm-Message-State: AOJu0YzT7APCHsUHxp880nuZvvVY0C5AcVkSiEg2n3bWv52ntgc+Yznk HbBT2E4/yVxGqJ4ygQ1SpVW3nKSYfPlCpTf2Lq9VA4r+peD12oX/G7O2xegtKNq/M86EmUmomo0 Y9Yw= X-Gm-Gg: ASbGncsmZiqt973V1q7jImXMGpc7zsgMPGYThsNtAQMv+xUt4PluG2MnGDA2TZS5qaf 0d4kxL5txBYbPNF6nQNxlLIT/wuV1ifpovKUX2YNvKQ9DAjQ+sL4J8HiQR46iGnZqlVJn9taPjm QP+1WzXStJcFfMxpCc83Ly4ho0IwILXSnHWY+8I1uKXvpEoyyB2wPb6Byauba//eCnhloMZyaUU 8HM4v4XHP7AOJCZFHv945EXELHbE+qqnJu2yPU0uShm86nxxi5xwkQ8EK35K/Hed3pPwAgeA0P3 ifHXqMy1ktU5tIZPqQzMeLhtR3zLg9Xq+sSlGFmaKwNki5wEsSGikaiVejwmR5UVRGkA3dDbu3O wk8urbnlWHj44StXX2LI= X-Received: by 2002:a05:6000:4025:b0:390:f6aa:4e6f with SMTP id ffacd0b85a97d-3911f714de9mr847057f8f.10.1741137860151; Tue, 04 Mar 2025 17:24:20 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e485d773sm19173652f8f.81.2025.03.04.17.24.19 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:19 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: BALATON Zoltan , Mark Cave-Ayland , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 29/41] hw/misc/macio: Improve trace logs Date: Wed, 5 Mar 2025 02:21:44 +0100 Message-ID: <20250305012157.96463-30-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32e; envelope-from=philmd@linaro.org; helo=mail-wm1-x32e.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: BALATON Zoltan Add macio_gpio_read trace event and use that in macio_gpio_read() instead of macio_gpio_write. Also change log message to match macio_timer_{read,write}. Signed-off-by: BALATON Zoltan Reviewed-by: Mark Cave-Ayland Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250222122850.9D8B84E603D@zero.eik.bme.hu> Signed-off-by: Philippe Mathieu-Daudé --- hw/misc/macio/gpio.c | 2 +- hw/misc/macio/trace-events | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/hw/misc/macio/gpio.c b/hw/misc/macio/gpio.c index 7cad62819a0..4364afc84af 100644 --- a/hw/misc/macio/gpio.c +++ b/hw/misc/macio/gpio.c @@ -135,7 +135,7 @@ static uint64_t macio_gpio_read(void *opaque, hwaddr addr, unsigned size) } } - trace_macio_gpio_write(addr, val); + trace_macio_gpio_read(addr, val); return val; } diff --git a/hw/misc/macio/trace-events b/hw/misc/macio/trace-events index ad4b9d1c08e..055a407aebb 100644 --- a/hw/misc/macio/trace-events +++ b/hw/misc/macio/trace-events @@ -18,7 +18,8 @@ macio_timer_read(uint64_t addr, unsigned len, uint32_t val) "read addr 0x%"PRIx6 macio_set_gpio(int gpio, bool state) "setting GPIO %d to %d" macio_gpio_irq_assert(int gpio) "asserting GPIO %d" macio_gpio_irq_deassert(int gpio) "deasserting GPIO %d" -macio_gpio_write(uint64_t addr, uint64_t val) "addr: 0x%"PRIx64" value: 0x%"PRIx64 +macio_gpio_write(uint64_t addr, uint64_t val) "addr 0x%"PRIx64" val 0x%"PRIx64 +macio_gpio_read(uint64_t addr, uint64_t val) "addr 0x%"PRIx64" val 0x%"PRIx64 # pmu.c pmu_adb_poll(int olen) "ADB autopoll, olen=%d" From patchwork Wed Mar 5 01:21:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870541 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp553955wrg; Tue, 4 Mar 2025 17:35:28 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXS4ibDpoMgJUBI8/3TfifO9hXiZdkoOD7sxfi79xiV3ifruB58TwoSUMooMVSpB4XkEs4I0Q==@linaro.org X-Google-Smtp-Source: AGHT+IGmcrVqNJuFBs5pgNswXWh8u8iOxF/rKWunuOj2/jY5jpPT3aRAQWmQ/KjpXfie8Hpl3cRq X-Received: by 2002:a05:622a:1482:b0:474:ff45:6451 with SMTP id d75a77b69052e-4750b4d8065mr23748201cf.49.1741138527971; Tue, 04 Mar 2025 17:35:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138527; cv=none; d=google.com; s=arc-20240605; b=O/z8S22s1XvBNJcRwFEE1EoG/utRnx5HXtnxiOSHNqzJBI0HEDvFaiaY67PN5IIsj9 mQKbN2ljd5sxCnVooVhZ7sDt4sOlgQ6raLVfUGz6F/+Vg6K5t6QZdjdjQ0gqxYx8sYwF e55xV42xbXqbXz2jsR/IlfEnDy+9JRqBDvrrbfitqQaebnKYENHuu9JEDKoYBGjQtTPK yjbTuNFkiI0SsXIT1nYSz6dE91QqVKWE/gkV2mDhZBSU5VpAOY8lk5swi4KjCKzi1Vrz KhgeN4yfUJSDl2vqcgycFCCtyCrB3JxRhiJPNgO8Ot+Gc2BDWCC5gfSmZ69ieMheTxnc jN9w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=G+D8Q/imAfZSFEdzdeEp7YKtJwoNb8wSIJ5VcE+KtEw=; fh=aK5lAJk8Iqt/VAgAvc8s/6aoL6dpXsnm9HmgW8NDbpA=; b=fBdRbdT8Jcy/oEJY/Xk5UngNmKCDK6/XIV1b8p7JQwPD9zJdTyi2UjEfhYIfW32XPl 3EmpZyYm2opyCXukYl8/jDuGOUfY4Q3kHYQXxa4v2NAZ7uZF1lu55kdFmM4S9F0WVcMO 8kMriUJC3pTdZUL/Cfhu5pw/0PGpEvpYVldmsiPqNnsll87HE2sH9GY/wcrS4yNh4jSz 1fJUaRRdPexukJKJoU4XaJl5Jg/RKp+RhIDn2zk8dQciwYVhLSE4fLaiC1oLm+6QHk7x 62QgxVvgV6a3PadBBzz11dYquWhI7YhdUJZooZzDCSTjRov/8SW747cny6XHCBBW4AYk 3d1w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ObWajPzY; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474e3029ba6si55288401cf.337.2025.03.04.17.35.27 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:35:27 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ObWajPzY; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdX0-0007Qk-SQ; Tue, 04 Mar 2025 20:26:43 -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 1tpdUs-0003I7-En for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:32 -0500 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUp-0007FL-9Z for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:29 -0500 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-38dcac27bcbso214315f8f.0 for ; Tue, 04 Mar 2025 17:24:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137865; x=1741742665; 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=G+D8Q/imAfZSFEdzdeEp7YKtJwoNb8wSIJ5VcE+KtEw=; b=ObWajPzYb8NyjiQGt9bWgVN8PMi27kjctpKp/t9Ba9KwNfhp2OGg5giStA9BHmfJ4b DGaEBcZp6LEZOYqc3TEXrgnRDrRvNFA8oQVlLov0ykpymivFSy3WVXFopsbxPWiu75Ne MrKUTVoielG5rcb6JLX9+PDLLUF7DxhpBb38H5wCYR68Mx0dq978sEds+kV7HRsf8L0o 69lCVY+hVilsJ5tAAwqe3b+o9/mJ2HLTpCMzW7wPtt7ucmKo7WhmwBvqknvzrrRQNGDc xkGDZ8/BBkh8RO0VGf6ASI4MCthLafF9lkUlNgrUYf+XFwkpAYSlAXbVmaVX3geNZ0cX 7uBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137865; x=1741742665; 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=G+D8Q/imAfZSFEdzdeEp7YKtJwoNb8wSIJ5VcE+KtEw=; b=jptaVwxmMojk8sOih4uONbDTPnjKcYqAF7vModdn9UAGISBVTBrzvPAwRUNzzBHFBt iOsHMRdYsT+Rn9hxxT7XLrF8nDENncIRhkZ5GaV/tQsUi5nZpv31RWBE8txYlQxZ0FIR Qunov5HHdbO0qrL1i70Yn/HqwKPWqjASMxuGrRmbrEkrXwW4ydy+0xAY0juHv3nI23Em ZF1VXz4KfmZYkQbMGCqAi1lbgZ0wPHNLbiOAUqd2y8xlM7t63EjueF8swaAGh6HFWhxb /sJSjArqp3smiLcyu/LeDb+ZlZVuxKYam+OSTV1ZNPeJz47QAXn72R1xwf+z4zDYyhPm vDqw== X-Gm-Message-State: AOJu0Yx3JrL6h4PCCLvSTmSSz25PBDmeNqaEXKu42LRjygzc3RcdQjn4 /I1db25qaL3vHWtGeYLR3U3Rt0/XCefPxMQQdVrfiOZHO2AomvNjq49fKECTFLFyvMb1scS1zvZ CwNI= X-Gm-Gg: ASbGncvbyluZMsThh/HyLj01svkQuFfAz/kg08DbHG21xq58oCJcIt3XpaexTF8Kx/z iOG/dwHm+Buv80oxi5mIXhJ7/Ygyb7BpOydBWhOWDE1nIIGBgYOmOT0kV4KQJtWYN1LaiQa53vl WsgiS5lhWjT5D/bSZS8xCanqT83dne3wO/z9zjCBRdIT/gPw/ToZc6w+xPQI+hrcJTefj3lCM8I uZkGqzfdRMti/Oi0LZvxcEj/oso0+kZ7fswqX8mFyEzUWpNOHaBtJLBUXq2SBBxPzPuM/eagfw+ D2vSNFnzf3gnq7et82BZhoS4jGoHCkfUKMhrXqlkRD3UiFKNjjIptGqYgM8NGoTQGCb9M4Yz645 J6QLOGutyKkbAtF3RBCo= X-Received: by 2002:a5d:5848:0:b0:390:ef45:1a36 with SMTP id ffacd0b85a97d-3911ea413a4mr867739f8f.19.1741137865454; Tue, 04 Mar 2025 17:24:25 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4844514sm19327572f8f.76.2025.03.04.17.24.23 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:25 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= , Mark Cave-Ayland Subject: [PULL 30/41] hw/misc/macio/gpio: Add constants for register bits Date: Wed, 5 Mar 2025 02:21:45 +0100 Message-ID: <20250305012157.96463-31-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=philmd@linaro.org; helo=mail-wr1-x434.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: BALATON Zoltan Add named constants for register bit values that should make it easier to understand what these mean. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Reviewed-by: Mark Cave-Ayland Message-ID: <20250224141026.3B36C4E6010@zero.eik.bme.hu> Signed-off-by: Philippe Mathieu-Daudé --- hw/misc/macio/gpio.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/hw/misc/macio/gpio.c b/hw/misc/macio/gpio.c index 4364afc84af..e87bfca1f5d 100644 --- a/hw/misc/macio/gpio.c +++ b/hw/misc/macio/gpio.c @@ -34,6 +34,11 @@ #include "qemu/module.h" #include "trace.h" +enum MacioGPIORegisterBits { + OUT_DATA = 1, + IN_DATA = 2, + OUT_ENABLE = 4, +}; void macio_set_gpio(MacIOGPIOState *s, uint32_t gpio, bool state) { @@ -41,14 +46,14 @@ void macio_set_gpio(MacIOGPIOState *s, uint32_t gpio, bool state) trace_macio_set_gpio(gpio, state); - if (s->gpio_regs[gpio] & 4) { + if (s->gpio_regs[gpio] & OUT_ENABLE) { qemu_log_mask(LOG_GUEST_ERROR, "GPIO: Setting GPIO %d while it's an output\n", gpio); } - new_reg = s->gpio_regs[gpio] & ~2; + new_reg = s->gpio_regs[gpio] & ~IN_DATA; if (state) { - new_reg |= 2; + new_reg |= IN_DATA; } if (new_reg == s->gpio_regs[gpio]) { @@ -107,12 +112,12 @@ static void macio_gpio_write(void *opaque, hwaddr addr, uint64_t value, addr -= 8; if (addr < 36) { - value &= ~2; + value &= ~IN_DATA; - if (value & 4) { - ibit = (value & 1) << 1; + if (value & OUT_ENABLE) { + ibit = (value & OUT_DATA) << 1; } else { - ibit = s->gpio_regs[addr] & 2; + ibit = s->gpio_regs[addr] & IN_DATA; } s->gpio_regs[addr] = value | ibit; From patchwork Wed Mar 5 01:21:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870526 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551523wrg; Tue, 4 Mar 2025 17:27:07 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVUaFE6bCdfZj07z73wWatU093ETbg4WhGlaVOQOLgH4rLZpfW9L4Fmb4z/zoc1FGcS7wIXfg==@linaro.org X-Google-Smtp-Source: AGHT+IEG8ST1YDYEoKgPR60DLgEWcJ/kx3csyTigWO/v1grQTisv/k6HasEtBXeN2fesGURGU8/9 X-Received: by 2002:a05:620a:6006:b0:7c0:b587:9e6 with SMTP id af79cd13be357-7c3d8eb3bf9mr250929585a.43.1741138027034; Tue, 04 Mar 2025 17:27:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138027; cv=none; d=google.com; s=arc-20240605; b=TluhiB/WZReN6KmaWxtnJxXo0iL6vdeG7HdC0JnhkTSvxja+BSCKFs86fTC0826Sju qPppJSbY2tu+cxpkoNxgMjJ3EDmUOvRO/ZNOqM5ARv5B4TbuiKEGyjYN0Y/a9gVL5EUl jOZ1SBFsb/3/JdfhzReHUlCERqxKo+cKpNpCaOataRHF6Eh04itQkk8TvMJ0wWmdXyaW V6IaUTNkz24Ot4nxR5jv4+QF/YOmIXP+gcP150T7LoO6xi7QUE/XTfDltkAm32NLPkPH Jf/60t8UioclRECuN8JJ6o261Lsjs1A6ndF3+3CV74lI8Gp5+J+NYvH0c5z0bt8qqpk/ 7rXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=RY0hKsg/QJVynR94vVsgSjWfjxRvhr7eQQRJ6wX8nKY=; fh=qiPfHDOAZGHNWHa3eASdRC6GKL4KnKON2tlNUULhhhM=; b=hW7cjcjai35n9WV5Fp4h0+QWSzXoYcxBLSw5eRZdB7UFVU7cxlM57w5A0fklhwpVPc UCmpAdJQSjdoshiiotSBRriUMjWuj7KI7KvQoQuvEXiaL8kv9iD9UdHi2Cws0283qG9J dH4l+snggvjzevn0F5qKASQKKjJz6St/Z8c0kw7dkct5w+tNITUuqC6zr1PJ2Tc4lq4/ khJO/8W8DmT9a8LaSJPwgaVklw/qEFMDgFmjRFvSkm+Nn7QYaDOwQ6Ip3h4RT4SBkyvb Q+Uz9SeddoEW+WYvZoioU+9CmJwSVXZL2YJJ0fZgFTcg5EqtaNlwwWPFCOApdresgJWk kvUA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Se5v9sxm; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3d6fc48a9si117141485a.162.2025.03.04.17.27.06 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:27:07 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Se5v9sxm; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWS-0005NL-6T; Tue, 04 Mar 2025 20:26:11 -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 1tpdUw-0003TG-NE for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:35 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUu-0007Fr-9c for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:34 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43bcc85ba13so10408015e9.0 for ; Tue, 04 Mar 2025 17:24:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137870; x=1741742670; 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=RY0hKsg/QJVynR94vVsgSjWfjxRvhr7eQQRJ6wX8nKY=; b=Se5v9sxm2fB+xC8zyeWd8ccDBxBKzeBSqF8eW/MWWmis0T64YmzhPAf+LTvBleRZS+ WXhlw88rZytSja8kYkvf6NgTv8V7Il7B0BbRQYWtRITP0xj1vUUlWCX3eaurAzsWWwfJ JWl+ovaBHWrqgiE7BrRAH0AxKcmN+2IE/2NTJSZmib8Xl5cog/BIWnuX1N84hYn9WW8d zX197G/PHLr0G/nWZZKXH15K3Mtm4wnRCn4HxCStWle2sUapCnbD9bv6vilLWfNsho16 bHgcj2N0fQ3vIjqOPGQ7lFNpga2oPOLzormisWDb3Mmdi+gKj3i6i0wuwPM5uCQR8S0a K7vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137870; x=1741742670; 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=RY0hKsg/QJVynR94vVsgSjWfjxRvhr7eQQRJ6wX8nKY=; b=XHX/d69MtbSHXierSiTeVEqA8V6LxhIzb7ZZT9UpwmsaQS+HLSeC3iM6SRN55hksG3 DU/af6HGdgxEntJNPh3zG0jPRYkxGLc5OmWP91z5HtruzKnNoaXDxW0ePmqkCqjtuPmr mWcbDKh83dbRut4ZMNChvDSQPHnPOtc/aROEF4lu1SPJLOTBrxbMe1wSnGlcUzRnkR8Y iBkIVoN07WVuiQM8aXM4N8QE+nah/jK/5wqJN3nd0DtjXO9lP8l7SXuoAWogmgx5VyOX iC0Zu0faNfNlfNHu+kf7M2OTb4uS3F9kdslw5Bbw8Xe2k1M359klOZJ2s65tjDcR4O79 AdIw== X-Gm-Message-State: AOJu0YxvxgqlVzOmpowjHAA+HFSgsFnpq5ED2eeMnHv1L6QKO2tlGSGm P2anrXZogD+MpI/GOJfaSAd0CFHX3Skbxji0tKFmA6g244s7napSmAM/LG+BG9TfjVK6oXSqz25 GigQ= X-Gm-Gg: ASbGnctcMVVyeRMU3ZZGqXL42ATR76NbyTtGcx9x56MiUxgpL7m/BmA7PfWLP6i8ydo XhKBRQJyA/7h2oyXwEYeCYtbZKLt7iNJQuymF/aK9lQtoRV3kd6wrSWsHlxaXQqIrxGZYPnAGks r3/x1fgzLT62My4MJ65J+AwTo4CwbzTtRySCoSbcUntpDlrAbG6vYMYWk0Rn2y8LTpiQzMEa8R8 PFnxbQIqN1VLb3ynXoH4Wvvl4hWYFLNvjGgqp3khg6Dg0oh8aAiEGa9jDWvbIhzUeI3S17K+ieZ YXH+ZZGY7a9kZs6B3O2pqnBk7mSNoce4K3D0zy2VK1B+PeEqT4zf+gswyaTSknt9+vRFRb281UP MCfl+IUNOOaAwn90NHNg= X-Received: by 2002:a5d:6da3:0:b0:391:1d5f:4c31 with SMTP id ffacd0b85a97d-3911f757c07mr781615f8f.23.1741137870037; Tue, 04 Mar 2025 17:24:30 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd4292f0bsm2017765e9.15.2025.03.04.17.24.29 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:29 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Keoseong Park , Jeuk Kim , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 31/41] hw/ufs: Add temperature event notification support Date: Wed, 5 Mar 2025 02:21:46 +0100 Message-ID: <20250305012157.96463-32-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=philmd@linaro.org; helo=mail-wm1-x32d.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Keoseong Park This patch introduces temperature event notification support to the UFS emulation. It enables the emulated UFS device to generate temperature-related events, including high and low temperature notifications, in compliance with the UFS specification. With this feature, UFS drivers can now handle temperature exception events during testing and development within the emulated environment. This enhances validation and debugging capabilities for thermal event handling in UFS implementations. Signed-off-by: Keoseong Park Reviewed-by: Jeuk Kim Message-ID: <20250225064146epcms2p50889cb0066e2d4734f2386de325bcdf6@epcms2p5> Signed-off-by: Philippe Mathieu-Daudé --- hw/ufs/ufs.h | 2 ++ include/block/ufs.h | 13 +++++++- hw/ufs/ufs.c | 78 ++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 91 insertions(+), 2 deletions(-) diff --git a/hw/ufs/ufs.h b/hw/ufs/ufs.h index 4bcc41f53a0..3799d97f30d 100644 --- a/hw/ufs/ufs.h +++ b/hw/ufs/ufs.h @@ -146,6 +146,8 @@ typedef struct UfsHc { /* MCQ properties */ UfsSq *sq[UFS_MAX_MCQ_QNUM]; UfsCq *cq[UFS_MAX_MCQ_QNUM]; + + uint8_t temperature; } UfsHc; static inline uint32_t ufs_mcq_sq_tail(UfsHc *u, uint32_t qid) diff --git a/include/block/ufs.h b/include/block/ufs.h index 57f5ea3500c..a3ee62b027a 100644 --- a/include/block/ufs.h +++ b/include/block/ufs.h @@ -461,7 +461,7 @@ typedef struct Attributes { uint8_t psa_state; uint32_t psa_data_size; uint8_t ref_clk_gating_wait_time; - uint8_t device_case_rough_temperaure; + uint8_t device_case_rough_temperature; uint8_t device_too_high_temp_boundary; uint8_t device_too_low_temp_boundary; uint8_t throttling_status; @@ -1073,6 +1073,11 @@ enum health_desc_param { UFS_HEALTH_DESC_PARAM_LIFE_TIME_EST_B = 0x4, }; +enum { + UFS_DEV_HIGH_TEMP_NOTIF = BIT(4), + UFS_DEV_LOW_TEMP_NOTIF = BIT(5), +}; + /* WriteBooster buffer mode */ enum { UFS_WB_BUF_MODE_LU_DEDICATED = 0x0, @@ -1091,6 +1096,12 @@ enum ufs_lu_wp_type { UFS_LU_PERM_WP = 0x02, }; +/* Exception event mask values */ +enum { + MASK_EE_TOO_HIGH_TEMP = BIT(3), + MASK_EE_TOO_LOW_TEMP = BIT(4), +}; + /* UTP QUERY Transaction Specific Fields OpCode */ enum query_opcode { UFS_UPIU_QUERY_OPCODE_NOP = 0x0, diff --git a/hw/ufs/ufs.c b/hw/ufs/ufs.c index 1ccd6f88b69..857de6e9c2c 100644 --- a/hw/ufs/ufs.c +++ b/hw/ufs/ufs.c @@ -34,6 +34,11 @@ #define UFS_MAX_NUTMRS 8 #define UFS_MCQ_QCFGPTR 2 +/* Each value represents the temperature in celsius as (value - 80) */ +#define UFS_TEMPERATURE 120 +#define UFS_TOO_HIGH_TEMP_BOUNDARY 160 +#define UFS_TOO_LOW_TEMP_BOUNDARY 60 + static void ufs_exec_req(UfsRequest *req); static void ufs_clear_req(UfsRequest *req); @@ -838,6 +843,42 @@ static const MemoryRegionOps ufs_mmio_ops = { }, }; +static void ufs_update_ee_status(UfsHc *u) +{ + uint16_t ee_status = be16_to_cpu(u->attributes.exception_event_status); + uint8_t high_temp_thresh = u->attributes.device_too_high_temp_boundary; + uint8_t low_temp_thresh = u->attributes.device_too_low_temp_boundary; + + if (u->temperature >= high_temp_thresh) { + ee_status |= MASK_EE_TOO_HIGH_TEMP; + } else { + ee_status &= ~MASK_EE_TOO_HIGH_TEMP; + } + + if (u->temperature <= low_temp_thresh) { + ee_status |= MASK_EE_TOO_LOW_TEMP; + } else { + ee_status &= ~MASK_EE_TOO_LOW_TEMP; + } + + u->attributes.exception_event_status = cpu_to_be16(ee_status); +} + +static bool ufs_check_exception_event_alert(UfsHc *u, uint8_t trans_type) +{ + uint16_t ee_control = be16_to_cpu(u->attributes.exception_event_control); + uint16_t ee_status; + + if (trans_type != UFS_UPIU_TRANSACTION_RESPONSE) { + return false; + } + + ufs_update_ee_status(u); + + ee_status = be16_to_cpu(u->attributes.exception_event_status); + + return ee_control & ee_status; +} void ufs_build_upiu_header(UfsRequest *req, uint8_t trans_type, uint8_t flags, uint8_t response, uint8_t scsi_status, @@ -848,6 +889,8 @@ void ufs_build_upiu_header(UfsRequest *req, uint8_t trans_type, uint8_t flags, req->rsp_upiu.header.flags = flags; req->rsp_upiu.header.response = response; req->rsp_upiu.header.scsi_status = scsi_status; + req->rsp_upiu.header.device_inf = + ufs_check_exception_event_alert(req->hc, trans_type); req->rsp_upiu.header.data_segment_length = cpu_to_be16(data_segment_length); } @@ -1042,6 +1085,25 @@ static QueryRespCode ufs_exec_query_flag(UfsRequest *req, int op) return UFS_QUERY_RESULT_SUCCESS; } +static inline uint8_t ufs_read_device_temp(UfsHc *u) +{ + uint8_t feat_sup = u->device_desc.ufs_features_support; + bool high_temp_sup, low_temp_sup, high_temp_en, low_temp_en; + uint16_t ee_control = be16_to_cpu(u->attributes.exception_event_control); + + high_temp_sup = feat_sup & UFS_DEV_HIGH_TEMP_NOTIF; + low_temp_sup = feat_sup & UFS_DEV_LOW_TEMP_NOTIF; + high_temp_en = ee_control & MASK_EE_TOO_HIGH_TEMP; + low_temp_en = ee_control & MASK_EE_TOO_LOW_TEMP; + + if ((high_temp_sup && high_temp_en) || + (low_temp_sup && low_temp_en)) { + return u->temperature; + } + + return 0; +} + static uint32_t ufs_read_attr_value(UfsHc *u, uint8_t idn) { switch (idn) { @@ -1072,6 +1134,7 @@ static uint32_t ufs_read_attr_value(UfsHc *u, uint8_t idn) case UFS_QUERY_ATTR_IDN_EE_CONTROL: return be16_to_cpu(u->attributes.exception_event_control); case UFS_QUERY_ATTR_IDN_EE_STATUS: + ufs_update_ee_status(u); return be16_to_cpu(u->attributes.exception_event_status); case UFS_QUERY_ATTR_IDN_SECONDS_PASSED: return be32_to_cpu(u->attributes.seconds_passed); @@ -1086,7 +1149,8 @@ static uint32_t ufs_read_attr_value(UfsHc *u, uint8_t idn) case UFS_QUERY_ATTR_IDN_REF_CLK_GATING_WAIT_TIME: return u->attributes.ref_clk_gating_wait_time; case UFS_QUERY_ATTR_IDN_CASE_ROUGH_TEMP: - return u->attributes.device_case_rough_temperaure; + u->attributes.device_case_rough_temperature = ufs_read_device_temp(u); + return u->attributes.device_case_rough_temperature; case UFS_QUERY_ATTR_IDN_HIGH_TEMP_BOUND: return u->attributes.device_too_high_temp_boundary; case UFS_QUERY_ATTR_IDN_LOW_TEMP_BOUND: @@ -1677,8 +1741,12 @@ static void ufs_init_hc(UfsHc *u) u->device_desc.ud_0_base_offset = 0x16; u->device_desc.ud_config_p_length = 0x1A; u->device_desc.device_rtt_cap = 0x02; + u->device_desc.ufs_features_support = UFS_DEV_HIGH_TEMP_NOTIF | + UFS_DEV_LOW_TEMP_NOTIF; u->device_desc.queue_depth = u->params.nutrs; u->device_desc.product_revision_level = 0x04; + u->device_desc.extended_ufs_features_support = + cpu_to_be32(UFS_DEV_HIGH_TEMP_NOTIF | UFS_DEV_LOW_TEMP_NOTIF); memset(&u->geometry_desc, 0, sizeof(GeometryDescriptor)); u->geometry_desc.length = sizeof(GeometryDescriptor); @@ -1702,9 +1770,17 @@ static void ufs_init_hc(UfsHc *u) /* configure descriptor is not supported */ u->attributes.config_descr_lock = 0x01; u->attributes.max_num_of_rtt = 0x02; + u->attributes.device_too_high_temp_boundary = UFS_TOO_HIGH_TEMP_BOUNDARY; + u->attributes.device_too_low_temp_boundary = UFS_TOO_LOW_TEMP_BOUNDARY; memset(&u->flags, 0, sizeof(u->flags)); u->flags.permanently_disable_fw_update = 1; + + /* + * The temperature value is fixed to UFS_TEMPERATURE and does not change + * dynamically + */ + u->temperature = UFS_TEMPERATURE; } static void ufs_realize(PCIDevice *pci_dev, Error **errp) From patchwork Wed Mar 5 01:21:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870540 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp553902wrg; Tue, 4 Mar 2025 17:35:12 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWrLcMBX/WNHT8Mba1YaDts53iF/mZJOq5MJOV+liN22M4Q1fqGDKsb7jMYEfo3XzDFQ+3R1Q==@linaro.org X-Google-Smtp-Source: AGHT+IETZuhRl/5FnEHQYYEqSS+7TzsKAjsDLVjM8CLoTo5j91R41KwBgo14nH+ay6feslEqnvMH X-Received: by 2002:a05:6214:2342:b0:6d8:99cf:d2db with SMTP id 6a1803df08f44-6e8e6dd4008mr24185936d6.38.1741138512144; Tue, 04 Mar 2025 17:35:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138512; cv=none; d=google.com; s=arc-20240605; b=PCilFyCcnak3LQzkS8mKTPNfOUklV5v/6glmqZfxdBQA4ozoebNo2HaB80vKPrRWTp 7uI0lvvSGNCRNEl0QFr75PSsFfL+AZ05ksa0r01HCAl/Aynp6p/pCLxRZWrha/+9eYVe g8m8h+CULtZLDG+ePhfrqqDQPvRQk7zU0PbfdYbsL2fr9V+UPVKExmJXFF6XMbqwPEbk YEb5a6KFSvQINQSZd8v2zTQEubmsB2f0Wzvnzc3pf1s3yFiamtKkSG18q/qgvE2c2p+j qN/PTZdtZmkRK0SEApmoVsLteZTfvkbiDluTZRUjQ0jB1hEiM04mb17PsGMxGBbAhGCt Q5Zw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=1mWnfHltEj6tHRnPRGRMEHYizLDHaaGta9SL21+nd1o=; fh=O1bXGTXgrMlY1N6/8vNlXOgE4Ir1rMYTYlGmJOCwhxY=; b=BXQXCGMCYRqxv5Tqg2wJ/MDygyDdq2oU1RdlvznMY6zbmzYvugQLIoRfwu9lc8Q9D0 Qbx/9rWqaFSMGfZIPrzfkaOvoAptgaS+iFIIXnuRcLo3o7QMFRxpAvUBh72rUNOBvMd2 YNrZgofPL8oFlIP5qpWuPsaK0CR1cp721y4xVHc+dBMemIDTiLS38b9QUUcMYNzwFZE1 7sFzhZHnYLLIDpRQ0WGmQe5e8GtVX9r7EqXK7Fh/EoqYDJWdKjRwt+GDNE3YFuftTk3e Dt3wSW2JGet36y9j4CPVXo17Evt8PHG/JA5vleCVqrg6o0lHRK0+dxQ0GrdPrDLhXzzV 5b2A==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="hc/LkIRU"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id 6a1803df08f44-6e8975e7d76si117409016d6.97.2025.03.04.17.35.12 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:35:12 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="hc/LkIRU"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdXA-0008L5-Sd; Tue, 04 Mar 2025 20:26:53 -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 1tpdV0-0003lD-L1 for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:38 -0500 Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdUy-0007GR-FL for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:38 -0500 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-43bc0b8520cso18285865e9.1 for ; Tue, 04 Mar 2025 17:24:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137874; x=1741742674; 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=1mWnfHltEj6tHRnPRGRMEHYizLDHaaGta9SL21+nd1o=; b=hc/LkIRUATJSRI49wJ2RBhflEIAKYAB7myCjrhabHKx/Uw4g5TX9DGd/uQeC3oWcJz 3u+OQsEo9lycpw+1R+0nbExp+dbeHHNnPMQZWioAgBTvN3SUgQNq47uqpW7QZN7ez31w plMZuWtQkCorpCotRyKJXGtq1cmRl+sGIj+DdueaQzMvFflIFnrpXTY0nRuy/Q17Jb9R w1aLfR7SvHdjEjq8Vju/B3FiQlQGL0zpbQcf36w5W0QlVnJ39wU8Sj9YgChV96c2Ibdw /XANeIw8OitxcRywjUdnA7Dd2BLz47dE0nO67+HNmXsN39TlVl2qvQRa4CqDjFiRnTAo 2spA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137874; x=1741742674; 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=1mWnfHltEj6tHRnPRGRMEHYizLDHaaGta9SL21+nd1o=; b=kF1LseIIktEfLe8eHWJgrmR717O2XaAI0qLadOxiCbsV5pyiTAHuDrcsl/zNNEA+dh 1g87pnBrk58Eai49n+Ck1pb132Mro8aUSKOLjqna6npADAhIQ0wkj+L8Fv9yFa6V+lqL fzfXO8vjqc4zuBbDGkf1nVKNCQ3tbGLC3qEGyxKgN3X2PnWvWGgTd+J0dlfwxMGnkyEx mXkERBm10FI1QRLrGAUnujUa3I1FfpKkbf9RJUT9PbZc7xdSZr6bwUnhWZWjRU6Ew8xs ysyF3LkbLTOwENLniMElSwjmRODYKSSVbxONRsd09sfToQK+uwA/xa1qkPlI/5QrwyHl fe1w== X-Gm-Message-State: AOJu0YweaJUAfBCWd2a3NlrKkT6oYp34sntAFO4flwWZ3/A515c7QrpB 1NC5rBeGOGKvslUpz/juRhhg67lMxTe4HgGCEG6ELPl0tWgVIWfcU8l/rxxsCgDuwnqJhaTjZUD vVwo= X-Gm-Gg: ASbGncu1J0LD2uihG/yH3oM/mNkqLkW72dCk9D8+g+fWqSk94KpgMdwQcspXw4/DXRY osWDXWMDKln12Qa4haDkWzX+SlH7Rk+TSYmPa5rFKq7EJTHg+ni1hOy+sRBybnbmfvN3LxP6+ai 7ow1JpplNJFuBenf1ZCIsvNEz2G2yDYwRv3FB5+S4hVTjRCnq1c1K/hCs5YQ2suzW5NOT2seC8a 56Jff0+Qcn025trtArQv4c5pa0hEUHjhMrjRNqUlyjqSjyVlmUFngA+GUTYGpuoxyOQkJEZaUaA htOhyXLaUyL+WRDONDb7O7qoH7WQZCgwbL+VJRY0A8zL/A1ZH9VCf6AuMecW/6dSOszWSlbTfRJ c9LjF1lhwgoRyIdBNqKM= X-Received: by 2002:a5d:56c7:0:b0:390:f55b:baa4 with SMTP id ffacd0b85a97d-3911f7c3383mr449324f8f.42.1741137874653; Tue, 04 Mar 2025 17:24:34 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4795983sm19152823f8f.6.2025.03.04.17.24.33 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:34 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Keoseong Park , Fabiano Rosas , Jeuk Kim , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= Subject: [PULL 32/41] tests/qtest/ufs-test: Add test code for the temperature feature Date: Wed, 5 Mar 2025 02:21:47 +0100 Message-ID: <20250305012157.96463-33-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::330; envelope-from=philmd@linaro.org; helo=mail-wm1-x330.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Keoseong Park This commit adds tests to verify the correctness of query attribute results related to the temperature feature. It ensures that querying temperature attributes returns expected values. Signed-off-by: Keoseong Park Acked-by: Fabiano Rosas Reviewed-by: Jeuk Kim Message-ID: <20250225064243epcms2p8b7b59e7bf381bd68d30a6f59b40dea9f@epcms2p8> Signed-off-by: Philippe Mathieu-Daudé --- tests/qtest/ufs-test.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tests/qtest/ufs-test.c b/tests/qtest/ufs-test.c index d5076bdeb54..4867ccf08a1 100644 --- a/tests/qtest/ufs-test.c +++ b/tests/qtest/ufs-test.c @@ -784,6 +784,30 @@ static void ufstest_query_attr_request(void *obj, void *data, g_assert_cmpuint(rsp_upiu.header.response, ==, UFS_COMMAND_RESULT_SUCCESS); g_assert_cmpuint(rsp_upiu.qr.value, ==, cpu_to_be32(0x00)); + ocs = ufs_send_query(ufs, UFS_UPIU_QUERY_FUNC_STANDARD_READ_REQUEST, + UFS_UPIU_QUERY_OPCODE_READ_ATTR, + UFS_QUERY_ATTR_IDN_CASE_ROUGH_TEMP, 0, 0, 0, + &rsp_upiu); + g_assert_cmpuint(ocs, ==, UFS_OCS_SUCCESS); + g_assert_cmpuint(rsp_upiu.header.response, ==, UFS_COMMAND_RESULT_SUCCESS); + g_assert_cmpuint(rsp_upiu.qr.value, ==, cpu_to_be32(0x00)); + + ocs = ufs_send_query(ufs, UFS_UPIU_QUERY_FUNC_STANDARD_READ_REQUEST, + UFS_UPIU_QUERY_OPCODE_READ_ATTR, + UFS_QUERY_ATTR_IDN_HIGH_TEMP_BOUND, 0, 0, 0, + &rsp_upiu); + g_assert_cmpuint(ocs, ==, UFS_OCS_SUCCESS); + g_assert_cmpuint(rsp_upiu.header.response, ==, UFS_COMMAND_RESULT_SUCCESS); + g_assert_cmpuint(rsp_upiu.qr.value, ==, cpu_to_be32(160)); + + ocs = ufs_send_query(ufs, UFS_UPIU_QUERY_FUNC_STANDARD_READ_REQUEST, + UFS_UPIU_QUERY_OPCODE_READ_ATTR, + UFS_QUERY_ATTR_IDN_LOW_TEMP_BOUND, 0, 0, 0, + &rsp_upiu); + g_assert_cmpuint(ocs, ==, UFS_OCS_SUCCESS); + g_assert_cmpuint(rsp_upiu.header.response, ==, UFS_COMMAND_RESULT_SUCCESS); + g_assert_cmpuint(rsp_upiu.qr.value, ==, cpu_to_be32(60)); + /* Write Writable Attributes & Read Again */ ocs = ufs_send_query(ufs, UFS_UPIU_QUERY_FUNC_STANDARD_WRITE_REQUEST, UFS_UPIU_QUERY_OPCODE_WRITE_ATTR, From patchwork Wed Mar 5 01:21:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870529 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552085wrg; Tue, 4 Mar 2025 17:29:21 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWk1nI540gR2iwy4zggLYR7cSt8IYVBC3F/ReojtMrUqw8M8qFVKVyVfVbWztwi+ODN3lD1Iw==@linaro.org X-Google-Smtp-Source: AGHT+IFAe4w7b0Z7cvLiMySI7g4qOzZDYLpOvF23rQkvQCcH5UzVYCo57JYOS1zp75NJESdqBUDt X-Received: by 2002:a05:620a:1b90:b0:7c3:d86d:94a with SMTP id af79cd13be357-7c3d8e558c2mr267417385a.43.1741138161587; Tue, 04 Mar 2025 17:29:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138161; cv=none; d=google.com; s=arc-20240605; b=ONRlakmSTUgkKL9AA2g52Vk7CmUggv1ygjqA60f+o/BadsYyAj4ui6zS2nEyLnkmIt 45Ek45jqRHc8/Wf6DAjV50DgKmgGI61E3axayaTHvjCf3FGYsD+o5dNQBgcIe+eZmPNF 9A20pjlqZoG+S+x3W5t33cj5wgNC4+ue0mVQ4ZLCdPF9pwsLo2uY/64gUFpUVwnJyxqT J0lIXUK9rSh17I2MMmcnMOOYZgH0uacNwR2C//UcHUZLS34MWdgWZL+47imDnlJ/Tk1k JnK6db/qULHSKaZj30/AkL+PF/dxZMtnrrWLz7sqAp3fRQnpxZOEAf7ZcmYVY8kZWdJX hchA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=uSWq8OG1UJ3+TSUQoJxemZJrVqGEUCcwykT7a0JIQRg=; fh=hrttvYDQ/RHeq9ZPl6fx8GLJN/+EeLQ90pmG86Kf6FU=; b=J3NsWoOvHxTRPt/VRyUoljGa+Xl2LLpnUVd0KozgQIratOduaPJlBJiy1VjLZ519Ve VVO47Y++njspRSwrMmUBpdiLHD0xf1/H4+K6ffnxbWtZ6gh8LW6cjEV23Z71GEGjBhWu 8EVnT2fkKFIvtkB6aR7bdkHLDcFqIGOdl4KmIuWEiO1Ep5+i5Esp2rLpQdNm/f37BexN bXfiezb1NwLt+90GKAR+7LYVD7UjhV4Tr728bJ9UXH/EwVi3bmI2O/7h/IfdKfBtjiXR F8fCgJeKA+8h9G1WVTZOpFcYs1SBJBrTMgO2ORx14cNkv2j8xj67ZdOGrMnl7Tn52sKY cMGA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=WFxCohIR; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3c711f726si370004685a.418.2025.03.04.17.29.21 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:29:21 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=WFxCohIR; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdX3-0007kd-Qc; Tue, 04 Mar 2025 20:26:46 -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 1tpdV5-00047S-Sp for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:47 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdV3-0007HI-Qw for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:43 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-390cf7458f5so5799657f8f.2 for ; Tue, 04 Mar 2025 17:24:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137880; x=1741742680; 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=uSWq8OG1UJ3+TSUQoJxemZJrVqGEUCcwykT7a0JIQRg=; b=WFxCohIRaRdVAQHNJBEeEMHs8j2N1qAySc2y1z9aOAstpHGcQZtL3Ju+B/gQ+NRYLr GEh5dttlhtSX+jV2hA6j+B9s8U3hv28+jyNU9DIJlctiOJxchbRkwWGuSneZNcVuikij hJ9ih8lvYtKUJtibiwCg2avBYctzfJ2ssZfGrnxQpEP71Jxd0gIoPGigJl2Bvk7O44zJ 3QoWSmhWksqGsaiSm8+IPfaeakaG7EMdi/prGEouDUqF9UnqWJMzxkAtBtHcZtVRhdRQ W4D9KAHLd6hHtkS8BtQi2m0OBZv0iI5Y5a49mO4B55zUIzHG3sKhyRLL3LMmaWwDdpEg Zx0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137880; x=1741742680; 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=uSWq8OG1UJ3+TSUQoJxemZJrVqGEUCcwykT7a0JIQRg=; b=CdTXGn4FUdaWsPSkNyWyt5UKDFWWWCzqTrdsN59eDsG5Uh8aVrt1mNHhEfnUEzfYIg J7w59huGS962/TvffIMJGe5JbN7c7WedxdCKOxikSG2NBfSfU3VyTHA02R1bKNkMWJTg HgzYbYIH9QZ+AVAzm4LHy7Fyyoh79ZHiX3pRRom6ZH18wOmhSn31dYH8UGSKYsxNkpSz n9TONh7FFCiJuofSIQq6vw0PdABFUc0dZjVgo36mYlR9JfHrrkGG6n5n5qkmM6L176X3 dFV4iaKcCoUO4I/rwFAepsU+letV5zIJP+2YbO6suKc9IL7im5PWG8sn60Ctz4YFbZi3 nFxg== X-Gm-Message-State: AOJu0Yx/lfLozwPS/KV7WqpPBQr8TN0ipy45nlS2jaXaLCH0t42J9ih1 XqIm+eZSYiwnqADyoRK8U4KF4O6stjWZCAOosNstasN4nnEtrrjkwKDE7BHI4mCXeifztvcG8N6 RMYk= X-Gm-Gg: ASbGnctbIuExWCa0EDWLuxyzJ704zHNJ0v2f4H8gTbRbIauhhRmmuAbmBavdXd/TtCR Uji+/v1B9aSsnka/zSj4+Vc4zHFnED+xngZYYuw6RK1Nh9eDHhqrBJR/MNiUt7s/aa8aAFwQsIc 4YLede25j132zSH8CpueJmv+LmjkNkoe9Pvij8MRYXkZGXIiceP4YnZtghzEUVXLXXv4x8p8oQ5 LQtNP+KWXlleTSjjnhuP+ldaRkmOIy/6leqY9FKm7gb7m/HqqSwa8V8Ux1t05w1pRwZ9f8tWjgw gDMtZrWlpOnBZl15lduky88x+1BZmGOAZHN3oUtdgYoelqqjb6rg2Hu46d2TUjy8b17ib4rQo2Q MXX6dKi7UXkiEW59vCmI= X-Received: by 2002:a05:6000:401f:b0:391:4f9:a048 with SMTP id ffacd0b85a97d-3911f724a16mr570929f8f.4.1741137879989; Tue, 04 Mar 2025 17:24:39 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd4292144sm2027895e9.13.2025.03.04.17.24.38 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:39 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 33/41] hw/arm/omap1: Convert raw printfs to qemu_log_mask() Date: Wed, 5 Mar 2025 02:21:48 +0100 Message-ID: <20250305012157.96463-34-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42b; envelope-from=philmd@linaro.org; helo=mail-wr1-x42b.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell omap1.c is very old code, and it contains numerous calls direct to printf() for various error and information cases. In this commit, convert the printf() calls that are for either guest error or unimplemented functionality to qemu_log_mask() calls. This leaves the printf() calls that are informative or which are ifdeffed-out debug statements untouched. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250227170117.1726895-2-peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/omap1.c | 48 +++++++++++++++++++++++++++++++----------------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index ca2eb0d1576..3c0ce5e0979 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -2559,8 +2559,9 @@ static void omap_rtc_interrupts_update(struct omap_rtc_s *s) static void omap_rtc_alarm_update(struct omap_rtc_s *s) { s->alarm_ti = mktimegm(&s->alarm_tm); - if (s->alarm_ti == -1) - printf("%s: conversion failed\n", __func__); + if (s->alarm_ti == -1) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: conversion failed\n", __func__); + } } static uint64_t omap_rtc_read(void *opaque, hwaddr addr, unsigned size) @@ -3024,8 +3025,9 @@ static void omap_mcbsp_source_tick(void *opaque) if (!s->rx_rate) return; - if (s->rx_req) - printf("%s: Rx FIFO overrun\n", __func__); + if (s->rx_req) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Rx FIFO overrun\n", __func__); + } s->rx_req = s->rx_rate << bps[(s->rcr[0] >> 5) & 7]; @@ -3070,8 +3072,9 @@ static void omap_mcbsp_sink_tick(void *opaque) if (!s->tx_rate) return; - if (s->tx_req) - printf("%s: Tx FIFO underrun\n", __func__); + if (s->tx_req) { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Tx FIFO underrun\n", __func__); + } s->tx_req = s->tx_rate << bps[(s->xcr[0] >> 5) & 7]; @@ -3173,7 +3176,7 @@ static uint64_t omap_mcbsp_read(void *opaque, hwaddr addr, /* Fall through. */ case 0x02: /* DRR1 */ if (s->rx_req < 2) { - printf("%s: Rx FIFO underrun\n", __func__); + qemu_log_mask(LOG_GUEST_ERROR, "%s: Rx FIFO underrun\n", __func__); omap_mcbsp_rx_done(s); } else { s->tx_req -= 2; @@ -3278,8 +3281,9 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr addr, } if (s->tx_req < 2) omap_mcbsp_tx_done(s); - } else - printf("%s: Tx FIFO overrun\n", __func__); + } else { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Tx FIFO overrun\n", __func__); + } return; case 0x08: /* SPCR2 */ @@ -3293,8 +3297,11 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr addr, case 0x0a: /* SPCR1 */ s->spcr[0] &= 0x0006; s->spcr[0] |= 0xf8f9 & value; - if (value & (1 << 15)) /* DLB */ - printf("%s: Digital Loopback mode enable attempt\n", __func__); + if (value & (1 << 15)) { /* DLB */ + qemu_log_mask(LOG_UNIMP, + "%s: Digital Loopback mode enable attempt\n", + __func__); + } if (~value & 1) { /* RRST */ s->spcr[0] &= ~6; s->rx_req = 0; @@ -3325,13 +3332,19 @@ static void omap_mcbsp_writeh(void *opaque, hwaddr addr, return; case 0x18: /* MCR2 */ s->mcr[1] = value & 0x03e3; - if (value & 3) /* XMCM */ - printf("%s: Tx channel selection mode enable attempt\n", __func__); + if (value & 3) { /* XMCM */ + qemu_log_mask(LOG_UNIMP, + "%s: Tx channel selection mode enable attempt\n", + __func__); + } return; case 0x1a: /* MCR1 */ s->mcr[0] = value & 0x03e1; - if (value & 1) /* RMCM */ - printf("%s: Rx channel selection mode enable attempt\n", __func__); + if (value & 1) { /* RMCM */ + qemu_log_mask(LOG_UNIMP, + "%s: Rx channel selection mode enable attempt\n", + __func__); + } return; case 0x1c: /* RCERA */ s->rcer[0] = value & 0xffff; @@ -3412,8 +3425,9 @@ static void omap_mcbsp_writew(void *opaque, hwaddr addr, } if (s->tx_req < 4) omap_mcbsp_tx_done(s); - } else - printf("%s: Tx FIFO overrun\n", __func__); + } else { + qemu_log_mask(LOG_GUEST_ERROR, "%s: Tx FIFO overrun\n", __func__); + } return; } From patchwork Wed Mar 5 01:21:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870539 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp553252wrg; Tue, 4 Mar 2025 17:32:55 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXetd8qq8JveSaqILcLTuKB6kS0EBHLEJU2UbMhnmHTERr6s+5wHwMYHovxze5RV7VMCXWj/Q==@linaro.org X-Google-Smtp-Source: AGHT+IFow38LtMVhD8B7ElQdCf64dRJ3tJvyXpmQMfpAiNkSujaGHGXlMkoKhs6dx4uH/xLtL3SM X-Received: by 2002:ac8:5f14:0:b0:474:fbb4:8f7c with SMTP id d75a77b69052e-4750af6f3d6mr25328401cf.11.1741138375427; Tue, 04 Mar 2025 17:32:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138375; cv=none; d=google.com; s=arc-20240605; b=TtGLFe+3rl8lSCNL4Ax12/H+3gMChcDCD1zwSMnm1pf87PkhpfF2MSR/m/GCbw6vKR 44VIuLF15bEOKRmjWn3JgPaD6ZWyXnaChYkGc8D8tGAlFuL20TrRhxUNBYqurKJws9UT WxNqOeYbmmjGPEjY5mwCl4eO7oOtI37vZzUadeeBQ4tEGowcreeZhOppc9IQH9KHaHiI aDWZw6zp2UfszS+V1NfigGlT0KkLpOU0peymrnW+tJufu81nmgMNucIPOJALBRqs2nO2 b+Bj1vR+JtJ+bm6SAzeqoqiRH+PsJygcWZeTa64+oBuTO2lhC2isLs2ktdrVVXG3oh2H 7V8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=vsB2TZLz8IJAYUss30F4SD873ZK7oobvrmd57J9F3o0=; fh=hrttvYDQ/RHeq9ZPl6fx8GLJN/+EeLQ90pmG86Kf6FU=; b=L1X+LSB76+aaU8I8mTfkN2yS7D56NUMENUGjaZ3yQLHjjuYWZUOCWsYSwjPB2bboOm gOEWs1R5whzSfom1+ky3A8vrblf8KJPp8cJfoWQmMnaM/wPCqbdtWRHU/wSwOelqptHs RQYcussvhj0U8JEcpB3GhjYcBpt2tJFpB/ZLa2RH3Dl2PP0BJP3N2TCCgjftxR+mTHnn /+O/79h4W9dkKd8FHBCsof4IOp400lc6MmXQLjv45e9gafarLnDN3vnZzjOMz5PjU5S/ hPf7Kdw7qMQ2sLFPUrKjDjAyWDpOnmUXZ1IPuHsodfPhIAAZZAW186dPA/qtwiszfwLV STuA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=d9EBc4M7; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474ee147b39si45769911cf.133.2025.03.04.17.32.55 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:32:55 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=d9EBc4M7; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWp-0006IS-1k; Tue, 04 Mar 2025 20:26:31 -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 1tpdVC-0004Dv-5o for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:51 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdV8-0007I5-Ae for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:48 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-439a4fc2d65so66719755e9.3 for ; Tue, 04 Mar 2025 17:24:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137884; x=1741742684; 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=vsB2TZLz8IJAYUss30F4SD873ZK7oobvrmd57J9F3o0=; b=d9EBc4M7DtdnX5/ouPG6Hv8NEZttA3tFYjeIBH8By2eqq2Ra2oDAacct+xHPxuJBtd rxAXOnw338au/rq7PawSmKqghl+EkOYFfck2CtrXoTnbSgqvaPUUC74qMIE4ZhRc1Xpc 3ejC1PSzJBUn2Grbkk4x2jXYm+9A1/EZJcq/Pr748W+IM/qkhY233cQEYtMLxKm/0CLW AeHg/ewbJ4FHOOg+GSfWQhO64IO8EG5d3711lUhQhdaPH1Rzi10fF6P0LEdIOEsCBXFF yNrLqrCePQZ0/t5C08NzXZUy7Xtpg3Eh1MBwyC1urX5oB0Mkl561tFyZzQv8uMMKynYZ VO0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137884; x=1741742684; 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=vsB2TZLz8IJAYUss30F4SD873ZK7oobvrmd57J9F3o0=; b=PI3JXkfEffI5PA6p8xlaHexr5ccfZhUhxRLtPdFAexz33ELG31HCE8ps51XNnKJXej uK0Pq4PArRcSnabZxD47MA8TkKjP44Bf+ZhevL1Bmxs3jGyVXhVulGHy9zwf3LxcGYXA 72UBP1Rg4je9O0XY0MTVMNfbG29EkKYn3wSBH4ilq2M07VTDbAZK4zJVmQGbvvRsX40E VDpHK5K+iZmUKxRBe1CmUe8K2wP2FaIFudkqMWr+swnLk1MIUiUFHXZLdS7o8JLRz0YS e7HsmEHvc7t/Zn3xx4LIjzBfVOiXbUF27NvIlXTUDvLEhEXD6rLMn4ECOnZkqfJIZNCd vlMg== X-Gm-Message-State: AOJu0YyuCaR5hiEVFAvkOFtp5FVIFvbfyYLind+ZtmEjOX7Xc3L/FqI3 1ctyJNU41+Tr5ZZujEVeauahMwUyQ8h+wBsOYZwbM3xJ3PO3gixBIQ0KM0twIsR4OBTmm9/c/7F /BOg= X-Gm-Gg: ASbGnctTi7vBCWiV+Hdwvsja/40HvItJ0sIqF5Dr6a2jsCrLdihGRnHduFGgZJl1Dnt w+Vw+p+aF5g0DaaHwnJ83Ns7552zvxjE7mT7y3EsAHg/U/hQfZZRGqIvIMvTgV7mlsmXS7FRlGQ CF1UuYlJODjBhbhDweTDT8n7xsHR9k6Hg2awaQIDimPqYyFhYsTrbYlabBxlQCQrHf5XfTYiPRi Piz3y6TFXAVa2CKF/DBzqeqqrXVSWro93mO9ZWkOzJ+PVG8peEOsPPbZn0MOn0bjLkFBXzbp3El dKNgyb+6EnsCC9FKy9KRyks0sgjSaKfSxtPfIeig7o2PVOVgH5FyNXboLTgUhj/CMjSwoYgre8L bMiHqWO6mwtYDV0/r19o= X-Received: by 2002:a05:600c:458c:b0:439:9424:1b70 with SMTP id 5b1f17b1804b1-43bd29e0456mr7645145e9.30.1741137884655; Tue, 04 Mar 2025 17:24:44 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd42b7478sm2005795e9.17.2025.03.04.17.24.43 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:44 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 34/41] hw/arm/omap1: Drop ALMDEBUG ifdeffed out code Date: Wed, 5 Mar 2025 02:21:49 +0100 Message-ID: <20250305012157.96463-35-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=philmd@linaro.org; helo=mail-wm1-x32d.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell In omap1.c, there are some debug printfs in the omap_rtc_write() function that are guardad by ifdef ALMDEBUG. ALMDEBUG is never set, so this is all dead code. It's not worth the effort of converting all of these to tracepoints; a modern tracepoint approach would probably have a single tracepoint covering all the register writes anyway. Just delete the printf()s. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250227170117.1726895-3-peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/omap1.c | 51 -------------------------------------------------- 1 file changed, 51 deletions(-) diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index 3c0ce5e0979..8f5bb81c96a 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -2660,25 +2660,16 @@ static void omap_rtc_write(void *opaque, hwaddr addr, switch (offset) { case 0x00: /* SECONDS_REG */ -#ifdef ALMDEBUG - printf("RTC SEC_REG <-- %02x\n", value); -#endif s->ti -= s->current_tm.tm_sec; s->ti += from_bcd(value); return; case 0x04: /* MINUTES_REG */ -#ifdef ALMDEBUG - printf("RTC MIN_REG <-- %02x\n", value); -#endif s->ti -= s->current_tm.tm_min * 60; s->ti += from_bcd(value) * 60; return; case 0x08: /* HOURS_REG */ -#ifdef ALMDEBUG - printf("RTC HRS_REG <-- %02x\n", value); -#endif s->ti -= s->current_tm.tm_hour * 3600; if (s->pm_am) { s->ti += (from_bcd(value & 0x3f) & 12) * 3600; @@ -2688,17 +2679,11 @@ static void omap_rtc_write(void *opaque, hwaddr addr, return; case 0x0c: /* DAYS_REG */ -#ifdef ALMDEBUG - printf("RTC DAY_REG <-- %02x\n", value); -#endif s->ti -= s->current_tm.tm_mday * 86400; s->ti += from_bcd(value) * 86400; return; case 0x10: /* MONTHS_REG */ -#ifdef ALMDEBUG - printf("RTC MTH_REG <-- %02x\n", value); -#endif memcpy(&new_tm, &s->current_tm, sizeof(new_tm)); new_tm.tm_mon = from_bcd(value); ti[0] = mktimegm(&s->current_tm); @@ -2715,9 +2700,6 @@ static void omap_rtc_write(void *opaque, hwaddr addr, return; case 0x14: /* YEARS_REG */ -#ifdef ALMDEBUG - printf("RTC YRS_REG <-- %02x\n", value); -#endif memcpy(&new_tm, &s->current_tm, sizeof(new_tm)); new_tm.tm_year += from_bcd(value) - (new_tm.tm_year % 100); ti[0] = mktimegm(&s->current_tm); @@ -2737,25 +2719,16 @@ static void omap_rtc_write(void *opaque, hwaddr addr, return; /* Ignored */ case 0x20: /* ALARM_SECONDS_REG */ -#ifdef ALMDEBUG - printf("ALM SEC_REG <-- %02x\n", value); -#endif s->alarm_tm.tm_sec = from_bcd(value); omap_rtc_alarm_update(s); return; case 0x24: /* ALARM_MINUTES_REG */ -#ifdef ALMDEBUG - printf("ALM MIN_REG <-- %02x\n", value); -#endif s->alarm_tm.tm_min = from_bcd(value); omap_rtc_alarm_update(s); return; case 0x28: /* ALARM_HOURS_REG */ -#ifdef ALMDEBUG - printf("ALM HRS_REG <-- %02x\n", value); -#endif if (s->pm_am) s->alarm_tm.tm_hour = ((from_bcd(value & 0x3f)) % 12) + @@ -2766,33 +2739,21 @@ static void omap_rtc_write(void *opaque, hwaddr addr, return; case 0x2c: /* ALARM_DAYS_REG */ -#ifdef ALMDEBUG - printf("ALM DAY_REG <-- %02x\n", value); -#endif s->alarm_tm.tm_mday = from_bcd(value); omap_rtc_alarm_update(s); return; case 0x30: /* ALARM_MONTHS_REG */ -#ifdef ALMDEBUG - printf("ALM MON_REG <-- %02x\n", value); -#endif s->alarm_tm.tm_mon = from_bcd(value); omap_rtc_alarm_update(s); return; case 0x34: /* ALARM_YEARS_REG */ -#ifdef ALMDEBUG - printf("ALM YRS_REG <-- %02x\n", value); -#endif s->alarm_tm.tm_year = from_bcd(value); omap_rtc_alarm_update(s); return; case 0x40: /* RTC_CTRL_REG */ -#ifdef ALMDEBUG - printf("RTC CONTROL <-- %02x\n", value); -#endif s->pm_am = (value >> 3) & 1; s->auto_comp = (value >> 2) & 1; s->round = (value >> 1) & 1; @@ -2802,32 +2763,20 @@ static void omap_rtc_write(void *opaque, hwaddr addr, return; case 0x44: /* RTC_STATUS_REG */ -#ifdef ALMDEBUG - printf("RTC STATUSL <-- %02x\n", value); -#endif s->status &= ~((value & 0xc0) ^ 0x80); omap_rtc_interrupts_update(s); return; case 0x48: /* RTC_INTERRUPTS_REG */ -#ifdef ALMDEBUG - printf("RTC INTRS <-- %02x\n", value); -#endif s->interrupts = value; return; case 0x4c: /* RTC_COMP_LSB_REG */ -#ifdef ALMDEBUG - printf("RTC COMPLSB <-- %02x\n", value); -#endif s->comp_reg &= 0xff00; s->comp_reg |= 0x00ff & value; return; case 0x50: /* RTC_COMP_MSB_REG */ -#ifdef ALMDEBUG - printf("RTC COMPMSB <-- %02x\n", value); -#endif s->comp_reg &= 0x00ff; s->comp_reg |= 0xff00 & (value << 8); return; From patchwork Wed Mar 5 01:21:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870527 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552078wrg; Tue, 4 Mar 2025 17:29:21 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVY2FjSgiwrufAGap1Drcf5fqntVAnrGKrkXDW2e1GzDc8kIQqQdXo0qK2pV760bYkkW2G1kQ==@linaro.org X-Google-Smtp-Source: AGHT+IEyMVwrd96md1+9cR5GAbCbpWKMycyzLp0J2l8/xwtEhuDLFFk2gdqviCLMDIYa9COQKVjk X-Received: by 2002:ac8:5753:0:b0:474:fcb8:415 with SMTP id d75a77b69052e-4750b4b6499mr17928541cf.35.1741138160773; Tue, 04 Mar 2025 17:29:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138160; cv=none; d=google.com; s=arc-20240605; b=Hcybz+7xUkCliyMRyQ043+9RUbgob65NGQuoEjIVA1ct/MMBjPHawN7HMOawq5qTxs NGkgpm6+neLdJy4SWB/mMMcpXK9fabKIH+bAgE/kpPEMVrbH+Isok/bOOv3JsAhm/Li9 dZfOqofkTCAYextEwZ77LLW6UtR+1QkpbWyr9kYDXp1oU2cJtUZ7t9twByCdECVfG74v QY5a3rbD+DwUmqTNZnSnN757+t5+uY0h/u9C4R3kDapUuEnjXsXlaUSjNTJTpflfmCxL BcZwPt7oVGMtA6nxABak+i/KddfZhy6X6hQygeDeiZe5ljUTXvqRYlwT+zS3o/Gbna8u NFKg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=Set2sfoFc3dje2IS5PbM9swfOV79jqC6rF+zotZwAM0=; fh=hrttvYDQ/RHeq9ZPl6fx8GLJN/+EeLQ90pmG86Kf6FU=; b=jYSBqIKveS+zH4INApTmdrG8FAGfrFrfU/REkTIMLbw8tfeVarHx+khQCcXOlsrVcE 99ON0tWWgrpBzrWXKYo5zafpff7n/eNZZG+jVAqVQnGPnuQwpUt/7tVLyYnsjYwr95Al q/omif+IGWLmygauXKhzOTWM3pBXYWMVmQ4yOIFGA2aUDW1e4zjbKmaSk5Zo/Nw8XUg7 yALv5oZzK9fX+Q2ALFjm5j1z6XNegSJvei7dVkNfcf8zmj9Knr/o+d/45lGp0DSi1DrB uo5F6fT0rqycW68QbDkXZZ8xTkGus3A5ukeGSfZ3YUOlqG45KQX3pykPrc1QOHdXHIWO 3uuA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZIDpw2OQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474dfc6cabesi59149601cf.560.2025.03.04.17.29.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:29:20 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=ZIDpw2OQ; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWj-0005ue-JP; Tue, 04 Mar 2025 20:26:25 -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 1tpdVG-0004FP-3T for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:54 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdVD-0007Ii-6W for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:52 -0500 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-43995b907cfso40277125e9.3 for ; Tue, 04 Mar 2025 17:24:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137889; x=1741742689; 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=Set2sfoFc3dje2IS5PbM9swfOV79jqC6rF+zotZwAM0=; b=ZIDpw2OQJIARzgat3KsDPBCZjumOiSf9p/p7ORYZsWVw4so0bVD0fkrKUDhuH+zzY3 HX8kjuG6P9lca2TeZH/e6YqEg6OtGCQbKcUGKDRxOZZoBTbgG+6rCB6yvj8kk5vtgg5/ PMz/XZt/Vb/j+snbPrYUWVJpat/qVl/S1Zx7JjISgjIGkdHSA8HE3SAuuCXSBNMBbUeR X/1bqJMRNLrAlTfH8H1gAjKFrj2A14wFFRGVivmL//RLNbfbN+1ByGsO8KMzpz/WiYMh +3DfhI4XLjPcw6DNtslSZcboPvF+HhKMHae3EoY3mbrVeWP0usqh38DlywuxRNUHJoOP NJXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137889; x=1741742689; 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=Set2sfoFc3dje2IS5PbM9swfOV79jqC6rF+zotZwAM0=; b=O1r+hgqM6M+GAy5+Z+ONZZ2c7LVewWQBEFI3ImuJRGoL9R8U1OqvX0raK132ip2WV/ IH7Ne0OXImfmFrvRbc0xUwlTwfU/xQ1BYKJt2v2BrryzLAcFpBkT/+8PrjGiJ8cnomkj JOcDhGHrRVwQXi45yEXVtlB/Ap65vXk3Z2ZKLrg4N5GqKQAxWP//MIEJTyyMX5RoR5Z6 3QQzcr5/nsCysiWi+JTC5Vvd+xZvRC/R4GYqtfdufcj7N7xWI7LReF04ml3lRhvqv7Sf plCxztOq4DEuWG7osfQzU7ZXndXdW26POw1NRBDhekGTviIYKbtEjXxxdfxoZMvNcl0f Xm2g== X-Gm-Message-State: AOJu0Yy3Sk+mGAkF/ifIech0oizXMjoj/aeNpo53HJ6lLZ3xGAVtJ6G3 yP69uTT70V9XqwSRxUCUTvbJEvWsRphcEiIq4lV0NCHIeRzZB3w575PD9uVRJXgnHNbN2SiTe7G zdlA= X-Gm-Gg: ASbGncvzReiz1RgA4vD3EOrYKepL+LeBqXsu4MbDeMQGiuYLlFDoHBZQXKHPK/MG7Am J2Jh3bUXWpxlbcLhii6WrqmzXYEa2G940Qf2ICT1/aiIA4APb/J6cx/W36uYy/3LPLPgyyAOFNk oaR/lN6OTYLSZR4rnaaQpvs9FxLQJtR/B8C4Wexb459GXaIxkTezSaQFL62REVFO8O4ozclDaGV UIIYL7NpQvZBHC4qYsMTdhTfj8esIZ1rlj9yEzQWfe4JYf4oQkCMgfzd5ryEcDbTyF9YWk9OsXn nhDa7W7M383+Pdw7lKfS1Wt6ZXEmefPIexldVTK0xzILGRDSC+jrqtTpUvjMFRj7rRAfmxREHzt 6awGqvTeQbHLi5ElWNDE= X-Received: by 2002:a05:6000:2cf:b0:391:6fd:bb8a with SMTP id ffacd0b85a97d-3911f740597mr682941f8f.14.1741137889349; Tue, 04 Mar 2025 17:24:49 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e47a6a78sm18934099f8f.23.2025.03.04.17.24.48 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:48 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 35/41] hw/arm/omap1: Convert information printfs to tracepoints Date: Wed, 5 Mar 2025 02:21:50 +0100 Message-ID: <20250305012157.96463-36-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32f; envelope-from=philmd@linaro.org; helo=mail-wm1-x32f.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell The omap1 code uses raw printf() statements to print information about some events; convert these to tracepoints. In particular, this will stop the functional test for the sx1 from printing the not-very-helpful note "omap_clkm_write: clocking scheme set to synchronous scalable" to the test's default.log. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250227170117.1726895-4-peter.maydell@linaro.org> [PMD: Include component name (pwl/pwt/lpg) in trace events] Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/omap1.c | 26 ++++++++++++++------------ hw/arm/trace-events | 7 +++++++ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/hw/arm/omap1.c b/hw/arm/omap1.c index 8f5bb81c96a..3ee10b47770 100644 --- a/hw/arm/omap1.c +++ b/hw/arm/omap1.c @@ -42,6 +42,7 @@ #include "qemu/cutils.h" #include "qemu/bcd.h" #include "target/arm/cpu-qom.h" +#include "trace.h" static inline void omap_log_badwidth(const char *funcname, hwaddr addr, int sz) { @@ -1731,7 +1732,7 @@ static void omap_clkm_write(void *opaque, hwaddr addr, case 0x18: /* ARM_SYSST */ if ((s->clkm.clocking_scheme ^ (value >> 11)) & 7) { s->clkm.clocking_scheme = (value >> 11) & 7; - printf("%s: clocking scheme set to %s\n", __func__, + trace_omap1_pwl_clocking_scheme( clkschemename[s->clkm.clocking_scheme]); } s->clkm.cold_start &= value & 0x3f; @@ -2335,7 +2336,7 @@ static void omap_pwl_update(struct omap_pwl_s *s) if (output != s->output) { s->output = output; - printf("%s: Backlight now at %i/256\n", __func__, output); + trace_omap1_pwl_backlight(output); } } @@ -2470,8 +2471,8 @@ static void omap_pwt_write(void *opaque, hwaddr addr, break; case 0x04: /* VRC */ if ((value ^ s->vrc) & 1) { - if (value & 1) - printf("%s: %iHz buzz on\n", __func__, (int) + if (value & 1) { + trace_omap1_pwt_buzz( /* 1.5 MHz from a 12-MHz or 13-MHz PWT_CLK */ ((omap_clk_getrate(s->clk) >> 3) / /* Pre-multiplexer divider */ @@ -2487,8 +2488,9 @@ static void omap_pwt_write(void *opaque, hwaddr addr, /* 80/127 divider */ ((value & (1 << 5)) ? 80 : 127) / (107 * 55 * 63 * 127))); - else - printf("%s: silence!\n", __func__); + } else { + trace_omap1_pwt_silence(); + } } s->vrc = value & 0x7f; break; @@ -3494,7 +3496,7 @@ static void omap_lpg_tick(void *opaque) timer_mod(s->tm, qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + s->on); s->cycle = !s->cycle; - printf("%s: LED is %s\n", __func__, s->cycle ? "on" : "off"); + trace_omap1_lpg_led(s->cycle ? "on" : "off"); } static void omap_lpg_update(struct omap_lpg_s *s) @@ -3514,11 +3516,11 @@ static void omap_lpg_update(struct omap_lpg_s *s) } timer_del(s->tm); - if (on == period && s->on < s->period) - printf("%s: LED is on\n", __func__); - else if (on == 0 && s->on) - printf("%s: LED is off\n", __func__); - else if (on && (on != s->on || period != s->period)) { + if (on == period && s->on < s->period) { + trace_omap1_lpg_led("on"); + } else if (on == 0 && s->on) { + trace_omap1_lpg_led("off"); + } else if (on && (on != s->on || period != s->period)) { s->cycle = 0; s->on = on; s->period = period; diff --git a/hw/arm/trace-events b/hw/arm/trace-events index 7790db780e0..f49cae1656e 100644 --- a/hw/arm/trace-events +++ b/hw/arm/trace-events @@ -1,5 +1,12 @@ # See docs/devel/tracing.rst for syntax documentation. +# omap1.c +omap1_pwl_clocking_scheme(const char *scheme) "omap1 CLKM: clocking scheme set to %s" +omap1_pwl_backlight(int output) "omap1 PWL: backlight now at %d/256" +omap1_pwt_buzz(int freq) "omap1 PWT: %dHz buzz on" +omap1_pwt_silence(void) "omap1 PWT: buzzer silenced" +omap1_lpg_led(const char *onoff) "omap1 LPG: LED is %s" + # virt-acpi-build.c virt_acpi_setup(void) "No fw cfg or ACPI disabled. Bailing out." From patchwork Wed Mar 5 01:21:51 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870525 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp551430wrg; Tue, 4 Mar 2025 17:26:44 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCXiBB4ZfUt5VyD8JYu9ZnhC2oZbjfacnye07NnpAOObzfBwjJaZLLGku64AT4UC/Wkm1kPstA==@linaro.org X-Google-Smtp-Source: AGHT+IEqddJ39fWGRXpYu7gLlL4Ifb2Ao8rNXdyGI8c0ARDK2M9bJgVBbXFsyk8Bn1dxfXeZuqyx X-Received: by 2002:a05:620a:26a5:b0:7c3:ca0d:6ba2 with SMTP id af79cd13be357-7c3d8ea6713mr205961585a.58.1741138004576; Tue, 04 Mar 2025 17:26:44 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138004; cv=none; d=google.com; s=arc-20240605; b=g9CpnKCobAtgKPyoe3EU0yRcR7U290UUYYxmx/u1k82eAdrdpc8bI/TFwlTG+Evg0u kOwiQGfATeZcEWZuCMnIKgYQtJAXRbiT43wXcI/09RQ82/A+WffkMmnc/BHXYBnuxQuF /a0GjzdVA3lunazMH8ASW/kgod3JtcIMkB+iOW+mfLlStCACAV2GY2GxfbABeC/EP91R msZ1kbnsSrYBoiv2no7wKbL+bkS0mZu685qjc99Bp0bO+GS8kI/KkOh9UiLfZqAupVzw JHy+uha/lb+jArGTFJT53BVFHjHoZ5/YWxSGNDcPLed7vmfvBEkRSe+KI28gmqsjag8H i2Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=jjtx/hAcibicszpFKAaK+qUa1ifgIbMomL8pZ5JTGIA=; fh=hrttvYDQ/RHeq9ZPl6fx8GLJN/+EeLQ90pmG86Kf6FU=; b=QL/VpLWWOhRsXJKvP3XBEaS10HFpEXwVXsNbClNw6GILWnKO/fSbTYspqRusOnG+3i nY9ogt1fYYtmbbylkIi7Kw70OH+y8O+wbjZtKmeVbpxDglcD63mDbNt/EdVJANZp4tdB pYwzvJsOSutaXX2WpSAyl0a9O53YjPppRxPedk9ZdUiZm6r1RQlh/oYNljsXyTtZ2PlW 1ZhFR5EmyurwIAoXqfTmS6c9PEioYOnBvEJht6mfspCk9wHqQHN9Qs/r+HX+avaowJLr Hj8b7cqcL9RoouYB7b1rw0hSYhah+Ckq35bq5Fu7lJ0B8tYjJUnMHb59WcjboMQhjud1 oZWw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="khyBTYv/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3b53ce7fasi588869385a.536.2025.03.04.17.26.44 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:26:44 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="khyBTYv/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWI-0004wj-KC; Tue, 04 Mar 2025 20:25:59 -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 1tpdVK-0004MJ-Kl for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:02 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdVH-0007Jj-Ni for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:24:57 -0500 Received: by mail-wm1-x32a.google.com with SMTP id 5b1f17b1804b1-43bc31227ecso17350585e9.1 for ; Tue, 04 Mar 2025 17:24:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137894; x=1741742694; 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=jjtx/hAcibicszpFKAaK+qUa1ifgIbMomL8pZ5JTGIA=; b=khyBTYv/B/hdA06Kl609oM5Cq8gaBRzXavpkBSiUtj+H/uFm4xHaDxyu/0oQhVAWdc LVcyQxI/idMKS124SO2J401d9u3KCjp4JoRoWb7jT1MmKoH5zPv18roH32t4M4QL+zq3 zlfv4UDuwVQ10rLCMWVs4ypYuuTdkmc0Wcxk4qkDmA8xrZdknzzWFYDQmhX/2WznB0of gKmYVPjN1smnazu+cCCLPRAbOP/haWw56R8wGk6PCz5mJwY2KiooxD0n2IM0M/wyaARf /TaCV7LhtoMhHqxO3OK1wjcU8OTHHm9Ix8ycHuC07JNqBUnCSioRi3dXRRGe95JWeGkA 3WRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137894; x=1741742694; 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=jjtx/hAcibicszpFKAaK+qUa1ifgIbMomL8pZ5JTGIA=; b=FF7xwjlFUOR1E3Q1wFi7vr9iNY4Hb04AHmMWo6SOAJWT+Xxq+bcv7Cdb8QhI757F0y sP4VztUpFVQECvKt2fs+csK6GYACYpmujrvu+rXji+dely4We96TB8//wjtmFlkGsbUE /GQy8v/fIT7Nn7WT9id6zgcNmGVWBhC1jLO8gVNfb/sVmZruNAsrDBPrQCQBDk+RI6Wi W008OjphInsvdAhM/e72OgxxUPRNnyBf5gqvdrIztIvgkXmZvo+veACIZn1w5A8dmYZi MLRBvIInyWxU9jgQLhai3upy6ZnPeEMoVCrSLs94ewHXshZFRVAvFdoBxer5cpby9dDP OOmQ== X-Gm-Message-State: AOJu0Yw3jPJTPxmpR2pC99s+V7LM4hdcDLmxFkBcPos0P4OOy+sGTB5u YDZrnOigxP05gIluEM944vIWXkgP78WNR53fGXETkZC5FU4sr70Vxfaw9BWp9Zy/Bzmso+zHh1L 0C6o= X-Gm-Gg: ASbGnct9+oH9B+tlU5jWnbclnomPgd1yBRVoyvcHYIIsHlqI6UAend+vNqt3sj8wRWS /EQj6UVFPxIGBPFXvLFWqzpWDF6MRfsKS7i75ZVcusOIhxxbDtm/yc/p87H4G6K6UnzzN4bDyX0 krBoSYihxIQz/6bI8VKu/HoALn9wJmHhZsN1YccJNsXWbJBiw6qz9hXCB4NhuPVzS8K2GsQ6JI7 FD/qjgiX8JWBJaeJCPNrobSj0sgbfYWZ+Y3d4hTVBtHJqL1NUh4E8meLm9t48dQ25jAbkDVyEWX pdsxZKQYD8QSy1qEJw9RJqoXDGrIE+520A71JM+SU+LrTfWnmpVzf8EjUxn7LNgb1txBg3JqqFW TF+H90fVD2Vthbyly8ck= X-Received: by 2002:a5d:6c65:0:b0:391:34:4fa9 with SMTP id ffacd0b85a97d-3911f58eb5fmr871614f8f.0.1741137893947; Tue, 04 Mar 2025 17:24:53 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e479652dsm19689381f8f.16.2025.03.04.17.24.53 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:53 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 36/41] hw/arm/omap_sx1: Remove ifdeffed out debug printf Date: Wed, 5 Mar 2025 02:21:51 +0100 Message-ID: <20250305012157.96463-37-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32a; envelope-from=philmd@linaro.org; helo=mail-wm1-x32a.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell Remove an ifdeffed out debug printf from the static_write() function in omap_sx1.c. In theory we could turn this into a tracepoint, but for code this old it doesn't seem worthwhile. We can add tracepoints if and when we have a reason to debug something. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Message-ID: <20250227170117.1726895-5-peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/omap_sx1.c | 4 ---- 1 file changed, 4 deletions(-) diff --git a/hw/arm/omap_sx1.c b/hw/arm/omap_sx1.c index c6b0bed0796..24b40431832 100644 --- a/hw/arm/omap_sx1.c +++ b/hw/arm/omap_sx1.c @@ -76,10 +76,6 @@ static uint64_t static_read(void *opaque, hwaddr offset, static void static_write(void *opaque, hwaddr offset, uint64_t value, unsigned size) { -#ifdef SPY - printf("%s: value %" PRIx64 " %u bytes written at 0x%x\n", - __func__, value, size, (int)offset); -#endif } static const MemoryRegionOps static_ops = { From patchwork Wed Mar 5 01:21:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870542 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp554123wrg; Tue, 4 Mar 2025 17:36:00 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCWHRa3rYaR6QCv0uc4HR9w2VTyL8YAUyQqDKZaBhzSQYuw2aV+b9kyY4Y7t3jejW+m5dlGzKw==@linaro.org X-Google-Smtp-Source: AGHT+IFaIO4s3fUBgx+TXeiAFHogn3rTLmd2EvZSScjPu7rZDTTWaxz2Uy3pNFMMj6IHzDlb25WT X-Received: by 2002:a05:620a:2b96:b0:7c0:9f12:2b81 with SMTP id af79cd13be357-7c3d8e46372mr253216285a.12.1741138560161; Tue, 04 Mar 2025 17:36:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138560; cv=none; d=google.com; s=arc-20240605; b=gXrN95MYz8Zj4r953UyBbz/xsX+Zn3fO+BjaYp5GoM+pxcReYS/ZGsDogjmg40rHfS j8x+6bZEHZ1nVQyybnZVuqnrq+qEHeNWHAR+Jc7xh3AGMqH8Nf8N3Mw5HrHf56rFonaK i0XpR3tbtkMVJm5xGlhYqU5WuNb3yVyOE07LgbqTvmDayHtjMRtowsG+j5eDNKGJvXc7 i9Ux/r/o5FsfywlUhEazvOUv2/H6fu1UIwYxWJpsRAU9OOJ6ABSOmy4ejMalLNmxiLMN kPH3niR0MZwhar/y2Yo6kEsgcETWV8tyUfDGmO8W5ZEt8yJXlxXXRmw0euFGSBVYr8uF SJqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=FoS16jcofKMfC1p+Goa3uOwqWjbdT+vw3k8DI4uqp0A=; fh=hrttvYDQ/RHeq9ZPl6fx8GLJN/+EeLQ90pmG86Kf6FU=; b=Q3xqfNLDy+7axS7NTtSZAtpH3e7MWm5e9H3uArVc+gqei/3O7OT75tu1YfNiZIzYa1 PeCo859egJpHDQFoBtUm+WVMTYmPUKeTjvN4GEji34juXqoXuItjVOvyc72Sc3p+UT/X wdnYCWxXjPJrtwLJKezmlOu/RubPmF30JIKkFiAV5jcwpTX5buCa5yA9IgKBamh/QyJ+ AnTsKlBEVqNHcS4V89i8XCK1k1xwp/Eb0Tpi7XSSjp8Re4sk6+PdCarAwHqgEyVmkEOX /RzSGNaXJFCJgcLmteVd/+TMI4EYCG4Zs4XS97eeyNKafGV9JNRvuOEWSrzlJAdbQdeS iv6g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Vbz0a6H9; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3b65c38d9si579028485a.578.2025.03.04.17.36.00 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:36:00 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=Vbz0a6H9; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdX0-0007O8-RU; Tue, 04 Mar 2025 20:26:43 -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 1tpdVV-0004QP-6H for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:13 -0500 Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdVN-0007KP-3X for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:03 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-43bc48ff815so2009845e9.0 for ; Tue, 04 Mar 2025 17:25:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137899; x=1741742699; 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=FoS16jcofKMfC1p+Goa3uOwqWjbdT+vw3k8DI4uqp0A=; b=Vbz0a6H9BFCuuQxIj9Uspumq4IL3DEtZZwmWOeG/JCN64eS7Zg2RJL9Teyq/kw9eoW krSQ3jq3qsKNgzcf+loKUiKyBce1EGs6NUGHWB9Tm2L4YzI9nc588CZAvs0KwDkGZ9tW AATEb195ZTFT8FuTd0MkhWExNvt3OaPRwAsT8+qTYQOLt/WGPqGsuM4iux+6MZ3glxxZ yrvPQA8ta1t6cw/yzmE6VU9afBilL2jJAeYS36fXFUXL2yTobhrNPC5BP5lLq82O49N9 HRkar45RrqYjhSpZWt+t08YFdLZqoMtJcvWOogCvygN+5+UILi3H/r8+OTMZ5ewZpehv nrzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137899; x=1741742699; 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=FoS16jcofKMfC1p+Goa3uOwqWjbdT+vw3k8DI4uqp0A=; b=uKZiac7i3PsN6x1Ul/wiV6pPS+6SNPAaJhenKqIsK8azoccQcePOTuSyMaM0rU6j6x VHMMG/EdfrCCRrs/RkL85+kOWNrpRwcyFu2SstxeApI/1wORQm6gHerR7r/4tlUE9+mH 9We1XF4+Z6r7CU2xELWgSCq0nMWKHNYxldqNOjH7kxxu3NhMKDBtmXAae18Onfld+0vs fU/pN+riJvWRVkxe1U+vbo4SUiyho7Gku4lbIslV1KE3kl5k9SVF5aWp3hv93Nxa51To K3D7Sh/Fho01TT5CsFtd6ioz2wLe5fNhLimEZ400jdLrGz3FY1QUDZbPItj+Bc8ah68O e8cA== X-Gm-Message-State: AOJu0YxCfQiCmTyx6zpIsVPb/CU1RbB36Wa2JI0M1qujeqcrDYO2Nr+M hnJkuM/RaiUMkTqYY5h2aNGJDQh7bp5L6zeFmKRUtad1hzmMDtWtooBzKJq3F0Gh86KeQ1IJFtR AjLY= X-Gm-Gg: ASbGncvaZQOPJsCwaohrPUo0PlmwMf8lB0lvHpucNfEhajZh49CSrgETxQjAF0QMlm1 aAbrktHOfZvghhlCNho/nRgCX1/rdkF4K26DBBKwdW6lqsEwQZs8HiVWCnYKzzf0To9fmhpkOxT 8j2RqDmV2iGmQjTS5e/VwIMcL8gX0yT/uf1K8ogSN+mu7dzQXHo8domluQW6umbDfhb2KzLn7nO xPgfweZTraEU1LnUZQGD/oe4GzFX2m2ooFAXjRZv5UV+lwa1N23IoPxMSx+8/T0wUpUfLfYGgVE UHcLAC0Df+xsmECLHg+JzYi/zUzL34Cms6k26Qw07ERVq03SXsXfO6wBdoovtNpkVEp2lhw55Tt ivoFOLYmGLntqVHxeB3I= X-Received: by 2002:a05:600c:3b16:b0:439:8878:5029 with SMTP id 5b1f17b1804b1-43bd20879a6mr9163235e9.2.1741137899205; Tue, 04 Mar 2025 17:24:59 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd431070dsm1932715e9.34.2025.03.04.17.24.57 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:24:58 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Peter Maydell , Richard Henderson , =?utf-8?q?Philippe_Mathie?= =?utf-8?q?u-Daud=C3=A9?= Subject: [PULL 37/41] hw/arm/versatilepb: Convert printfs to LOG_GUEST_ERROR Date: Wed, 5 Mar 2025 02:21:52 +0100 Message-ID: <20250305012157.96463-38-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32d; envelope-from=philmd@linaro.org; helo=mail-wm1-x32d.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Peter Maydell Convert some printf() calls for attempts to access nonexistent registers into LOG_GUEST_ERROR logging. Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daudé Message-ID: <20250227170117.1726895-6-peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé --- hw/arm/versatilepb.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hw/arm/versatilepb.c b/hw/arm/versatilepb.c index 941616cd25b..35766445fa4 100644 --- a/hw/arm/versatilepb.c +++ b/hw/arm/versatilepb.c @@ -27,6 +27,7 @@ #include "qom/object.h" #include "audio/audio.h" #include "target/arm/cpu-qom.h" +#include "qemu/log.h" #define VERSATILE_FLASH_ADDR 0x34000000 #define VERSATILE_FLASH_SIZE (64 * 1024 * 1024) @@ -110,7 +111,8 @@ static uint64_t vpb_sic_read(void *opaque, hwaddr offset, case 8: /* PICENABLE */ return s->pic_enable; default: - printf ("vpb_sic_read: Bad register offset 0x%x\n", (int)offset); + qemu_log_mask(LOG_GUEST_ERROR, + "vpb_sic_read: Bad register offset 0x%x\n", (int)offset); return 0; } } @@ -144,7 +146,8 @@ static void vpb_sic_write(void *opaque, hwaddr offset, vpb_sic_update_pic(s); break; default: - printf ("vpb_sic_write: Bad register offset 0x%x\n", (int)offset); + qemu_log_mask(LOG_GUEST_ERROR, + "vpb_sic_write: Bad register offset 0x%x\n", (int)offset); return; } vpb_sic_update(s); From patchwork Wed Mar 5 01:21:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870545 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp554229wrg; Tue, 4 Mar 2025 17:36:17 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUrlAZ2Kx+UV8/G+kdtoYgXXTDjTdtCn38/ancblhCnSwHIHcAhVCdBCGtLR+tu2p3bpD7MAQ==@linaro.org X-Google-Smtp-Source: AGHT+IFTzrX+qSU5lqLGX6c12TnM/e4nK+BOSssL8zyXxOIEHRWamjulT3PmqHc7ABziJQvsYXkw X-Received: by 2002:a05:622a:24f:b0:472:f4c:e880 with SMTP id d75a77b69052e-4750b4e32c1mr21373631cf.49.1741138577184; Tue, 04 Mar 2025 17:36:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138577; cv=none; d=google.com; s=arc-20240605; b=Q7UbCRsbf1yse0k8dWPfWShpKgor2nrZE4TlEa1QMubjZL2q9r1gsKK8Q3z6WV4riD T7nm+7NasJsdnK1uNDfqqCh1vWOVechayK/u5sEc0ylBsmllQIRpzu/MN45P3wny5vZ8 PiENNHsB3dSDvAdfmWBQeXXHffeMZRg2gILLkAN5E81rvE58D796BtTnWK6di/wxuRly 1hS07VrNBXkDzxq20JWnVDrtYzttFsuh1hkU1X7GKxUyN2dywyO4unLdPTshm6BA3pBx qyoWOfCH3g1sP2k9nfxV3HpeT/jQHKF4jnb0cRA+gVgJGG6whLAz5LDjUFFqRvvScqmk PkhQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=fBKaSdciz4vWObThuGuztLYugPKsPiaANZDROnbbSag=; fh=5KYNaH84KuhJkbNfHAKkJotxTHueTtQQGeWlMENxW3A=; b=A0KSOmv0r7z4huKcLl4SKmLeO71lHDaWG/+ncOj/wbB2kSR5ZpZ5ZXhnYp5fXz30a/ gajTJS9mhkbE6p8GsSku5/E527bI6SufO4w5djYfSgRppeKW7+mFanGg71oicNUnlfAa fAlSHJhFH6Kg/wwR+PKsDeSTxm0Mbd2Z9vOEy34EOQFKsCCsafKZ/CdOgJWLFiCyQ3jO BXDPppM9MQzyO2LQAs56yqDQxX8iHsFa+Rolv+5EkYiWFBelKH6GtozGqn+KjkaODvP9 OVX8zdgNrL5bDGkgR7Hnu3eJa8P0zJL7QZe2WYMK/mUyKZDm/uFO5GDwHhwOPrHnRUdh N07w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=f7vv46wc; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-474dc972349si60025361cf.511.2025.03.04.17.36.17 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:36:17 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=f7vv46wc; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWu-0006q4-CW; Tue, 04 Mar 2025 20:26:37 -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 1tpdVe-0004Tl-4Y for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:21 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdVR-0007L4-PK for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:07 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-43bc63876f1so21515215e9.3 for ; Tue, 04 Mar 2025 17:25:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137904; x=1741742704; 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=fBKaSdciz4vWObThuGuztLYugPKsPiaANZDROnbbSag=; b=f7vv46wcHJziPk1i4fP4WQSugpG4FTyl9MJLFjIT6RldKP+9D+hR4iNDQiChuhYU5b HmeBgZJGfr5yVtB7tp5HRSPF6E6pbG9Wk4dAqm1EPa0p/xq9hx1pbSKAkY4YXTSe5bEQ 9oLzdpYsX7J3f5U4XUD/z5XLWgicfiy1SnmfJIlNLFjQdu/FSrT9sdtnaD30RzvuTtun 6IZpQ4TXIKTUg6mWPJZtw7ca3xrlr/f2eS/44iz6caiL8g1rMPMiww0E4dvs4UcX5cHE uZQ1LJyfGesYg5rG7IHXT2S0gVOk1gJ4zgeDN2v1P/z3lZPJOiK0D+kRLLJ6o+pbWpun h83Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137904; x=1741742704; 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=fBKaSdciz4vWObThuGuztLYugPKsPiaANZDROnbbSag=; b=iwJKyfHpIyHLGqbAPljtcoD54adWUuxbMALsZXOHdu9asITN+Q1KXDcLG50wIwbiOQ YaSW9Ir1Ar+mzN5FJzSVXSMeOZ4DU+4FVi8Lvadzqm5QsRy+E5kH8dfFUJo7BkO7LHeW BBZFUR9Ij5y84UP86hRfld6T0QrQdFSZq1nvpsvX2PraJpo81ghL6io6X4WEG8Erqr6S uFH6g9i71JWgJOFvm/aYS8TQJeDXCZ2n+XkSX5MimiMStFMHH1SL/fcp7x9ZoyHiD6tX ktSTTjMTsb+3/YIChEbqihuCWIdTryoQRj9MF1gmwX9KWqXNBamgt7UWtTOr4WzThFb6 x56w== X-Gm-Message-State: AOJu0YzjUANriqBBOxxp/yLB314jlIcOAypx98xFASU3nru5bmzn6QF5 eyu7fRP9qG00UQ7ZPcoAGyMm3YT6b/yQ4uXwtK0jsrqzsQu9NtTkNmhR6bGi9dutUQ2p4wTrN56 GU48= X-Gm-Gg: ASbGnctRwGtVAtgiTl+/2w+sIweKKqxVLpMBXepVCwU/98S9uDjNeelBSTxaQf6eT1V 6kImeaFzBnGy1iBANJgXaYU2bumjrLAs4IuZscZv119vX9dNHKfGA9xOT1y8+9UYnjcH5cMq6Zf 1zo74UbEhLt8KzMi2Rd92Pn+geIaFVbWid7rnvepshmeW2IiKAs8bSRJeCwDPRvcByv+WCsO7g8 zo9z4frXHwcd0ETfAie/gkaE+Izyyn8oYchYlycTUwf4FEBCR0Ohk7IWpyUebyLc+FjlfW7fmlS oESVaeiKwbumUIuV3Y3WCmumPJCeN1m7VriDk9a/Kzg5v3KSkRL1DZlcyUsDeC7P4ocqkQTIL6I DfE5nPVkdfMpV8OJ/mOQ= X-Received: by 2002:a5d:64a6:0:b0:390:eb32:3fd2 with SMTP id ffacd0b85a97d-3911f57cc31mr912485f8f.0.1741137903706; Tue, 04 Mar 2025 17:25:03 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4795983sm19153614f8f.6.2025.03.04.17.25.03 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:25:03 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 38/41] hw/nvram/eeprom_at24c: Use OBJECT_DECLARE_SIMPLE_TYPE Date: Wed, 5 Mar 2025 02:21:53 +0100 Message-ID: <20250305012157.96463-39-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::32c; envelope-from=philmd@linaro.org; helo=mail-wm1-x32c.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: BALATON Zoltan No need to open code it so use the simple object type declaration. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-ID: <08d9900af04789ede485942c8072eaa58bf52f80.1740839457.git.balaton@eik.bme.hu> Signed-off-by: Philippe Mathieu-Daudé --- hw/nvram/eeprom_at24c.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c index a40cc5dd15a..2ae03935d47 100644 --- a/hw/nvram/eeprom_at24c.c +++ b/hw/nvram/eeprom_at24c.c @@ -30,9 +30,7 @@ ## __VA_ARGS__) #define TYPE_AT24C_EE "at24c-eeprom" -typedef struct EEPROMState EEPROMState; -DECLARE_INSTANCE_CHECKER(EEPROMState, AT24C_EE, - TYPE_AT24C_EE) +OBJECT_DECLARE_SIMPLE_TYPE(EEPROMState, AT24C_EE) struct EEPROMState { I2CSlave parent_obj; From patchwork Wed Mar 5 01:21:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870533 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552568wrg; Tue, 4 Mar 2025 17:30:53 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVEqLzjh3ZfRU65VeQO7ieL4C0JLa3Pfo8F7Bmcv6JPsKeVkVK4bi5LLwtxeQ1dJDoHRzBNJg==@linaro.org X-Google-Smtp-Source: AGHT+IEKrMsAiNpOFoBxeFKtWArXvzQ/x9fzpOaFFES0jnT+nrVwKoAqUdrIN0thCPy7wZq+aZe4 X-Received: by 2002:a05:620a:2696:b0:7c3:d818:5194 with SMTP id af79cd13be357-7c3d8e73030mr241349885a.28.1741138253597; Tue, 04 Mar 2025 17:30:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138253; cv=none; d=google.com; s=arc-20240605; b=CMZv2UFUAmCYsjNZXPrwESclhxGZcmSSIxvo5iTzQZqNMBm+FGeZmvVtSWu2/QTqES 0SNpC70GY1Cj4EJ0AGhdylV/1MjGrZtiCKOo97Gu4HYadNfkrAikXzXZ3QLit5H3mx/w 2gcP3rdOMldz/nC5Ab8X7DpplaXBUx4N18iExhWwf9n/0i70gxqkYqhiHdrDsU4GUc/O GRIXnkER/mtHQmioliNo9hUZH8feulwRezEPrHnhXdtufLoJAMdgvypz8hwAyV1p7NsZ gvSbTvBKIRDrHWbIsJGbtxaNmeQwjR3YUW9pKb+wbH/pOXmINQkgnLy6TUVhiO246b0D y0Mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=BfDhx6dXYnykeldUX+NORiuKe1+4dgkAJvvKMJwXJlA=; fh=5KYNaH84KuhJkbNfHAKkJotxTHueTtQQGeWlMENxW3A=; b=MibZFeTU4H++gqJ3K+PoFoQEXZqvSzJn4wmeygqY/BnODi8pIpwFe/yODh2zGRoZHQ jMZgYqlzNMeWSYqYFQcCOt5L1YOdcLo8ZK+ZTWQnpPhlKUvOOBMAWr7QQ2AspR1wkYdm vtm3qY93JGH47f5Ww/Q278GzuWyBXx9cOGAIhnSQBUeSz4vrLsFtSLkCzYnbPfOlVZtQ VjKVfyUqkPRxXaQPO6OG0WP4r/zBS3YDKzwMlDGuOTUucWvyWInc0HqD62VbvznL0So5 Si28qeD0kd/pz5+kyAJ9Bir9D4MCk+bqtu99JJaQEH/eLytnY9CCWKOVcZBgpe2nFWLu VYXg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="uoxAaEA/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3b6a00defsi554517985a.104.2025.03.04.17.30.53 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:30:53 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b="uoxAaEA/"; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdXI-0000NW-MZ; Tue, 04 Mar 2025 20:27:01 -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 1tpdVe-0004To-4e for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:21 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdVW-0007QL-BS for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:12 -0500 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-3910e101d0fso1839209f8f.2 for ; Tue, 04 Mar 2025 17:25:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137908; x=1741742708; 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=BfDhx6dXYnykeldUX+NORiuKe1+4dgkAJvvKMJwXJlA=; b=uoxAaEA/mgd0E0DYys9gVHhJB2TvbpFZvKsMDgaAfjE1JAlIBkQA+IkAv5SQV4lV8+ LCfZ0OAJVXHEzGVTTf4N8Bem3LX6+fMLY9kIMm2O8kcg/b27iICtLXtXBadrRJcDG8Cn KTu7IOs/SXSvZzmQHddsMNoa2YAk4cALFYvqhJGzHa3keU22CPD7Fch24EfywnbwSQ0q qdGiTqRhevqH4UbBLkbEB1KDCLtygw5mJcrlCm6LsfX6eekpUT9m2nVYmlfwVFKIjlzh qANwUyPXaOuHMPRa8yzkX4Oh9HMrHaWZHKuI82JPhNEcR3uia9WAo11EFJgMwj/FmXRN GFTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137908; x=1741742708; 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=BfDhx6dXYnykeldUX+NORiuKe1+4dgkAJvvKMJwXJlA=; b=ElqtnIhjwRW6MIEsaZlH+FTBv2F7s4KXtKgaz9gj6WDE/KvPp9QiV/VatQL2rb/hqr FjwPsAEslHT9WZGvDm81J/IkVxeewVWn5UBzKh3mvmBB4UnD7qwoTpDlWSUnra2RGvUn Mrf2kgOVJbEsTtlVbs9q70Uy/tOMCCd6BE5G4uIKFxSt3X/wRXaztRNkW8o9tzeCdReF c4WpcYychQBU2kB+93I8iBTtyBuQrsyiqBH3hwedpHYZ7lXQIxlIp9uTEyya9a4vaeBC YrsRNt+7XcN8sw+dxRcUcETc8z+CDgSikJyeuP21U7kTUqWOIsZ1DFjCiKej9x8e3XjH K5CQ== X-Gm-Message-State: AOJu0Yxz7avBqlj70oNDhLbDxe86FUTC1U6kik1hIZKv8EZVbIwrpYGY ifdC+i34luz9KidvWFnn04m8CgYm3UlI7e7VQoX0pVFOhbBbkCLao7+S+PnJRVBpe9KDArP3+o+ JPnU= X-Gm-Gg: ASbGncsbjsG9TygWz7M9qGGyViGoemWKgZwZNeZ1qqaLwZwCyV71FP5LdgyKytPfeZr uo4neqYmSaehcDqQSYAkCa/BRKgc/GlVQqy5brx0z+2I7Tqwz8975k1c6aiyYGzoFSRMUz4+zw4 Zgmm0cvjgHw/82N+yxYo46r1JIm/4GkPSnEMI7ft4uAUmhi873r9Ts8iZeI6LfGQfWKBRT7+hLJ CLF18/GvtY4UBNeD508nJLKntWPvr+M6GhiozcEZbwqbRHa74I8uETPaeqt5ozTh54iTAbdBvDr My+de9HkjN5AnBb2nUo9I80Weytq6Kktt++DA4nwYeEPul78pACl58TgvarnMdMemccsDYjgRBE DkNVxI9eCkveJ1BUPlQk= X-Received: by 2002:a5d:47a7:0:b0:38f:3224:6615 with SMTP id ffacd0b85a97d-3911f7265d2mr608397f8f.7.1741137908148; Tue, 04 Mar 2025 17:25:08 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e4844a16sm19320417f8f.79.2025.03.04.17.25.07 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:25:07 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 39/41] hw/nvram/eeprom_at24c: Remove ERR macro that calls fprintf to stderr Date: Wed, 5 Mar 2025 02:21:54 +0100 Message-ID: <20250305012157.96463-40-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::42f; envelope-from=philmd@linaro.org; helo=mail-wr1-x42f.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: BALATON Zoltan In the realize method error_setg can be used like other places there already do. The other usage can be replaced with error_report which is the preferred way instead of directly printing to stderr. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-ID: <637b92984795a385b648a84208f093947cc261e4.1740839457.git.balaton@eik.bme.hu> Signed-off-by: Philippe Mathieu-Daudé --- hw/nvram/eeprom_at24c.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c index 2ae03935d47..9f606842eb6 100644 --- a/hw/nvram/eeprom_at24c.c +++ b/hw/nvram/eeprom_at24c.c @@ -10,6 +10,7 @@ #include "qemu/osdep.h" #include "qapi/error.h" +#include "qemu/error-report.h" #include "qemu/module.h" #include "hw/i2c/i2c.h" #include "hw/nvram/eeprom_at24c.h" @@ -26,9 +27,6 @@ #define DPRINTK(FMT, ...) do {} while (0) #endif -#define ERR(FMT, ...) fprintf(stderr, TYPE_AT24C_EE " : " FMT, \ - ## __VA_ARGS__) - #define TYPE_AT24C_EE "at24c-eeprom" OBJECT_DECLARE_SIMPLE_TYPE(EEPROMState, AT24C_EE) @@ -75,8 +73,7 @@ int at24c_eeprom_event(I2CSlave *s, enum i2c_event event) if (ee->blk && ee->changed) { int ret = blk_pwrite(ee->blk, 0, ee->rsize, ee->mem, 0); if (ret < 0) { - ERR(TYPE_AT24C_EE - " : failed to write backing file\n"); + error_report("%s: failed to write backing file", __func__); } DPRINTK("Wrote to backing file\n"); } @@ -203,8 +200,9 @@ static void at24c_eeprom_realize(DeviceState *dev, Error **errp) int ret = blk_pread(ee->blk, 0, ee->rsize, ee->mem, 0); if (ret < 0) { - ERR(TYPE_AT24C_EE - " : Failed initial sync with backing file\n"); + error_setg(errp, "%s: Failed initial sync with backing file", + TYPE_AT24C_EE); + return; } DPRINTK("Reset read backing file\n"); } From patchwork Wed Mar 5 01:21:55 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870546 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp554249wrg; Tue, 4 Mar 2025 17:36:20 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUAOyFy5gwfOqR4zMw8Wgn7sUc7E/e38NKlrOYXvpXVC1DVslK0oB/VmOyaNK5siAdA66thTg==@linaro.org X-Google-Smtp-Source: AGHT+IF1rNKMLMPLIAFeASEEO8W5+UY2oCWZkETMAjUzjGlf9dCWATtfCs6oRGlPU77wdY+eTAdj X-Received: by 2002:a05:622a:34e:b0:474:bdfa:19b0 with SMTP id d75a77b69052e-4750b4edc9bmr17736741cf.52.1741138580415; Tue, 04 Mar 2025 17:36:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138580; cv=none; d=google.com; s=arc-20240605; b=cholASrmv9TiIuB45nresXRumSFUkph2Sr1Z/z2IhMdkJEl+/E9dp/Uqp4HoK6R8q0 7dj8LWqnKXQAeIlRMArzu6ChhtAgSMAqAI6XAfkIFLfzMGfaDCHN6yxmFrVCzV890YrF 8IEn3W4vPWKNeD/2kILiLk4BlFw1QIN1DXeR9d1vAvbCrWsVoy1HKaY8EOKMdVwrf9in J7sg8ewDJSm0D83hYLy9YvI0sFSwepKqa7L12TPztDA7DRwEruGc/21kleu7PPJUBiR0 kiE98hrn2gKx5+Z6hNA3qAzQJ7AXRHHj8V5iBTvqk6o+Tnf5KFqfyEdNPTrjJCGR3jZi aA5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=zNYmKdmAkSe74tv/hM9qGRHhB0/eo8ytTK5WDBjYNps=; fh=5KYNaH84KuhJkbNfHAKkJotxTHueTtQQGeWlMENxW3A=; b=AYibscdTB2BlIn84Ox5dnX7bu1/2lE4tp93C26pFc2AYCtQanbfDq/BH5lK9VAWluF hfSof8ADIu3r2BV3Ba/CeMtO9491o2RPWRcUAVN5RXvYSfoZmJiEu89QFkQgJdGp7QxM eLVW3FTtZAAMYpuWBAygV6OoD31y6j4slm83qZPeP5JdlFzv4LCoU06/hnwv24MU+WO1 If32EUkmbeBwyJiLND+CmOLteFfk8Oydph+Bo2B9WI10zItZG5l7nGR3BIwRw+E6Ch29 BxrR9SJA+Xp4FL+0gmz393U2rF/mYPRbAGL+I4NgUtsz7qB05Z83Ij+gBxCqH3bK4gC4 9uFQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vQQfY9jg; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id d75a77b69052e-4750be11220si5486261cf.406.2025.03.04.17.36.20 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:36:20 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=vQQfY9jg; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWm-00065R-2T; Tue, 04 Mar 2025 20:26: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 1tpdVe-0004Tq-4Y for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:21 -0500 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdVa-0007XW-Ho for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:16 -0500 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-3910e101d0fso1839227f8f.2 for ; Tue, 04 Mar 2025 17:25:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137913; x=1741742713; 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=zNYmKdmAkSe74tv/hM9qGRHhB0/eo8ytTK5WDBjYNps=; b=vQQfY9jgOF3N27M2LmAJimAt22HJRbBmZkLexoiPUTTC96GoFEx5aZgDT5et57GrEG txGeceelQVXCLhDyaIRUFcuFW8Ke6D91f3iM91CACgxh9GeGp2HhzHeYGot5PsQvqyst IyyZFMCQ036U371z+nu/yssKk1p3UEAMoBOBYtFABHxGpWYKFHBpG9gS3f+lV7KECtu/ aeZMqX+Vv5+ybnKiIYkDof1sGlZPQPCZbKTtJJ8n8dZ8Q8XcoUQCpWGa1SfHi3nnUcXg Ua2EtFRTEv/+8IxCVodK3hAbrM7F+ryVu1OrA9muicFd67dgqcBCfTM4AKG3tdwJ4CuX 1X8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137913; x=1741742713; 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=zNYmKdmAkSe74tv/hM9qGRHhB0/eo8ytTK5WDBjYNps=; b=Trol7ZGIDUPzI5Wjok+f5hkHo1/xFDbhVLkrNwC2+TLRM5pZdkBn67/vKwJFsDLQEZ u/jPQ4wSFxALSuWRUdXxhd2dS1m2ubqFxuZsaL1rPsCERy4UWoxRNdpFzMhY1sp2iwsg yoHH7SqX2qsz38V2YLoihCfO6+ncjgJ222Y7EGA3lpta2CaOwqEPLxJNmOtWHSxT4oMP egX7WE6LwO4kXKDVwFmsmObUruRFUQCnPJjZDAmwXXxi/SOYoHqxSzhy/y8wUQbDU4nY ZFLax3Efsvh0YWQvbEaCDoltjvUmUObxqrcTEL0vatUywqdUgI3qMsqYW64HT9P9GRbv 4QBw== X-Gm-Message-State: AOJu0YwwKtQXRmAWWOVidcOLPSP+pYE2qfbnb5qRMcH4e0BzLmt56UWC TUVvBKkP/+OQITSTs1xrl2YWVxpBzIlH9M0jzar91zgoZ64vJKzxe8Qq6UfmKFeKDPvgh8gkmCm 8UJ8= X-Gm-Gg: ASbGncs5I/3eOVvS4mX1kyoeQieXQkJy5OPOrsCx/9Qhp7CIZf6dMK8eWoEE751nr64 h7fM4I7V/n62xcAtLg1REi+qsew0Izcb5IkiQpZmlKFSB14kRiK5Pp0LsEfID+vpZWd4LjIhthQ be/Z3tIV+7wiOueMUok2D7gkGbItwWKBcWCxKmYd/xGzQ5ywFWsqXr7w/omce1huPx2cBcBAfZw d6aIJLYzfZ5ISL6gV9lTugMUn8RguhGj9cHYLit8JwXY4o7rYETrn9g+pube2wegKP336DIG9iv muKb5+0LqsA0OPLtGlBdTe4wMXQxYt/kJLmMVEkbjaz9K6BewbDmaQeu53lxcCT2RZwIkCqrH/e xBZFtAoUcXZaUEsKyvZc= X-Received: by 2002:a5d:59ad:0:b0:391:8a3:d943 with SMTP id ffacd0b85a97d-3911f73f9f3mr787266f8f.13.1741137912683; Tue, 04 Mar 2025 17:25:12 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-390e485e03asm19626906f8f.95.2025.03.04.17.25.11 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:25:12 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 40/41] hw/nvram/eeprom_at24c: Remove memset after g_malloc0 Date: Wed, 5 Mar 2025 02:21:55 +0100 Message-ID: <20250305012157.96463-41-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::434; envelope-from=philmd@linaro.org; helo=mail-wr1-x434.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: BALATON Zoltan Calling memset to zero memory is not needed after g_malloc0 which already clears memory. These used to be in separate functions but after some patches the memset ended up after g_malloc0 and thus can be dropped. Fixes: 4f2c6448c3 (hw/nvram/eeprom_at24c: Make reset behavior more like hardware) Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-ID: Signed-off-by: Philippe Mathieu-Daudé --- hw/nvram/eeprom_at24c.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c index 9f606842eb6..78c81bea77f 100644 --- a/hw/nvram/eeprom_at24c.c +++ b/hw/nvram/eeprom_at24c.c @@ -190,7 +190,6 @@ static void at24c_eeprom_realize(DeviceState *dev, Error **errp) } ee->mem = g_malloc0(ee->rsize); - memset(ee->mem, 0, ee->rsize); if (ee->init_rom) { memcpy(ee->mem, ee->init_rom, MIN(ee->init_rom_size, ee->rsize)); From patchwork Wed Mar 5 01:21:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= X-Patchwork-Id: 870535 Delivered-To: patch@linaro.org Received: by 2002:a05:6000:178f:b0:38f:210b:807b with SMTP id e15csp552962wrg; Tue, 4 Mar 2025 17:32:01 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVn3y+mFndvCD8r7on0Z5Tk4VqYXgcqUVhzi/lERiQW6UO4lWRvNewSevS4xcZBX69PHmGqcw==@linaro.org X-Google-Smtp-Source: AGHT+IHPZ0C0VMrBp+wV1FWgyLUkypkN2SPxvJvGXRYOP5yXhEbt3r2YnjECuVb1PUFyU/d6f4c6 X-Received: by 2002:a05:620a:6285:b0:7c3:9645:354c with SMTP id af79cd13be357-7c3d8e41794mr268706785a.21.1741138321378; Tue, 04 Mar 2025 17:32:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1741138321; cv=none; d=google.com; s=arc-20240605; b=PR5OwzU6W+86MhHSYVWfU/d48piMYvJchS3CSiW55kbea1WCCMuLnI0njbAaRHJDsJ tnpxStx3B8EUUhbszCSEHz6u1nBkvGkI3qtW9+GZo3YXG3Cy1EOQyOBEoRF/xAPdS1o6 t26NuWUFOvo2azDpGIzt8QPDlVDNElFfgqrOmSoHS7lc6O2PozBDLJiEpD045K9EMgvI kSnnXBvSsskRwsRgRFYlxi6lueqSjj5EIEmiP/oql8CT/bNjbQdmQlfIkEcNaG+ZjT59 QVf3JMbyhTkZ9aeXSXI9AUPUPcEn946uuxzD5JbugehVBi95MiPqpfkJ1ZCKQCe2IBwE +/dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=JT3mCpufvIuWr8BVM5sYDayVdvf5uoSCrbbGB14l/A8=; fh=5KYNaH84KuhJkbNfHAKkJotxTHueTtQQGeWlMENxW3A=; b=MEcVh5GJbddlfuL+vIBL2QgP2y/ntzXilE7Fghu3c5ZMcSCytxwpJMHZ2+0M4kIJNe h5huwblf83iu4HIYFC7tztacBkUcRqj+DlwGsvmalIctKT/P7AZ4zn5fYZQZibB+zhAW OrV0eINX0Nrc0Y6Fyw6XvJwigb5Lxe7eCuB18ms+hEGXLg7uxntcVHC3qv4FsW3V30n0 cw6A2qpTXgDPObBfeyNCdwbhvm0oI3pePz3d0eI1rl9aWa2khY7IiaHEng79t0N4HOUI DTeEahtl0aHtnVv03jPJb+XTcBABkOr1R5KRFzXPbpE1yTCPA8XKw1/tchiFQJTSlhu2 HX6Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pZaCGHpC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id af79cd13be357-7c3d6410081si143517385a.355.2025.03.04.17.32.01 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Tue, 04 Mar 2025 17:32:01 -0800 (PST) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=pZaCGHpC; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org; dara=neutral header.i=@linaro.org Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tpdWr-0006VR-5u; Tue, 04 Mar 2025 20:26:33 -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 1tpdVi-0004bw-8y for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:28 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tpdVg-0007Yh-KD for qemu-devel@nongnu.org; Tue, 04 Mar 2025 20:25:22 -0500 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-439a4fc2d65so66721705e9.3 for ; Tue, 04 Mar 2025 17:25:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1741137919; x=1741742719; 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=JT3mCpufvIuWr8BVM5sYDayVdvf5uoSCrbbGB14l/A8=; b=pZaCGHpCED2gvXOOGqzKab5OS8z+/vtjFTiEY/QBWcAn+zECcXovbLu1V7ANK9Y1+A ZZQ3sNqU4/aQrqzZm5r3fQS794yo/Wa+v66vbfGN1U1BQo9fmIwf68A9aiHzCJSUXWgf Sj3Tj0jsuBepcuMK808aismpA8FNwl3xt58YLh67qW98BjgZlk3+Qabw+Q2Zmw+SnyS/ 1RYCNJdLY1rrUs/gVnA5yvFmaArCy6Lempr8xtBLHLVVVxAv7zO9k8NeV9rstWL5ous2 axCYKnp0/lh1EXL1RZogQ1/RZEZFkNsE7GtlHA6uFsoot0FcKmwGXlHAWQ3Llt2rjRQH 8kPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741137919; x=1741742719; 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=JT3mCpufvIuWr8BVM5sYDayVdvf5uoSCrbbGB14l/A8=; b=hnqhiM9U1YnZIjkoKf/D+NRdGEklnzjQPZG2UY+E/vvTpf+Txnzbq9AYoKNr1tyER9 LzdDzO+iKl1QkHHbWzhFtY6b6eOyjdtfR9bO164ZrQ2ACP7FMzHvd1jx7o+Vbx1lUqXH 4BWHwXZk1bQbAVJXwu6RQ0Qk0uwvecLftlLtTD+fEwTnpFQibg7JP4o0NCxSaEa3/x6P BmHBKcIqV48e58G8D5MG0zMtFRybIgCks2t8day4MMF6lYT3cK8JXs6KZKycYiCzv/MC YcA8paRFpPaEOtfSv0ZcqNS576kk1JAjk5mm6n080IcbXWeVCD49epMOhM3Ufl2Lc3m8 f4RA== X-Gm-Message-State: AOJu0Yyz7PXESq0gmZ4yLkswQJuMTvaKzpEIQTVLoaOcVEygF4N91U0i ZIT4/dN5lcbTDp70PMEfCLxSHGFIGsOXJCpX+CmC/jE3zNhu901F2Ud3xSDdqPquWkr23pW5Jn9 zP+8= X-Gm-Gg: ASbGncswmWwK5KsNSQKFh5VC2c23ogAa6cO+dV5TCVSMlHksFtDGsFgV7iXhN1qZRgs GSy7dC+7NFhu4IlkVC4jGr/CCqFMR3OLJm4r8pn2q2QC++/ShFCT8sBJH6m9RlcX3pbTsNSuQNx B1hz/ivq4YJTxTTG5e1Xc2s2+36wv8jhuRyBmkkMnA7piF7fuhc9CMRA95uo3RbJ9eOKbaF+9rn lHCyAZ49XwZc03KHYCntx7ksr/ebc4DiXpl3wdg80aiL34oQkCa11BjfDGhOzKz9Gx7t9ARW35Q TWd6CKVQiuzWnAe9Vk/SV5fkyCZmwawnEywsjKemawSsB/SkCd5en7P42mwswMsmASShWeAS/5Q I9UTuN2o6a1LxweJqiac= X-Received: by 2002:a05:600c:35ca:b0:43b:ce86:b31a with SMTP id 5b1f17b1804b1-43bd29bd205mr5545765e9.22.1741137918695; Tue, 04 Mar 2025 17:25:18 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-43bd429375fsm2018015e9.10.2025.03.04.17.25.16 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Tue, 04 Mar 2025 17:25:17 -0800 (PST) From: =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: BALATON Zoltan , =?utf-8?q?Philippe_Mathieu-Daud?= =?utf-8?q?=C3=A9?= Subject: [PULL 41/41] hw/nvram/eeprom_at24c: Reorganise init to avoid overwriting values Date: Wed, 5 Mar 2025 02:21:56 +0100 Message-ID: <20250305012157.96463-42-philmd@linaro.org> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250305012157.96463-1-philmd@linaro.org> References: <20250305012157.96463-1-philmd@linaro.org> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::335; envelope-from=philmd@linaro.org; helo=mail-wm1-x335.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, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: BALATON Zoltan The init_rom[] can write values to the beginning of the memory but these are overwritten by values from a backing file that covers the whole memory. init_rom[] is used only if there's no backing file (provides default content) but should not overwrite backing file content (especially leaving the file unchanged and only change it in memory). Do the init_rom[] handling only if it would not be overwritten. Signed-off-by: BALATON Zoltan Reviewed-by: Philippe Mathieu-Daudé Message-ID: Signed-off-by: Philippe Mathieu-Daudé --- hw/nvram/eeprom_at24c.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/hw/nvram/eeprom_at24c.c b/hw/nvram/eeprom_at24c.c index 78c81bea77f..ff7a21eee7f 100644 --- a/hw/nvram/eeprom_at24c.c +++ b/hw/nvram/eeprom_at24c.c @@ -191,10 +191,6 @@ static void at24c_eeprom_realize(DeviceState *dev, Error **errp) ee->mem = g_malloc0(ee->rsize); - if (ee->init_rom) { - memcpy(ee->mem, ee->init_rom, MIN(ee->init_rom_size, ee->rsize)); - } - if (ee->blk) { int ret = blk_pread(ee->blk, 0, ee->rsize, ee->mem, 0); @@ -204,6 +200,8 @@ static void at24c_eeprom_realize(DeviceState *dev, Error **errp) return; } DPRINTK("Reset read backing file\n"); + } else if (ee->init_rom) { + memcpy(ee->mem, ee->init_rom, MIN(ee->init_rom_size, ee->rsize)); } /*