From nobody Sun Apr 12 02:48:36 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=1771916389; cv=pass; d=zohomail.com; s=zohoarc; b=fhW4yWe9+GzuhGs/OWwPLLwuXhjnfEMYUiskQrb36m3f41ail3VbiMCdtBvlriXDFL6lgomFcfeT2qZVEFU9irb+H8yJIZixS6jTXtko46FFtDHgNA3ryr87UjxOPfePa+k8ZVXO4d7NES4v1DhhRtR5PqPsnz0LfIx5IbmGBwc= ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1771916389; 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:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=YiXK2jDGUMyj7USYWr3IJDc8SbJLmQJDnVS1bMUg0kw=; b=b2Ai9XZKS34Of4hwS75v8e2DQKwO6O/b/Fk1ktEWoRDBqIvSuXsbjfwR+31BxaI9yvNseEp+Ubze3026fjkm2lCBLc757kkCPGEwyAFO8iBr9PnuT9K7NkVxpka/E/Kpz3Vg/VYgyhTobOm8QHg0frv7Dex8mBU1eR748QKK/Dw= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1771916389116576.0002889167122; Mon, 23 Feb 2026 22:59:49 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1vumLX-0002MY-8r; Tue, 24 Feb 2026 01:56:39 -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 1vumLK-0002Go-8O; Tue, 24 Feb 2026 01:56:28 -0500 Received: from mail-japaneastazlp170120005.outbound.protection.outlook.com ([2a01:111:f403:c405::5] helo=TYPPR03CU001.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 1vumLF-0005Lc-Ig; Tue, 24 Feb 2026 01:56:24 -0500 Received: from TYPPR06MB8206.apcprd06.prod.outlook.com (2603:1096:405:383::19) by KL1PR06MB6109.apcprd06.prod.outlook.com (2603:1096:820:d1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9632.21; Tue, 24 Feb 2026 06:56:03 +0000 Received: from TYPPR06MB8206.apcprd06.prod.outlook.com ([fe80::e659:1ead:77cb:f6d3]) by TYPPR06MB8206.apcprd06.prod.outlook.com ([fe80::e659:1ead:77cb:f6d3%3]) with mapi id 15.20.9632.017; Tue, 24 Feb 2026 06:56:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=tqhrffxjiXwT+TdQCcS6rA3RZr+slHP21/SFYHroumnEAcm2HiimdXJnNjDUVP9SXTO+WWqacnTPYP5TkO5srDQu523zpm1Ep7fnjQBxTk4Bkcurhx6pKH68UoMM/akt6gf4Df0QcS5z9PSRSnvcrfRhhEK8ayk4Oj3ua7L23ceRp05J2/Rcub1k4AUBc/iicK5+of8gFMzwWqVpMElyXDNaWpG5WdKr+UEBvtGOuztZqYz40UX/xra+pyZylOV8mysYQAOR2Ni6DGobzWR5kOy2g8SFxJom4uT/CzvC+SKbSsm8e8ldJCZDQe+KqGjvrYWlEkwNBzwAM9rugxmY4w== 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=YiXK2jDGUMyj7USYWr3IJDc8SbJLmQJDnVS1bMUg0kw=; b=gGmeGvuvTAdbO6OXWTizMdZFtEpPKkMVr5d/rcA4DrTLjmGilkPDkFpfCfZOLiLrptz9Ru877IOSuXiJugb1I61PBF0fIgORgQIpoQeMypD81IJsvatNFQgFrP3ietdxc0VIGLuQ8axrQbI51xNKTMI0tR93N72NJWAvpGmt5zharhKMdpesg4xhTVBqlqiM9FK9B8e2K9kiGBWyBELpuQo/W59kGaVth4U+o97t0YUj+BVoJ5GrDcY3xvKxFkVduKMRhdlW+4/4kxnYBD7DFzS8IoKXW82wBoTyFpvB8rUZGzWqQPRqnzvZ4o3M8EH1eRQ0QB/51PMImZb5TG3pcQ== 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=YiXK2jDGUMyj7USYWr3IJDc8SbJLmQJDnVS1bMUg0kw=; b=oXxkbcWbpRHmZJ9cKlbMZOMSQpC4Yw2THSHc/vt7VAPWrSA11x7J4yLKBf9mWbbgrHk8QzZIncnDEm/lWP+mO9Ei1clXuAOmn5S+/pD3Iov7h8qaZPVeJlac3y6sIuMV1ZDxtlwKNMs8kBHnpc0KSC8ledHMnfB+Dw2WP3piKCjhVc4wB7XDJK8P0iHFsQRaxQJZOvF0+RSPCMWAA7ppsBIXMPvRYaBGwKMnML/xbr/nDUcKULN3WkZACjD4RGBMV+rLieW4nliHxXCfouyPhXToaywJe/1xyPL/5o39tg3yiD83TnPdh5x/Bj8EuCzikCa8sOXAyS845AGofmQlZA== From: Jamin Lin To: =?iso-8859-1?Q?C=E9dric_Le_Goater?= , Peter Maydell , Steven Lee , Troy Lee , Andrew Jeffery , Joel Stanley , Pierrick Bouvier , Alistair Francis , Kevin Wolf , Hanna Reitz , "open list:ASPEED BMCs" , "open list:All patches CC here" , "open list:Block layer core" CC: Jamin Lin , Troy Lee , Kane Chen Subject: [PATCH v3 03/15] hw/arm/ast27x0: Add DRAM alias for SSP SDRAM remap Thread-Topic: [PATCH v3 03/15] hw/arm/ast27x0: Add DRAM alias for SSP SDRAM remap Thread-Index: AQHcpVqjQ1MALzMt4kqPeEPEWp2gVA== Date: Tue, 24 Feb 2026 06:56:01 +0000 Message-ID: <20260224065556.3847942-4-jamin_lin@aspeedtech.com> References: <20260224065556.3847942-1-jamin_lin@aspeedtech.com> In-Reply-To: <20260224065556.3847942-1-jamin_lin@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: TYPPR06MB8206:EE_|KL1PR06MB6109:EE_ x-ms-office365-filtering-correlation-id: af22d2b0-9229-4b54-dbe1-08de7371c6a0 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|7416014|376014|921020|38070700021; x-microsoft-antispam-message-info: =?iso-8859-1?Q?hvEgolYH82JBOvdt8a7mQW72fEd95zMAWdl9Pe7y9X02oqLSwC2jDK2YEp?= =?iso-8859-1?Q?j9085hXCKWG0OEOgNnhDDUNfsj45VGZ4T5Md1oeLhQfxFX7lv+tIiZK0f4?= =?iso-8859-1?Q?3j7+aV2Jxqe+pY8F/Bkh1ZGD/j8yx+GX3Xb7Pc4Ez4R49h0In3f6npiv7D?= =?iso-8859-1?Q?YHMejuRY0CV7AMrv/EfFLVKv3vAqx2MUxpu4+kONpWtMUP7dGB9KRW6jas?= =?iso-8859-1?Q?jnxWTDbiLs9/DNiLE7xMLaX3RXCEPYH2nMx6bRyR8zLLQ3NSyKIU7BhhvO?= =?iso-8859-1?Q?4fIR6sDQp6ZXBW+0eC7aXONUxeQ0SDKk8YCSQpB9r6pugqHlv1RScUfmON?= =?iso-8859-1?Q?0XhCQsnNHw5Yfry5+tSSBtwY59Bm4M+qBepqVY9gkwEN/b0B8u1ISqrnbh?= =?iso-8859-1?Q?VXr4AA/W429dJ2b4ZpOLjye28WpOeFQohV+p3Yj1Df80n84JvW/5O82l9l?= =?iso-8859-1?Q?VAXxC+YyXwhgdyI84bQbpxAH+g59rFVTqISjVK/3S4oUMzcaInw+dJRHKl?= =?iso-8859-1?Q?Z4kN8KBLper3mln5ktZ3eqMsehFYAz/ZFKs9M0vgJQf0CcMnnOd0h5Exf2?= =?iso-8859-1?Q?JbozwGGZizT9hi9ktS6cgODZNJ96xtl+pEOj59erbVaqECTJvzzFa6/u+e?= =?iso-8859-1?Q?MK674nNTAUnWWKKT3qm2NuPgvHOzvubqjXddXam7RTtyIESuWrR2RUDRZH?= =?iso-8859-1?Q?BlMX8UD/C/rNyV/wcm7vLOOw8vXyL8RUA+M7KOgYU1YJtU30FcuHC2RRDu?= =?iso-8859-1?Q?6lso5hV7Y2VqldzfnU9u9N65DT8UAAU6BnTB/5ztmVF9ku232mvh498nz1?= =?iso-8859-1?Q?0XNwZXwZEVLIOLy1wbvGConxh9G6AoL4rLbE2Bxhi7WtgS3fJx8sjj9CY5?= =?iso-8859-1?Q?1a9tIOgAr0hFMNL/j7AtRB+08Tl7tITdFJQrpkz+bLF9buWLG2YRqwsXR0?= =?iso-8859-1?Q?EgrhITQxtAQLjT2QwGS2N8AFZf6qeOlNl1kHnledpUOESgrh+sN5TqlvTx?= =?iso-8859-1?Q?RmTbP3lh2N+26BKbh1SQMc/v9ughyuTtMhBJ3RyDLPf0cE3vp06IhrpN2D?= =?iso-8859-1?Q?OeT8L/Slmz0j9F+75g4SRPpRNOgNGTjv+IpeOjc9nV/mmrZiyw8b0Oo9Dm?= =?iso-8859-1?Q?c0lWTmccHsQ2s5De30JPtqoaNfavJXGsbqD/ZK7QV388OK3EJSZ3Xz9Eim?= =?iso-8859-1?Q?x++bpHumua5GOq+d/wylZOnbuZf/JqFpqnTq6s7/jgTHiCwMvd/zzqCdt7?= =?iso-8859-1?Q?AxGlfAxrBwHKJN9bQwRYZY9BhzzpJM3nAyVPLq80pz503ut5QSyX20g1HB?= =?iso-8859-1?Q?yPMyWbLdwMciBtOD44Y3XXrKNAb0Maus3gjntHuMVJRqml++xMTDGkcyor?= =?iso-8859-1?Q?PSY/nbEHxuRmyIKc7Tx3sPPobEtxTZ48ETOy5WRB7/h0UnOP+xv/Db2+Kt?= =?iso-8859-1?Q?kAMXljvc5QKewA6vJr1d+YCLwtyUPQmghqc8jPm1HI0KYK5mwfk7B2taN3?= =?iso-8859-1?Q?KQl1O6UY1BzoA6kNhpQ5Dbv1tlOgF8M8DqQN3Lu/npgYiMzaL1fgBufdN7?= =?iso-8859-1?Q?sVdA/HKnfh3GE4fG5LcpC3szt4WVEKIrRs00JTL/2agmvXBZWAcD9xs/QG?= =?iso-8859-1?Q?9X12s3qbIM3IXA3QlHcniSUjyFZTZVvgqYNSiMq6vMdTogyYG9Ej52RW05?= =?iso-8859-1?Q?SHeRbnyEKemS0OqQnYYtMVj04V2GAlG7Ny64WYZf?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYPPR06MB8206.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(7416014)(376014)(921020)(38070700021); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?XtguUZu0klkstHymflMCsAuNbcoDm4x27Y6IR6iWkDO91le/gs5fB7DFqh?= =?iso-8859-1?Q?8jicPdYdUet8JTpl/vJ6OsFVaUktVITn6ncqkSF5lpMRdxp1NARTtb+wRi?= =?iso-8859-1?Q?453jRPNErUkM5mHbP+JGmW6y0MdCdgLwrqXlSrB0c0QVI+o1LWFwldi+sW?= =?iso-8859-1?Q?Hdw9K/0IkdTJDoGRSFYh5nADp7yFOL9jffK+eHZZX8cVTNt0vpsyve8V15?= =?iso-8859-1?Q?DZ4hD/s4us/VTSqig0iFDT4QqHS8bbhkZ5XzvKBueZp+qj3hmscM/nB9q7?= =?iso-8859-1?Q?44rwZ2yWQT+gXu8YCnVevNzu9lYYTKpy4PVqCKlHzyPTRr7pYhRNQelI+n?= =?iso-8859-1?Q?KZcAeYPaQvp5Eqw2lPmBZ0fbiI/UEIy/oe0JKYhLa0SrLl47BjfwoNwO9y?= =?iso-8859-1?Q?E7dEzHKUMcq2Mm/odcjjMfbPy/71TM2Tw8izV7YLYXdG+CUCG4eHiX4sGE?= =?iso-8859-1?Q?ccSZefYYrRkvm4Fk5GzdtxG5GNutwU5b7PavL2MZwGlt4BDDtXlUqp4DkM?= =?iso-8859-1?Q?CAcfKf27DkfJlBH0xzBKNtyetEpc/W83+zn/WuicqbEc5Q0i4IzvG6ivhn?= =?iso-8859-1?Q?NdeTnuGVIahyQPj9oNCqUA+RP1tH7Qz2gLaxA660zAfcBeZceTicaSjS/E?= =?iso-8859-1?Q?SnkqKWnUcGX0pFyhU57frnVy2kzFbfeqpOn+l5HFND4fJCHmPaOyVLeslr?= =?iso-8859-1?Q?A61p6kPHOfdNbsRNW/PxME9kIkzkXweTRpkoYugQd1RGJvuEOndFlLVQGp?= =?iso-8859-1?Q?vLLsHgvTuIvivKUyRPMXJR14dXgNtfCaovO3EuDQI/wdHVdnfKTiI3TZSF?= =?iso-8859-1?Q?bdaPnX96enFsjA5W/7PrLanoteEYjQeNt3/ly9PyYqfCtBmZs6mLqSTyay?= =?iso-8859-1?Q?uLbtZd+mOA1bJIhLtFd1CAFidmZuaBp8lCxWkVEEp1wBKQvQiC4+s8/c5r?= =?iso-8859-1?Q?dY1xNjnEQP3G5LbfE9TdfpO3saIwHAbhOz8Th8NF+L0j/3QpMmdAqLaxZI?= =?iso-8859-1?Q?eMVui5sKcR20Dz+4G9zHLNXGx8mUyAw9FtAJPQz1nkpux8A/xxUCiavXZ7?= =?iso-8859-1?Q?pM/LaLZMn2n/HczyzVovMIRo+0aLo9WH+a3fjjUKjQTF+CgG0PhnMdF2xP?= =?iso-8859-1?Q?nAGrP93fx9q9sgDrIWzymmVm4EANIAQCH7v1GmiBGi5m7m3R3EYx+KHlkK?= =?iso-8859-1?Q?MPEuJcOLmQjsZJdRbr91hA782qAOgcMcd11OljvfaLOJPEOOaEZdGEEHqx?= =?iso-8859-1?Q?bM/nj8hfPEWc0l/6bYIqWrvalX4YqGMlAaWLcKPRO/MW/gWSlyBx0hiG0y?= =?iso-8859-1?Q?6TW/dI5rYenPj7nCZyd016xYT5TpSVk5lHkdjjjRtvs6PfZnmnkCvq7f9V?= =?iso-8859-1?Q?rdX5MxkNiOKloQ+DWFORE+oZkTH5Yde6mv7T4IaGLV+QEtUNFpi1ZrDH29?= =?iso-8859-1?Q?UHYlmk00Ndt9KyA8pVlXHEyo7eZlyY5f7j/Y+Xov8QtMC/WSb71gis9ZKE?= =?iso-8859-1?Q?awnar640mGEhl/PBXDLMoao1BaWnEzZBhO18M5qaeaqc0Pgh+TpWmrU3So?= =?iso-8859-1?Q?+eBvFUpF8p+4iqOgYwOD4OLvVhDiakNh7pYdVuIca7fGWP2zzaVtOi2EF9?= =?iso-8859-1?Q?wkCc6+bWuTMsVIMgxJrFVM7QolpO8yAHqFrW+KvnBO6SoFOp1Ulri0pTvs?= =?iso-8859-1?Q?1rZ05/zXicchECPNYQWkC2dQWW5L32ZkMEnbhKopkwfau6y9B4rZp8DPry?= =?iso-8859-1?Q?heePcjjbvkgd7oMbpoS84jXfQydr8Y+819vksKRM+uoNLDeVxzqlbWYhyS?= =?iso-8859-1?Q?kGUsQRBj4A=3D=3D?= Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: aspeedtech.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYPPR06MB8206.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: af22d2b0-9229-4b54-dbe1-08de7371c6a0 X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2026 06:56:01.5190 (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: YknuhLGFlJ4KbIxjYlhMEGh4VRvRdBmhe4+LPLyeCU2d68wvwLNCU5pphxLG/3e68eZplwISCwaY3zlp6zIJQ1I7m+xLoPoBMYme1Mie1t4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR06MB6109 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=2a01:111:f403:c405::5; envelope-from=jamin_lin@aspeedtech.com; helo=TYPPR03CU001.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, SPF_HELO_PASS=-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: 1771916391167158500 Content-Type: text/plain; charset="utf-8" This commit adds two MemoryRegion aliases to support PSP access to SSP SDRAM through shared memory remapping, as defined by the default SCU configuration. The SSP exposes two DRAM aliases: - remap1 maps PSP DRAM at 0x400000000 (32MB) to SSP SDRAM offset 0x2000000 - remap2 maps PSP DRAM at 0x42c000000 (32MB) to SSP SDRAM offset 0x0 These regions correspond to the default SCU register values, which control the mapping between PSP and coprocessor memory windows. Set SSP CPUID 4 and bumps the SCU VMState version to 3. Signed-off-by: Jamin Lin --- include/hw/misc/aspeed_scu.h | 5 +++++ hw/arm/aspeed_ast27x0-fc.c | 2 ++ hw/arm/aspeed_ast27x0-ssp.c | 6 ++++++ hw/arm/aspeed_ast27x0.c | 4 ++++ hw/misc/aspeed_scu.c | 42 ++++++++++++++++++++++++++++++++++-- 5 files changed, 57 insertions(+), 2 deletions(-) diff --git a/include/hw/misc/aspeed_scu.h b/include/hw/misc/aspeed_scu.h index d003955428..9c29ca217d 100644 --- a/include/hw/misc/aspeed_scu.h +++ b/include/hw/misc/aspeed_scu.h @@ -39,6 +39,10 @@ struct AspeedSCUState { uint32_t hw_strap1; uint32_t hw_strap2; uint32_t hw_prot_key; + + MemoryRegion dram_remap_alias[3]; + MemoryRegion *dram; + int ssp_cpuid; }; =20 #define AST2400_A1_SILICON_REV 0x02010303U @@ -64,6 +68,7 @@ struct AspeedSCUClass { uint32_t nr_regs; bool clkin_25Mhz; const MemoryRegionOps *ops; + void (*dram_remap)(AspeedSCUState *s, Error **errp); }; =20 #define ASPEED_SCU_PROT_KEY 0x1688A8A8 diff --git a/hw/arm/aspeed_ast27x0-fc.c b/hw/arm/aspeed_ast27x0-fc.c index 5eb6680da9..77ce312591 100644 --- a/hw/arm/aspeed_ast27x0-fc.c +++ b/hw/arm/aspeed_ast27x0-fc.c @@ -100,6 +100,8 @@ static bool ast2700fc_ca35_init(MachineState *machine, = Error **errp) sc->uarts_num, serial_hd(1)); aspeed_soc_uart_set_chr(soc->uart, ASPEED_DEV_UART7, sc->uarts_base, sc->uarts_num, serial_hd(2)); + object_property_set_int(OBJECT(&s->ca35), "ssp-cpuid", 4, + &error_abort); if (!qdev_realize(DEVICE(&s->ca35), NULL, errp)) { return false; } diff --git a/hw/arm/aspeed_ast27x0-ssp.c b/hw/arm/aspeed_ast27x0-ssp.c index 437fff3311..4a9c8c1406 100644 --- a/hw/arm/aspeed_ast27x0-ssp.c +++ b/hw/arm/aspeed_ast27x0-ssp.c @@ -198,6 +198,12 @@ static void aspeed_soc_ast27x0ssp_realize(DeviceState = *dev_soc, Error **errp) memory_region_add_subregion(s->memory, sc->memmap[ASPEED_DEV_SCU], &s->scu_alias); =20 + /* SDRAM remap alias used by PSP to access SSP SDRAM */ + memory_region_add_subregion(&s->sdram, 0, &s->scu->dram_remap_alias[1]= ); + memory_region_add_subregion(&s->sdram, + memory_region_size(&s->scu->dram_remap_alias[1]), + &s->scu->dram_remap_alias[0]); + /* INTC */ if (!sysbus_realize(SYS_BUS_DEVICE(&a->intc[0]), errp)) { return; diff --git a/hw/arm/aspeed_ast27x0.c b/hw/arm/aspeed_ast27x0.c index 87dcb82e1b..b914c01825 100644 --- a/hw/arm/aspeed_ast27x0.c +++ b/hw/arm/aspeed_ast27x0.c @@ -432,6 +432,8 @@ static void aspeed_soc_ast2700_init(Object *obj) "hw-strap1"); object_property_add_alias(obj, "hw-prot-key", OBJECT(&s->scu), "hw-prot-key"); + object_property_add_alias(obj, "ssp-cpuid", OBJECT(&s->scu), + "ssp-cpuid"); =20 object_initialize_child(obj, "scuio", &s->scuio, TYPE_ASPEED_2700_SCUI= O); qdev_prop_set_uint32(DEVICE(&s->scuio), "silicon-rev", @@ -794,6 +796,8 @@ static void aspeed_soc_ast2700_realize(DeviceState *dev= , Error **errp) sc->memmap[ASPEED_DEV_VBOOTROM], &s->vboot= rom); =20 /* SCU */ + object_property_set_link(OBJECT(&s->scu), "dram", OBJECT(s->dram_mr), + &error_abort); if (!sysbus_realize(SYS_BUS_DEVICE(&s->scu), errp)) { return; } diff --git a/hw/misc/aspeed_scu.c b/hw/misc/aspeed_scu.c index e4160356e4..84fe88e58b 100644 --- a/hw/misc/aspeed_scu.c +++ b/hw/misc/aspeed_scu.c @@ -20,6 +20,7 @@ #include "qemu/guest-random.h" #include "qemu/module.h" #include "trace.h" +#include "qemu/units.h" =20 #define TO_REG(offset) ((offset) >> 2) =20 @@ -593,12 +594,16 @@ static void aspeed_scu_realize(DeviceState *dev, Erro= r **errp) TYPE_ASPEED_SCU, SCU_IO_REGION_SIZE); =20 sysbus_init_mmio(sbd, &s->iomem); + + if (asc->dram_remap) { + asc->dram_remap(s, errp); + } } =20 static const VMStateDescription vmstate_aspeed_scu =3D { .name =3D "aspeed.scu", - .version_id =3D 2, - .minimum_version_id =3D 2, + .version_id =3D 3, + .minimum_version_id =3D 3, .fields =3D (const VMStateField[]) { VMSTATE_UINT32_ARRAY(regs, AspeedSCUState, ASPEED_AST2600_SCU_NR_R= EGS), VMSTATE_END_OF_LIST() @@ -610,6 +615,9 @@ static const Property aspeed_scu_properties[] =3D { DEFINE_PROP_UINT32("hw-strap1", AspeedSCUState, hw_strap1, 0), DEFINE_PROP_UINT32("hw-strap2", AspeedSCUState, hw_strap2, 0), DEFINE_PROP_UINT32("hw-prot-key", AspeedSCUState, hw_prot_key, 0), + DEFINE_PROP_INT32("ssp-cpuid", AspeedSCUState, ssp_cpuid, -1), + DEFINE_PROP_LINK("dram", AspeedSCUState, dram, TYPE_MEMORY_REGION, + MemoryRegion *), }; =20 static void aspeed_scu_class_init(ObjectClass *klass, const void *data) @@ -863,6 +871,35 @@ static const TypeInfo aspeed_2600_scu_info =3D { .class_init =3D aspeed_2600_scu_class_init, }; =20 +static void aspeed_2700_scu_dram_remap_alias_init(AspeedSCUState *s, + Error **errp) +{ + if (s->ssp_cpuid > 0) { + if (!s->dram) { + error_setg(errp, TYPE_ASPEED_2700_SCU ": 'dram' link not set"); + return; + } + } + + if (s->ssp_cpuid > 0) { + /* + * The SSP coprocessor uses two memory aliases (remap1 and remap2) + * to access shared memory regions in the PSP DRAM: + * + * - remap1 maps PSP DRAM at 0x400000000 (size: 32MB) to SSP SDRAM + * offset 0x2000000 + * - remap2 maps PSP DRAM at 0x42c000000 (size: 32MB) to SSP SDRAM + * offset 0x0 + */ + memory_region_init_alias(&s->dram_remap_alias[0], OBJECT(s), + "ssp.dram.remap1", s->dram, + 0, 32 * MiB); + memory_region_init_alias(&s->dram_remap_alias[1], OBJECT(s), + "ssp.dram.remap2", s->dram, + 0x2c000000, 32 * MiB); + } +} + static uint64_t aspeed_ast2700_scu_read(void *opaque, hwaddr offset, unsigned size) { @@ -973,6 +1010,7 @@ static void aspeed_2700_scu_class_init(ObjectClass *kl= ass, const void *data) asc->nr_regs =3D ASPEED_AST2700_SCU_NR_REGS; asc->clkin_25Mhz =3D true; asc->ops =3D &aspeed_ast2700_scu_ops; + asc->dram_remap =3D aspeed_2700_scu_dram_remap_alias_init; } =20 static uint64_t aspeed_ast2700_scuio_read(void *opaque, hwaddr offset, --=20 2.43.0