From nobody Sat Sep 26 20:50:57 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=aspeedtech.com); dmarc=pass(p=quarantine dis=none) header.from=aspeedtech.com ARC-Seal: i=2; a=rsa-sha256; t=1789714493; cv=pass; d=zohomail.com; s=zohoarc; b=I+dgb18eGRhppgvQrtJaIcZU3YBRBC8Bnekuf3qX8e3ERczfbRf94R44CeRf5a1w77gTpdU894ozKkegi1gvDIXyzvTiMkB11CgIPmR0OvOkCasnk/T62qiE9N8DsHFL4Yl2Nat4CWCHc56GxR83+4TVPNjavhyfas6k7QxPTNk= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789714493; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=3VffH2c0eSwdtlVA1x/tN3Xl4to32NdBJxgEoVJnPbI=; b=ii+gSAUVkGA0KKeOu22P4J5OBkpYsqnVsqTyQIceOODV3c7u4HiOI7/fJtG5a02RzAOpjR+SC1nduHkZUO9bpTbz6uWkoyQAfcury+xU+xjdrKpMmeUMsFHQMPWkHCmm2FyIVfRhs6kMTvmy3erd9Oxjj9f/px8bKOhO6rgiO1w= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=aspeedtech.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 178971449322420.89696648948302; Thu, 17 Sep 2026 23:54:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x7SU8-0006jg-2m; Fri, 18 Sep 2026 02:54:13 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x7STz-0006hD-7M; Fri, 18 Sep 2026 02:54:03 -0400 Received: from mail-japaneastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c405::7] helo=TYDPR03CU002.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x7STx-0002rT-GN; Fri, 18 Sep 2026 02:54:02 -0400 Received: from SEZPR06MB7619.apcprd06.prod.outlook.com (2603:1096:101:249::5) by SEZPR06MB8814.apcprd06.prod.outlook.com (2603:1096:101:33d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Fri, 18 Sep 2026 06:53:49 +0000 Received: from SEZPR06MB7619.apcprd06.prod.outlook.com ([fe80::c8d3:efda:b73:f6a6]) by SEZPR06MB7619.apcprd06.prod.outlook.com ([fe80::c8d3:efda:b73:f6a6%4]) with mapi id 15.21.0428.011; Fri, 18 Sep 2026 06:53:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XHxaeTwVqHi/NivJASHQyHKkluDaeQsd4hbykLbHLhmrCr0Se57o/4IrJX0OcoyJ9j8QL/w+TpOgFyu9FBceDub1dmT02ZfdrfAJow/T9kkNGKXyCcFTBZ7L8G0/LypfF7icY2p8yxxH/XUMSxtqTJJ8bItLeYIZTXNI0eQLU8KlF2nyIMl4YFJXvX5lFVLCd4DiTe9GXQCliQH+X5rs38Mfwc9jYFPny9Hgj/WgdFvAeNkvjGdFyjpbLciVp40YN3nQq1kPawZjdqy0UulBdwvnAz741CcoNNT7uQMNyaWqzP+ZKJiCDivbK4mDWfWEDv6vwfC/f7a0z9JUk+M3sg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=3VffH2c0eSwdtlVA1x/tN3Xl4to32NdBJxgEoVJnPbI=; b=RYdqgcy18Fhz4GflI4sV6ZBkC5sBvJPLbuZWz8rJ4IOLHJs35om9tnbYrWsAbmQ21wMOee2VSUCkfJ11W1T7bDRyWH08FD2za/NchEJENCxIfhoXyEO0WmJn0MSDpONvnqNeO0LwLS8ZMHsjLWWzYpjgER7v2xacb/0gwJQqaZ/4ozth5s+80y7RBGQD1tTBjj5Rib6y+Gja6C7P48wbRPkIL+YFPLDVWn+9LgcJ9KOnhVglaYkdxigQT2YSd7ZGlxBCZZs9LPx7G1hD20ks1SCeVvk0COru09qEDNh03b9xXeNX5eQqAu+VMl1YtnXs2xs+II+y1mzgv51kzxcmyQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3VffH2c0eSwdtlVA1x/tN3Xl4to32NdBJxgEoVJnPbI=; b=q/GWz09Yr0IA0xZ4zfazPnUaD/eJXybkwOKag/smFkyGtgJNFL4JmXH2Jl+eh8fWgsBBlBXjsexyXpibUSVHXxxTmoC/6ocpNtGhvsLXu2nEPI4/9XfoRRMczGLVMRQN5a3x3TERkXDKJ0kr9nJPzE2Hautlg1Ss0yiO1PA68G218BgpLNQioqj4UjA7WbEuXUXUTu5OncblhM+85bNMG5WYSgL4TaEUJFF6PMB2hApEau2FDOTGtuOm6ch3bzqm3VSmo+4BIH2LpTbwEYyzDqbABSqbiw7fp5b6n58yafLUNSMedjW7d8nwGs3lGqnfDJ1KLJ7O9qVNPfmVqFCdhQ== From: Kane Chen To: =?iso-8859-1?Q?C=E9dric_Le_Goater?= , Peter Maydell , Steven Lee , Troy Lee , Jamin Lin , Andrew Jeffery , Joel Stanley , "open list:ASPEED BMCs" , "open list:All patches CC here" CC: Troy Lee , Kane Chen Subject: [PATCH v2 1/3] hw/nvram/aspeed_otp, hw/misc/aspeed_sbc: Consolidate OTP layout definitions Thread-Topic: [PATCH v2 1/3] hw/nvram/aspeed_otp, hw/misc/aspeed_sbc: Consolidate OTP layout definitions Thread-Index: AQHdRzp1dJ4DFpiGzUqAzADjE6BpcQ== Date: Fri, 18 Sep 2026 06:53:49 +0000 Message-ID: <20260918065347.3713868-2-kane_chen@aspeedtech.com> References: <20260918065347.3713868-1-kane_chen@aspeedtech.com> In-Reply-To: <20260918065347.3713868-1-kane_chen@aspeedtech.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SEZPR06MB7619:EE_|SEZPR06MB8814:EE_ x-ms-office365-filtering-correlation-id: 075114c8-8e24-41c3-0b88-08df155197b8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|23010399003|366016|376014|10067099003|6133799003|22082099003|18002099003|56012099006|38070700021; x-microsoft-antispam-message-info: 9ld24R7eZEFJE9is8oZliA4dIcGmuxn7TtdMEtqJY3KXn7zAfc5TjPpj53IbLgEMLbsLptG32ONC2rp6zeUEijXo6Kf//ki7/EGm4g7yyF/m6bXPuf787uQ150mUUx7bHbMs1kUWfhekai2X2dttGZDvHpCNGK2bVw3vh2aA54T7idhOeDdZx53zuCkwypncS0xXntadahs0mouzS6zQxIq/eTLn2HuXc18ZV/iM4Y3V2lE7oQl8au2pUeKMlK0mv+4MPRAT952dpgNAiGY0FsytouaXGOnu5hhfn6XwSKvfcd4a+RzcPPZb6lEtgYo3Y9fbcHAR4696ILt1RgI4gV9ICMaEzUBFQlnZFo9xUrI6irzfHz0qhDdKubk/ESW3Ev/a6h+B+ubNPjM9AzwlgiZBew8RRtRhjmxAnLG2GzSswIzBSCq8kiQ/Ru8NZBxs9UTavPAupWC/uFJl9gBsoccad5r9HLp6+Sm2rlNlPVEuJOSonGAMGXIhNwlED5JoakqqUU7BFT+MMFBm/y5COSTRitn9xsYR22yyhozJty1tvFiMq4alWu5peFefJPXJIQlzbTgqH0mkGk+TQtWnG2ryKHc+89G+fEoVTvo4MHFkvh1q5pfPCn9TksZfQEGhSAH3k2i2mKdtogWRkkconha4kThLx3XO5aIFyUKvZZHq8zcw/XIxr7LF12q8TJxcblLZdSkcBxZsy5ikyqzWPREjK/13AgID+kz09cObE+s= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SEZPR06MB7619.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(38070700021); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?3gg8V4HAlAi2sbwJ1tRRZbwys09uPTWOhsQXKW5v8wuGAkSRZ3p0uO0CWV?= =?iso-8859-1?Q?LCit3t8tXh3Tx1t2MyC9jK2Juz/lQpcVUFwS4f+m0707Pbuv4XcHmMJKve?= =?iso-8859-1?Q?moKM8xcqZS/relWG+iSjD3gFul9mrIAi3yulslknBQppMoT7d8AT6EHpF8?= =?iso-8859-1?Q?HsjR1khm0LBYL1jW0OOC+ruCQ1FHZgQruUsdk7QhEnt6lO759+4j3/N8j/?= =?iso-8859-1?Q?FqrETRyOKvBvZMTHSBhpWn/Lsc/aZu4zj3TcjGtRxM6MPrpUvjVCIUC89t?= =?iso-8859-1?Q?awBxblqhRLIRYKU/FRV/bd02Kh0OFKOCmc5L+P0MMbNDq2KpN+x1sFFPjP?= =?iso-8859-1?Q?XFkaw1/xQLMOe7DKwktJObCGKQHB7dlqIlfxhFTpgS+mRXdiEQjsQqet1N?= =?iso-8859-1?Q?vbLo9obURCpS/CQGwFe6FCpF/gH65iAX8Ow2e0KuS8CPOuqZt42bNWBfWV?= =?iso-8859-1?Q?eeMB8gRiyW+wIqiVV+tJksYsHi6zUGm0T9B5xw/0uh/4XNWq5ktfhFkGeg?= =?iso-8859-1?Q?afLd3rZVHD8Fxob0rajvHWyaSwtyy9kk17+VWd/j1tdOBouQ3WqekKxDgW?= =?iso-8859-1?Q?dl24NvhLAsRt03bBgNrwUf2RYTJWMnI0OfG+k9N6zi0QL8r5zn3JgsJpjc?= =?iso-8859-1?Q?IXSDKZ8iyyjfZ2JAV6ChiePxB22av7OQzcu/5eQf1OEVVkJPOmWKvIttlK?= =?iso-8859-1?Q?hJ8ieCbu98BdlzT4EJNfi7me469DwRVe55EKlbqPteK92+QY7w8EwH7Nmf?= =?iso-8859-1?Q?xcR/3iBxbN/SHxye2K2Vyq4juqNQTbbACvsz4oIjlF+QlSeM8Ln8HJfRcP?= =?iso-8859-1?Q?6yEcgCSJuPddgG07dtCQOdCzw3RIZnfD7cHrBpTE562eMbDPhY8WXwTkAy?= =?iso-8859-1?Q?fUN4dbQSD5vS7+apwGFcK2633Q9HQQi62s3SRksB9Qh9EwFne3iu5ZwJnc?= =?iso-8859-1?Q?7jc6bGa9VJF+CI+4rXj0+MrxVjzlF9CaGvILnrdpITWpeZpE9brrAibCyY?= =?iso-8859-1?Q?UcaLTMTlm3YRPZsTouhqr8fjK3hXQv5Ua5fI7PITCazOhgwuNPmbX4oa/z?= =?iso-8859-1?Q?wKg1mqFxdrJQhojsOiz+qRgNMZ+5QGGDdwpRbGvSi7BSICYNkyCFXDY04J?= =?iso-8859-1?Q?ynYfd8Fy43kxwMjsMG0keZjCi/WyzTpy6wL+0X2qyMQzYPZrwm2dqskXOB?= =?iso-8859-1?Q?NPTBYKm7td6VWxE8VTGk1rOT8hi1wohyQMkuuRwWtvczmhNb1fgtupFxqA?= =?iso-8859-1?Q?7z1GMVOCsnxsevTnYJrOfJzE1v4Icth2t0cplTZgN3mIVnbqPkbVyNh0FA?= =?iso-8859-1?Q?oU9jt8uQbXAjSIQGI2puCfvu6LRSfTKJ+HJksSuJAB1/QVTlkJbZ90gNTL?= =?iso-8859-1?Q?78SNtcbSNKUsrHrwORQHhyYIY57OKGGeiH4RaeDnKb2g61LKTOUhUUhbvb?= =?iso-8859-1?Q?Qn2JdkjQojQK/0ZrKmh3q88ofAKIUKsZKQSZBKYbgpPGMfBrBL7HefThLr?= =?iso-8859-1?Q?a8MZC6DAMbxQW7t7V1jQMwFbKGON28h9K04v1dh/Qw3irkjBP67gFAX+NT?= =?iso-8859-1?Q?7VELk4uOow/UlwoJeCanTESsSmFMcmFagMLhHSL/Zl1ZIFtWGgPERm9egx?= =?iso-8859-1?Q?tzljO6wX4qWKbjVM3vMUpw+rj5fOE9Yduy9OKrBvIl21Xgi/Aj85Au6DKU?= =?iso-8859-1?Q?RdFmOCYvW/I95dJKvNtUeFPQMxxhx7CJoXSwrFrCkqRbS9QjvUE+xSsuFu?= =?iso-8859-1?Q?5krq0SBXvXG0+9ILBkS4xFAWWyBCxM+8/XcFhsaFCiOKasLOIKbjklXxah?= =?iso-8859-1?Q?qylaYojZDg=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: xxthxSt0ldo3tYQsYJDWl3LaRcG8nrlfysSYBymdy8XWqBU9ASEA9vVB/F2dFF59cb7aMgTSmRfvOAENvKEvru9J4YHOacMcxW1yFSsr4quuBjEuNTzAw3urcB+wv/jdmAysnQTxuyTmfscVcsu4wAwmBuFSeGxZCGf0ZZ0ooY0MsilpHYOqKnkdqyZUnGx5ACMjVYN1aPgSSMiGRTbnbSLMe45eKfLSbUQMx8SLVgdaiYbjsYO8uvaxHTDEX+4FK9utLf98IDnMB0qtYlsnk+qUohPSMAxiK+6RkGHp7WCXqvLk4ZDvBiPyzlZyi4vHIp602/Tk+MQEphghs6rVHA== X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SEZPR06MB7619.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 075114c8-8e24-41c3-0b88-08df155197b8 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Sep 2026 06:53:49.1195 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43d4aa98-e35b-4575-8939-080e90d5a249 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 5YZ1ffw6rCsytL9JcS/YGFbd7FfnLNoRD9TiHIWSY3JapkXS+JQpZw/rU90/EK4By2qtIRnBClwzincjxuG0t3hUzbp0SvS/cxqgNct5nvI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB8814 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c405::7; envelope-from=kane_chen@aspeedtech.com; helo=TYDPR03CU002.outbound.protection.outlook.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: qemu development 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 @aspeedtech.com) X-ZM-MESSAGEID: 1789714495122158500 Content-Type: text/plain; charset="utf-8" Move the OTP address-space layout definitions from aspeed_sbc.c to aspeed_otp.h, as they describe the OTP device layout. Add an aspeed_otp_read() helper to reduce duplicated OTP read code. Remove the redundant OTP address bounds checks, as invalid accesses are already handled by the OTP address space. No functional change. Signed-off-by: Kane-Chen-AS Reviewed-by: C=C3=A9dric Le Goater --- include/hw/nvram/aspeed_otp.h | 13 +++++++++ hw/misc/aspeed_sbc.c | 52 +++++++++++------------------------ 2 files changed, 29 insertions(+), 36 deletions(-) diff --git a/include/hw/nvram/aspeed_otp.h b/include/hw/nvram/aspeed_otp.h index 3752353860..2b6c2eaaa3 100644 --- a/include/hw/nvram/aspeed_otp.h +++ b/include/hw/nvram/aspeed_otp.h @@ -16,6 +16,19 @@ #define TYPE_ASPEED_OTP "aspeed-otp" OBJECT_DECLARE_SIMPLE_TYPE(AspeedOTPState, ASPEED_OTP) =20 +#define OTP_MEMORY_SIZE 0x4000 + +/* + * The OTP address space is indexed by dword address and is split into + * two regions: + * + * - [0, OTP_DATA_DWORD_COUNT]: the data region. Each address contains + * 64 bits of data. + * - [OTP_DATA_DWORD_COUNT, OTP_MEMORY_SIZE / 4]: the configuration + * region. Each address contains 32 bits of data. + */ +#define OTP_DATA_DWORD_COUNT (0x800) + typedef struct AspeedOTPState { DeviceState parent_obj; =20 diff --git a/hw/misc/aspeed_sbc.c b/hw/misc/aspeed_sbc.c index 5c193d9086..3402cef5c3 100644 --- a/hw/misc/aspeed_sbc.c +++ b/hw/misc/aspeed_sbc.c @@ -66,15 +66,11 @@ #define QSR_RSA_MASK (0x3 << 12) #define QSR_HASH_MASK (0x3 << 10) =20 -#define OTP_MEMORY_SIZE 0x4000 /* OTP command */ #define SBC_OTP_CMD_READ 0x23b1e361 #define SBC_OTP_CMD_WRITE 0x23b1e362 #define SBC_OTP_CMD_PROG 0x23b1e364 =20 -#define OTP_DATA_DWORD_COUNT (0x800) -#define OTP_TOTAL_DWORD_COUNT (0x1000) - /* Voltage mode */ #define MODE_REGISTER (0x1000) #define MODE_REGISTER_A (0x3000) @@ -96,43 +92,34 @@ static uint64_t aspeed_sbc_read(void *opaque, hwaddr ad= dr, unsigned int size) return s->regs[addr]; } =20 -static bool aspeed_sbc_otp_read(AspeedSBCState *s, - uint32_t otp_addr) +static bool aspeed_otp_read(AspeedSBCState *s, uint32_t otp_addr, + uint32_t *value) { - MemTxResult ret; - AspeedOTPState *otp =3D &s->otp; - uint32_t value, otp_offset; - bool is_data =3D false; - - if (otp_addr < OTP_DATA_DWORD_COUNT) { - is_data =3D true; - } else if (otp_addr >=3D OTP_TOTAL_DWORD_COUNT) { + if (address_space_read(&s->otp.as, otp_addr << 2, MEMTXATTRS_UNSPECIFI= ED, + value, sizeof(*value)) !=3D MEMTX_OK) { qemu_log_mask(LOG_GUEST_ERROR, - "Invalid OTP addr 0x%x\n", + "Failed to read OTP memory, addr =3D %x\n", otp_addr); return false; } =20 - otp_offset =3D otp_addr << 2; - ret =3D address_space_read(&otp->as, otp_offset, MEMTXATTRS_UNSPECIFIE= D, - &value, sizeof(value)); - if (ret !=3D MEMTX_OK) { - qemu_log_mask(LOG_GUEST_ERROR, - "Failed to read OTP memory, addr =3D %x\n", - otp_addr); + return true; +} + +static bool aspeed_sbc_otp_read(AspeedSBCState *s, + uint32_t otp_addr) +{ + uint32_t value; + bool is_data =3D otp_addr < OTP_DATA_DWORD_COUNT; + + if (!aspeed_otp_read(s, otp_addr, &value)) { return false; } s->regs[R_CAMP1] =3D value; trace_aspeed_sbc_otp_read(otp_addr, value); =20 if (is_data) { - ret =3D address_space_read(&otp->as, otp_offset + 4, - MEMTXATTRS_UNSPECIFIED, - &value, sizeof(value)); - if (ret !=3D MEMTX_OK) { - qemu_log_mask(LOG_GUEST_ERROR, - "Failed to read OTP memory, addr =3D %x\n", - otp_addr); + if (!aspeed_otp_read(s, otp_addr + 1, &value)) { return false; } s->regs[R_CAMP2] =3D value; @@ -181,13 +168,6 @@ static bool aspeed_sbc_otp_prog(AspeedSBCState *s, uint32_t value =3D s->regs[R_CAMP1]; uint32_t otp_offset =3D otp_addr << 2; =20 - if (otp_addr >=3D OTP_TOTAL_DWORD_COUNT) { - qemu_log_mask(LOG_GUEST_ERROR, - "Invalid OTP addr 0x%x\n", - otp_addr); - return false; - } - ret =3D address_space_write(&otp->as, otp_offset, MEMTXATTRS_UNSPECIFI= ED, &value, sizeof(value)); if (ret !=3D MEMTX_OK) { --=20 2.43.0 From nobody Sat Sep 26 20:50:57 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=aspeedtech.com); dmarc=pass(p=quarantine dis=none) header.from=aspeedtech.com ARC-Seal: i=2; a=rsa-sha256; t=1789714485; cv=pass; d=zohomail.com; s=zohoarc; b=SDGo/pgy7rSk5C8JybhzjLYJJ92I6VZi551GneGSp/YgzHGdUQ2WxGyE61tdPH0gUorSKSkwqoUaPn+oqpCT3M+PvvfYA6bV1VLuqbzp2y2EKxR2lJ/CA3AF+1UpXo9sbDNmZna2e5qPDIBEGJMCNMlaHiUq9BvcGqZ7eFqINmI= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789714485; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=0OY+Lxi2/fmImLicnUT3qxAlXQseN+iDcInS7GaTGTU=; b=CiQO92ceIimOZ7Fev/fy16/Jsb61amKv722d9a6rijgm+1rALgFQhS873fgwgJ5vb9d4fvgHx3RsVvS0OtaEFuBzWN37u03+zaA8grpBHGHA9qhdt2syYg12kjLCGCh54uYL09Kcui7+wwbj2VKRISk+wTz+NXGREXtxrWhLFXo= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=aspeedtech.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789714485283793.1265495157171; Thu, 17 Sep 2026 23:54:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x7SU5-0006if-Pk; Fri, 18 Sep 2026 02:54:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x7SU2-0006hd-4Q; Fri, 18 Sep 2026 02:54:06 -0400 Received: from mail-japaneastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c405::7] helo=TYDPR03CU002.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x7SU0-0002rT-2a; Fri, 18 Sep 2026 02:54:05 -0400 Received: from SEZPR06MB7619.apcprd06.prod.outlook.com (2603:1096:101:249::5) by SEZPR06MB8814.apcprd06.prod.outlook.com (2603:1096:101:33d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Fri, 18 Sep 2026 06:53:50 +0000 Received: from SEZPR06MB7619.apcprd06.prod.outlook.com ([fe80::c8d3:efda:b73:f6a6]) by SEZPR06MB7619.apcprd06.prod.outlook.com ([fe80::c8d3:efda:b73:f6a6%4]) with mapi id 15.21.0428.011; Fri, 18 Sep 2026 06:53:50 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=MXVt25rAOfaAeHLXYtbE1pmtf7B5tcuHjFGMJngFblVS889fI2g1t6+GaTibyMGDRf9X5cqimVT40FrATb5rBdKxz+0Me+Z/TpFO5nXIIVCK1+bYuzNS9KGZ90MNR3GhAI7zOopuN2pZy3eBEZqvEuqLuYcyxHoUNEmjgM6GHk/6e9zif3FIGF1qjCGYL0FPksxdEZfievGqybSUMn3QekC7zAWaid6LYS6gnFpHB9PwwZASMA0r4+NhVmZkgTMgreuqit7Y7xaOf7ygPvBbKWCLV4aFpU8dhWXe5RRMzTIha1DjAXjL1AfRcc9yZNFA5OEYb+NwqCBtpe7e4NrIQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=0OY+Lxi2/fmImLicnUT3qxAlXQseN+iDcInS7GaTGTU=; b=Tp/FpUQ1lPVT1OEVHWiR83GYVjLnGwtOW9Ba/rUeo9z159IpeE5Jdm5hNR1syrWNYwV4dnjFtLjsieaV8YiJb6daM4maKeVueemfSswJRVjKkRHbjLLCNvBRYVHldJvR+9F/lgc6K1rXW5LGcJ8+My/K8w/8cfOC8cUPKG+qXrSBnSG/2oG7gMnA45oIrjTi/PHdrwYwDJd4evqXvzk3VDGfcNuG1Owo/sBro/DdELqllrVVwriDudXkCntBY8H9O7Q0Q1xiRYt+2B1siy9wjMsC55gFOV3OqgrqRKO+wjQQR8I2OpL5/05HSzM1nXYjs5ej2G1gFTFUiOgNlYp67w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=0OY+Lxi2/fmImLicnUT3qxAlXQseN+iDcInS7GaTGTU=; b=ltSI35APXPrP9ubDmrlU74j5UqfdC7fpEgaMAMWka5kdDIfywX3JdppX0s6jDPWnVOQn21sUjkNOpPwjSUf12w3nRAsMGN2Bd/KJlpBoLSKc0Wjigcev/dEhhyB4fgCVJim/xhrvQvcFIURyIxQEtbg8fid53L2yRqYGF7QTG1zV2FA06j+TfQC+2YdL/J9U/qQxZWXpzOCwPGBzlg7rMzND6jk8w7D5rxMK5paf1xj9Nhw3JHrJ90yxTEqvj51h5ZCZlyuMDDMB7rv+zZ1OijymAni7yPIsratNpyaEf1Sc//U9QQENvJtgeKwgtVUMZEWU681SI6qz9/Jb/Qfs3w== From: Kane Chen To: =?iso-8859-1?Q?C=E9dric_Le_Goater?= , Peter Maydell , Steven Lee , Troy Lee , Jamin Lin , Andrew Jeffery , Joel Stanley , "open list:ASPEED BMCs" , "open list:All patches CC here" CC: Troy Lee , Kane Chen Subject: [PATCH v2 2/3] hw/misc/aspeed_sbc: Derive ABR state from OTP config straps Thread-Topic: [PATCH v2 2/3] hw/misc/aspeed_sbc: Derive ABR state from OTP config straps Thread-Index: AQHdRzp2ulw00Hg0h0Gv5ZmgRF7wwg== Date: Fri, 18 Sep 2026 06:53:50 +0000 Message-ID: <20260918065347.3713868-3-kane_chen@aspeedtech.com> References: <20260918065347.3713868-1-kane_chen@aspeedtech.com> In-Reply-To: <20260918065347.3713868-1-kane_chen@aspeedtech.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SEZPR06MB7619:EE_|SEZPR06MB8814:EE_ x-ms-office365-filtering-correlation-id: 2a99ac63-406e-4d43-179d-08df15519899 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|23010399003|366016|376014|10067099003|6133799003|22082099003|18002099003|56012099006|38070700021; x-microsoft-antispam-message-info: ix4fz32HOgLSFz+7rtPRHCzWF/ExEKRYkv194boVIAvUJLqxdmlRAIhKU2oQN/zUvXwLZQ79U7JgYH5mIRdxUT4cg+mZrKfhhiwbvt3nwkv+Ji5v4VhQ9TVUol2r5wXAEzwbr0TpCf8uPuhsxqyN8fk+VFZ9cIyYVuCPuw8+KzCmCNzRbnKk9/cDXZQd5hZBx2t2i2OpdJw92+ZnrgivSnUvLCCtjnA9+vrw/p5fNbNyDMN2Hh63wYkKFSMFArTmg8J2MmWL0Lf95RScna6ae2ljRjlklVxIeoPL8L6nM4m+N/1wXc+PqQ/hqR8Me18pBxhrH04y5dfYt/zkejseoKNZVpoBqLGdrAHaR47fa6n+p8pv99h7SuQCeG6uS5J6eXBmJLonzKxtkhLIWLQf9UFnXzCgi9F3v8aRlPfbnTOoWtufAkohI8w3ePxo3dihK9CEzHxP1xSftVS1PQLIVcjei9bv8PGV3OQoY6fu9uyXggEaBRmAMImOhCkFDEdHLM/Q4WquvSyIkNTp6Jm3D60cX6bdriutj1u9ls5obotanbSqOIo/Dx3Xtdf6/Gucih5N6loZp6Itx+sTvwpKxz7aZbycDK/dKy4r6+7A+IMcoPCexeDGl+jdbH2sroR2zaItwWRwgKhEE+5JibdBu8aRq2bQPAALEQiAFcSQGadi1ZrVUJjR33C+G27JGM1XlV3Quwe+8hbqnau7XwIi2lEQ9ToJaUPuLt4OuARZNro= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SEZPR06MB7619.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(38070700021); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?5pIfYJivUs9SpG+pMMnFznLu/GbtMG9FdsN49MLJcg4bwf9LooX2y0QRFe?= =?iso-8859-1?Q?h3MndGMUWLb8HN1GuJeOaC3RnBA2yY0lgWSAe7LIHsEbo8OnuxW+7+Onoy?= =?iso-8859-1?Q?HSI20qz0hj8+hW6/moZEaADu30tM3T//MQAWKeZiUSKd8UTykrIcJMkw9i?= =?iso-8859-1?Q?tCPkU2Htnd+wtdhNClKXSIDUtSdXNSwixdXW2GeHp1LgoPNYd5kY6rH9nG?= =?iso-8859-1?Q?OTh/HgSHA1scGJlft1pvPsF7V5Ui2mlVXvNcJKMQAYhUDzOd3+AAtOyPKp?= =?iso-8859-1?Q?MJGNbDnrlbHovWXHdrjgtLdNm8VAOd+izeXEnMHdOK9f6zXktcmdZcTKsb?= =?iso-8859-1?Q?ig4eIv9v0KCotD1BAmEA5QBu4uED1ip/1DBuDM75ckmrxcaGvbRyu5PNCY?= =?iso-8859-1?Q?BZix42RGFap8jxhAHiw0mFAg9iK7kN2Y0g+ONI47olXTx+PUo16FAtcyCV?= =?iso-8859-1?Q?s3vHmtBtUQPCze2XZ5vERXEnLKKXvUO6RvQEV9ji8W6f/tObHBcr92JNj2?= =?iso-8859-1?Q?G5YQO6v5TRmqnXa4yG5GYiXb842EXmGT9s+7jeGU7ZOYnYq7YTWeD8kAQb?= =?iso-8859-1?Q?/TO1waR3ZAnE03YXmyvb2ez/q3SRs7XVTnC/xB+c1RjS32Ca8jBDoO+/bl?= =?iso-8859-1?Q?xj6PU4gBIbW2j3FgDW7k3JaQfLdrABt7cf5PW1qku/YRyn/CqN5Hnpyrv2?= =?iso-8859-1?Q?z6QXh8j+9xJqusWRqj7P/oU/cuDHHL/cNN7Mlr0QGKobjaEx/1XnaBoeWx?= =?iso-8859-1?Q?Np1Zi7SOZXRop84LsiMhg474jRGjnYUzsTDG9+IR+yRUsXqa7Tgkv6XRT0?= =?iso-8859-1?Q?IEJb9WJFjQrPcVb7OAr3FJwD8rrBs7Kt5iXuWc8rLP6LTwik7piPfIz7i/?= =?iso-8859-1?Q?vOP4ru97+OUkji0MNZSPcjC3oit01zGeRALkmo/bMsoek7aMaAC2qevh9G?= =?iso-8859-1?Q?Uue4zaIq2mclC1qzoEPwPisjatlwlSiVfn0/QG/EW3kqgIsxkUlxldWuXh?= =?iso-8859-1?Q?CwAd1g+l+l1LKcYUDZ1osOOCveiPAxucN1DgE5b7doI8S9EGAzpRD1isR7?= =?iso-8859-1?Q?Oa8j61Y3M+iVSYrQGtPLa6RoFny8iFkYWz4ByCaTXQc3n8J+JfxwPFi6oj?= =?iso-8859-1?Q?QIEPvoZGn0SUwlCj5hO1nW3DT53c34dEoBrdwhkNSLySQJFbCKtAJ6zPO1?= =?iso-8859-1?Q?pEmZKQFnbtTBP2sFLzQ+KTO2YgsmFUSk+2f/TS9wBz5U8eN7JDgxVheEoT?= =?iso-8859-1?Q?Dtv6/ciWPzoX7sc9KbL94gnqBKOVEfW7CEPM3gueWHaGQPWEQXBLm2Iziu?= =?iso-8859-1?Q?0nDnpnu+AjnRhfDQrRcnUoVXiaKHKdVjB5GXGwSwnMouFdZ3fscOKCVZnz?= =?iso-8859-1?Q?gYqwEhRdlCpnMVzjqMuyTxXOzv/6c/pg1ZJ0U+4fqnYbYHnVuKFFXCg0nO?= =?iso-8859-1?Q?ioExZDh/gZXGD5/tIJ20BQoP5uSPcuHklhAVBYc9XWES9rcieDfOJEO7Zi?= =?iso-8859-1?Q?K0Dkki7FYl3SFKYO5wFMy3VFX0fqs0nVokAY/QyKEtHbTbrSHFStbS4BTw?= =?iso-8859-1?Q?f4Uv677ZtfSBRNmvo5Qii6MmiwiSyAlDcYi1dRSANfid/OhCXyYUVxvRhM?= =?iso-8859-1?Q?DwsJ+wMPMzlw+8y5OxwrpPAu9AYTUOM3qgP65UZ3mXxTPV2WoqMgS+fVeO?= =?iso-8859-1?Q?XJsXPzCk+cHIZPERao2jpuI0mOPDDoJv4MVgmOFiQoc4x+oLaj1BM3Tlg1?= =?iso-8859-1?Q?LdgYuNoULLV7x2sdTNRCT58rigiZvDRd25JRl4NaApxr6aXv5YC5h2TY1k?= =?iso-8859-1?Q?znv8BBzXZA=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: Yfpv7cEw/FFxjF2EC3iKwTUeCA+3TEgh85ilIWP9BqXR8NK3oAzrCi2le98MW09yVPXMIIGAUPg3OArqZLtqnNFxpEJfef8ppgJ/IsbpqVqobP/k9farSOlSoS/H55B8nhpBkOS1mZU1fQuadVubfjHy9UNfAD2RnGitiPtmFZj/k2wZWWqujr7d2KasJRxcRrgYu9XxvPEQm2IEtdLYSKr4hzzso5e1heYOGO8FaQ4hC/WYSfKUtXTsGV+LPOCQLqn+L970cOSP1JctzGv7Ws4ZUZZcc2YrOWuvNTtSdk5yETNcc5K7KFJX+8owfPV9Ten6nQYySYkDvlZTR5pInQ== X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SEZPR06MB7619.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2a99ac63-406e-4d43-179d-08df15519899 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Sep 2026 06:53:50.6236 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43d4aa98-e35b-4575-8939-080e90d5a249 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: GpsDLduFCguWaJ6r7e/nludqe54sZ5lsKY8hY/g9g63rKfLcJ9fSSeQjL7Lv4ynkfpLppgyap++ke77K1CVn4dAjkyM9ZsX231DmRsyoTR8= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB8814 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c405::7; envelope-from=kane_chen@aspeedtech.com; helo=TYDPR03CU002.outbound.protection.outlook.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: qemu development 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 @aspeedtech.com) X-ZM-MESSAGEID: 1789714487811158500 Content-Type: text/plain; charset="utf-8" The eMMC ABR enable state is currently controlled by the "emmc-abr" machine property instead of the OTP configuration. Add helpers to read the OTP configuration and resolve strap values. Use the ABR strap value to update ABR_EN when R_STATUS is read. Remove the "emmc-abr" property as the ABR state is now derived from OTP. Signed-off-by: Kane-Chen-AS Reviewed-by: C=C3=A9dric Le Goater --- include/hw/misc/aspeed_sbc.h | 1 - include/hw/nvram/aspeed_otp.h | 23 +++++++++++-- hw/misc/aspeed_sbc.c | 29 ++++++++++++---- hw/nvram/aspeed_otp.c | 63 +++++++++++++++++++++++++++++++++++ 4 files changed, 106 insertions(+), 10 deletions(-) diff --git a/include/hw/misc/aspeed_sbc.h b/include/hw/misc/aspeed_sbc.h index 756c612356..b210ffb8aa 100644 --- a/include/hw/misc/aspeed_sbc.h +++ b/include/hw/misc/aspeed_sbc.h @@ -32,7 +32,6 @@ OBJECT_DECLARE_TYPE(AspeedSBCState, AspeedSBCClass, ASPEE= D_SBC) struct AspeedSBCState { SysBusDevice parent; =20 - bool emmc_abr; uint32_t signing_settings; =20 MemoryRegion iomem; diff --git a/include/hw/nvram/aspeed_otp.h b/include/hw/nvram/aspeed_otp.h index 2b6c2eaaa3..f91af12ea9 100644 --- a/include/hw/nvram/aspeed_otp.h +++ b/include/hw/nvram/aspeed_otp.h @@ -24,11 +24,27 @@ OBJECT_DECLARE_SIMPLE_TYPE(AspeedOTPState, ASPEED_OTP) * * - [0, OTP_DATA_DWORD_COUNT]: the data region. Each address contains * 64 bits of data. - * - [OTP_DATA_DWORD_COUNT, OTP_MEMORY_SIZE / 4]: the configuration - * region. Each address contains 32 bits of data. + * - [OTP_DATA_DWORD_COUNT(OTP_CFG0), OTP_MEMORY_SIZE / 4]: the + * configuration region. Each address contains 32 bits of data. */ #define OTP_DATA_DWORD_COUNT (0x800) =20 +/* Start of the OTP configuration/strap region. */ +#define OTP_CFG0 (0x800) + +/* + * OTP straps are a 64-bit value packed as two 32-bit halves starting at + * config word OTP_STRAP_START_INDEX (OTPCFG16 and OTPCFG17). Each strap + * bit is stored redundantly in OTP_STRAP_COPY_NUM config words, spaced + * (OTP_STRAP_BIT_NUM / 32) words apart -- i.e. one word per 32-bit half, + * so the two halves interleave; the effective bit value is the XOR of + * all copies, matching how the real hardware and the ast-otp reference + * tool resolve straps. + */ +#define OTP_STRAP_START_INDEX 16 +#define OTP_STRAP_BIT_NUM 64 +#define OTP_STRAP_COPY_NUM 6 + typedef struct AspeedOTPState { DeviceState parent_obj; =20 @@ -43,4 +59,7 @@ typedef struct AspeedOTPState { uint8_t *storage; } AspeedOTPState; =20 +uint32_t aspeed_otp_read_config(AspeedOTPState *s, unsigned int cfg_word); +bool aspeed_otp_read_strap(AspeedOTPState *s, unsigned int bit); + #endif /* ASPEED_OTP_H */ diff --git a/hw/misc/aspeed_sbc.c b/hw/misc/aspeed_sbc.c index 3402cef5c3..6cec9ad3da 100644 --- a/hw/misc/aspeed_sbc.c +++ b/hw/misc/aspeed_sbc.c @@ -71,6 +71,9 @@ #define SBC_OTP_CMD_WRITE 0x23b1e362 #define SBC_OTP_CMD_PROG 0x23b1e364 =20 +/* OTP strap bits */ +#define OTP_STRAP_ABR_EN 0x2b + /* Voltage mode */ #define MODE_REGISTER (0x1000) #define MODE_REGISTER_A (0x3000) @@ -89,7 +92,21 @@ static uint64_t aspeed_sbc_read(void *opaque, hwaddr add= r, unsigned int size) return 0; } =20 - return s->regs[addr]; + switch (addr) { + case R_STATUS: { + uint32_t val =3D s->regs[R_STATUS]; + + if (aspeed_otp_read_strap(&s->otp, OTP_STRAP_ABR_EN)) { + val |=3D ABR_EN; + } else { + val &=3D ~ABR_EN; + } + + return val; + } + default: + return s->regs[addr]; + } } =20 static bool aspeed_otp_read(AspeedSBCState *s, uint32_t otp_addr, @@ -388,13 +405,12 @@ static void aspeed_sbc_reset_hold(Object *obj, ResetT= ype type) =20 memset(s->regs, 0, sizeof(s->regs)); =20 - /* Set secure boot enabled with RSA4096_SHA256 and enable eMMC ABR */ + /* + * ABR_EN is derived from OTP on every read, see aspeed_sbc_read(). + * Set secure boot enabled with RSA4096_SHA256. + */ s->regs[R_STATUS] =3D OTP_IDLE | OTP_MEM_IDLE; =20 - if (s->emmc_abr) { - s->regs[R_STATUS] &=3D ABR_EN; - } - if (s->signing_settings) { s->regs[R_STATUS] &=3D SECURE_BOOT_EN; } @@ -452,7 +468,6 @@ static const VMStateDescription vmstate_aspeed_sbc =3D { }; =20 static const Property aspeed_sbc_properties[] =3D { - DEFINE_PROP_BOOL("emmc-abr", AspeedSBCState, emmc_abr, 0), DEFINE_PROP_UINT32("signing-settings", AspeedSBCState, signing_setting= s, 0), DEFINE_PROP_LINK("sram", AspeedSBCState, sram, TYPE_MEMORY_REGION, MemoryRegion *), diff --git a/hw/nvram/aspeed_otp.c b/hw/nvram/aspeed_otp.c index 81304bda3a..127da15642 100644 --- a/hw/nvram/aspeed_otp.c +++ b/hw/nvram/aspeed_otp.c @@ -106,6 +106,69 @@ static void aspeed_otp_write(void *opaque, hwaddr otp_= offset, trace_aspeed_otp_prog(otp_offset, val, value); } =20 +/* + * Each OTP configuration setting contains 32 bits of data. + * Configuration words are grouped in banks of 8, with banks spaced + * 0x200 dwords apart and words within a bank spaced 2 dwords apart: + * + * offset(n) =3D OTP_CFG0 + (n / 8) * 0x200 + (n % 8) * 2 + * + * Returns 0 if the OTP read fails. + */ +uint32_t aspeed_otp_read_config(AspeedOTPState *s, unsigned int cfg_word) +{ + uint32_t otp_addr =3D OTP_CFG0 + (cfg_word / 8) * 0x200 + (cfg_word % = 8) * 2; + uint32_t value =3D 0; + + if (address_space_read(&s->as, otp_addr << 2, MEMTXATTRS_UNSPECIFIED, + &value, sizeof(value)) !=3D MEMTX_OK) { + qemu_log_mask(LOG_GUEST_ERROR, + "%s: Failed to read OTP config word %u\n", + __func__, cfg_word); + return 0; + } + + return value; +} + +/* + * OTP straps are a 64-bit value split across two 32-bit config words, + * each of which is repeated OTP_STRAP_COPY_NUM times for reliability. + * The two words interleave starting at OTP_STRAP_START_INDEX: + * + * cfg_word: 16 17 18 19 20 21 22 23 24 25 26 27 + * +----+----+----+----+----+----+----+----+----+----+----+--= --+ + * | L0 | H0 | L1 | H1 | L2 | H2 | L3 | H3 | L4 | H4 | L5 | H= 5 | + * +----+----+----+----+----+----+----+----+----+----+----+--= --+ + * + * Lx =3D copy #x of bit 0-31, Hx =3D copy #x of bit 32-63 + * (x =3D 0 .. OTP_STRAP_COPY_NUM - 1) + * + * To resolve strap bit `n` (0 <=3D n < OTP_STRAP_BIT_NUM): + * half =3D n / 32 -- 0 selects the L* words, 1 selects the H* words + * bit_pos =3D n % 32 -- bit position within the word + * word(i) =3D OTP_STRAP_START_INDEX + half + i * (OTP_STRAP_BIT_NUM / 3= 2) + * + * The effective value of bit `n` is the XOR of bit `bit_pos` across all + * OTP_STRAP_COPY_NUM copies of word(i). + */ +bool aspeed_otp_read_strap(AspeedOTPState *s, unsigned int bit) +{ + uint32_t cfg_word =3D OTP_STRAP_START_INDEX + bit / 32; + uint32_t bit_pos =3D bit % 32; + bool enable =3D false; + int i; + + assert(bit < OTP_STRAP_BIT_NUM); + + for (i =3D 0; i < OTP_STRAP_COPY_NUM; i++) { + enable ^=3D (aspeed_otp_read_config(s, cfg_word) >> bit_pos) & 0x1; + cfg_word +=3D OTP_STRAP_BIT_NUM / 32; + } + + return enable; +} + static bool aspeed_otp_init_storage(AspeedOTPState *s, Error **errp) { uint32_t *p; --=20 2.43.0 From nobody Sat Sep 26 20:50:57 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; arc=pass (i=1 dmarc=pass fromdomain=aspeedtech.com); dmarc=pass(p=quarantine dis=none) header.from=aspeedtech.com ARC-Seal: i=2; a=rsa-sha256; t=1789714485; cv=pass; d=zohomail.com; s=zohoarc; b=ZP9Z1axP3jXzM9VJYwTaeZB0W3a8uAeJJuP/5ZtxHm6/RPqy+JlpxP8WjHWRdD4Rb0RZ3VZq//3AJYb4FpYy6Gv0xDeD/ShVPosNwewQJw+Z37J61qJCOXSKBqrStA4LTHe2pS14MdPe8IIoEwC/qaqIODWzSY5zUgCyUc6uD9Y= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1789714485; 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:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=WqW0LM2U54X71PU5+QnQHrPKP1sexrVpSNlxuxYWMo0=; b=cI3Znytds5ssAXJMRzgFPwvtbb7e6UxIXY+N3R+LEKsL6bpwuPKXjH6L3ZtmiC0uy/roeXNNNMEs2uLkjDfIfs6ATVvFYfKeS8SHiAZDQLgmxDZefOiFXK5VOcLnO2IrViMNf21gjSoRpBmhb2mMHrC6FBT7PL774j4jAo56lZE= ARC-Authentication-Results: i=2; 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; arc=pass (i=1 dmarc=pass fromdomain=aspeedtech.com); dmarc=pass header.from= (p=quarantine dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1789714484863414.62605685512926; Thu, 17 Sep 2026 23:54:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1x7SUB-0006k9-Ae; Fri, 18 Sep 2026 02:54:15 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists1p.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x7SU4-0006iH-I6; Fri, 18 Sep 2026 02:54:08 -0400 Received: from mail-japaneastazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c405::7] helo=TYDPR03CU002.outbound.protection.outlook.com) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1x7SU3-0002rT-24; Fri, 18 Sep 2026 02:54:08 -0400 Received: from SEZPR06MB7619.apcprd06.prod.outlook.com (2603:1096:101:249::5) by SEZPR06MB8814.apcprd06.prod.outlook.com (2603:1096:101:33d::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.428.13; Fri, 18 Sep 2026 06:53:52 +0000 Received: from SEZPR06MB7619.apcprd06.prod.outlook.com ([fe80::c8d3:efda:b73:f6a6]) by SEZPR06MB7619.apcprd06.prod.outlook.com ([fe80::c8d3:efda:b73:f6a6%4]) with mapi id 15.21.0428.011; Fri, 18 Sep 2026 06:53:52 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ONUFJ0FN8nMy+r5uyL0xdRvPPeINy8fT3+5P0RIqSVAZsar0Sca7+TUcPGY5UAG8mrzYYF7JmHgQh187c7EKnMYzWkuwrL2RdUVnxPOthvG/kyQB4VV/SQrSw9OTl6gSyewWjcj8jeTmvf1UopNRtP1EA5W86CvCyv7aan7Mz+XPaVVf5EMXio+qYOpazGSy+oxYh1ONGaDhPrcaK/fd3PrMd4HiR2TZ/9/WbyIi1teIbWuETSmkhciNV0b+WCE6AMFQ72HhMb7bxEETYG5j0yi1Yb/27YhzqAAUS3bP1DkiuT5B3BqLvQNp94waZrrz49ZhT+P2ORpiHHj7zRr+BA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=WqW0LM2U54X71PU5+QnQHrPKP1sexrVpSNlxuxYWMo0=; b=EtVbZaVEgutD3Ei1Ojb+MtyZ2GstbyX56RwaNJL06vZE7NGcVfJejmOSiT4MuOt5ZOUafirg9nvKzPw2C3EJYsdhmTzF/5J/QJnNa3rELVul+8kj9BxSeI7mTwvoYyVKvhHpYdIj9uBREq7ngbhstHWmubfu1hutrORVEoKkXWh82G3inhgNGJnZi5Awr6QsrobAhDaWtuvnWmPBDjzuVL7ZhTPbF+MoCXRQM7lkoMQF7jNTLHU9l8wVduG6UGLy50lO6skSmCSleJ+Rq5AMWeoeQTYNmqlvigSXOxzBepxPu6+LuLi8I8tf7OCJfK1GZ9pWxzEJni3OuVqHbsXBrA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=aspeedtech.com; dmarc=pass action=none header.from=aspeedtech.com; dkim=pass header.d=aspeedtech.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=aspeedtech.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=WqW0LM2U54X71PU5+QnQHrPKP1sexrVpSNlxuxYWMo0=; b=q0+He17SdcDKhXiQsc1i0txuEzPUJUUaCPlHsFZv3fgT/lLOaC530991YJZaNJpV/scCiD9l9kcE4RCc/4l1WJegp16D7cZt1Xazay6u4schNUXuQt77R76wrircTMJlpNJ2y4l2eyzRKeMbW9VUT9cPDNISIEtjetHgg11qKAUCalrZ+x6rfHub+ctvowHe2twGm2qwPStDzxanZWugG+qyz4vUSagiurOx3xK0xPgaroMr6MTkoPnkK2U0vknB9w9SX+VpKB2w7oc9B2AtWkbMwZD/Ok8P4jH/3JcpvTfbxDlRyWTvUftw2l+SaL3ctkfjettm1Tr3/G1RKTg8cg== From: Kane Chen To: =?iso-8859-1?Q?C=E9dric_Le_Goater?= , Peter Maydell , Steven Lee , Troy Lee , Jamin Lin , Andrew Jeffery , Joel Stanley , "open list:ASPEED BMCs" , "open list:All patches CC here" CC: Troy Lee , Kane Chen Subject: [PATCH v2 3/3] hw/misc/aspeed_sbc: Derive secure boot state from OTP config Thread-Topic: [PATCH v2 3/3] hw/misc/aspeed_sbc: Derive secure boot state from OTP config Thread-Index: AQHdRzp2QR099gXF2UW86apyi1Ym2g== Date: Fri, 18 Sep 2026 06:53:51 +0000 Message-ID: <20260918065347.3713868-4-kane_chen@aspeedtech.com> References: <20260918065347.3713868-1-kane_chen@aspeedtech.com> In-Reply-To: <20260918065347.3713868-1-kane_chen@aspeedtech.com> Accept-Language: zh-TW, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=aspeedtech.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: SEZPR06MB7619:EE_|SEZPR06MB8814:EE_ x-ms-office365-filtering-correlation-id: bbbc2445-518f-4b55-498e-08df15519964 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|23010399003|366016|376014|10067099003|6133799003|22082099003|18002099003|56012099006|38070700021; x-microsoft-antispam-message-info: 8mlE/isGfgeskawd/dGOSwceT3eK7UdNLq+QLTM3C6QXZxTH7vbqDp+70wypsJemx6nP1v4jC3Du4kFUm9k7Pgx6/WfyZf1VFX+YtgpVf5ti+/CEqlXl6TqaSxjazE+vwsUQJU+uWADZNTS/5B0VoThvf/Y4m/G276fQO/lofwg3VYsPaSoEUbaxxfxxUJP5vm4aW5on45tlw6UvAFQjvMTXEiXyciiN14AyVrpZ8/31SGS8XOQV/NKVIg7kHU8Mcf4OcqpZ5cSHSrDRpPGOGM3Z/C/m37Hh11DihRiJRAuQS5FNk4W0DkfBmy/JFLcYUlOy8l+tnGKlchUD+YsOR0XRdrmJD5Oj+HvK/RvMxDlpFmnFwgEeDFlvn7cABBkBDk3Ibo8PC37BLnaoPSeB3AOwkdq228L1LHfH4lZw7BmdXHcKIyl2bX2rYG0wf6cGmIiEQUhjRYw4LZc3bxAeP0liUJPeqG4Vv669++E+o7+bfrK02BqBVQRiVT0xCZUfq9WG4LbDQ7Sgl0lfxQuk8F1F5ORoRvfMcQD7py1Ki628Vn7BEWqsnlqKkjit7rnzZyFyy7G3d7spEEISg6anoqcJXK9RH0SbN6KHt9hdpZokiLMzsrVJQ7QhhYbGfZlJO+SLkqAj0dauKKRyRgPvZHUMFvozA8g8T+Szh9lWuBKmjdDEEcPsKN0O+ZK1USqpkBokMJkCyEyOBgHzFVL8mfA5f2kDqNLa2p1HE9fWH0Y= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:SEZPR06MB7619.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(23010399003)(366016)(376014)(10067099003)(6133799003)(22082099003)(18002099003)(56012099006)(38070700021); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?68rqIKBoar/5/rE8NNxt1/3HI4W9O6x9I0EANcmav6OXnV2uaeyLkHAeZy?= =?iso-8859-1?Q?bS7dE4Z73q19HI4TLYjONebLjlsgAd2RNO/4r/HHjKpHO/wFFHUMkQwNpn?= =?iso-8859-1?Q?zP6/J4wyHSjYuCPBa7pjpx6+jFaQ0yMyqERHFjHfP6vt3Zt/b0BzCwTmhs?= =?iso-8859-1?Q?+nA3H2v1jgNUECre5QCVWBcJfeGko0onBritYZlPwYjTijg9JJdqpy4K9P?= =?iso-8859-1?Q?mrHAO4deM1T582gjVxW+R2ztOdEObU15bwtbIXoTY64htHDFGRbaR+ID/T?= =?iso-8859-1?Q?1aVVDV01it4sHh+6WLNKAKUoXENIFKt9afL3E7ymoBFEIGALKJrG3C/Vbk?= =?iso-8859-1?Q?CxkZFesYKHe7eVuFacP1EJdclVSBGxGxxREOaJUJUoW5ef2M6H6aDq06Ir?= =?iso-8859-1?Q?MryE8PfxcLx3F7jQbRDnzZWNKLyuGfHYOrOvdl+orrDOlZY861pjWOOrK9?= =?iso-8859-1?Q?NUZW6/ugVPwhedgHH9Z1TLT89ARcllxEoChInoVwRcuAaPkGuWxysJihVV?= =?iso-8859-1?Q?KGetzaYJA+C751nCI07zPuFgyM437B9Kh7AsXiGDNygT1k+q+ZELL8cBG3?= =?iso-8859-1?Q?RCxzaCAhOh0VKwoFSRG4LStnYKhDI/Ock8R7XhVCr5NyW0VlW1KpzcBR7M?= =?iso-8859-1?Q?AfXRgJdKs24euOI208yasZhcD35IfmTqqZG9YhjGnHPZMCorLBpMB8DaP9?= =?iso-8859-1?Q?Qs3+jaWcvKDEBiO2mqrf86QXX5i5NeJWfbAcJpqTQS/efvsqkF3a0t5lsX?= =?iso-8859-1?Q?69u6wNc34+vwHvZC8ubhrCiUC1TlBc6Ub3rasidT72MXO1owvgVHqOGIGj?= =?iso-8859-1?Q?jlw/QRx1p21MVeYLi4lhK+5ls5TrYtxwfGxTMlQPx5rtQAxQWumd2ZbQ7M?= =?iso-8859-1?Q?HEzncIuI024kRkBJbiqbb4csO0El9nh/kWvc/ybqAvBkdCmxbM8le3lMFd?= =?iso-8859-1?Q?rq5dg7L/AqDzo+fjAgEZjn8C83ZJfA6OAWSonaPb05kss1/JjWVZiyOoPE?= =?iso-8859-1?Q?DqHzHaZYTF7K/Ho6rjdS3PkBYzb2X4mp8MZTQJujbBxMZSsklKpeUV+N83?= =?iso-8859-1?Q?4Vx/Oifxzk8kwj5cYQgyEp71jmbF2/XMx41UIIUOGDW2ZurG2GtFRy+n6A?= =?iso-8859-1?Q?RiDJgMR6LvUX1BZWUNv4Dam3veOhKrB85T6FipJ8nGxnKjBL/4KfEZXN0/?= =?iso-8859-1?Q?sKGo75hkbUC0bis8Bs7JB0TwCoqkrVXG3t9l2iBjezpTEXpM3LELeGIZf6?= =?iso-8859-1?Q?/fqO7o9j7dN4ch1DbBZmjS+vceC2fFegrD+GJqALmMw0wtRIt2zDvL4xqb?= =?iso-8859-1?Q?C5zATKIqlamJKcHQ54drKeFKIeIKoVzsgCbeA0oxD/lOFfv1q0jS443sI0?= =?iso-8859-1?Q?l9FCpssjOEYtbf8EGKIy247oCKQ5evm4mfiGN+Tq7IWY3edJCPinpLYpUG?= =?iso-8859-1?Q?T5hllanLHmkH73XFVX7RCbKYZyytTppjP2o27M/6y9WxL8werZ/mtWMOlG?= =?iso-8859-1?Q?nZOl3xvXL4zvLb25rC9/YBPPNnfU1EDxkYvERQvSXV8zzgvuFqvq6TeWkz?= =?iso-8859-1?Q?Yx6EgL4yWaFCIY90yfX/hbaoFVhrQ+TBMuZfmHaCcrhrhryLmUpE1jH0FG?= =?iso-8859-1?Q?GwiecqCMBz5n2T0RUfiThK0v4pfS+l56FJ3mZFA6ZPXHvtAqUYV7YvVtTf?= =?iso-8859-1?Q?pO43LBUPX5nD11x77jIVux8bfzAh2Jzq/vW2VALSpEuCrJgJaRQlC3kzmd?= =?iso-8859-1?Q?cCdQcmVtZCaC9uqjBwa0NBEHWHnQQTB1IvGMTVbQBzloGbjvsOvnrgBg4U?= =?iso-8859-1?Q?JgkmtvMuBg=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Exchange-RoutingPolicyChecked: BU3UdKVD71KHQsFYZtD9/6Yu9LqC2Vy9sFtfNhoejacvR+3gdrLTLzpQSZ2mTdL9GQRH82rxAJo9tMuAPPH+PkemDexbJ93X5aUkSgDkUVOwgpLLt/jwmqRcxpdjwJ66ii//9jqvTP/pqf82K4Z5+Tmy2+WNCY04eDXatatuh/8QILL9IZXkg0tE/Rpw3MRLn43BiWyzrSTVZLpg9It3pGhrD8WwDYRw4omk4TpcFYYZw5Tf1EwiCjFCCUc6T6bb5PGJT7TyNvWYouP8F1kSDxzMLNtpA8eFnfwhwYL7IjvYNoCgel7/9hKIphHEVvOc4ULK/UyxdtXg8tQtvxyW+Q== X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: SEZPR06MB7619.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: bbbc2445-518f-4b55-498e-08df15519964 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Sep 2026 06:53:51.9301 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43d4aa98-e35b-4575-8939-080e90d5a249 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: SSF55vJwsoVxpluVBkNXFI4h331UaBEzkE4oPVpU7GEH5+GaJ+PfUy+Irw6Cs2t7BbVo3H/HoO5I4NPdqCdsZTOvqoBhEAv1dZdHGKX8LEg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SEZPR06MB8814 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=lists1p.gnu.org; Received-SPF: pass client-ip=2a01:111:f403:c405::7; envelope-from=kane_chen@aspeedtech.com; helo=TYDPR03CU002.outbound.protection.outlook.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: qemu development 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 @aspeedtech.com) X-ZM-MESSAGEID: 1789714487756158500 Content-Type: text/plain; charset="utf-8" The secure boot state is currently controlled by the "signing-settings" machine property instead of the OTP configuration. Derive SECURE_BOOT_EN and R_QSR from the OTP configuration when the registers are read. Remove the "signing-settings" property as the secure boot state is now derived from OTP. Signed-off-by: Kane-Chen-AS Reviewed-by: C=C3=A9dric Le Goater --- include/hw/misc/aspeed_sbc.h | 2 -- hw/misc/aspeed_sbc.c | 22 +++++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/include/hw/misc/aspeed_sbc.h b/include/hw/misc/aspeed_sbc.h index b210ffb8aa..7f3fa7062f 100644 --- a/include/hw/misc/aspeed_sbc.h +++ b/include/hw/misc/aspeed_sbc.h @@ -32,8 +32,6 @@ OBJECT_DECLARE_TYPE(AspeedSBCState, AspeedSBCClass, ASPEE= D_SBC) struct AspeedSBCState { SysBusDevice parent; =20 - uint32_t signing_settings; - MemoryRegion iomem; =20 uint32_t regs[ASPEED_SBC_NR_REGS]; diff --git a/hw/misc/aspeed_sbc.c b/hw/misc/aspeed_sbc.c index 6cec9ad3da..ad4c2b4b1d 100644 --- a/hw/misc/aspeed_sbc.c +++ b/hw/misc/aspeed_sbc.c @@ -79,6 +79,8 @@ #define MODE_REGISTER_A (0x3000) #define MODE_REGISTER_B (0x5000) =20 +static bool aspeed_sbc_otp_read(AspeedSBCState *s, uint32_t otp_addr); + static uint64_t aspeed_sbc_read(void *opaque, hwaddr addr, unsigned int si= ze) { AspeedSBCState *s =3D ASPEED_SBC(opaque); @@ -102,8 +104,16 @@ static uint64_t aspeed_sbc_read(void *opaque, hwaddr a= ddr, unsigned int size) val &=3D ~ABR_EN; } =20 + if (aspeed_otp_read_config(&s->otp, 0) & BIT(1)) { + val |=3D SECURE_BOOT_EN; + } else { + val &=3D ~SECURE_BOOT_EN; + } + return val; } + case R_QSR: + return aspeed_otp_read_config(&s->otp, 0); default: return s->regs[addr]; } @@ -406,16 +416,11 @@ static void aspeed_sbc_reset_hold(Object *obj, ResetT= ype type) memset(s->regs, 0, sizeof(s->regs)); =20 /* - * ABR_EN is derived from OTP on every read, see aspeed_sbc_read(). - * Set secure boot enabled with RSA4096_SHA256. + * ABR_EN and SECURE_BOOT_EN are derived from OTP on every read, see + * aspeed_sbc_read(), since the SBC status register is just a + * reflection of the OTP fuse state. */ s->regs[R_STATUS] =3D OTP_IDLE | OTP_MEM_IDLE; - - if (s->signing_settings) { - s->regs[R_STATUS] &=3D SECURE_BOOT_EN; - } - - s->regs[R_QSR] =3D s->signing_settings; } =20 static void aspeed_sbc_instance_init(Object *obj) @@ -468,7 +473,6 @@ static const VMStateDescription vmstate_aspeed_sbc =3D { }; =20 static const Property aspeed_sbc_properties[] =3D { - DEFINE_PROP_UINT32("signing-settings", AspeedSBCState, signing_setting= s, 0), DEFINE_PROP_LINK("sram", AspeedSBCState, sram, TYPE_MEMORY_REGION, MemoryRegion *), }; --=20 2.43.0