From nobody Fri Dec 12 08:34:59 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=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1765296182; cv=none; d=zohomail.com; s=zohoarc; b=MB11iA4Iz9Ve46409IJ8lljv2nX50p/huH5M2ehWkrv311YmoxeLRetc4By892XzgnKYHIN2GN5Wb6A8/OQV9crXYgYNHnBAfSTESFNIvoBXi/Ph+/VaamafcBh2FNCQZMOPW26Okm0O9c8wpd4qpgR4uHjQS5WI9F9gXjZbeX0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765296182; 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=lF2fu4z2XG02l76l/IsUrBTfEhGWyD0UfOXyu3FKewU=; b=fS4haE+vbq8wOW8N0YxNU4Bql/6BqLq8UqtfS6YpKnl0O61cpoRjGjU+x7iE7UvSdCLccidqrd8exOKDL+xbRmBTud1NEM7/ODxxonsfwtuU2o0AIQ9GqhQOW6ppO39eldoxxf/u1UYClz5WNYwoxCxP1hxLgtrGdCgHZ67Ej3A= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765296182987714.3391275244522; Tue, 9 Dec 2025 08:03:02 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vT09o-0003cm-4R; Tue, 09 Dec 2025 11:01:44 -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 1vT09e-0003Zs-E1 for qemu-devel@nongnu.org; Tue, 09 Dec 2025 11:01:34 -0500 Received: from mail-pf1-x42f.google.com ([2607:f8b0: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 1vT09c-0003qX-J6 for qemu-devel@nongnu.org; Tue, 09 Dec 2025 11:01:33 -0500 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-7b7828bf7bcso6641701b3a.2 for ; Tue, 09 Dec 2025 08:01:31 -0800 (PST) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7e29ff6c68csm16475242b3a.19.2025.12.09.08.01.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 08:01:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1765296090; x=1765900890; 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=lF2fu4z2XG02l76l/IsUrBTfEhGWyD0UfOXyu3FKewU=; b=Nbt28RdlHzXH84zxGP36OsQLSc+74KllD2w3hFTzAozPTn6sXG1O/canB2j7rtNS97 EpH8ELTYo55X1xUDM/ItimIIuvV3GxLRXjfYA1BDlzOnprERzpaqO/W9ndw45GRG/tT5 CA2JjlfUibEGfOhSlimNQyqMd3UAAuyQzx0+mqzcJxGuUExb6iGlT03qkA1VFwPz0myN dYQ0ulfmzh00yaSURw8Jo9nS2eUI88d1dSx3noPF2VTRmA3bbzYPO7PjBge4E0K8JUoJ 2d38HpqU4qi6fDHWQHHJ/ujTVYW1QFyMDDLSy0tmpS/yixpgzYHkAVfDeYYEGsueyKHl kCFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765296090; x=1765900890; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=lF2fu4z2XG02l76l/IsUrBTfEhGWyD0UfOXyu3FKewU=; b=rCEXeuUzLqdDXGGtih2oWeyM/ES/aERaPiPg/fMrORV+YiwX6H1CzTmSew71n5VGCN tNpY2v11heL4nERLEwMmnek0gpcO73fW0WS28ph8UFxnmNuMqDdrJOmAHbzMUMilAFqD olxnllHin+sg01/FE14ZapCpV85Vb4ZS9V7cdulllXKScSteHdw1eIkAGkEK22mgV+iV 2dObenT86XmErDSoiAyOgd76y+8cpb/o+BRyeCKwcjXGinvR+6xyiA4ekLkirBLgZ8T6 Vr+d5rllX73wfocqRdsMDzLDVOD+SgXTSyRw6b21OXfSuJioXveV/gRsC/F3SaQ/Y3jH y4+w== X-Gm-Message-State: AOJu0YxGBxXuUikzDvD/OZR8vmfbqdoSZfKIc0ojupGO33Or6vT2iGzO TGsWPhBccdN52DRvj52Eea7EDE9q+r2bqU5wP6sKqMsp4tA2mmvHwbAbk6ABbHEqIZOw/m61UyS rGC7SHTxIaJx41MUaWFYR3VgUo+La1IaAnfbet+nPgqOXoyNRGJ/zOFVsVhEQuViP71Ki4O4tDW 3rn2nQ/iVzRLfk06gtd29qn3q6qQEqRiKzmWJO785k8s4= X-Gm-Gg: ASbGncu1uUVVjddUGdcpEXKeauPyQIz2XBsNeKLFvU7WridpTboLVJzP/sUcsP3wwnX NHTgDyad9pFtEcCtYmc+TOpyZbfCLQh3hwQbBe1htszczN37YGwe9uxfJ0jgYQ9W8Dkmyi6lOWC e8FleYPopWang63mScOSWqj+1fjcStUzUsAKdVsuhfoIkY+YFe3S3lFpqlHK8+GqE+VfRleThLZ 8zovttELLVU8qZiK1jLoPMSz1rv0MTJC1P0UdNWrzbe5U9QZag7lVGDz3YppAx+UHwL0tJsN6Ub 628qU29NiVSPnQPh+K00OQlfHs6pINX1EGSXzEA2v75ChLO4M8i8fbklwDyqXgy6xCR5d3ESKXJ /kM2TZXzs3BKclTta5whd4ayS0gYqiMoqE8dOxtqRrCXJXxWFJj/tjBGYUrwyYXIJLsLWGO2KrE Uw0PpdVJjfC0WU80coPWHyYiAlDsKS5rJiHoblig== X-Google-Smtp-Source: AGHT+IE+od/9o9LMlSLtdHhfpHVoW+3tGODFBffy9J0MnyK4HtdzkF05zt6I+0zduKb5hNWG2x3m3w== X-Received: by 2002:a05:6a00:1812:b0:7b9:dbf2:3bae with SMTP id d2e1a72fcca58-7e8c1c30b46mr13082604b3a.24.1765296088538; Tue, 09 Dec 2025 08:01:28 -0800 (PST) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Alistair Francis , Palmer Dabbelt , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , qemu-riscv@nongnu.org (open list:SiFive Machines), Frank Chang Subject: [PATCH v2 1/4] hw/char: sifive_uart: Implement txctrl.txen and rxctrl.rxen Date: Wed, 10 Dec 2025 00:01:14 +0800 Message-ID: <20251209160117.1239596-2-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251209160117.1239596-1-frank.chang@sifive.com> References: <20251209160117.1239596-1-frank.chang@sifive.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::42f; envelope-from=frank.chang@sifive.com; helo=mail-pf1-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=unavailable 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 @sifive.com) X-ZM-MESSAGEID: 1765296184212158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang Implement txctrl.txen and rxctrl.rxen as follows: * txctrl.txen The txen bit controls whether the Tx channel is active. When cleared, transmission of Tx FIFO contents is suppressed, and the txd pin is driven high. * rxctrl.rxen: The rxen bit controls whether the Rx channel is active. When cleared, the state of the rxd pin is ignored, and no characters will be enqueued into the Rx FIFO. Therefore, the Tx FIFO should not be dequeued when txctrl.txen is cleared, and the Rx FIFO should not be enqueued when rxctrl.rxen is cleared. Signed-off-by: Frank Chang --- hw/char/sifive_uart.c | 27 ++++++++++++++++++++------- include/hw/char/sifive_uart.h | 2 ++ 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/hw/char/sifive_uart.c b/hw/char/sifive_uart.c index e7357d585a1..4a54dd52a1e 100644 --- a/hw/char/sifive_uart.c +++ b/hw/char/sifive_uart.c @@ -78,6 +78,11 @@ static gboolean sifive_uart_xmit(void *do_not_use, GIOCo= ndition cond, return G_SOURCE_REMOVE; } =20 + /* Don't pop the FIFO if transmit is disabled. */ + if (!SIFIVE_UART_TXEN(s->txctrl)) { + return G_SOURCE_REMOVE; + } + /* Don't pop the FIFO in case the write fails */ characters =3D fifo8_peek_bufptr(&s->tx_fifo, fifo8_num_used(&s->tx_fifo), &numptr); @@ -106,11 +111,19 @@ static gboolean sifive_uart_xmit(void *do_not_use, GI= OCondition cond, return G_SOURCE_REMOVE; } =20 -static void sifive_uart_write_tx_fifo(SiFiveUARTState *s, const uint8_t *b= uf, - int size) +static void sifive_uart_trigger_tx_fifo(SiFiveUARTState *s) { uint64_t current_time =3D qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL); =20 + if (!timer_pending(s->fifo_trigger_handle)) { + timer_mod(s->fifo_trigger_handle, current_time + + TX_INTERRUPT_TRIGGER_DELAY_NS); + } +} + +static void sifive_uart_write_tx_fifo(SiFiveUARTState *s, const uint8_t *b= uf, + int size) +{ if (size > fifo8_num_free(&s->tx_fifo)) { size =3D fifo8_num_free(&s->tx_fifo); qemu_log_mask(LOG_GUEST_ERROR, "sifive_uart: TX FIFO overflow.\n"); @@ -124,10 +137,7 @@ static void sifive_uart_write_tx_fifo(SiFiveUARTState = *s, const uint8_t *buf, s->txfifo |=3D SIFIVE_UART_TXFIFO_FULL; } =20 - if (!timer_pending(s->fifo_trigger_handle)) { - timer_mod(s->fifo_trigger_handle, current_time + - TX_INTERRUPT_TRIGGER_DELAY_NS); - } + sifive_uart_trigger_tx_fifo(s); } =20 static uint64_t @@ -184,6 +194,9 @@ sifive_uart_write(void *opaque, hwaddr addr, return; case SIFIVE_UART_TXCTRL: s->txctrl =3D val64; + if (SIFIVE_UART_TXEN(s->txctrl) && !fifo8_is_empty(&s->tx_fifo)) { + sifive_uart_trigger_tx_fifo(s); + } return; case SIFIVE_UART_RXCTRL: s->rxctrl =3D val64; @@ -231,7 +244,7 @@ static int sifive_uart_can_rx(void *opaque) { SiFiveUARTState *s =3D opaque; =20 - return s->rx_fifo_len < sizeof(s->rx_fifo); + return SIFIVE_UART_RXEN(s->rxctrl) && (s->rx_fifo_len < sizeof(s->rx_f= ifo)); } =20 static void sifive_uart_event(void *opaque, QEMUChrEvent event) diff --git a/include/hw/char/sifive_uart.h b/include/hw/char/sifive_uart.h index 6486c3f4a5d..e216cacf693 100644 --- a/include/hw/char/sifive_uart.h +++ b/include/hw/char/sifive_uart.h @@ -51,6 +51,8 @@ enum { =20 #define SIFIVE_UART_TXFIFO_FULL 0x80000000 =20 +#define SIFIVE_UART_TXEN(txctrl) (txctrl & 0x1) +#define SIFIVE_UART_RXEN(rxctrl) (rxctrl & 0x1) #define SIFIVE_UART_GET_TXCNT(txctrl) ((txctrl >> 16) & 0x7) #define SIFIVE_UART_GET_RXCNT(rxctrl) ((rxctrl >> 16) & 0x7) =20 --=20 2.43.0 From nobody Fri Dec 12 08:34:59 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=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1765296188; cv=none; d=zohomail.com; s=zohoarc; b=JZDWV5gJjkgP0R042M/KDEwPP3Nzqupmjm2Bvh4KXr1LrfZxnnF8Ekl/gF6T/hfk5lp+Py5ha2fUNhlMHft9wGAoHqgGq5Shb49i9Snl3MyzVmjcJvF5h2iqMUhTb3vvV8ILe4FLw6s4UzV8fpcG0Bljo74liw9OHrRg/M5+N3g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765296188; 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=24RF9wvhFdUE+qmDFLRrtImu/p8et45RGyRPMY+AKcU=; b=k6rIJOATAGoVUUDGSoR1j1VGuu5LGAC04Hwct7Tc180/Ed9eQoQQcicK4lczvIW9smHffsUxSMbGo09i4jvlM2sBMGYcDM+iH52wCn6RBNE+sQpciGgY2Ziua4GzKyd+UNE4UJMTJ4Cc4Cl5MTMcLUoV1eS522lj/8Cfa1j9+kk= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765296188785230.72297037153783; Tue, 9 Dec 2025 08:03:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vT09o-0003co-JI; Tue, 09 Dec 2025 11:01:44 -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 1vT09g-0003af-K2 for qemu-devel@nongnu.org; Tue, 09 Dec 2025 11:01:37 -0500 Received: from mail-pf1-x434.google.com ([2607:f8b0: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 1vT09e-0003r1-68 for qemu-devel@nongnu.org; Tue, 09 Dec 2025 11:01:35 -0500 Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-7b9215e55e6so3855956b3a.2 for ; Tue, 09 Dec 2025 08:01:33 -0800 (PST) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7e29ff6c68csm16475242b3a.19.2025.12.09.08.01.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 08:01:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1765296092; x=1765900892; 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=24RF9wvhFdUE+qmDFLRrtImu/p8et45RGyRPMY+AKcU=; b=eYOJDW8KkePyf4VMmMgFRkQ3Pw5gs0rqhIEWjWkFKI1VSXatH5xK6n6GH/mVHF8Czz ZRhcU05TU9Jj0UYnOffC/0ycxsF9PkvLxrQLK//Fack9b9HZYLPWejPsEGALXoAqLm6D Bglu0ceNOC0mRLPDRbVdLBQkQapNBvLLQNHrJZiV9CQs7JWVbj25URRlDRqblEj3TW9D 8DNTM8Uz3EeDf/HYFimX0XpPempla0SUhWbVpRZjWKFVu8XZitSl+hI5nVC0BGaOBtvs 4nHh/oA1Do4qeDb8uPXrVlIkv86wJwi/RsZeHJOYGya8k7RzhoszJ4fC4VhePV6k61Bd v7yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765296092; x=1765900892; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=24RF9wvhFdUE+qmDFLRrtImu/p8et45RGyRPMY+AKcU=; b=TE+uixJyCpGGg8pCa4/jJXgflQnpwVD6GVu8m0Le0evLQ3FRD2JydJ3kJoDr/rBNG9 Nx0xHI5PjPwh+uq9bhwm9T3lJH7UtGoOvuDBbdXECxowd5gxuUy8Hp/y6lr0EYP5Qrxz kXH5k7L3xZoVb6xykmJPYYfv7rVcGmd//sAz8XAo/vq3GcbdqLZweCpoJLIKt83Lfcnp PiFLc9CenQ/IcleiqaTtZXqQmyRYo2krphpXX+I+cjOnFmCSB2Y6ruzMq3+MRcgL+TKG C8e1B5HI3B2sgUuJ1nswv+CIp0bOYLLy4zF1qdEriyLfq+IGzRN/LFDlOMoyXJmXRDIn RYZw== X-Gm-Message-State: AOJu0YxcpkK64uKjyRCr+uZD4x3mUS8CjInus2PybTySy/qsG/+LXoTj MCfkHqYbOc9WdkifuRHG2uxqaRZOgQBoXakBb9v5MZHMinMoPfntfSAoUErAEVKpJRISQXd/cjv ZPPlK9kQYwoUtmW6cpVrwTCkk0Ds/NXtLHw6kAwgOwNpIgixuvSGBfXpUiCxV8QzAsI6Xb6g8ma tRyEiptQv8ZFgeKmMTiO5kM2CqEphtU+5WCadrI6ck/yg= X-Gm-Gg: ASbGncuYmWXZscwQhPWHlk5S43MnHLhpMnvL4woAdGKsYvTuwWiBOchPE/jhOwKnW6N F9dlQIrh7s06iNr9LX1s+ksws5AZdb6iwMOgNGAFR4ePvJ0U1pJvFH/pmTwpu02qqXKSfX9TiEG /CyAYAvmWqEckQ++z1VeCRu1kQKPQcKqPFknQAbtIwh+0q0M3HeIB3171ad+v+OTnLJm37fDsJR Nf7411gQP0Ms/ZWDDn/T4kcONEI4QqrTclkA1zj9XG9IGuyzfmrn6yI5awMkzeV7e8zTR6smcNQ Bud81letq+sE5xzjlw8/rRm6TIitk3sZUORxiRGu+Jma66WQiZVljvOJCRo8tD11MFDXQ0wYiuX KSMtmGIw2RFANFc8uzoihFqHCVuFUFLrE2EQJ52KWwi0jwIrTHs2TqsIUjshfqqBjWE5JbaZxyv ncrvKG4NPoMK1dj2RsH/ANvsjMiIR6+NtjWEWVsw== X-Google-Smtp-Source: AGHT+IFZDC4OhiN1h9B1FhpgKkifN7pix3ytBhwzmVVF5NWKgTlpKXzIx4am0CmKbe5KLrjn35YheQ== X-Received: by 2002:a05:6a00:1410:b0:7ae:8821:96dd with SMTP id d2e1a72fcca58-7e8c09d6299mr10559790b3a.24.1765296091560; Tue, 09 Dec 2025 08:01:31 -0800 (PST) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Alistair Francis , Palmer Dabbelt , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , qemu-riscv@nongnu.org (open list:SiFive Machines), Frank Chang Subject: [PATCH v2 2/4] hw/char: sifive_uart: Sync txwm interrupt pending status after TX FIFO enqueue Date: Wed, 10 Dec 2025 00:01:15 +0800 Message-ID: <20251209160117.1239596-3-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251209160117.1239596-1-frank.chang@sifive.com> References: <20251209160117.1239596-1-frank.chang@sifive.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::434; envelope-from=frank.chang@sifive.com; helo=mail-pf1-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=unavailable 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 @sifive.com) X-ZM-MESSAGEID: 1765296190471158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang Currently, the txwm interrupt pending status is only updated when the asynchronous transmit handler runs. This can cause the txwm interrupt state to become unsynchronized between the SiFive UART and the interrupt controller. For example, when a txwm interrupt is raised, the corresponding APLIC pending bit is also set. However, if software later enqueues additional characters into the TX FIFO exceeding the transmit watermark, the APLIC pending bit may remain set because the txwm interrupt pending status is not updated at enqueue time. This issue has been observed on resource-constrained machines, where Linux reports spurious IRQ errors. In these cases, the asynchronous transmit handler is unable to drain the TX FIFO quickly enough to update the txwm pending status before software reads the ip register, which derives the txwm pending state directly from the actual number of characters in the TX FIFO. This commit fixes the issue by updating the txwm interrupt pending status immediately after enqueuing data into the TX FIFO, ensuring that the interrupt pending status between the SiFive UART and the interrupt controller remains synchronized. Signed-off-by: Frank Chang --- hw/char/sifive_uart.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/hw/char/sifive_uart.c b/hw/char/sifive_uart.c index 4a54dd52a1e..eff1766274e 100644 --- a/hw/char/sifive_uart.c +++ b/hw/char/sifive_uart.c @@ -124,12 +124,20 @@ static void sifive_uart_trigger_tx_fifo(SiFiveUARTSta= te *s) static void sifive_uart_write_tx_fifo(SiFiveUARTState *s, const uint8_t *b= uf, int size) { + uint32_t txcnt =3D SIFIVE_UART_GET_TXCNT(s->txctrl); + bool update_irq =3D false; + if (size > fifo8_num_free(&s->tx_fifo)) { size =3D fifo8_num_free(&s->tx_fifo); qemu_log_mask(LOG_GUEST_ERROR, "sifive_uart: TX FIFO overflow.\n"); } =20 if (size > 0) { + if (fifo8_num_used(&s->tx_fifo) < txcnt && + (fifo8_num_used(&s->tx_fifo) + size) >=3D txcnt) { + update_irq =3D true; + } + fifo8_push_all(&s->tx_fifo, buf, size); } =20 @@ -137,6 +145,14 @@ static void sifive_uart_write_tx_fifo(SiFiveUARTState = *s, const uint8_t *buf, s->txfifo |=3D SIFIVE_UART_TXFIFO_FULL; } =20 + /* + * Update txwm interrupt pending status when the number of entries + * in the transmit FIFO crosses or reaches the watermark. + */ + if (update_irq) { + sifive_uart_update_irq(s); + } + sifive_uart_trigger_tx_fifo(s); } =20 --=20 2.43.0 From nobody Fri Dec 12 08:34:59 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=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1765296154; cv=none; d=zohomail.com; s=zohoarc; b=lXq5lp8z5kRfQ3vUaQ36tEQH4s6NHSL7Hxdh5IyoEC2orYI4dD2od6hPxJvXxGWoQ/T9zlAloV/tmHbTffwPqNbDahZWVnJESp0U5gPyl3qQsaDVIQhonxzH7Be7NrZLDwcWVi1uiG4KjMQ/IhhAQ6+DuiNecbHTtdawViPp69M= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765296154; 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=N5NxF7Pe8hs6KBkWQA57i0KsjqT2//4vx5sNUoS3nSU=; b=GfsUv+PK+lJHpWpjgeypO4QUZQJGZv6WtYHvpFwhLpvHFQH+QlF2r6idjV5A8A53VeHrDi8l3A/V0kvpibdppn/5Wu09GJz7bz1/TG9TxiYpAsAOHpcWKpfvNAshMfJhsPNFVE2KeLagyveKMs6HPvdnIP6hAXn4Fg7J8EmTYN0= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765296154747385.51178463864005; Tue, 9 Dec 2025 08:02:34 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vT0A3-0003g1-3F; Tue, 09 Dec 2025 11:02: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 1vT09i-0003bF-Ep for qemu-devel@nongnu.org; Tue, 09 Dec 2025 11:01:38 -0500 Received: from mail-pf1-x433.google.com ([2607:f8b0:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1vT09h-0003rm-0c for qemu-devel@nongnu.org; Tue, 09 Dec 2025 11:01:38 -0500 Received: by mail-pf1-x433.google.com with SMTP id d2e1a72fcca58-7acd9a03ba9so6228252b3a.1 for ; Tue, 09 Dec 2025 08:01:36 -0800 (PST) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7e29ff6c68csm16475242b3a.19.2025.12.09.08.01.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 08:01:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1765296095; x=1765900895; 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=N5NxF7Pe8hs6KBkWQA57i0KsjqT2//4vx5sNUoS3nSU=; b=LjOOdRo3y86N7NQjgW3F5B9P1BhSsDkR2Ny1fI3PXwbwcL1ccBXIc1yDIDwmoaFsY0 JNxgYF5YsiHcLwlYFOe5cbpanPbj08tbWyoKRoUvUAkPrseSAgqOMAy2z78CyINTZEAh 1fa8823ZVZQ5ejjPsRfLJFXa5Rt5ONWlxB3qm/FaXvVPKadxTfUVweq2pgeVKbSj2LNX Dqb5210UE81WIvilFrN6mmNp+EZ50TK0lZm5ciUyW/enE12wBS1wKHbumGQCsPBWvjaY ZVVQrplBaRtwJCIqcwuPiQcgJ38K1H/DWIB8zMRCg9K2oPk5s7ZxUCzaWmkNYX+e8qSF rPtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765296095; x=1765900895; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=N5NxF7Pe8hs6KBkWQA57i0KsjqT2//4vx5sNUoS3nSU=; b=fKjhkg4LFzE4v2XTteAnEkEDwICVuseU9wWhSl7U5jFYx99TtFH55vlxiczqN84Qdg ZxZWltVTAT16fyQ7bYS/UItvaA4LMtAFAo2RQ1jnnmGhq2f91f2Zrz71IAnRPP6+pfgN 6k6yseKOjZIEaCSgvk4NbHuF0L/Hh7PJSChNgOGPNm1N07F/iHUduQMim2Vxt9sjaZUH 6mxGeVEJJuQxM+BN8UHjbqa5Thade2IYvah7MrgIab9qtEI4gdtbPc3+AkEyrED3UwbA CukNCIvRCTbaf9d4nDIQ+lefDYUkFJdmdwUAXo54gdB7arlB1WeihFKZeNlCSMkMcY/N L4Ng== X-Gm-Message-State: AOJu0YxlmwJslpmpAQ//VUzu2OdKoC0FNHFsCnBdHTmGG5EwevdvqMSZ M6P6nhy2AE+VRnIH2SJkFrn1nqtEOqN8IuOy1B61f/YY/chOZ5hUCKbJ4j+FyXDWxMtr7qVnyJw O0aN475DeWdChKKAH4Lx78pEOyOKYWLw36FQ1rpxnz6Rxt05JuRaKPof+If/ZMyZEZ9fgUbggC5 mwPX3bFWoZ+pEgylnLErhqPdvGHgoVytl6/IajgOKVJ7I= X-Gm-Gg: ASbGncsMrOLeNJICcvswS0nDbUYP0rw+J/4vGqw7+DeuByqmtJ7BLEOfzL3laoQfnEn kDP6CU4QpWmdz5ZoFf45GjWVRu9vjqAjPFUkHfErREiEyKeO4qIChk59AoKSn6EFdQK/AszGZfg UyVpVokvmIzFcGSc4AlpEkIhXesO5t25XzheKyJzocTdm7BhayylYDzMDjKBQ+oK7QRpnMw6poX rKMDN4PoQKB8Mj8/mPDV75ENWhs3ChrsLQAEWRobJDFK5UTLhQMRLLZgycNTqQfyxEqhdjk1NHM mJa5hWA19recJ37waMlKe2jpO/8UGt7OC4Q7anGKiwz0tsxuFmOOngK961qinCpRevC3l1g9v2m JsXGB2BjtFN9eLtzVa9/Fj4WbKwR6Xq2bkbrK0GkRIJEmZCVOpR2ZSHpqSPhYJs2FhwOAG58zgX QhA/98PrfZfHq8Vmge9Ep+U8O7f+81oTzmWoKDdA== X-Google-Smtp-Source: AGHT+IG29GwXRiTwUUiGVvlccJVRzTxyC3SlTfXgoJj1DhIwTZ7OqWcJUXsgDO1f7O/MCvVaXvHojg== X-Received: by 2002:a05:6a00:1812:b0:7b9:dbf2:3bae with SMTP id d2e1a72fcca58-7e8c1c30b46mr13083068b3a.24.1765296094490; Tue, 09 Dec 2025 08:01:34 -0800 (PST) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Alistair Francis , Palmer Dabbelt , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , qemu-riscv@nongnu.org (open list:SiFive Machines), Frank Chang Subject: [PATCH v2 3/4] hw/char: sifive_uart: Update IRQ when rxctrl is written Date: Wed, 10 Dec 2025 00:01:16 +0800 Message-ID: <20251209160117.1239596-4-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251209160117.1239596-1-frank.chang@sifive.com> References: <20251209160117.1239596-1-frank.chang@sifive.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::433; envelope-from=frank.chang@sifive.com; helo=mail-pf1-x433.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=unavailable 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 @sifive.com) X-ZM-MESSAGEID: 1765296156148158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang When rxctl is updated, we also need to check whether the IRQ should be raised, as the user may activate the Rx channel or change the Rx FIFO watermark level. Signed-off-by: Frank Chang --- hw/char/sifive_uart.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/char/sifive_uart.c b/hw/char/sifive_uart.c index eff1766274e..c3bb9d5ba66 100644 --- a/hw/char/sifive_uart.c +++ b/hw/char/sifive_uart.c @@ -216,6 +216,7 @@ sifive_uart_write(void *opaque, hwaddr addr, return; case SIFIVE_UART_RXCTRL: s->rxctrl =3D val64; + sifive_uart_update_irq(s); return; case SIFIVE_UART_DIV: s->div =3D val64; --=20 2.43.0 From nobody Fri Dec 12 08:34:59 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=reject dis=none) header.from=sifive.com ARC-Seal: i=1; a=rsa-sha256; t=1765296173; cv=none; d=zohomail.com; s=zohoarc; b=gd+vwDlYvdzPUijiyydrJsfSjYspYF1eGZdBfjO/uRBGriCoD6eIHQsTg+RUu5ULa8jU2Lgvb5LR4gW0Y56GHuR5mB5sjyP1SyfImEjR/vVNjPasbdsMwy8h+O0aEx3hDWU2kUyFt1RdO+ufvmq9j2f+mdQs2yEdyQ3HfUXEjSo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1765296173; 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=WmSr+7UNGyS0cxdPZ6v+rDg2ZVlykU+2MSIiprx7dSE=; b=mL/euamXOjigT8LrGMRFssWJQ2u/aK1x4s6vgUlsNiHH4ysZZYJB2ERv+wVnZcac0V2pcXMqSH6KAeVqt98fZ7lhzAbARE5cE3AL0xDwI3gElwwzLAMZs7vY1DCh8F/3p370aJ+1Ck+eCSsItOsXqSAVGpjDy/TFHBi/u4l2k8w= 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=reject dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1765296173863368.2838046517734; Tue, 9 Dec 2025 08:02:53 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vT0A7-0003iV-Pk; Tue, 09 Dec 2025 11:02:03 -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 1vT09m-0003cZ-Lr for qemu-devel@nongnu.org; Tue, 09 Dec 2025 11:01:42 -0500 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 1vT09k-0003sI-DC for qemu-devel@nongnu.org; Tue, 09 Dec 2025 11:01:42 -0500 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-299d40b0845so93041215ad.3 for ; Tue, 09 Dec 2025 08:01:39 -0800 (PST) Received: from hsinchu16.internal.sifive.com ([210.176.154.34]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7e29ff6c68csm16475242b3a.19.2025.12.09.08.01.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 Dec 2025 08:01:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sifive.com; s=google; t=1765296098; x=1765900898; 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=WmSr+7UNGyS0cxdPZ6v+rDg2ZVlykU+2MSIiprx7dSE=; b=Bh9S1BCkaQWh+XjX6oaxs/nR4v5XcPfcSSlXf/y8AGPsucoWGNY818Bfa30I221i5a uXUNCUzE1lQTTD1lEQaY0O1VsLFFQ3+Tb/NkyvHCQGX3/4r3mMk287DpuVesbfkv3Qq4 +olKta6WttukiRgHLnUfWaM05hNWuFJI6QIj7Pb9gFUY/ld6b0ssbCP637LuVbzgrwaR JBZEvIBC4um0x6pn0fuhaFJM5SNBmOETjb0X4gCeGYEj2+RlOzskmHI08O2H6BR9Scwa 8CQmfKcIngOTGtFo/KJkgUvSXHkhIVUoGRHNMn5Y3IXrzRN5zmmZRmu+xrVIn4lLPkgd p4eg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765296098; x=1765900898; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WmSr+7UNGyS0cxdPZ6v+rDg2ZVlykU+2MSIiprx7dSE=; b=YgmhZGE4Ar5Io3O5waFB4FMcIGlfApCfhYPkbc59luX0EpoCaGvtuWiUO5Jw/Qpgge C0k+6u+cJkRLykPm0mH/Ccav5uXLJjaKlRM5RcSQ9ipQHErjEE1vimTjUWlP7xlG3P2h Fj3XxLsBUK+XK8v1BokKtCM+3OqtUAcToADfnmcD8ofG6gUBnWxXUImIzjRZKBizgFD7 kV0vYkkrRtzEbtNj7yWgqaJeGDQ6z4dmbMUnwhuAISHTpHLIa2yOgMZoiYBroKWvhNA8 FFJ02JK9gU/pU63rTSX0qOcT9n17WQm4WS28rwU+MxnF+oY8UX4JyP0H93iUZ9t587qY m9NQ== X-Gm-Message-State: AOJu0YwBOduNWkPtksP0GIaXncI+IeFoxgNRuGewXDX7yDZjLQ2US3w0 l09/xAoMQQN8MF/1Cdb5HyZHla6q3aDUavBabdguHmOxJ4QlAa/WMaCVhvuuQugOBeZVKRAUNpu 41WhIjn+MsP9J9bmIu8KcShsc0IpqC/aJYL8xqN/AASY9A/rAL0Te0h4iDcSRoCoyf3PPR+5QAw XSytHSiP0Slk/LaIaYcbgd9qlH5f/Gl9QLDaQ/ra1c8eU= X-Gm-Gg: AY/fxX7emtu4QjLYsqQdF68vf2YP3tJ8CoNFGeeeaxxNuAGzyGxW9qecymju2iS/70E 9d96hyeSTf8yfzTq+9UF4/BtZE34ScnbzDvJRmhPVKHWN7rY9X3v52dOq7OryRz9ERg4vzUdWFS iTiYCsXvmKbeUHD90IK0NUQ/g1G5JX76Z9pKZTcFzUOn70Vq+Ixy26Ryx33SI0tmlMhALajYann H3zQCTac0+LX3Iq8gQW4DIjlcb0TbuS/QU3JTZRWieXaYsWvbS0CwjEtxLByXNgEBE8SwhD658S TV2YvKTIJ3hwU5E0UmnvArvDHLwPuIaf1hdm3sxq0qHPY0ND3E5OKwbHrwNA/vn/4F/ZHalOebY NOh4qbjXHNqAHTqskuwKEvoiKS5H+JnY3XKZ+FHRhH1i8dsezqUlX/hrICcm/mNyyPxnM34eXeJ s32RHUn6mPD7DTz5qgjRIQr3cbDL8b4rYv1tTgBQ== X-Google-Smtp-Source: AGHT+IF+sUn2KZYCbTWUD/QKNeD0lJ4Bv2zDIz+ZzvW6elUuO859z1+5wNWAcnUlvAaabVHN5DzU2Q== X-Received: by 2002:a17:903:2c08:b0:295:9b73:b15c with SMTP id d9443c01a7336-29df5deb493mr123498985ad.42.1765296097804; Tue, 09 Dec 2025 08:01:37 -0800 (PST) From: frank.chang@sifive.com To: qemu-devel@nongnu.org Cc: Alistair Francis , Palmer Dabbelt , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Paolo Bonzini , qemu-riscv@nongnu.org (open list:SiFive Machines), Frank Chang Subject: [PATCH v2 4/4] hw/char: sifive_uart: Remove ip variable Date: Wed, 10 Dec 2025 00:01:17 +0800 Message-ID: <20251209160117.1239596-5-frank.chang@sifive.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251209160117.1239596-1-frank.chang@sifive.com> References: <20251209160117.1239596-1-frank.chang@sifive.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=frank.chang@sifive.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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable 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 @sifive.com) X-ZM-MESSAGEID: 1765296177168158500 Content-Type: text/plain; charset="utf-8" From: Frank Chang The ip variable is no longer used in the code. Remove it from the codebase. Signed-off-by: Frank Chang --- hw/char/sifive_uart.c | 6 ++---- include/hw/char/sifive_uart.h | 1 - 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/hw/char/sifive_uart.c b/hw/char/sifive_uart.c index c3bb9d5ba66..4e8c8234175 100644 --- a/hw/char/sifive_uart.c +++ b/hw/char/sifive_uart.c @@ -285,7 +285,6 @@ static void sifive_uart_reset_enter(Object *obj, ResetT= ype type) =20 s->txfifo =3D 0; s->ie =3D 0; - s->ip =3D 0; s->txctrl =3D 0; s->rxctrl =3D 0; s->div =3D 0; @@ -343,14 +342,13 @@ static void sifive_uart_reset_hold(Object *obj, Reset= Type type) =20 static const VMStateDescription vmstate_sifive_uart =3D { .name =3D TYPE_SIFIVE_UART, - .version_id =3D 2, - .minimum_version_id =3D 2, + .version_id =3D 3, + .minimum_version_id =3D 3, .fields =3D (const VMStateField[]) { VMSTATE_UINT8_ARRAY(rx_fifo, SiFiveUARTState, SIFIVE_UART_RX_FIFO_SIZE), VMSTATE_UINT8(rx_fifo_len, SiFiveUARTState), VMSTATE_UINT32(ie, SiFiveUARTState), - VMSTATE_UINT32(ip, SiFiveUARTState), VMSTATE_UINT32(txctrl, SiFiveUARTState), VMSTATE_UINT32(rxctrl, SiFiveUARTState), VMSTATE_UINT32(div, SiFiveUARTState), diff --git a/include/hw/char/sifive_uart.h b/include/hw/char/sifive_uart.h index e216cacf693..50d7418f94b 100644 --- a/include/hw/char/sifive_uart.h +++ b/include/hw/char/sifive_uart.h @@ -73,7 +73,6 @@ struct SiFiveUARTState { =20 uint32_t txfifo; uint32_t ie; - uint32_t ip; uint32_t txctrl; uint32_t rxctrl; uint32_t div; --=20 2.43.0