From nobody Fri Nov 14 17:03:08 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; 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=nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1762315295; cv=none; d=zohomail.com; s=zohoarc; b=AgIyFB0COdnFeTNSh3IqIeH7E5l5WAa/kN4/6l3iC80Im6RbKnW+jovOm6rcOLEivWB2pSy54vkza8rjk6nNtr0bRu1RMI/sbYVNYXRj1i+3dG3IXQzGwFtqxpVW5uTHiqh4woovkRO+7i/G1r22rFw+BSlYHXJicVzrnCY+USg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1762315295; h=Content-Type: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:Reply-To:Reply-To:References:Sender:Subject:Subject:To:To:Message-Id; bh=OuopzXz+5vylceLiIZDI1lDPmt19zm7ovRcTXE0l+mM=; b=ltRwg/2rOYrD1x6cNkeb3Q48OP651J+0/+O7gom2zUgabXor5KPJl3xwBls9iXW3H6QJi8QATn+ExIAyYS2Pqo5UmTHeh+8DxviPuqKLANwCcz1N9hmhb4QJswFzCSaW6jo3SSw6yOeZDnrlxza48USTQ70waPqtSk2KJs46/6U= ARC-Authentication-Results: i=1; mx.zohomail.com; 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 1762315295521371.13200795243904; Tue, 4 Nov 2025 20:01:35 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vGUh2-0008UR-05; Tue, 04 Nov 2025 23:00:20 -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 1vGUgz-0008Tb-Ls; Tue, 04 Nov 2025 23:00:17 -0500 Received: from mail.aspeedtech.com ([211.20.114.72] helo=TWMBX01.aspeed.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1vGUgy-0000YI-6V; Tue, 04 Nov 2025 23:00:17 -0500 Received: from TWMBX01.aspeed.com (192.168.0.62) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1748.10; Wed, 5 Nov 2025 11:59:05 +0800 Received: from mail.aspeedtech.com (192.168.10.10) by TWMBX01.aspeed.com (192.168.0.62) with Microsoft SMTP Server id 15.2.1748.10 via Frontend Transport; Wed, 5 Nov 2025 11:59:05 +0800 To: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , Peter Maydell , Steven Lee , Troy Lee , Jamin Lin , Andrew Jeffery , Joel Stanley , "open list:ASPEED BMCs" , "open list:All patches CC here" CC: , Kane-Chen-AS Subject: [PATCH v2 17/17] hw/arm/aspeed: Model AST1700 PWM block as unimplemented device Date: Wed, 5 Nov 2025 11:58:55 +0800 Message-ID: <20251105035859.3709907-18-kane_chen@aspeedtech.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251105035859.3709907-1-kane_chen@aspeedtech.com> References: <20251105035859.3709907-1-kane_chen@aspeedtech.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=211.20.114.72; envelope-from=kane_chen@aspeedtech.com; helo=TWMBX01.aspeed.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_FAIL=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: , Reply-to: Kane Chen From: Kane Chen via Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZM-MESSAGEID: 1762315296774158500 Content-Type: text/plain; charset="utf-8" From: Kane-Chen-AS AST1700 includes an PWM block, but QEMU has no functional model for aspeed product yet. Expose it as an unimplemented device so the address space is reserved and the missing functionality is explicit to users/guests. Signed-off-by: Kane-Chen-AS --- include/hw/misc/aspeed_ast1700.h | 1 + hw/misc/aspeed_ast1700.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/hw/misc/aspeed_ast1700.h b/include/hw/misc/aspeed_ast1= 700.h index 8ada3a7775..9d432a7db0 100644 --- a/include/hw/misc/aspeed_ast1700.h +++ b/include/hw/misc/aspeed_ast1700.h @@ -45,6 +45,7 @@ struct AspeedAST1700SoCState { =20 UnimplementedDeviceState i3c; UnimplementedDeviceState sgpiom; + UnimplementedDeviceState pwm; }; =20 #endif /* ASPEED_AST1700_H */ diff --git a/hw/misc/aspeed_ast1700.c b/hw/misc/aspeed_ast1700.c index 66a5f21d27..3d9a920a7a 100644 --- a/hw/misc/aspeed_ast1700.c +++ b/hw/misc/aspeed_ast1700.c @@ -20,9 +20,11 @@ #define AST1700_SOC_SRAM_SIZE 0x00040000 #define AST1700_SOC_I3C_SIZE 0x00010000 #define AST1700_SOC_SGPIOM_SIZE 0x00002000 +#define AST1700_SOC_PWM_SIZE 0x00000200 =20 enum { ASPEED_AST1700_DEV_SPI0, + ASPEED_AST1700_DEV_PWM, ASPEED_AST1700_DEV_SRAM, ASPEED_AST1700_DEV_ADC, ASPEED_AST1700_DEV_SCU, @@ -38,6 +40,7 @@ enum { =20 static const hwaddr aspeed_ast1700_io_memmap[] =3D { [ASPEED_AST1700_DEV_SPI0] =3D 0x00030000, + [ASPEED_AST1700_DEV_PWM] =3D 0x000C0000, [ASPEED_AST1700_DEV_SRAM] =3D 0x00BC0000, [ASPEED_AST1700_DEV_ADC] =3D 0x00C00000, [ASPEED_AST1700_DEV_SCU] =3D 0x00C02000, @@ -174,6 +177,15 @@ static void aspeed_ast1700_realize(DeviceState *dev, E= rror **errp) sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->sgpiom),= 0), -1000); =20 + /* PWM */ + qdev_prop_set_string(DEVICE(&s->pwm), "name", "ioexp-pwm"); + qdev_prop_set_uint64(DEVICE(&s->pwm), "size", AST1700_SOC_PWM_SIZE); + sysbus_realize(SYS_BUS_DEVICE(&s->pwm), errp); + memory_region_add_subregion_overlap(&s->iomem, + aspeed_ast1700_io_memmap[ASPEED_AST1700_DEV_PWM], + sysbus_mmio_get_region(SYS_BUS_DEVICE(&s->pwm), 0), + -1000); + /* WDT */ for (i =3D 0; i < AST1700_WDT_NUM; i++) { AspeedWDTClass *awc =3D ASPEED_WDT_GET_CLASS(&s->wdt[i]); @@ -241,6 +253,10 @@ static void aspeed_ast1700_instance_init(Object *obj) object_initialize_child(obj, "ioexp-sgpiom[*]", &s->sgpiom, TYPE_UNIMPLEMENTED_DEVICE); =20 + /* PWM */ + object_initialize_child(obj, "ioexp-pwm", &s->pwm, + TYPE_UNIMPLEMENTED_DEVICE); + /* WDT */ for (i =3D 0; i < AST1700_WDT_NUM; i++) { snprintf(typename, sizeof(typename), "aspeed.wdt-%s", socname); --=20 2.43.0