From nobody Sun Nov 16 04:02:32 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1743425902; cv=none; d=zohomail.com; s=zohoarc; b=Cq7gc6kWspoO+9BxlmNie145RtHOK/8iwUFAawFnkRGlJeoRrqng1vPDKmCkRQ1KajswYim4Q+aH2+hFtsLQbg0ZtzWFb8X+YLRrXuRWvscFCG2J0DXEI3OAw7pcmqpWKns03HjvVovu71sJ9fc2Xu2mT5aEib+OYEO847Ds07c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743425902; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=/+8G6QG2KcKfe4Jxyy4G71CERtkbNrZFpS5S8YYW90w=; b=lU0qZUqZFeb3+CdCXN/QIcg9FsutLc1g2k9gr7CdGodj+G+NE3hx7rCvhaLz32BPoB3tqugiOHruLOrYi4eJ8hpF+xsVu8M+ZW9hvIUMHfGtw6XHYsP4yHGrVyGXXaAg3d+0zukIzo+JlW1UUSvJD3bq7RZCI/pb0OLDTjniSI4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743425902752791.6101729827607; Mon, 31 Mar 2025 05:58:22 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tzEhx-0006B1-Gp; Mon, 31 Mar 2025 08:57:41 -0400 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 1tzEhu-0006Aa-Mg for qemu-devel@nongnu.org; Mon, 31 Mar 2025 08:57:39 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tzEhs-00016c-EV for qemu-devel@nongnu.org; Mon, 31 Mar 2025 08:57:38 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-22928d629faso47219305ad.3 for ; Mon, 31 Mar 2025 05:57:35 -0700 (PDT) Received: from wheely.local0.net ([203.185.207.94]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-af93b67dc0fsm6324016a12.16.2025.03.31.05.57.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Mar 2025 05:57:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743425855; x=1744030655; 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=/+8G6QG2KcKfe4Jxyy4G71CERtkbNrZFpS5S8YYW90w=; b=TnEeMAt1jH2M/ArICfmZ+DZsyEINkN5va/3DXuZy7dljjS1yp5G0uukNN8AxSJgPEf 5iNUhNyauupbMvTkk3AsplbDuG7UswT4UBz0ISKIA3PTIs9uk541Hhaa+BtOEST1BVMy FIb0fCF7skDAggGzVtRgriuhPtASmRKT+bkmBBONrldY7Y/dVn16KhUsChCj69OKHXra 5+yQvtGeSgVLWFQqZ0yKSFpW442toY4qJHtnEv4VNEyAlXitbHS872xd0/PckdYCdYR6 8NDM2Y/fadg1j+JYZM8QJp6C16n+KkjGMB4ZO7zFO71hQ6eqbNaFn+zT/FYjrk+G1A0L r9Sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743425855; x=1744030655; 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=/+8G6QG2KcKfe4Jxyy4G71CERtkbNrZFpS5S8YYW90w=; b=cRf1ZPB6oN4UOBh9GBR2mVpjtn8rS9Wqj+iyv9HhlnhWTeHkLX2th8EnKAN2gqjT+L 7z5yKUJW+SZLeHdOhTPZ4tePP5311HZ3r0chiBpNwlybw7YwrRlAI468TbWKRurbvDUu IRscR/b4CTQSTAtUs+Iwot0G24+nQrzmqWXWNeJ+lpfVJ3ML9HiqjZAWatfZbxfttQ/a /By+vccKMUwAcpVNt2VeDhzQU33dF4sS1+wTYXzzClbkKng0Cfwz4cVWHfevQRuBuLVk B99XXfM4yFzyWG1mOSaAvuizWh/b+V2rj/NMxTeWR3jXTSP9v3j9EVo5OZlb6Nt49utx GJgA== X-Forwarded-Encrypted: i=1; AJvYcCU2IOC/5KHZpIiTt99O+LBuow+Os/Ewr25SIyZ/qA+oRb4t++73bZZeRZc58z3s0ti58oHSKkjTRqQW@nongnu.org X-Gm-Message-State: AOJu0Yw190KnqrJg/WPoFhTROf2QC2L5sZrWEMyImN9sAMvA6oh7/qcW 2x/opYzxSHd8zvkuFIUI5olXje9IWHQ+52ZVYOMaEWP+mnFiqfnX0hPCkg== X-Gm-Gg: ASbGncuEScz1H5wY47YCWR9b33SXWJRjqHPXZQ26VkRlTjTjzDVwRQMPZVEx/lkupOW HotQFUrlrj/P3vHHNzgVnNfviqukIr3KPWU4EW+xg2kLVkkRii+Oh3FQQG4BK4xOTKTPxAoLwWH ZSYZ1BgCska571xgOI5ktS5S6gZE9vP42WsNaSC4Xyk2IIhoM7sVKxEpYGUwmYKk93ovwt9A41O nsFOllAAvnwleS6g2ZqEeVZgThvm5G+8VxJ6onjcC04dH75IXFNEBfs7vdfaSwQ4YdQF9W8YgTS pCxs0fLM2+WpasUVQhpEkrbAmZ4zBSGOcOYbWUKHbmOUyXE2gw== X-Google-Smtp-Source: AGHT+IEtJLtRKMgBXEu4HFwWQY9Dv2aCOe6oJKCc+98g+YEb/YVF1EKfZC4wa9rDVMBw8/txht2OkA== X-Received: by 2002:a05:6a20:9f89:b0:1fe:5921:44f2 with SMTP id adf61e73a8af0-2009f632357mr13078934637.20.1743425854977; Mon, 31 Mar 2025 05:57:34 -0700 (PDT) From: Nicholas Piggin To: Corey Minyard Cc: Nicholas Piggin , qemu-devel@nongnu.org Subject: [PATCH 1/3] ipmi/bmc-sim: implement watchdog dont log flag Date: Mon, 31 Mar 2025 22:57:22 +1000 Message-ID: <20250331125724.607355-2-npiggin@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250331125724.607355-1-npiggin@gmail.com> References: <20250331125724.607355-1-npiggin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=npiggin@gmail.com; helo=mail-pl1-x62d.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1743425904325019000 Content-Type: text/plain; charset="utf-8" If the dont-log flag is set in the 'timer use' field for the 'set watchdog' command, a watchdog timeout will not get logged as a timer use expiration. Signed-off-by: Nicholas Piggin --- hw/ipmi/ipmi_bmc_sim.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c index 6157ac71201..32161044c0b 100644 --- a/hw/ipmi/ipmi_bmc_sim.c +++ b/hw/ipmi/ipmi_bmc_sim.c @@ -733,7 +733,12 @@ static void ipmi_sim_handle_timeout(IPMIBmcSim *ibs) =20 do_full_expiry: ibs->watchdog_running =3D 0; /* Stop the watchdog on a timeout */ - ibs->watchdog_expired |=3D (1 << IPMI_BMC_WATCHDOG_GET_USE(ibs)); + + /* Log the expiry if the don't log bit is clear */ + if (!IPMI_BMC_WATCHDOG_GET_DONT_LOG(ibs)) { + ibs->watchdog_expired |=3D (1 << IPMI_BMC_WATCHDOG_GET_USE(ibs)); + } + switch (IPMI_BMC_WATCHDOG_GET_ACTION(ibs)) { case IPMI_BMC_WATCHDOG_ACTION_NONE: sensor_set_discrete_bit(ibs, IPMI_WATCHDOG_SENSOR, 0, 1, --=20 2.47.1 From nobody Sun Nov 16 04:02:32 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1743425911; cv=none; d=zohomail.com; s=zohoarc; b=mWDw7ekxcNoIxPIyZFB3l4I6RHEIPHm4SekKWVpxSmO8OCWoBPNaBytGsxmjp8J8T+P7jMeloLYAcVJ8+m7HSU0/aSZFAOQ29XOVXyI10Kso3lZo8JjJPL9X3FcDS3F5ca6vRU8E8By9n8R0LHoQRSYqWR2glSK8SDwTiL9vMzk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743425911; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=V7VglsTdvAJ0yyYfaKfMQi2cxaNHZX7+PMSNo4t/v9o=; b=IiO7kDR/atYDxW144PxTV0E6wJbwJGjP5E5y7jLAOAj3qMV2uAwj16bDtjuGbxEqRFPC9Yl936CFTY4v8j2uxO8UT6/8MVH/zf7uuqthccMeNZq2qf2Zgzk8XOXLEXbMwAqRpVjosTKoNTOnLWGjg3PAicmtkqI+dtL7AmdcJbQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743425911158851.6918911547159; Mon, 31 Mar 2025 05:58:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tzEhz-0006BW-D8; Mon, 31 Mar 2025 08:57:43 -0400 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 1tzEhx-0006BG-Lr for qemu-devel@nongnu.org; Mon, 31 Mar 2025 08:57:41 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tzEhv-00016t-79 for qemu-devel@nongnu.org; Mon, 31 Mar 2025 08:57:40 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-225477548e1so78701055ad.0 for ; Mon, 31 Mar 2025 05:57:38 -0700 (PDT) Received: from wheely.local0.net ([203.185.207.94]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-af93b67dc0fsm6324016a12.16.2025.03.31.05.57.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Mar 2025 05:57:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743425858; x=1744030658; 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=V7VglsTdvAJ0yyYfaKfMQi2cxaNHZX7+PMSNo4t/v9o=; b=fwMjUCvoDtXw2UD1seT3C2Mq5kB6ve3ODvWucWn7L4ubdJCVfpUfWIP/9w3oPPWSja JpRJUihzTqdxS0gf5aXNWCKfnMiYvMQd9AJruJ+g9RZTKUEj9wrgdM6h0Qp8HyMJJut7 D8Uq3oqbt+yFiSxqkObPf2hbWDRfjmrxJp5S6bqz0uI20n2Yf6uqqRuNHvYjxhtqIZj1 hp2PfIXymMgKBKf8QYYcnCdHn9pA0HTGYdZEZQhq2lRBeKhO/4GqoVyg6fdX2fgZ3x6Z pDgr+twU2z5RVjpviTxuCmW9O/TaD/QWtLKFtHqj4QW9M++qsVPstFcg5iq1709nzJXr jK0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743425858; x=1744030658; 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=V7VglsTdvAJ0yyYfaKfMQi2cxaNHZX7+PMSNo4t/v9o=; b=pZ6BFJixsma5iEtx8h0z8t+BvL1CaFmO3wepUD/fciZ27iDSm6cy/7TDq0ObCghRzI 1yJBfdrG2/o+NY9UfetV01/S8iPfdISDgXg1OUlfDTdRj1ztm1mABHqIZoMRtr0hDiLI sLefx/9DsrMV2NJy5sZ86G9B1yZ/zaSWP3HBhxEGH4TIbA3kgIuEIW8hjz7/OH5JF1ll PgZHQWx7vnhF3nfJxGxE9bluIFM8cyElqWPJDJEIH+6yzFDkGJ4BB+aSo9vvTWaVyIvg VqAV3vdep3j6cyzhxs1NCyZ2sUTi/WoXOV/GyD3shZNQsd2MMUtFLE6Gcmd8CUESybFu fV+w== X-Forwarded-Encrypted: i=1; AJvYcCV4mzaWvf7KP83IJAaIrmmS7/XJX6m7OxOZp+6cnGio5lG2fs7VCpnOiaT6gqwJkWEZJhMcUBTu7xkP@nongnu.org X-Gm-Message-State: AOJu0YwaCAclcoPYDEKdlqWMQbkW8MS9jMPERdKWDgVo78nvJyabuVvO DHJHBlKn5TWikMrrKv5sX6NloQd/+woYxPqcCA0fnBS28u3+0F1Tbf8Cgw== X-Gm-Gg: ASbGncuDLcJYgCraSeO3gvdeHl2zPIBD7mc0Q0NqWTDl338+j5gmOWbSfwsWjg5J0Gm Zj6Ybi38nG9sHdPF/ghDmFu5V6tDbWWxmMfyi3vYhZUDW+GU5TiK6Zk8IgTHM5w/MoCACvKTJQ9 olBkt0d5dhf5213LjrscHtX4kRfIvNDdq1S+03tXJt8s8TVzelH3EcrVWEQ4moC6ihpV1bmEgJn 14vq4idT0pvhpmrquhTFcGYiaP0/TN4dzBWP1f3eAnn3RFYntRDmSFLjQ4gFk0eTJsaGyYT/GSQ bF+U3hdP85k1Ed22XWWen2U+kB0o27aP6/n2wKTcfblbbhBd/YMxU3XrQHSa X-Google-Smtp-Source: AGHT+IGEFejaOzxyFlVlo8ntpv7G36C8f+7Cf7n9V3rlDlcfWl6fnau4ywGiqOTdJ4qin/eQ90jvnA== X-Received: by 2002:a05:6a20:43a3:b0:1fd:f8dc:7c0e with SMTP id adf61e73a8af0-2009f5f725dmr14638115637.12.1743425857878; Mon, 31 Mar 2025 05:57:37 -0700 (PDT) From: Nicholas Piggin To: Corey Minyard Cc: Nicholas Piggin , qemu-devel@nongnu.org Subject: [PATCH 2/3] ipmi/bmc-sim: add error handling for 'Set BMC Global Enables' command Date: Mon, 31 Mar 2025 22:57:23 +1000 Message-ID: <20250331125724.607355-3-npiggin@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250331125724.607355-1-npiggin@gmail.com> References: <20250331125724.607355-1-npiggin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::632; envelope-from=npiggin@gmail.com; helo=mail-pl1-x632.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1743425912144019000 Content-Type: text/plain; charset="utf-8" Mask out unsupported bits and return failure if attempting to set any. This is not required by the IPMI spec, but it does require that system software not change bits it isn't aware of. Signed-off-by: Nicholas Piggin --- hw/ipmi/ipmi_bmc_sim.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c index 32161044c0b..8c3313aa65f 100644 --- a/hw/ipmi/ipmi_bmc_sim.c +++ b/hw/ipmi/ipmi_bmc_sim.c @@ -234,6 +234,7 @@ struct IPMIBmcSim { #define IPMI_BMC_MSG_FLAG_RCV_MSG_QUEUE_SET(s) \ (IPMI_BMC_MSG_FLAG_RCV_MSG_QUEUE & (s)->msg_flags) =20 +#define IPMI_BMC_GLOBAL_ENABLES_SUPPORTED 0x0f #define IPMI_BMC_RCV_MSG_QUEUE_INT_BIT 0 #define IPMI_BMC_EVBUF_FULL_INT_BIT 1 #define IPMI_BMC_EVENT_MSG_BUF_BIT 2 @@ -930,7 +931,14 @@ static void set_bmc_global_enables(IPMIBmcSim *ibs, uint8_t *cmd, unsigned int cmd_len, RspBuffer *rsp) { - set_global_enables(ibs, cmd[2]); + uint8_t val =3D cmd[2]; + + if (val & ~IPMI_BMC_GLOBAL_ENABLES_SUPPORTED) { + rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); + return; + } + + set_global_enables(ibs, val); } =20 static void get_bmc_global_enables(IPMIBmcSim *ibs, --=20 2.47.1 From nobody Sun Nov 16 04:02:32 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1743425917; cv=none; d=zohomail.com; s=zohoarc; b=eGirOK4fo/6iTZQIzpmngekXewP9/FNvJ3To5UwMWbQfmIIShUIb0IoqMEzfYZ7xdThJEL5HhCIMo74ol3iWMaq80dUjjMKHDj8GWvPIwrK3Bg2UrDRrjWrpNCX8spMV/nCBV9GaocJgCtbGbo59g3pu7YC5VDipkU1FNEQ+rWU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1743425917; h=Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=omEx8EKLunY54Ma+wQ+BIg2EYA/LEOc9I0znrxH406c=; b=JxCXQYyinblqvT2/ukTa9EVyruGeYGHIK+SX6WpIjUdtQ1tHSbnNqgJqJKeLyWHLQC08f1Go3qobjHhjICCZRfGK9YTYYM+tkjq3+0NRORDFy81FfcylV6OGa1cOw6+3rmD64YgnwfI6/fBMDjOB8LSDZnvywsV6K4g2Nmq3h9w= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1743425917733209.07040898417006; Mon, 31 Mar 2025 05:58:37 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tzEi2-0006C7-HV; Mon, 31 Mar 2025 08:57:46 -0400 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 1tzEi0-0006Bq-2b for qemu-devel@nongnu.org; Mon, 31 Mar 2025 08:57:44 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tzEhy-000173-9y for qemu-devel@nongnu.org; Mon, 31 Mar 2025 08:57:43 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-22928d629faso47220715ad.3 for ; Mon, 31 Mar 2025 05:57:41 -0700 (PDT) Received: from wheely.local0.net ([203.185.207.94]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-af93b67dc0fsm6324016a12.16.2025.03.31.05.57.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Mar 2025 05:57:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1743425861; x=1744030661; 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=omEx8EKLunY54Ma+wQ+BIg2EYA/LEOc9I0znrxH406c=; b=jSgvAZCtIZxfZlq2XYekq9MbH4tcyl/wDobhyvgKVpRop6S8oV4GCUr5mFzodyplA6 XN9vgcZgE0lF2MNEvkDRzAuIywwaFQVNdRhbsw7nKlOJm7c6TFhFYtpZI8pMgV/+L6jl kotnMUONXYFb65PV86bfXmHG1F71O8wpD9A7FMN5W7xAZE4OH+ixMKyyoSy9nBxtLGpm oRtgmc0mrtaVSlbSqzp8ba5PFB1tw6SVgxbzLkH6+wZTpjjyCBc7l+N7mKfwHYjXg7El X7R4/BLHGgYXXs16GpSuGof9XlYjfZekWGCw6/rm/ti8LReeX43bgypgh+liQXjiFoGx HNHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743425861; x=1744030661; 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=omEx8EKLunY54Ma+wQ+BIg2EYA/LEOc9I0znrxH406c=; b=QoXLOJHVNnUjQztfW2PAXWwKVdRORWZxSiBiGT+75LCbbnPR8NfveITiIZSWXVt0Ae dycXW4hddbOOAPvQ1Z27ZvEdXNu0bJfPIDwIGnH99rq9AYRhEnoAv3tntLI5M/ttFgks HslyegOW53f0Aj7/PvaWf4uEdYMEgySMkE49A2JKFq9WIgVu8IFd8JjC5R1zQTtFcFSU sGNVFtyRNs9+7oH/+4KjvQo+L11aZEvOW5aKZq/QkKwbLnOvRyDj5d7Ew2Ebj/5l7ckI 4OrZabyXlBqcMfmGpqGZlTB44RudVMbogwsF3DtzUKGxVqbuQHv8bjyK0QtxtWd3BcT5 XwxQ== X-Forwarded-Encrypted: i=1; AJvYcCUjOPRsI5GYOGJqvHHLLPFh4m3bvec0LkksxDTEJ15KY/ZFjLDsd9LV3y93sADJCfx8JmYo5gXHr2JD@nongnu.org X-Gm-Message-State: AOJu0YxwvdU7Tv0vxxbKXYEgz5M2TLkfBpsu3Kicmo5S0V/4MlOXvbTj NyM65PreNVQgmQ8QTrPB6zTqZOVqcn4GOI98S9X0+4ihH4jeVLxQdDLHBQ== X-Gm-Gg: ASbGncsmNhaJauPFXdK576eqHsaIO/5PdeZmlL1h1S7rAwjeSWNc2qgdDIZAaPhLWQu LW7CPxYq0t5TkI4+Hr/T6ZTj3LSaxGxkeJrnF7G30+IAssxlC1k/LVsvaVosQPfRzWokw9lr8tA vp8t6RcFM+H0wI05w0+q/LWZMzezVF6oXxIqtsC/humSXBw5+LyyxhVoGDwap1US1VHdKmgcerp j8tF/q1rIoVhVutpqZX0CkCZVyNGivN4zQlE+ZU8cU02YTTMp5w42K4QgBtIw4Iw6edaFj4sypj fX/Sms0v8eE5ZSwBsZgMQmQ17ZaYCgwaa/VdIixSGSapEQ/KEw== X-Google-Smtp-Source: AGHT+IERP5/WN8zI1jT/uVqOctgcUvDLk8njbNe3+V9DU6vQDGX6Isx0xlI49G2Gm6kSaDTNHVa3kA== X-Received: by 2002:a05:6a21:8dc3:b0:1f5:75a9:526c with SMTP id adf61e73a8af0-2009f5fd52dmr16172858637.13.1743425860786; Mon, 31 Mar 2025 05:57:40 -0700 (PDT) From: Nicholas Piggin To: Corey Minyard Cc: Nicholas Piggin , qemu-devel@nongnu.org Subject: [PATCH 3/3] ipmi/bmc-sim: Add 'Get Channel Info' command Date: Mon, 31 Mar 2025 22:57:24 +1000 Message-ID: <20250331125724.607355-4-npiggin@gmail.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250331125724.607355-1-npiggin@gmail.com> References: <20250331125724.607355-1-npiggin@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62e; envelope-from=npiggin@gmail.com; helo=mail-pl1-x62e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @gmail.com) X-ZM-MESSAGEID: 1743425920036019100 Content-Type: text/plain; charset="utf-8" Linux issues this command when booting a powernv machine. Signed-off-by: Nicholas Piggin --- include/hw/ipmi/ipmi.h | 14 +++++++++++ hw/ipmi/ipmi_bmc_sim.c | 56 ++++++++++++++++++++++++++++++++++++++++-- hw/ipmi/ipmi_bt.c | 2 ++ hw/ipmi/ipmi_kcs.c | 1 + 4 files changed, 71 insertions(+), 2 deletions(-) diff --git a/include/hw/ipmi/ipmi.h b/include/hw/ipmi/ipmi.h index 77a7213ed93..5f01a50cd86 100644 --- a/include/hw/ipmi/ipmi.h +++ b/include/hw/ipmi/ipmi.h @@ -41,6 +41,15 @@ enum ipmi_op { IPMI_SEND_NMI }; =20 +/* Channel properties */ +#define IPMI_CHANNEL_IPMB 0x00 +#define IPMI_CHANNEL_SYSTEM 0x0f +#define IPMI_CH_MEDIUM_IPMB 0x01 +#define IPMI_CH_MEDIUM_SYSTEM 0x0c +#define IPMI_CH_PROTOCOL_IPMB 0x01 +#define IPMI_CH_PROTOCOL_KCS 0x05 +#define IPMI_CH_PROTOCOL_BT_15 0x08 + #define IPMI_CC_INVALID_CMD 0xc1 #define IPMI_CC_COMMAND_INVALID_FOR_LUN 0xc2 #define IPMI_CC_TIMEOUT 0xc3 @@ -170,6 +179,11 @@ struct IPMIInterfaceClass { * Return the firmware info for a device. */ void (*get_fwinfo)(struct IPMIInterface *s, IPMIFwInfo *info); + + /* + * IPMI channel protocol type number. + */ + uint8_t protocol; }; =20 /* diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c index 8c3313aa65f..9198f854bd9 100644 --- a/hw/ipmi/ipmi_bmc_sim.c +++ b/hw/ipmi/ipmi_bmc_sim.c @@ -70,6 +70,7 @@ #define IPMI_CMD_GET_MSG 0x33 #define IPMI_CMD_SEND_MSG 0x34 #define IPMI_CMD_READ_EVT_MSG_BUF 0x35 +#define IPMI_CMD_GET_CHANNEL_INFO 0x42 =20 #define IPMI_NETFN_STORAGE 0x0a =20 @@ -1033,8 +1034,8 @@ static void send_msg(IPMIBmcSim *ibs, uint8_t *buf; uint8_t netfn, rqLun, rsLun, rqSeq; =20 - if (cmd[2] !=3D 0) { - /* We only handle channel 0 with no options */ + if (cmd[2] !=3D IPMI_CHANNEL_IPMB) { + /* We only handle channel 0h (IPMB) with no options */ rsp_buffer_set_error(rsp, IPMI_CC_INVALID_DATA_FIELD); return; } @@ -1232,6 +1233,56 @@ static void get_watchdog_timer(IPMIBmcSim *ibs, } } =20 +static void get_channel_info(IPMIBmcSim *ibs, + uint8_t *cmd, unsigned int cmd_len, + RspBuffer *rsp) +{ + IPMIInterface *s =3D ibs->parent.intf; + IPMIInterfaceClass *k =3D IPMI_INTERFACE_GET_CLASS(s); + uint8_t ch =3D cmd[1] & 0x0f; + + /* Only define channel 0h (IPMB) and Fh (system interface) */ + + if (ch =3D=3D 0x0e) { /* "This channel" */ + ch =3D IPMI_CHANNEL_SYSTEM; + } + rsp_buffer_push(rsp, ch); + + if (ch !=3D IPMI_CHANNEL_IPMB && ch !=3D IPMI_CHANNEL_SYSTEM) { + /* Not supported */ + int i; + for (i =3D 0; i < 8; i++) { + rsp_buffer_push(rsp, 0x00); + } + return; + } + + if (ch =3D=3D IPMI_CHANNEL_IPMB) { + rsp_buffer_push(rsp, IPMI_CH_MEDIUM_IPMB); + rsp_buffer_push(rsp, IPMI_CH_PROTOCOL_IPMB); + } else { /* IPMI_CHANNEL_SYSTEM */ + rsp_buffer_push(rsp, IPMI_CH_MEDIUM_SYSTEM); + rsp_buffer_push(rsp, k->protocol); + } + + rsp_buffer_push(rsp, 0x00); /* Session-less */ + + /* IPMI Vendor ID */ + rsp_buffer_push(rsp, 0xf2); + rsp_buffer_push(rsp, 0x1b); + rsp_buffer_push(rsp, 0x00); + + if (ch =3D=3D IPMI_CHANNEL_SYSTEM) { + /* IRQ assigned by ACPI/PnP (XXX?) */ + rsp_buffer_push(rsp, 0x60); + rsp_buffer_push(rsp, 0x60); + } else { + /* Reserved */ + rsp_buffer_push(rsp, 0x00); + rsp_buffer_push(rsp, 0x00); + } +} + static void get_sdr_rep_info(IPMIBmcSim *ibs, uint8_t *cmd, unsigned int cmd_len, RspBuffer *rsp) @@ -2028,6 +2079,7 @@ static const IPMICmdHandler app_cmds[] =3D { [IPMI_CMD_RESET_WATCHDOG_TIMER] =3D { reset_watchdog_timer }, [IPMI_CMD_SET_WATCHDOG_TIMER] =3D { set_watchdog_timer, 8 }, [IPMI_CMD_GET_WATCHDOG_TIMER] =3D { get_watchdog_timer }, + [IPMI_CMD_GET_CHANNEL_INFO] =3D { get_channel_info, 3 }, }; static const IPMINetfn app_netfn =3D { .cmd_nums =3D ARRAY_SIZE(app_cmds), diff --git a/hw/ipmi/ipmi_bt.c b/hw/ipmi/ipmi_bt.c index 583fc64730c..d639c151c4d 100644 --- a/hw/ipmi/ipmi_bt.c +++ b/hw/ipmi/ipmi_bt.c @@ -434,4 +434,6 @@ void ipmi_bt_class_init(IPMIInterfaceClass *iic) iic->handle_if_event =3D ipmi_bt_handle_event; iic->set_irq_enable =3D ipmi_bt_set_irq_enable; iic->reset =3D ipmi_bt_handle_reset; + /* BT System Interface Format, IPMI v1.5 */ + iic->protocol =3D IPMI_CH_PROTOCOL_BT_15; } diff --git a/hw/ipmi/ipmi_kcs.c b/hw/ipmi/ipmi_kcs.c index c15977cab4c..8af7698286d 100644 --- a/hw/ipmi/ipmi_kcs.c +++ b/hw/ipmi/ipmi_kcs.c @@ -420,4 +420,5 @@ void ipmi_kcs_class_init(IPMIInterfaceClass *iic) iic->handle_rsp =3D ipmi_kcs_handle_rsp; iic->handle_if_event =3D ipmi_kcs_handle_event; iic->set_irq_enable =3D ipmi_kcs_set_irq_enable; + iic->protocol =3D IPMI_CH_PROTOCOL_KCS; } --=20 2.47.1