From nobody Sat May 30 18:35:05 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; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1779213003; cv=none; d=zohomail.com; s=zohoarc; b=dF3+Cqk2Bg65rJGOxubbCcn9uC/qsWg49xIWIIGUVMNX2inCrk2tXirt0guWb+firEsbZZJpJafoEAOJ5wumU5tGjCoXrCClDp5TfCarrEhSbqOXIAWJ0mKDubjXpCiG7RgLvembuxtC5kFBuq7+zOjUaeElkeCBQyxckYLmjk8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779213003; 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=a9auS0agNGpEVN2f018I0hCwEtLQPozZwovzvL21kwo=; b=csh71tLhyY+Uk6ZYvNAEwHlGQ0ogkKP2kw2PzOID/sPpo1AMIn5KVKpoZKdqZK/TEZUY0+0oveTfzGYYnusZOH4VUWVYFMx0gE4BzgrlDnY21TwVCteiMQ06VngoY0P7ICCtHin5zwdzjzCwsP6sfki+YAADaAtlV6zBjybK784= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779213003190830.153325668215; Tue, 19 May 2026 10:50:03 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPOYy-0004nQ-KG; Tue, 19 May 2026 13:49:04 -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 1wPOYn-0004gG-LA for qemu-devel@nongnu.org; Tue, 19 May 2026 13:48:55 -0400 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPOYj-0008N4-WE for qemu-devel@nongnu.org; Tue, 19 May 2026 13:48:51 -0400 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-44509921fbcso2433766f8f.3 for ; Tue, 19 May 2026 10:48:49 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:1::]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45d9adc2209sm43965414f8f.0.2026.05.19.10.48.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2026 10:48:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779212928; x=1779817728; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=a9auS0agNGpEVN2f018I0hCwEtLQPozZwovzvL21kwo=; b=qb/MKKe+5hlbobvrV83JEDXLfndIl7b+G5wHN7t9QNMzxB8ZBWQG2vNox7VjRBfSYt 42dR3GO4jRvibS2MVgiPjw/J9/Ks8nM4kN2qCT7Md/bznkki8h4vmB007aacvL3jx+hK 5kIVr2iFrKnCpb/NAnJPjVUc1F0+ZnazC9f9i/qjIx8kXn2QrcJ+e1udTQqIZd6ovmPK q7Xn/EQYi7msVJMUpiALhCgIakZYvD+Ypa52f9jRKSMjTuKgVhdSCg6DIOSsVG4x3DJe Wmukky6mzUBZHEm0OZyM7tGI6wqoGglLyDR1exw4S63xfYMqVyjF6arGz14Oi5F1pd9g iTew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779212928; x=1779817728; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=a9auS0agNGpEVN2f018I0hCwEtLQPozZwovzvL21kwo=; b=p0b2FvCkTFJfC3Ox1hRGuVpQXzNON2sOZlUqm35ugwJ0MeC8Zkpi2KjJ2/IhmjVgjJ o+3Y7IU4SnWMyiajfTdx8EoEEtxJjJciKsmw4RexdzDMoSHc89GhDmMF9+2xAd1JxGfi 0kZ8+7OD1QWlsolQhMZocaCwr3ngGjkvNu/J3XkeYd8Un1JnNIW6qKHufqFHjMTMY8yi dsH0x8jtrVJj+N9tHK+6Gz5UBtxph8o5mv8h2ORge/rkRyD0JfD/LANWLnKyGYa6VuNJ wz/EOkPLHrEOTB3Ff7KKVuVxGZpQU5hfevxtSCgggrwqxW/o4HHmoYeXG2jIldQjCX3G h1vg== X-Gm-Message-State: AOJu0YyNoqxndE4DAp1F/aQVYtpGV5SPORn1gDL029QvoD3PIwe87r/t ZifbOJkXvqepzv/wmXbUmBOTmrFmbd94aH56FqGV8kZmCjFI5lTsR9PM X-Gm-Gg: Acq92OHjfEBtinZaMIKSm0YBpfPsgaM2kEbD2ArfDxv2RKP0gsqotgMRMdMsthUZinU 42+icOltdSwH4tHei/t0nXjgToiwSFiKb/lYxx7p3FGtv8kan4Shdxndvt7IzaO2JeA+50GeBqT oKFyDK8LC74TBXaVSTAFMpPZ1W6Ey5c6qq+Td7jQxEOzeNlpQuEhDJc8HotdSllz0Ub8jxcPgOw cKdtkwQom0taHfGo7ftnXyCxEm/GZAV5exZJkOCifVrpjx/zjwaVOQ+a+5W6pZqkzXmIKczXgPC +NQAFXKuh/dVB7VntYynP7HNKYNoLd7fESXs+phGlIqwj/K9ppv+6GhZ7QKFMjeoMUQ/xxH2Yhb GLiHJ6Dmp8bnlJaIrlOg7CaAD74RyoEQpU1D0/Q2H+Hxrmwuj9iS5YOiPiLODi1GaYwElubDBOs Tryey7JX5Vk5LW6pe1Ij7oTBNa8sh4swRx X-Received: by 2002:a05:6000:2584:b0:43d:7783:c684 with SMTP id ffacd0b85a97d-45e5c5e6d3dmr33720709f8f.43.1779212927926; Tue, 19 May 2026 10:48:47 -0700 (PDT) From: William de Abreu Pinho Date: Tue, 19 May 2026 10:48:38 -0700 Subject: [PATCH v3 1/3] tests/functional/aspeed: introduce FacebookAspeedTest MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260519-add-anacapa-machine-v3-1-56c23993a20a@gmail.com> References: <20260519-add-anacapa-machine-v3-0-56c23993a20a@gmail.com> In-Reply-To: <20260519-add-anacapa-machine-v3-0-56c23993a20a@gmail.com> To: qemu-devel@nongnu.org Cc: =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Maydell , Steven Lee , Troy Lee , Jamin Lin , Kane Chen , Andrew Jeffery , Joel Stanley , qemu-arm@nongnu.org, Pierrick Bouvier , William de Abreu Pinho , =?utf-8?q?C=C3=A9dric_Le_Goater?= X-Mailer: b4 0.13.0 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=2a00:1450:4864:20::436; envelope-from=williamdapinho@gmail.com; helo=mail-wr1-x436.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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 @gmail.com) X-ZM-MESSAGEID: 1779213003792158500 Facebook OpenBMC Images include an early script [1] that lowers the console log level to warning. This suppresses the "Hostname set to" message from the serial console. Introduce FacebookAspeedTest (a subclass of AspeedTest), that waits for login prompt instead. Update bletchley-bmc and catalina-bmc to use the new class. This is also used by the anacapa-bmc machine introduced in the following patch. [1]: https://github.com/openbmc/openbmc/blob/6a56a45931fb7015a3fc1855341590= 9105b484d6/meta-facebook/recipes-phosphor/initrdscripts/phosphor-static-nor= ootfs-init/999-reduce-printk Signed-off-by: William de Abreu Pinho Reviewed-by: C=C3=A9dric Le Goater --- tests/functional/arm/test_aspeed_bletchley.py | 6 +++--- tests/functional/arm/test_aspeed_catalina.py | 6 +++--- tests/functional/aspeed.py | 8 ++++++++ 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/tests/functional/arm/test_aspeed_bletchley.py b/tests/function= al/arm/test_aspeed_bletchley.py index 5a60b24b3d..3000d0c302 100755 --- a/tests/functional/arm/test_aspeed_bletchley.py +++ b/tests/functional/arm/test_aspeed_bletchley.py @@ -5,10 +5,10 @@ # SPDX-License-Identifier: GPL-2.0-or-later =20 from qemu_test import Asset -from aspeed import AspeedTest +from aspeed import FacebookAspeedTest =20 =20 -class BletchleyMachine(AspeedTest): +class BletchleyMachine(FacebookAspeedTest): =20 ASSET_BLETCHLEY_FLASH =3D Asset( 'https://github.com/legoater/qemu-aspeed-boot/raw/master/images/bl= etchley-bmc/openbmc-20250128071329/obmc-phosphor-image-bletchley-2025012807= 1329.static.mtd.xz', @@ -22,4 +22,4 @@ def test_arm_ast2600_bletchley_openbmc(self): soc=3D'AST2600 rev A3') =20 if __name__ =3D=3D '__main__': - AspeedTest.main() + FacebookAspeedTest.main() diff --git a/tests/functional/arm/test_aspeed_catalina.py b/tests/functiona= l/arm/test_aspeed_catalina.py index dc2f24e7b4..2694e4b005 100755 --- a/tests/functional/arm/test_aspeed_catalina.py +++ b/tests/functional/arm/test_aspeed_catalina.py @@ -5,10 +5,10 @@ # SPDX-License-Identifier: GPL-2.0-or-later =20 from qemu_test import Asset -from aspeed import AspeedTest +from aspeed import FacebookAspeedTest =20 =20 -class CatalinaMachine(AspeedTest): +class CatalinaMachine(FacebookAspeedTest): =20 ASSET_CATALINA_FLASH =3D Asset( 'https://github.com/legoater/qemu-aspeed-boot/raw/a866feb5ef81245b= 4827a214584bf6bcc72939f6/images/catalina-bmc/obmc-phosphor-image-catalina-2= 0250619123021.static.mtd.xz', @@ -22,4 +22,4 @@ def test_arm_ast2600_catalina_openbmc(self): soc=3D'AST2600 rev A3') =20 if __name__ =3D=3D '__main__': - AspeedTest.main() + FacebookAspeedTest.main() diff --git a/tests/functional/aspeed.py b/tests/functional/aspeed.py index 47e84e035b..88b6590934 100644 --- a/tests/functional/aspeed.py +++ b/tests/functional/aspeed.py @@ -28,6 +28,9 @@ def do_test_arm_aspeed_openbmc(self, machine, image, uboo= t=3D'2019.04', self.wait_for_console_pattern(f'Booting Linux on physical CPU {cpu= _id}') self.wait_for_console_pattern(f'ASPEED {soc}') self.wait_for_console_pattern('/init as init process') + self.wait_for_boot_complete(hostname) + + def wait_for_boot_complete(self, hostname): self.wait_for_console_pattern(f'systemd[1]: Hostname set to <{host= name}>.') =20 def do_test_arm_aspeed_buildroot_start(self, image, cpu_id, pattern=3D= 'Aspeed EVB'): @@ -69,3 +72,8 @@ def generate_otpmem_image(self): f.write(pattern) return path =20 + +class FacebookAspeedTest(AspeedTest): + + def wait_for_boot_complete(self, hostname): + self.wait_for_console_pattern(f'{hostname} login:') --=20 2.53.0-Meta From nobody Sat May 30 18:35:05 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; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1779212997; cv=none; d=zohomail.com; s=zohoarc; b=H1sZ51y6kKKMZoGtVeNkFeM5KCHr/XJz+EyAj+cYuoHSU3xLtmxBfuusUdwCrUkwoaGFOm5hWgnHHbEJil0uxDiwbxGFsRnHWfB7UoX9I+Xmo7jsmMknBhZKcruyxFsS+W/GAohO3Qb+8qQ6lkJRU1YLGAd0L0175N9rhIEJgIo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779212997; 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=F6hGIaKJO4UufxfWcbav9/FJnDZWCpBiGK2a4Bgnl+8=; b=fPKMPcKXyWWGVz8GavcXZOSQ3cfJkfzssebO10NQypurPGAGDQgZXn+/PCCVEgfn2T6Z3/sZUCI0QI+EsTowwhWCxhEF49JaaOf+A4zOBePYbxVbCpdJ/lSDQ/aXhPtMgEkUNjbN8UIZIXPu1Bh5Wi2V93QP6l5LLaR1N6NfFMM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779212997789424.03980152300414; Tue, 19 May 2026 10:49:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPOYy-0004nR-Jw; Tue, 19 May 2026 13:49:04 -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 1wPOYp-0004gU-KG for qemu-devel@nongnu.org; Tue, 19 May 2026 13:48:57 -0400 Received: from mail-wr1-x432.google.com ([2a00:1450:4864:20::432]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPOYl-0008NI-Aj for qemu-devel@nongnu.org; Tue, 19 May 2026 13:48:55 -0400 Received: by mail-wr1-x432.google.com with SMTP id ffacd0b85a97d-45d96d21e82so2297444f8f.0 for ; Tue, 19 May 2026 10:48:50 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:8::]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-45da0fe0f72sm50268908f8f.25.2026.05.19.10.48.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2026 10:48:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779212930; x=1779817730; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=F6hGIaKJO4UufxfWcbav9/FJnDZWCpBiGK2a4Bgnl+8=; b=Ch5NTAjsR1lH5IWzorsV/U/VTEUu9p6hpuNTHhYRKiKDiDtQ/aox8pcKUgtRp33oI+ bWcmoHvZ9MzVHtBd/A6mqrbXDEb3hfUfFi7FH8Dh4Km7v1UTbvGJ2kY9Yk2vI0aes7rx 9hqde6kshX1W0X4kKsrZO9yWbcdjtIjcF1CK9NZL5KHlJqo80vsKYF2vK/rX7m3XIGZg 0ubhNdr3iSM6Qi5CwDwDf3a3YRdMFhLBZ90kS5n3gJPCtGrfZ5ex/skSGxBvPNByN45I GiNKB7JdehhkE6TVDyBXrYVe4SmrZtvKbcCXF3eUWSk/0ILJ7AKMIVDdmq1Tln5oXVgn cahg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779212930; x=1779817730; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=F6hGIaKJO4UufxfWcbav9/FJnDZWCpBiGK2a4Bgnl+8=; b=IH5G4kYZ+TSbvS3RE15p3sWuuYV1vT4xbhMeMs2YICUAKL1SuIAnzSTnBcTJs7G/vL VlXI5PsBlbmlA3/2y1ek477NMnggKmQAfkYGf4FdvjsddEHVFVorB3yyRMZA2LRO9eaD SZzVqngiSanTmKGFbilpKsAPlhVjS1iR1Kw4BSlxCwSjfmdKqQecpzw0cLcxWvBL0S7l PlZEPMEcVhanl+oolH/7dIW9x4MYWxSNbJ8DvEmXkdZH8X4ZLEy7PbmxM65DxlbwbbQP 5TFsm1Z7oMO0AAN8dcrr4Daog7YzpdHmBOZAYjA6pnuyEPF7j/kSRBSz5UrsgTukPGV6 Ss+g== X-Gm-Message-State: AOJu0Yw9LNMrwRrs9oSBZum6Bikqn2f4ZZe4sCMHw15RE2GqA/EmwBo8 Q9SB7bIogq/L5jo4xH4lTUGefgOsVWm5u4GfPdxD/D9Mt1Qal99o9jO+ X-Gm-Gg: Acq92OHzmsbXEVBDO2xCD0arfUnwL1hhMEJGNlTMZj1mUoNyFNbosrM0Ck5Hrksxl+2 70RB2Cill7TakUK0H468/THUObUrbqlRRkaPKPiIg4tmcz0pbIHU6Rlf4KCGhxqfYodL/eQPpt4 NcuFYVUPO3wwUU/iE89CxkzXvnEHNINLsLw5W08XSKDdW6KFFKz6XmDGMp1littYl6q0XASc74b MwHwdGxkJ8iAbWJV31FgnhDrEBh+bEFnsqG+lbreel/Fdvstfv+JRfwjLH0DrbqVwCwBnY9agHY 9dmaXFMc8XQFpgYOx/4WdSv0nkHC1SYrzPp1FXehOiOjW2bEfL0Zdva8qbnrNcZ5d7s6kZQA7we ELmuBjj9BD005FD1e1s8fQpKvWC4y3LtyK9ISUbj1svSDy2IxiB8SOdsuMvI1Wt6ioO9tqTgOIT q5JAqjgmqrizJR9ZZ97ATuJhvlOxN7uTBA X-Received: by 2002:a05:6000:400f:b0:43d:c95c:4259 with SMTP id ffacd0b85a97d-45e5c5dd488mr32204222f8f.30.1779212929292; Tue, 19 May 2026 10:48:49 -0700 (PDT) From: William de Abreu Pinho Date: Tue, 19 May 2026 10:48:39 -0700 Subject: [PATCH v3 2/3] hw/arm/aspeed: add anacapa-bmc machine MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260519-add-anacapa-machine-v3-2-56c23993a20a@gmail.com> References: <20260519-add-anacapa-machine-v3-0-56c23993a20a@gmail.com> In-Reply-To: <20260519-add-anacapa-machine-v3-0-56c23993a20a@gmail.com> To: qemu-devel@nongnu.org Cc: =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Maydell , Steven Lee , Troy Lee , Jamin Lin , Kane Chen , Andrew Jeffery , Joel Stanley , qemu-arm@nongnu.org, Pierrick Bouvier , William de Abreu Pinho , =?utf-8?q?C=C3=A9dric_Le_Goater?= X-Mailer: b4 0.13.0 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=2a00:1450:4864:20::432; envelope-from=williamdapinho@gmail.com; helo=mail-wr1-x432.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 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 @gmail.com) X-ZM-MESSAGEID: 1779212999818158500 Add the Facebook Anacapa BMC machine. The I2C topology is based on the Linux kernel device tree [1]. Hardware strap register values are taken from real hardware. A functional test is included using the OpenBMC image built from [2], similar to the tests for bletchley-bmc and catalina-bmc. [1]: https://github.com/torvalds/linux/blob/76b4ec8efdc3887cdbf730da2e55881= fc1a18770/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-anacapa.dts [2]: https://github.com/openbmc/openbmc/commit/8e22df918eaaa5d83143471d24ef= 0eeb1c1e3c7c Signed-off-by: William de Abreu Pinho Reviewed-by: C=C3=A9dric Le Goater --- docs/system/arm/aspeed.rst | 3 +- hw/arm/aspeed_ast2600_anacapa.c | 153 ++++++++++++++++++++++++= ++++ hw/arm/meson.build | 1 + tests/functional/arm/meson.build | 2 + tests/functional/arm/test_aspeed_anacapa.py | 25 +++++ 5 files changed, 183 insertions(+), 1 deletion(-) diff --git a/docs/system/arm/aspeed.rst b/docs/system/arm/aspeed.rst index d0054a7dbb..5a928b7efb 100644 --- a/docs/system/arm/aspeed.rst +++ b/docs/system/arm/aspeed.rst @@ -1,4 +1,4 @@ -Aspeed family boards (``ast2500-evb``, ``ast2600-evb``, ``bletchley-bmc``,= ``fuji-bmc``, ``gb200nvl-bmc``, ``fby35-bmc``, ``fp5280g2-bmc``, ``g220a-b= mc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-firework-bmc``, ``qu= anta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonorapass-bmc``, ``su= permicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-bmc``, ``witherspo= on-bmc``, ``yosemitev2-bmc``) +Aspeed family boards (``anacapa-bmc``, ``ast2500-evb``, ``ast2600-evb``, `= `bletchley-bmc``, ``fuji-bmc``, ``gb200nvl-bmc``, ``fby35-bmc``, ``fp5280g2= -bmc``, ``g220a-bmc``, ``palmetto-bmc``, ``qcom-dc-scm-v1-bmc``, ``qcom-fir= ework-bmc``, ``quanta-q71l-bmc``, ``rainier-bmc``, ``romulus-bmc``, ``sonor= apass-bmc``, ``supermicrox11-bmc``, ``supermicrox11spi-bmc``, ``tiogapass-b= mc``, ``witherspoon-bmc``, ``yosemitev2-bmc``) =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D =20 The QEMU Aspeed machines model BMCs of various OpenPOWER systems and @@ -35,6 +35,7 @@ AST2600 SoC based machines : - ``fuji-bmc`` Facebook Fuji BMC - ``bletchley-bmc`` Facebook Bletchley BMC - ``fby35-bmc`` Facebook fby35 BMC +- ``anacapa-bmc`` Facebook Anacapa BMC - ``gb200nvl-bmc`` Nvidia GB200nvl BMC - ``qcom-dc-scm-v1-bmc`` Qualcomm DC-SCM V1 BMC - ``qcom-firework-bmc`` Qualcomm Firework BMC diff --git a/hw/arm/aspeed_ast2600_anacapa.c b/hw/arm/aspeed_ast2600_anacap= a.c new file mode 100644 index 0000000000..c24f00d44c --- /dev/null +++ b/hw/arm/aspeed_ast2600_anacapa.c @@ -0,0 +1,153 @@ +/* + * Facebook Anacapa + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qapi/error.h" +#include "hw/arm/machines-qom.h" +#include "hw/arm/aspeed.h" +#include "hw/arm/aspeed_soc.h" +#include "hw/i2c/i2c_mux_pca954x.h" +#include "hw/gpio/pca9552.h" +#include "hw/nvram/eeprom_at24c.h" + +/* Anacapa hardware value */ +#define ANACAPA_BMC_HW_STRAP1 0x00002002 +#define ANACAPA_BMC_HW_STRAP2 0x00000000 +#define ANACAPA_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) + +static void anacapa_bmc_i2c_init(AspeedMachineState *bmc) +{ + /* Reference: aspeed-bmc-facebook-anacapa.dts */ + + AspeedSoCState *soc =3D bmc->soc; + I2CBus *i2c[16] =3D {}; + I2CSlave *i2c_mux; + + for (int i =3D 0; i < ARRAY_SIZE(i2c); i++) { + i2c[i] =3D aspeed_i2c_get_bus(&soc->i2c, i); + } + + /* &i2c0 */ + /* eeprom@50 */ + at24c_eeprom_init(i2c[0], 0x50, 256 * KiB); + /* i2c-mux@70 */ + i2c_slave_create_simple(i2c[0], TYPE_PCA9546, 0x70); + + /* &i2c1 */ + /* eeprom@50 */ + at24c_eeprom_init(i2c[1], 0x50, 256 * KiB); + /* i2c-mux@70 (PCA9546) =E2=80=94 4 channels, empty */ + i2c_slave_create_simple(i2c[1], TYPE_PCA9546, 0x70); + + /* &i2c4 */ + /* i2c-mux@70 (PCA9548) */ + i2c_slave_create_simple(i2c[4], TYPE_PCA9548, 0x70); + + /* &i2c6 */ + /* eeprom@50 */ + at24c_eeprom_init(i2c[6], 0x50, 32 * KiB); + + /* &i2c8 */ + /* i2c-mux@72 (PCA9546) */ + i2c_mux =3D i2c_slave_create_simple(i2c[8], TYPE_PCA9546, 0x72); + + /* i2c8mux ch0 */ + /* adc128d818@1f =E2=80=94 no model */ + /* pca9555@22 */ + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 0), + TYPE_PCA9552, 0x22); + /* pca9555@24 */ + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 0), + TYPE_PCA9552, 0x24); + /* eeprom@50 */ + at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 0), 0x50, 16 * KiB); + + /* i2c8mux ch1 */ + /* pca9555@22 */ + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 1), + TYPE_PCA9552, 0x22); + /* pca9555@24 */ + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 1), + TYPE_PCA9552, 0x24); + /* eeprom@50 */ + at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 1), 0x50, 16 * KiB); + + /* &i2c9 */ + /* eeprom@50 */ + at24c_eeprom_init(i2c[9], 0x50, 16 * KiB); + /* eeprom@56 */ + at24c_eeprom_init(i2c[9], 0x56, 8 * KiB); + + /* &i2c10 */ + /* i2c-mux@71 (PCA9548) */ + i2c_mux =3D i2c_slave_create_simple(i2c[10], TYPE_PCA9548, 0x71); + + /* i2c10mux ch5 */ + /* pca9555@22*/ + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 5), + TYPE_PCA9552, 0x22); + /* eeprom@52 */ + at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 5), 0x52, 32 * KiB); + + /* &i2c11 */ + /* i2c-mux@71 (PCA9548) */ + i2c_mux =3D i2c_slave_create_simple(i2c[11], TYPE_PCA9548, 0x71); + + /* i2c11mux ch0-ch4 =E2=80=94 empty */ + + /* i2c11mux ch5 */ + /* pca9555@22 */ + i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 5), + TYPE_PCA9552, 0x22); + /* eeprom@52 */ + at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 5), 0x52, 32 * KiB); + + /* &i2c13 */ + /* i2c-mux@70 (PCA9548) */ + i2c_mux =3D i2c_slave_create_simple(i2c[13], TYPE_PCA9548, 0x70); + + /* i2c13mux ch3 */ + /* adc128d818@1f - no model */ + + /* i2c13mux ch4 */ + /* eeprom@51 */ + at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 4), 0x51, 32 * KiB); + + /* i2c13mux ch7 */ + /* nfc@28 =E2=80=94 no model */ +} + +static void aspeed_machine_anacapa_class_init(ObjectClass *oc, + const void *data) +{ + MachineClass *mc =3D MACHINE_CLASS(oc); + AspeedMachineClass *amc =3D ASPEED_MACHINE_CLASS(oc); + + mc->desc =3D "Facebook Anacapa BMC (Cortex-A7)"; + amc->soc_name =3D "ast2600-a3"; + amc->hw_strap1 =3D ANACAPA_BMC_HW_STRAP1; + amc->hw_strap2 =3D ANACAPA_BMC_HW_STRAP2; + amc->fmc_model =3D "mx66l1g45g"; + amc->spi_model =3D NULL; + amc->num_cs =3D 2; + amc->macs_mask =3D ASPEED_MAC2_ON; + amc->i2c_init =3D anacapa_bmc_i2c_init; + mc->default_ram_size =3D ANACAPA_BMC_RAM_SIZE; + aspeed_machine_class_init_cpus_defaults(mc); +} + +static const TypeInfo aspeed_ast2600_anacapa_types[] =3D { + { + .name =3D MACHINE_TYPE_NAME("anacapa-bmc"), + .parent =3D TYPE_ASPEED_MACHINE, + .class_init =3D aspeed_machine_anacapa_class_init, + .interfaces =3D arm_machine_interfaces, + } +}; + +DEFINE_TYPES(aspeed_ast2600_anacapa_types) diff --git a/hw/arm/meson.build b/hw/arm/meson.build index 84b8ec5fb5..3de3dca8a9 100644 --- a/hw/arm/meson.build +++ b/hw/arm/meson.build @@ -56,6 +56,7 @@ arm_ss.add(when: 'CONFIG_ASPEED_SOC', if_true: files( 'aspeed_ast2500_witherspoon.c', 'aspeed_ast2500_yosemitev2.c', 'aspeed_ast2600.c', + 'aspeed_ast2600_anacapa.c', 'aspeed_ast2600_bletchley.c', 'aspeed_ast2600_catalina.c', 'aspeed_ast2600_evb.c', diff --git a/tests/functional/arm/meson.build b/tests/functional/arm/meson.= build index 2f538f29a2..959179a56f 100644 --- a/tests/functional/arm/meson.build +++ b/tests/functional/arm/meson.build @@ -12,6 +12,7 @@ test_arm_timeouts =3D { 'aspeed_ast2600_sdk' : 720, 'aspeed_ast2600_sdk_515' : 720, 'aspeed_ast2600_sdk_otp' : 720, + 'aspeed_anacapa' : 480, 'aspeed_bletchley' : 480, 'aspeed_catalina' : 480, 'aspeed_gb200nvl_bmc' : 480, @@ -45,6 +46,7 @@ tests_arm_system_thorough =3D [ 'aspeed_ast2600_sdk', 'aspeed_ast2600_sdk_515', 'aspeed_ast2600_sdk_otp', + 'aspeed_anacapa', 'aspeed_bletchley', 'aspeed_catalina', 'aspeed_gb200nvl_bmc', diff --git a/tests/functional/arm/test_aspeed_anacapa.py b/tests/functional= /arm/test_aspeed_anacapa.py new file mode 100755 index 0000000000..27f8bd8b56 --- /dev/null +++ b/tests/functional/arm/test_aspeed_anacapa.py @@ -0,0 +1,25 @@ +#!/usr/bin/env python3 +# +# Functional test that boots the ASPEED machines +# +# SPDX-License-Identifier: GPL-2.0-or-later + +from qemu_test import Asset +from aspeed import FacebookAspeedTest + + +class AnacapaMachine(FacebookAspeedTest): + + ASSET_ANACAPA_FLASH =3D Asset( + 'https://github.com/legoater/qemu-aspeed-boot/raw/3fa3212827b04be4= 034d43b5adeef57c27d6ab18/images/anacapa-bmc/openbmc-20260512025228/obmc-pho= sphor-image-anacapa-20260512025228.static.mtd.xz', + '2232e241abcfb6d4f6b82cb6c378ce5ce05e364aac6d118785c2b6cc33fe43f3') + + def test_arm_ast2600_anacapa_openbmc(self): + image_path =3D self.uncompress(self.ASSET_ANACAPA_FLASH) + + self.do_test_arm_aspeed_openbmc('anacapa-bmc', image=3Dimage_path, + uboot=3D'2019.04', cpu_id=3D'0xf00= ', + soc=3D'AST2600 rev A3') + +if __name__ =3D=3D '__main__': + FacebookAspeedTest.main() --=20 2.53.0-Meta From nobody Sat May 30 18:35:05 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; dmarc=pass(p=none dis=none) header.from=gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1779212972; cv=none; d=zohomail.com; s=zohoarc; b=mmBtl2pxF95tH9MBNXODVnf07ZadHNF1ePIC0vFzW5xNte/kfIKdnsxV/HpYPWYrC0ZWp5PomFsMgd9JaeZAcGfIoRn4cM+ShKKAY7ijbVyt9a2FPirMFyycq92nWyvp3lBbM5m91GPCkuRt7z8dJc4Nf0O8S3dfwIYIXSWIrLk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1779212972; 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=8tv8sNGOP2+gDDuYmPlVIIy5gfvrfarZbTKlONa7k1M=; b=hJ3ayY0rDSvCCXqMVN/X13/+ZIxCtxi44bqX++zBs/c9N7OMzCoLibgWzm9nRLJQbTXxfRYuEjwKXXB9Aul/xkaM1VoNDj1Vl9+IgLT4IDvP7nk5ZaLMwoiuz5Fl2Dd6H1U/n2ACvSZH3Yb27CNSQGqUAdVbX8jgXxodhpONKLg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass header.from= (p=none dis=none) Return-Path: Received: from lists1p.gnu.org (lists1p.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1779212972170228.50732559236917; Tue, 19 May 2026 10:49:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists1p.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1wPOZ0-0004oc-Hl; Tue, 19 May 2026 13:49:07 -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 1wPOYq-0004gg-Lu for qemu-devel@nongnu.org; Tue, 19 May 2026 13:48:57 -0400 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1wPOYn-0008NX-Cl for qemu-devel@nongnu.org; Tue, 19 May 2026 13:48:56 -0400 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-488b3f8fa2bso39510735e9.1 for ; Tue, 19 May 2026 10:48:51 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:7::]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48febe6afe7sm107422405e9.24.2026.05.19.10.48.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 19 May 2026 10:48:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779212931; x=1779817731; darn=nongnu.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=8tv8sNGOP2+gDDuYmPlVIIy5gfvrfarZbTKlONa7k1M=; b=H9RfVX5dwOMK6qfM/Cz+GJ7QXybnr8K3CmaUtKuPDH7HJ1n2leFBwo8WyQ6SgiD9Eb oazd6uhuUS4w7dqS07EkKTMLlvKg3maV1z3a4nTShlGXi1aXFpmd+clFDybQRdBfwlxM 1V1m79Z5Z9EFbXfCiIoCe9q+uAfDA/kvcBKJ+oxYJCNGTPgyJ7G5r+nzDldtMC0WDnGJ 61CiQRTfTTgnJ2CR9ub4CtUC1UmKVFVzvGNkPg74IPKILtaIsDdbV2Oy2Rg8nbFfTLyY F2jT25+NCfu+xsk5Rb2Ps2aI14y2e8IpHRd/B4A0SiqVrkz1CdrMuYlgftfFITQnEcI5 d/aQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779212931; x=1779817731; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=8tv8sNGOP2+gDDuYmPlVIIy5gfvrfarZbTKlONa7k1M=; b=p2oNUvi4Pn/7196SHQMn9gVNd2CJ7opJTa1tDJGon7epjojorhIQEmugXXLQy2iElk hkf8e4srZ9xiybjyd3xvM/mMvK2/U/GqJ+RN8vyoZyFBkP4CCeS1Gt45spAVvtcvYoQn cIgniCKINuvXkOduwj5MwgQreOLeHjmkOrPj1J2X6e2nrHM3UtXMPcZJyBOdnEgvjdSV 37GR6j68qPXtIPLOn7dLDHy4k0B3AOV1RK5ChJgGY+AaY1slwnIQn0R7+OnAtGTbv9sD MBIuCFwx9PAFn0IPcciDk+0ka/hqho4MFKedG2b5oCvzlNBY6NSq3PqQRVrx1wYDc2hV bjVQ== X-Gm-Message-State: AOJu0Yyrk7wM9FtVYEEGLPrFtRO9KLsZc4BZXsWCWefkDsNrh1l+ImkP 8xjC+zcLrTQXpKMF0AEIZmrWJRPaF4NUw1ti4yf5BH3oQa3gU4nc5FAb X-Gm-Gg: Acq92OExYCLKDoHoaw8+7rIlE55+NAMU5y7YXVd6wBn4MyrlLAptRaBNy2ZG507H+iZ C2U3HVQDY/4/JOUs662JYOUDku06xKb8pADuiV/9XBxns5IgOL45OO55phS84SC5yrmvpI618Kq 38vr+bMhbtNbmHdAtXqzAoSjqY78UvbTNSxjjroKKu51Z2jh9CSurfFOGwuNViCO1DgeSJdUa+N KymFVR2a5/Pdkw3EKNO4keU9/IdQomb+/jwk1Zsc0+Rsicq/uSwaenN4IwRqveN3Hpa+dXm4DAt Jxbagf5yiN4+ZzvBD3O4La32qWItiCUTA+YuoruKYtCPiohIzDyPd4Yw3aUOGF5mQTaIsgQnFZr XaTQE8ejK4qoAiIsuxaNElO+IixTxl2vh1xrJWHm3RE4UMqsLHFyNajBWyd0yH2myvfbh5EpPc0 4SoatXv/LVky4HGvv+xvGlb/ComVKOC1WX X-Received: by 2002:a05:600c:8485:b0:48a:5339:a46 with SMTP id 5b1f17b1804b1-48fe537fb70mr34065765e9.9.1779212930592; Tue, 19 May 2026 10:48:50 -0700 (PDT) From: William de Abreu Pinho Date: Tue, 19 May 2026 10:48:40 -0700 Subject: [PATCH v3 3/3] hw/arm/aspeed: anacapa: add FRU EEPROM data MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260519-add-anacapa-machine-v3-3-56c23993a20a@gmail.com> References: <20260519-add-anacapa-machine-v3-0-56c23993a20a@gmail.com> In-Reply-To: <20260519-add-anacapa-machine-v3-0-56c23993a20a@gmail.com> To: qemu-devel@nongnu.org Cc: =?utf-8?q?C=C3=A9dric_Le_Goater?= , Peter Maydell , Steven Lee , Troy Lee , Jamin Lin , Kane Chen , Andrew Jeffery , Joel Stanley , qemu-arm@nongnu.org, Pierrick Bouvier , William de Abreu Pinho , =?utf-8?q?C=C3=A9dric_Le_Goater?= X-Mailer: b4 0.13.0 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=2a00:1450:4864:20::332; envelope-from=williamdapinho@gmail.com; helo=mail-wm1-x332.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=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: 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 @gmail.com) X-ZM-MESSAGEID: 1779212973970154102 Use frugen to generate FRU data for the following components: HPM MB, R-PDB, L-PDB, SCM, BSM, R Bridge Board, L Bridge Board, and HPM board ID. Signed-off-by: William de Abreu Pinho Reviewed-by: C=C3=A9dric Le Goater --- hw/arm/aspeed_ast2600_anacapa.c | 225 ++++++++++++++++++++++++++++++++++++= ++-- 1 file changed, 217 insertions(+), 8 deletions(-) diff --git a/hw/arm/aspeed_ast2600_anacapa.c b/hw/arm/aspeed_ast2600_anacap= a.c index c24f00d44c..a1c8111a93 100644 --- a/hw/arm/aspeed_ast2600_anacapa.c +++ b/hw/arm/aspeed_ast2600_anacapa.c @@ -20,6 +20,207 @@ #define ANACAPA_BMC_HW_STRAP2 0x00000000 #define ANACAPA_BMC_RAM_SIZE ASPEED_RAM_SIZE(2 * GiB) =20 +/* + * "Anacapa HPM (MB)" FRU data. Generated with frugen. + * + * { + * "board": { "mfg": "Inventec", "pname": "Anacapa QEMU MB EVT2", + * "pn": "00000000000", "serial": "00000000000000" }, + * "product": { "mfg": "Inventec", "pname": "CI-Anacapa", + * "pn": "10000000001", "ver": "MP", + * "serial": "10000000000000", "atag": "QEMU" } + * } + */ +static const uint8_t hpm_eeprom[] =3D { + 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xf6, 0x01, 0x07, 0x19, 0xb4, + 0xa4, 0xf2, 0xc8, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x63, 0xd4, + 0x41, 0x6e, 0x61, 0x63, 0x61, 0x70, 0x61, 0x20, 0x51, 0x45, 0x4d, 0x55, + 0x20, 0x4d, 0x42, 0x20, 0x45, 0x56, 0x54, 0x32, 0x47, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, + 0xc1, 0x00, 0x00, 0xb8, 0x01, 0x06, 0x19, 0xc8, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x65, 0x63, 0xca, 0x43, 0x49, 0x2d, 0x41, 0x6e, 0x61, 0x63, + 0x61, 0x70, 0x61, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x82, 0x2d, + 0x0c, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x71, 0xd9, + 0xd6, 0xc0, 0xc1, 0x0e +}; +static const size_t hpm_eeprom_len =3D sizeof(hpm_eeprom); + +/* + * "Anacapa R-PDB" FRU data. Generated with frugen. + * + * { + * "board": { "mfg": "Inventec", "pname": "Anacapa QEMU RPDB", + * "pn": "00000000000", "serial": "00000000000000" }, + * "product": { "mfg": "Inventec", "pname": "CI-Anacapa", + * "pn": "10000000001", "ver": "MP", + * "serial": "10000000000000", "atag": "QEMU" } + * } + */ +static const uint8_t rpdb_eeprom[] =3D { + 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xf6, 0x01, 0x07, 0x19, 0x41, + 0x2d, 0xf2, 0xc8, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x63, 0xd1, + 0x41, 0x6e, 0x61, 0x63, 0x61, 0x70, 0x61, 0x20, 0x51, 0x45, 0x4d, 0x55, + 0x20, 0x52, 0x50, 0x44, 0x42, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0xc1, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x4d, 0x01, 0x06, 0x19, 0xc8, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x65, 0x63, 0xca, 0x43, 0x49, 0x2d, 0x41, 0x6e, 0x61, 0x63, + 0x61, 0x70, 0x61, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x82, 0x2d, + 0x0c, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x71, 0xd9, + 0xd6, 0xc0, 0xc1, 0x0e +}; +static const size_t rpdb_eeprom_len =3D sizeof(rpdb_eeprom); + +/* + * "Anacapa L-PDB" FRU data. Generated with frugen. + * + * { + * "board": { "mfg": "Inventec", "pname": "Anacapa QEMU LPDB", + * "pn": "00000000000", "serial": "00000000000000" }, + * "product": { "mfg": "Inventec", "pname": "CI-Anacapa", + * "pn": "10000000001", "ver": "MP", + * "serial": "10000000000000", "atag": "QEMU" } + * } + */ +static const uint8_t lpdb_eeprom[] =3D { + 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xf6, 0x01, 0x07, 0x19, 0x41, + 0x2d, 0xf2, 0xc8, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x63, 0xd1, + 0x41, 0x6e, 0x61, 0x63, 0x61, 0x70, 0x61, 0x20, 0x51, 0x45, 0x4d, 0x55, + 0x20, 0x4c, 0x50, 0x44, 0x42, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0xc1, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x53, 0x01, 0x06, 0x19, 0xc8, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x65, 0x63, 0xca, 0x43, 0x49, 0x2d, 0x41, 0x6e, 0x61, 0x63, + 0x61, 0x70, 0x61, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x82, 0x2d, + 0x0c, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x71, 0xd9, + 0xd6, 0xc0, 0xc1, 0x0e +}; +static const size_t lpdb_eeprom_len =3D sizeof(lpdb_eeprom); + +/* + * "Anacapa SCM" FRU data. Generated with frugen. + * + * { + * "board": { "mfg": "Quanta", "pname": "Anacapa SCM", + * "pn": "00000000000", "serial": "00000000000000" }, + * "product": { "mfg": "Quanta", "pname": "CI-Anacapa", + * "pn": "10000000001", "ver": "MP", + * "serial": "10000000000000", "atag": "QEMU" } + * } + */ +static const uint8_t scm_eeprom[] =3D { + 0x01, 0x00, 0x00, 0x01, 0x07, 0x00, 0x00, 0xf7, 0x01, 0x06, 0x19, 0x41, + 0x2d, 0xf2, 0xc6, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x61, 0xcb, 0x41, 0x6e, + 0x61, 0x63, 0x61, 0x70, 0x61, 0x20, 0x53, 0x43, 0x4d, 0x47, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, + 0xc0, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x01, 0x06, 0x19, 0xc6, + 0x51, 0x75, 0x61, 0x6e, 0x74, 0x61, 0xca, 0x43, 0x49, 0x2d, 0x41, 0x6e, + 0x61, 0x63, 0x61, 0x70, 0x61, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1a, + 0x82, 0x2d, 0x0c, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, + 0x71, 0xd9, 0xd6, 0xc0, 0xc1, 0x00, 0x00, 0xe2 +}; +static const size_t scm_eeprom_len =3D sizeof(scm_eeprom); + +/* + * "Anacapa BMC Storage Module" FRU data. Generated with frugen. + * + * { + * "board": { "mfg": "Quanta", "pname": "Anacapa BMC Storage Module", + * "pn": "00000000000", "serial": "00000000000000" }, + * "product": { "mfg": "Quanta", "pname": "CI-Anacapa", + * "pn": "10000000001", "ver": "MP", + * "serial": "10000000000000", "atag": "QEMU" } + * } + */ +static const uint8_t bsm_eeprom[] =3D { + 0x01, 0x00, 0x00, 0x01, 0x0a, 0x00, 0x00, 0xf4, 0x01, 0x09, 0x00, 0x00, + 0x00, 0x00, 0xc6, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x61, 0xda, 0x41, 0x6e, + 0x61, 0x63, 0x61, 0x70, 0x61, 0x20, 0x42, 0x4d, 0x43, 0x20, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x20, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0xce, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0xcb, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0xc0, 0xc1, 0x00, 0x00, 0x10, 0x01, 0x08, 0x00, 0xc6, + 0x51, 0x75, 0x61, 0x6e, 0x74, 0x61, 0xca, 0x43, 0x49, 0x2d, 0x41, 0x6e, + 0x61, 0x63, 0x61, 0x70, 0x61, 0xcb, 0x31, 0x30, 0x30, 0x30, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x31, 0xc2, 0x4d, 0x50, 0xce, 0x31, 0x30, 0x30, + 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0x30, 0xc4, + 0x51, 0x45, 0x4d, 0x55, 0xc0, 0xc1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, +}; +static const size_t bsm_eeprom_len =3D sizeof(bsm_eeprom); + +/* + * "Anacapa R Bridge Board" FRU data. Generated with frugen. + * + * { + * "board": { "mfg": "Inventec", "pname": "Anacapa QEMU RBB EVT2", + * "pn": "00000000000", "serial": "00000000000000" }, + * "product": { "mfg": "Inventec", "pname": "CI-Anacapa", + * "pn": "10000000001", "ver": "MP", + * "serial": "10000000000000", "atag": "QEMU" } + * } + */ +static const uint8_t rbb_eeprom[] =3D { + 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xf6, 0x01, 0x07, 0x19, 0xb4, + 0xa4, 0xf2, 0xc8, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x63, 0xd5, + 0x41, 0x6e, 0x61, 0x63, 0x61, 0x70, 0x61, 0x20, 0x51, 0x45, 0x4d, 0x55, + 0x20, 0x52, 0x42, 0x42, 0x20, 0x45, 0x56, 0x54, 0x32, 0x47, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, + 0xc0, 0xc1, 0x00, 0x70, 0x01, 0x06, 0x19, 0xc8, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x65, 0x63, 0xca, 0x43, 0x49, 0x2d, 0x41, 0x6e, 0x61, 0x63, + 0x61, 0x70, 0x61, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x82, 0x2d, + 0x0c, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x71, 0xd9, + 0xd6, 0xc0, 0xc1, 0x0e +}; +static const size_t rbb_eeprom_len =3D sizeof(rbb_eeprom); + +/* + * "Anacapa L Bridge Board" FRU data. Generated with frugen. + * + * { + * "board": { "mfg": "Inventec", "pname": "Anacapa QEMU LBB EVT2", + * "pn": "00000000000", "serial": "00000000000000" }, + * "product": { "mfg": "Inventec", "pname": "CI-Anacapa", + * "pn": "10000000001", "ver": "MP", + * "serial": "10000000000000", "atag": "QEMU" } + * } + */ +static const uint8_t lbb_eeprom[] =3D { + 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xf6, 0x01, 0x07, 0x19, 0xb4, + 0xa4, 0xf2, 0xc8, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x63, 0xd5, + 0x41, 0x6e, 0x61, 0x63, 0x61, 0x70, 0x61, 0x20, 0x51, 0x45, 0x4d, 0x55, + 0x20, 0x4c, 0x42, 0x42, 0x20, 0x45, 0x56, 0x54, 0x32, 0x47, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, + 0xc0, 0xc1, 0x00, 0x76, 0x01, 0x06, 0x19, 0xc8, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x65, 0x63, 0xca, 0x43, 0x49, 0x2d, 0x41, 0x6e, 0x61, 0x63, + 0x61, 0x70, 0x61, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x82, 0x2d, + 0x0c, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x71, 0xd9, + 0xd6, 0xc0, 0xc1, 0x0e +}; +static const size_t lbb_eeprom_len =3D sizeof(lbb_eeprom); + +/* + * "Anacapa HPM BRD ID" FRU data. Generated with frugen. + * + * { + * "board": { "mfg": "Inventec", "pname": "Anacapa HPM BRD ID", + * "pn": "00000000000", "serial": "00000000000000" }, + * "product": { "mfg": "Inventec", "pname": "CI-Anacapa", + * "pn": "10000000001", "ver": "MP", + * "serial": "10000000000000", "atag": "QEMU" } + * } + */ +static const uint8_t hpm_brd_id_eeprom[] =3D { + 0x01, 0x00, 0x00, 0x01, 0x08, 0x00, 0x00, 0xf6, 0x01, 0x07, 0x19, 0x41, + 0x2d, 0xf2, 0xc8, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x65, 0x63, 0xd2, + 0x41, 0x6e, 0x61, 0x63, 0x61, 0x70, 0x61, 0x20, 0x48, 0x50, 0x4d, 0x20, + 0x42, 0x52, 0x44, 0x20, 0x49, 0x44, 0x47, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xc0, 0xc1, 0x00, + 0x00, 0x00, 0x00, 0x42, 0x01, 0x06, 0x19, 0xc8, 0x49, 0x6e, 0x76, 0x65, + 0x6e, 0x74, 0x65, 0x63, 0xca, 0x43, 0x49, 0x2d, 0x41, 0x6e, 0x61, 0x63, + 0x61, 0x70, 0x61, 0x46, 0x10, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x82, 0x2d, + 0x0c, 0x47, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x71, 0xd9, + 0xd6, 0xc0, 0xc1, 0x0e +}; +static const size_t hpm_brd_id_eeprom_len =3D sizeof(hpm_brd_id_eeprom); + static void anacapa_bmc_i2c_init(AspeedMachineState *bmc) { /* Reference: aspeed-bmc-facebook-anacapa.dts */ @@ -50,7 +251,8 @@ static void anacapa_bmc_i2c_init(AspeedMachineState *bmc) =20 /* &i2c6 */ /* eeprom@50 */ - at24c_eeprom_init(i2c[6], 0x50, 32 * KiB); + at24c_eeprom_init_rom(i2c[6], 0x50, 32 * KiB, + hpm_eeprom, hpm_eeprom_len); =20 /* &i2c8 */ /* i2c-mux@72 (PCA9546) */ @@ -65,7 +267,8 @@ static void anacapa_bmc_i2c_init(AspeedMachineState *bmc) i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 0), TYPE_PCA9552, 0x24); /* eeprom@50 */ - at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 0), 0x50, 16 * KiB); + at24c_eeprom_init_rom(pca954x_i2c_get_bus(i2c_mux, 0), 0x50, 16 * KiB, + rpdb_eeprom, rpdb_eeprom_len); =20 /* i2c8mux ch1 */ /* pca9555@22 */ @@ -75,13 +278,16 @@ static void anacapa_bmc_i2c_init(AspeedMachineState *b= mc) i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 1), TYPE_PCA9552, 0x24); /* eeprom@50 */ - at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 1), 0x50, 16 * KiB); + at24c_eeprom_init_rom(pca954x_i2c_get_bus(i2c_mux, 1), 0x50, 16 * KiB, + lpdb_eeprom, lpdb_eeprom_len); =20 /* &i2c9 */ /* eeprom@50 */ - at24c_eeprom_init(i2c[9], 0x50, 16 * KiB); + at24c_eeprom_init_rom(i2c[9], 0x50, 16 * KiB, + scm_eeprom, scm_eeprom_len); /* eeprom@56 */ - at24c_eeprom_init(i2c[9], 0x56, 8 * KiB); + at24c_eeprom_init_rom(i2c[9], 0x56, 8 * KiB, + bsm_eeprom, bsm_eeprom_len); =20 /* &i2c10 */ /* i2c-mux@71 (PCA9548) */ @@ -92,7 +298,8 @@ static void anacapa_bmc_i2c_init(AspeedMachineState *bmc) i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 5), TYPE_PCA9552, 0x22); /* eeprom@52 */ - at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 5), 0x52, 32 * KiB); + at24c_eeprom_init_rom(pca954x_i2c_get_bus(i2c_mux, 5), 0x52, 32 * KiB, + rbb_eeprom, rbb_eeprom_len); =20 /* &i2c11 */ /* i2c-mux@71 (PCA9548) */ @@ -105,7 +312,8 @@ static void anacapa_bmc_i2c_init(AspeedMachineState *bm= c) i2c_slave_create_simple(pca954x_i2c_get_bus(i2c_mux, 5), TYPE_PCA9552, 0x22); /* eeprom@52 */ - at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 5), 0x52, 32 * KiB); + at24c_eeprom_init_rom(pca954x_i2c_get_bus(i2c_mux, 5), 0x52, 32 * KiB, + lbb_eeprom, lbb_eeprom_len); =20 /* &i2c13 */ /* i2c-mux@70 (PCA9548) */ @@ -116,7 +324,8 @@ static void anacapa_bmc_i2c_init(AspeedMachineState *bm= c) =20 /* i2c13mux ch4 */ /* eeprom@51 */ - at24c_eeprom_init(pca954x_i2c_get_bus(i2c_mux, 4), 0x51, 32 * KiB); + at24c_eeprom_init_rom(pca954x_i2c_get_bus(i2c_mux, 4), 0x51, 32 * KiB, + hpm_brd_id_eeprom, hpm_brd_id_eeprom_len); =20 /* i2c13mux ch7 */ /* nfc@28 =E2=80=94 no model */ --=20 2.53.0-Meta