From nobody Mon Feb 9 14:01:47 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.46 as permitted sender) client-ip=209.85.128.46; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f46.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1624566475; cv=none; d=zohomail.com; s=zohoarc; b=Uae1OQL2DOBXHgC0LhqZQNFkk19nE5aofYgTqXH9KCzy8t4y0ES4KI1TGL/V3byZba5b+VpIMxHvsKLe8c3qrzU4ka2ynkqkwLlGVPlr0XZ+uBXNnw0yhWWvLvM+VqM5aI9/CHu39aju89goMF5nF4Kn5I5d8LeQ1kojX0ndigY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1624566475; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=h4oE4Yl+ZmW3FxHEA+QspghoRSVsp0JhrX2znpzx03E=; b=PZU3sQffzkxuRA5B0vBIdWAbRYienk63vnsKJRogZxHVgGDGqN9DCHykQqUi6Tr+Ww2bM1LsZ/4vxZp7ILFnNTScvjf6eWZwW8dZEfwTxkCIG92OR5+Us2RR1XBxtk4yddV2CuCSry4kTFe42JMieGD/6VlfLDs3PVy7afjqcB4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by mx.zohomail.com with SMTPS id 1624566475989576.533228626517; Thu, 24 Jun 2021 13:27:55 -0700 (PDT) Received: by mail-wm1-f46.google.com with SMTP id v20-20020a05600c2154b02901dcefb16af0so4425984wml.5 for ; Thu, 24 Jun 2021 13:27:55 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (93.red-83-35-24.dynamicip.rima-tde.net. [83.35.24.93]) by smtp.gmail.com with ESMTPSA id o203sm4402208wmo.36.2021.06.24.13.27.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jun 2021 13:27:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=h4oE4Yl+ZmW3FxHEA+QspghoRSVsp0JhrX2znpzx03E=; b=hFfiNFm66zskVbyDI07zrdYVDlD/qyTttHVZkZYNpiieKMxpzsHvxUhvKTm3XdX81o inB5ioYY45mbrVdMhTGDfkxs1puPqGW7nl43M0mow5E3DQ6XjUJzH4XGz6B94spbaW/0 3vdS6nnrNFdk0qogxQq8JT2b1eAZtJ0BQb5JXkMTCkYYqwk2C1PLYSCNTM9M60+rWe92 uX+JvhHA+uT7Rq+FZmMzhOSCHykjwhCoD0sVByS5W7A1Td7mt5Y//To7rOw3P5P4LD+v lwMeWpD0Fs+WJJTMEZAx2ie8pVjWKssFbeHhYtfrD62DgTZKU9ogYpjo3SogZhXBJDl0 /OZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=h4oE4Yl+ZmW3FxHEA+QspghoRSVsp0JhrX2znpzx03E=; b=e8urQOeI012IIt1vg4S2wk+K3tD+2vBtSfkuFh0yckfJvhFop+XCz+L6KvOWpFl+km oVPO/d7Cb63aL8H1H0Rv8hn85p2jrY1LGtE6iDL2LMTBBIHZbbQu/UgE2xjxcX2OGS1I RBxw63TCdz/Tct604nUIAX+qxy97O0xl9YyLPcNq68Cun/ld28shRkwl7PS9jmVEGdKs TJVbBwU21jefv7BCLp6189/Z2u29MfiRHG7sOSCcSDvwF44y0lPmgFP2xJza/nD380Ve IEYNt+WwciepmDg9eG+ASUxClCDaRqHU84/s2JDePe9y8kwCX9sRIQlvcMW0FpAPW6fA ru5g== X-Gm-Message-State: AOAM531FTUN0W+Aasy/4rT48S6R6Z/LHn7VjbP2Fx4j9Oz7I/ifX+5Ya PU1vAbhuLERE8b2YX9cAHPU= X-Google-Smtp-Source: ABdhPJxH4Z0mGSZ2hOjOS6HM9Yz4r0VPW3NXPu79x7Qf38qAdeEtNEL6ndgC+uFnOhG5mnJzDsOW/w== X-Received: by 2002:a05:600c:8a7:: with SMTP id l39mr6435011wmp.147.1624566474227; Thu, 24 Jun 2021 13:27:54 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Wainer dos Santos Moschetta , BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Rikalo , Aurelien Jarno , Cleber Rosa , Huacai Chen , Jiaxun Yang Subject: [PATCH 1/5] hw/isa/vt82c686: Replace magic numbers by definitions Date: Thu, 24 Jun 2021 22:27:43 +0200 Message-Id: <20210624202747.1433023-2-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210624202747.1433023-1-f4bug@amsat.org> References: <20210624202747.1433023-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Replace magic values of the Power Management / SMBus function (#4) by definitions from the datasheet. The result is less compact, and we can follow what the code does without having to recur to the datasheet. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/isa/vt82c686.c | 50 +++++++++++++++++++++++++++++++---------------- 1 file changed, 33 insertions(+), 17 deletions(-) diff --git a/hw/isa/vt82c686.c b/hw/isa/vt82c686.c index f57f3e70679..4ddcf2d398c 100644 --- a/hw/isa/vt82c686.c +++ b/hw/isa/vt82c686.c @@ -14,6 +14,7 @@ */ =20 #include "qemu/osdep.h" +#include "hw/registerfields.h" #include "hw/isa/vt82c686.h" #include "hw/pci/pci.h" #include "hw/qdev-properties.h" @@ -38,6 +39,16 @@ #define TYPE_VIA_PM "via-pm" OBJECT_DECLARE_SIMPLE_TYPE(ViaPMState, VIA_PM) =20 +REG8(PM_GEN_CFG0, 0x40) +REG8(PM_GEN_CFG1, 0x41) +FIELD(PM_GEN_CFG1, ACPI_IO_ENABLE, 7, 1) +REG32(PM_IO_BASE, 0x48) +FIELD(PM_IO_BASE, ADDR, 7, 9) +REG32(SMBUS_IO_BASE, 0x90) +FIELD(SMBUS_IO_BASE, ADDR, 4, 12) +REG8(SMBUS_HOST_CONFIG, 0xd2) +FIELD(SMBUS_HOST_CONFIG, ENABLE, 0, 1) + struct ViaPMState { PCIDevice dev; MemoryRegion io; @@ -48,21 +59,24 @@ struct ViaPMState { =20 static void pm_io_space_update(ViaPMState *s) { - uint32_t pmbase =3D pci_get_long(s->dev.config + 0x48) & 0xff80UL; + uint32_t pmbase =3D pci_get_long(s->dev.config + A_PM_IO_BASE); =20 memory_region_transaction_begin(); - memory_region_set_address(&s->io, pmbase); - memory_region_set_enabled(&s->io, s->dev.config[0x41] & BIT(7)); + memory_region_set_address(&s->io, pmbase & R_PM_IO_BASE_ADDR_MASK); + memory_region_set_enabled(&s->io, FIELD_EX32(s->dev.config[A_PM_GEN_CF= G1], + PM_GEN_CFG1, ACPI_IO_ENABLE)); memory_region_transaction_commit(); } =20 static void smb_io_space_update(ViaPMState *s) { - uint32_t smbase =3D pci_get_long(s->dev.config + 0x90) & 0xfff0UL; + uint32_t smbase =3D pci_get_long(s->dev.config + A_SMBUS_IO_BASE); =20 memory_region_transaction_begin(); - memory_region_set_address(&s->smb.io, smbase); - memory_region_set_enabled(&s->smb.io, s->dev.config[0xd2] & BIT(0)); + memory_region_set_address(&s->smb.io, smbase & R_SMBUS_IO_BASE_ADDR_MA= SK); + memory_region_set_enabled(&s->smb.io, + FIELD_EX32(s->dev.config[A_SMBUS_HOST_CONFIG= ], + SMBUS_HOST_CONFIG, ENABLE)); memory_region_transaction_commit(); } =20 @@ -98,19 +112,21 @@ static void pm_write_config(PCIDevice *d, uint32_t add= r, uint32_t val, int len) =20 trace_via_pm_write(addr, val, len); pci_default_write_config(d, addr, val, len); - if (ranges_overlap(addr, len, 0x48, 4)) { - uint32_t v =3D pci_get_long(s->dev.config + 0x48); - pci_set_long(s->dev.config + 0x48, (v & 0xff80UL) | 1); + if (ranges_overlap(addr, len, A_PM_IO_BASE, 4)) { + uint32_t v =3D pci_get_long(s->dev.config + A_PM_IO_BASE); + pci_set_long(s->dev.config + A_PM_IO_BASE, + (v & R_PM_IO_BASE_ADDR_MASK) | 1); } - if (range_covers_byte(addr, len, 0x41)) { + if (range_covers_byte(addr, len, A_PM_GEN_CFG1)) { pm_io_space_update(s); } - if (ranges_overlap(addr, len, 0x90, 4)) { - uint32_t v =3D pci_get_long(s->dev.config + 0x90); - pci_set_long(s->dev.config + 0x90, (v & 0xfff0UL) | 1); + if (ranges_overlap(addr, len, A_SMBUS_IO_BASE, 4)) { + uint32_t v =3D pci_get_long(s->dev.config + A_SMBUS_IO_BASE); + pci_set_long(s->dev.config + A_SMBUS_IO_BASE, + (v & R_SMBUS_IO_BASE_ADDR_MASK) | 1); } - if (range_covers_byte(addr, len, 0xd2)) { - s->dev.config[0xd2] &=3D 0xf; + if (range_covers_byte(addr, len, A_SMBUS_HOST_CONFIG)) { + s->dev.config[A_SMBUS_HOST_CONFIG] &=3D 0xf; smb_io_space_update(s); } } @@ -176,9 +192,9 @@ static void via_pm_reset(DeviceState *d) memset(s->dev.config + PCI_CONFIG_HEADER_SIZE, 0, PCI_CONFIG_SPACE_SIZE - PCI_CONFIG_HEADER_SIZE); /* Power Management IO base */ - pci_set_long(s->dev.config + 0x48, 1); + pci_set_long(s->dev.config + A_PM_IO_BASE, 1); /* SMBus IO base */ - pci_set_long(s->dev.config + 0x90, 1); + pci_set_long(s->dev.config + A_SMBUS_IO_BASE, 1); =20 acpi_pm1_evt_reset(&s->ar); acpi_pm1_cnt_reset(&s->ar); --=20 2.31.1 From nobody Mon Feb 9 14:01:47 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) client-ip=209.85.221.52; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f52.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1624566480; cv=none; d=zohomail.com; s=zohoarc; b=Uc2ToL07dDfepPAUioIop5b+BhFLOjLzyQvcXwYuWD+IPUOnd9JNn9r3DIibysPxk8/Wmp9USjYN/1dwu2XO3CY52JZ12BZUCFmpDopnZlKGCQbaFOxSdfQ2QAUN51UQg5DWRhkcHIegQsPkjfLDW4Khp3az1gr50S2W5s9i0nM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1624566480; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=iKx0S7FV6oTeEOOfKZInpp71T9Lkz8XufqA4Ci4D+Kg=; b=WAr71bEzSKh82kvF10Fjv9ID02NAHKpeFZK33JZSRhZexnwpKwrswXWDuKxNSjDd6W0KtUt5qYeS71A0uGMbLHy5cuAUGw9qcv+VPSXIxQIsIQPdVwWid9LZvv6HvioxbWtKYE4THVex1C77y/7kVy0NVI2ZGh73txX0Omm0BwM= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.52 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f52.google.com (mail-wr1-f52.google.com [209.85.221.52]) by mx.zohomail.com with SMTPS id 1624566480808165.45089451079252; Thu, 24 Jun 2021 13:28:00 -0700 (PDT) Received: by mail-wr1-f52.google.com with SMTP id a11so8040967wrt.13 for ; Thu, 24 Jun 2021 13:28:00 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (93.red-83-35-24.dynamicip.rima-tde.net. [83.35.24.93]) by smtp.gmail.com with ESMTPSA id b9sm4839310wrh.81.2021.06.24.13.27.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jun 2021 13:27:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=iKx0S7FV6oTeEOOfKZInpp71T9Lkz8XufqA4Ci4D+Kg=; b=evghU70l04Y1dug5YFAYhCB57pT7Q6ttjceOoyro68yc22oQjsnBd4kibtO9imsabG 5+6/wen/kxCFAbYVxU9eKp/C/r2QuRefSsCeJ0B71T3+9QAjqAUcDIxx4E/Wtez+QfFb +LbeHe/AJEGsuULGXJPud2+v3m8qGQwg+9aZDZDSNM/cW/QMi/zp0+0yaM98M90+TO2C /X01quQ+4nd5TFg/bmypiJHLX1iIykv0ZlWUfWHf5yYO6H5shuJmPeGJKOjt7XXRLeRS YWbGVH05Xv3GHmn982xeAdHNs/mGbzif3nv43ict1juoh5TuTjqHtccTWhj0ib/UM1s1 EcDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=iKx0S7FV6oTeEOOfKZInpp71T9Lkz8XufqA4Ci4D+Kg=; b=c0FjZwtqN6Q43kTgre+R3gQvDlnZu/Ae38OufnA1dsPwG0LzloVx2bauNHTMi3v49t savw54VqsUMxTBopFUg89vwkVb1CwcWFuTQRKEZDjeX31jHvWgyztsweeVKc/YeXMtOs ZpVtIG578tySTNy6wLVtqYT+wqjOzt5CaYNtFN27MEBN9t+IsPhyzDBHSkwrHAS4Sq9K 9LxZ+gb5+3kmb9yiWwkSuGu2nqS0vCR9iC+GyjyhX86mQKZVqzEJlWyyXT++0O4bJPFB taZ95FS6Raccl65sNpg5yvevtm3F3nFgUlMZ9sIE2C9FNvK2oCgpBgTYqiXyIjo++lTb Z+pw== X-Gm-Message-State: AOAM532eWSZLRbHZVsxxJhpkbb7Jk3M9s4Vt38YBzZRu8gNYOXjJshid pow8HW8OfUCY29fKool3ZfY= X-Google-Smtp-Source: ABdhPJzmczo9t6/5thbauIUh0hOGqCCvnDluSYVd9lPsxpyBohxBhYari1HckkvG08TTZZZjRFN0Ew== X-Received: by 2002:adf:e38c:: with SMTP id e12mr6831400wrm.404.1624566479127; Thu, 24 Jun 2021 13:27:59 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Wainer dos Santos Moschetta , BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Rikalo , Aurelien Jarno , Cleber Rosa , Huacai Chen , Jiaxun Yang Subject: [PATCH 2/5] hw/pci-host/bonito: Trace PCI config accesses smaller than 32-bit Date: Thu, 24 Jun 2021 22:27:44 +0200 Message-Id: <20210624202747.1433023-3-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210624202747.1433023-1-f4bug@amsat.org> References: <20210624202747.1433023-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Per the datasheet section "5.7.5. Accessing PCI configuration space" the address must be 32-bit aligned. Trace eventual accesses not aligned to 32-bit. Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/pci-host/bonito.c | 8 ++++++++ hw/pci-host/trace-events | 3 +++ 2 files changed, 11 insertions(+) diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c index afb3d1f81d5..751fdcec689 100644 --- a/hw/pci-host/bonito.c +++ b/hw/pci-host/bonito.c @@ -52,6 +52,7 @@ #include "hw/misc/unimp.h" #include "hw/registerfields.h" #include "qom/object.h" +#include "trace.h" =20 /* #define DEBUG_BONITO */ =20 @@ -185,6 +186,7 @@ FIELD(BONGENCFG, PCIQUEUE, 12, 1) #define BONITO_PCICONF_IDSEL_OFFSET 11 #define BONITO_PCICONF_FUN_MASK 0x700 /* [10:8] */ #define BONITO_PCICONF_FUN_OFFSET 8 +#define BONITO_PCICONF_REG_MASK_DS (~3) /* Per datasheet */ #define BONITO_PCICONF_REG_MASK 0xFC #define BONITO_PCICONF_REG_OFFSET 0 =20 @@ -495,6 +497,9 @@ static void bonito_spciconf_write(void *opaque, hwaddr = addr, uint64_t val, if (pciaddr =3D=3D 0xffffffff) { return; } + if (addr & ~BONITO_PCICONF_REG_MASK_DS) { + trace_bonito_spciconf_small_access(addr, size); + } =20 /* set the pci address in s->config_reg */ phb->config_reg =3D (pciaddr) | (1u << 31); @@ -521,6 +526,9 @@ static uint64_t bonito_spciconf_read(void *opaque, hwad= dr addr, unsigned size) if (pciaddr =3D=3D 0xffffffff) { return MAKE_64BIT_MASK(0, size * 8); } + if (addr & ~BONITO_PCICONF_REG_MASK_DS) { + trace_bonito_spciconf_small_access(addr, size); + } =20 /* set the pci address in s->config_reg */ phb->config_reg =3D (pciaddr) | (1u << 31); diff --git a/hw/pci-host/trace-events b/hw/pci-host/trace-events index f4b3a50cb0b..630e9fcc5e7 100644 --- a/hw/pci-host/trace-events +++ b/hw/pci-host/trace-events @@ -1,5 +1,8 @@ # See docs/devel/tracing.rst for syntax documentation. =20 +# bonito.c +bonito_spciconf_small_access(uint64_t addr, unsigned size) "PCI config add= ress is smaller then 32-bit, addr: 0x%"PRIx64", size: %u" + # grackle.c grackle_set_irq(int irq_num, int level) "set_irq num %d level %d" =20 --=20 2.31.1 From nobody Mon Feb 9 14:01:47 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) client-ip=209.85.221.47; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f47.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1624566485; cv=none; d=zohomail.com; s=zohoarc; b=ntE/LwM6q3B8rltfwIUrTqASa8XmR85OrEIcDv9J7GIdtGq4KEgwq+kzGBHytnpMASN+SLNilZuiPWDRwpbPxO3i9JimQAeEkODQ4QFytuCvgIgB5Q4li47m/b/W5RhefQZyTXVfLR9dsnNQSQW57bJIbXEmaQYoDKUDkmnMOrE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1624566485; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=TZGEajgGVZ42Nar/yd9hchvDz4iLTqHoO3KY7Bxn5V0=; b=T5FHHmpfzr0hCyJocOrlpEvTPkcSVSBG8G87qx7072XrlD74K6oaqNDCTxUsMN51fq/Rwypr5vNzvxp3Q9DgZrXYUdgX4YLanv7PY8rK3wgpGOeb5BMSHqHok2eJex0DMtwlL/ogjtfEx6zk/5XuIFMMAU/Dbpzg62c24uuQ8JI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mx.zohomail.com with SMTPS id 1624566485844164.94478196860405; Thu, 24 Jun 2021 13:28:05 -0700 (PDT) Received: by mail-wr1-f47.google.com with SMTP id m18so8072099wrv.2 for ; Thu, 24 Jun 2021 13:28:05 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (93.red-83-35-24.dynamicip.rima-tde.net. [83.35.24.93]) by smtp.gmail.com with ESMTPSA id p16sm4212274wrs.52.2021.06.24.13.28.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jun 2021 13:28:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TZGEajgGVZ42Nar/yd9hchvDz4iLTqHoO3KY7Bxn5V0=; b=mQfZUFWNAhumbRG8EyCLY3KhHyYSapT5oVOOz9+atiwaQF7Su+kwmXeE9syCaujXX+ iQBphFx5IrbQgz/8BQnOWHGgavCN8sBdhePeM9lKgpyhBBmWXPzZEAjuK4fKHrrGexP3 dV7FamvQfkToFongW6MjBM9LrE2mPU/iCzM1OtJHwjrp1KVLhuRPKwWn9c4dsEcFcU2n qlVjbjs9b68JBnfVTaKVBnmdhythwKksjytVfFyR4AKFMtd3oTMGhFBVJscCZ0yB/ERa 5a5EdVRDWdAvXFwGIoHaBsYBMQ9EFjoTuhwpaG/r6BB95V4No865nOetbxHMXH1e61mv yr7A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=TZGEajgGVZ42Nar/yd9hchvDz4iLTqHoO3KY7Bxn5V0=; b=B/8/7K4cgAKm0qoMeBz/K6YJhn3tE0bQ5wFQVU6ozEUmHVZzj3HAZQC9NIzYSO9LPs TMq3/tbKm8XYvxU2PjTWx5ADqlnQexJ7QdSHib0jHwA5Z/d6NouNdV3o1fB0+Xoh77oG WxZ/nePHnda4LBJR7R4yosNvo5IA0zoPX7oaQF8D83SeHh5F3/q4hXwvwEbD+9mdpxXb M+RyZFDL2L3aOPJ/GBtz38Ct9/ZXBhX5IU/AZb09KHHUxS+FAcbGWhRYRd+EuhJ5fyT4 ALu1EzlZQnYubf7pGHwAujkiQ/HVy1dAYakCVcnaBo8WCRfyvFP8dDT7IuejkgPcn1dB BLLQ== X-Gm-Message-State: AOAM531S64awxEnoY2+qg7x/+FWVcHIwx1lYDK7m3x9w0q4aPDvwQ7IZ mJmG+a9jVza9GFQMtmrn28O5GPbhlR6lwA== X-Google-Smtp-Source: ABdhPJzKped6HQjvWZq0YXrdx61coN9mYLL6hgfPG18Pm4O9+cvqiPGwMfc3s9ZaPvVhaGkStXUgsQ== X-Received: by 2002:a5d:5905:: with SMTP id v5mr6880006wrd.361.1624566484151; Thu, 24 Jun 2021 13:28:04 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Wainer dos Santos Moschetta , BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Rikalo , Aurelien Jarno , Cleber Rosa , Huacai Chen , Jiaxun Yang Subject: [PATCH 3/5] hw/pci-host/bonito: Allow PCI config accesses smaller than 32-bit Date: Thu, 24 Jun 2021 22:27:45 +0200 Message-Id: <20210624202747.1433023-4-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210624202747.1433023-1-f4bug@amsat.org> References: <20210624202747.1433023-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) When running the official PMON firmware for the Fuloong 2E, we see 8-bit and 16-bit accesses to PCI config space: $ qemu-system-mips64el -M fuloong2e -bios pmon_2e.bin \ -trace -trace bonito\* -trace pci_cfg\* pci_cfg_write vt82c686b-pm 05:4 @0x90 <- 0xeee1 bonito_spciconf_small_access PCI config address is smaller then 32-bit, a= ddr: 0x4d2, size: 2 pci_cfg_write vt82c686b-pm 05:4 @0xd2 <- 0x1 pci_cfg_write vt82c686b-pm 05:4 @0x4 <- 0x1 pci_cfg_write vt82c686b-isa 05:0 @0x4 <- 0x7 bonito_spciconf_small_access PCI config address is smaller then 32-bit, a= ddr: 0x81, size: 1 pci_cfg_read vt82c686b-isa 05:0 @0x81 -> 0x0 bonito_spciconf_small_access PCI config address is smaller then 32-bit, a= ddr: 0x81, size: 1 pci_cfg_write vt82c686b-isa 05:0 @0x81 <- 0x80 bonito_spciconf_small_access PCI config address is smaller then 32-bit, a= ddr: 0x83, size: 1 pci_cfg_write vt82c686b-isa 05:0 @0x83 <- 0x89 bonito_spciconf_small_access PCI config address is smaller then 32-bit, a= ddr: 0x85, size: 1 pci_cfg_write vt82c686b-isa 05:0 @0x85 <- 0x3 bonito_spciconf_small_access PCI config address is smaller then 32-bit, a= ddr: 0x5a, size: 1 pci_cfg_write vt82c686b-isa 05:0 @0x5a <- 0x7 bonito_spciconf_small_access PCI config address is smaller then 32-bit, a= ddr: 0x85, size: 1 pci_cfg_write vt82c686b-isa 05:0 @0x85 <- 0x1 Also this is what the Linux kernel does since it supports the Bonito north bridge: https://elixir.bootlin.com/linux/v2.6.15/source/arch/mips/pci/ops-bonito64.= c#L85 So it seems safe to assume the datasheet is incomplete or outdated regarding the address constraints. This problem was exposed by commit 911629e6d3773a8adeab48b ("vt82c686: Fix SMBus IO base and configuration registers"). Reported-by: BALATON Zoltan Suggested-by: Jiaxun Yang Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- hw/pci-host/bonito.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/pci-host/bonito.c b/hw/pci-host/bonito.c index 751fdcec689..3c10608c9a2 100644 --- a/hw/pci-host/bonito.c +++ b/hw/pci-host/bonito.c @@ -187,7 +187,7 @@ FIELD(BONGENCFG, PCIQUEUE, 12, 1) #define BONITO_PCICONF_FUN_MASK 0x700 /* [10:8] */ #define BONITO_PCICONF_FUN_OFFSET 8 #define BONITO_PCICONF_REG_MASK_DS (~3) /* Per datasheet */ -#define BONITO_PCICONF_REG_MASK 0xFC +#define BONITO_PCICONF_REG_MASK_HW 0xff /* As seen on hardware= */ #define BONITO_PCICONF_REG_OFFSET 0 =20 =20 @@ -466,7 +466,7 @@ static uint32_t bonito_sbridge_pciaddr(void *opaque, hw= addr addr) BONITO_PCICONF_IDSEL_OFFSET; devno =3D ctz32(idsel); funno =3D (cfgaddr & BONITO_PCICONF_FUN_MASK) >> BONITO_PCICONF_FUN_OF= FSET; - regno =3D (cfgaddr & BONITO_PCICONF_REG_MASK) >> BONITO_PCICONF_REG_OF= FSET; + regno =3D (cfgaddr & BONITO_PCICONF_REG_MASK_HW) >> BONITO_PCICONF_REG= _OFFSET; =20 if (idsel =3D=3D 0) { error_report("error in bonito pci config address 0x" TARGET_FMT_plx --=20 2.31.1 From nobody Mon Feb 9 14:01:47 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) client-ip=209.85.128.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1624566490; cv=none; d=zohomail.com; s=zohoarc; b=GD5eqEpfxt57xYsGp3J9D5nqnNG54VKILnwcvWBz2I3C4I7yWxu9h/fnwaVFVxrWPSqcUS/YmZ8AyZ+QLwIM+j6qCMvpXUeDHRhb44N+CrFV+RIl/W8Stsrx7ntVVkC1mFwYoCnVe5a2FnF5woeGzJf3seCAvCJd3+mA6DF+800= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1624566490; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Adhypnk7BG1yfQh4oI+8s5/C55cxVDofX6w8rqZ/nYQ=; b=FzS6cV4NSKngVPbED2tSEpOUOJbK20UGM8kUFZLoT80PTrksdbmtZj+QA1kgN2cCyxUlIvG5U5PH+2jJaUmRalil8CDAgPBFRH/fDU6KZwoyeb2b3mALu64CJrZkPwCAoT8osqjgHnHab3dyhB7MMDkLW/N02LGNqb5X1s8T4GE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) by mx.zohomail.com with SMTPS id 1624566490539798.4056484611881; Thu, 24 Jun 2021 13:28:10 -0700 (PDT) Received: by mail-wm1-f43.google.com with SMTP id r3so311512wmq.1 for ; Thu, 24 Jun 2021 13:28:09 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (93.red-83-35-24.dynamicip.rima-tde.net. [83.35.24.93]) by smtp.gmail.com with ESMTPSA id z9sm9545609wmf.43.2021.06.24.13.28.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jun 2021 13:28:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Adhypnk7BG1yfQh4oI+8s5/C55cxVDofX6w8rqZ/nYQ=; b=uvT6nxwGH/9Bz0rq9fnd5TaGA0Wxtwdzx8cJYVXq4rfEo+ZdzF9Q0aEJujTplkUd+w RmepZyeVwnND78PNUvbs5blMNGqsAtg5JPg7nymQ+48vkps+G5FTtTOl+KIXmOOq+9jB 3kBDZMu8EeccuMbBR04IcdkGkOE4VmNuK7obsxgW7r2T54KR9BvZKtqecWmCsHJx4qu+ dKVJz2rU3sQqokNUqHolwlQEup/duFYZLVg78hVLflAIx3D0u3Sf2ZZQ+i3G9KL05lgA oe3b5dr8gExV3UkgSu/8uPu6Ht4YwQKAgFmrNdndtTqc01rxRNJaQExWtG21T9jjzvBo zLlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=Adhypnk7BG1yfQh4oI+8s5/C55cxVDofX6w8rqZ/nYQ=; b=FdWprY/nHlVQfClqhOPgkaqeFqyDVV2g6QXX87JJ8pWB+vPhIJBcGXJIgX9brGDV8F KlIjl0DOuupZilccdpBd0oBa/CgYyUtP1j3Ey2b8Gka/8CHcCQU5Axf51OWLDxZSL67X TBRNkO0+ovP7zz1uJigr8Njhj2LX9YKJ9HJjO9rJeEOIR8Lc5em8OoBeYBpctRoIIUZz 98KkRsyuCzKxL0i17yELMoXo0EFtff79tXoKS49+LUOtF2VLOznIpvoIFmRhfkYiXFZ0 xqA8YNbA/9wR+VZGiC+XFgCUKvXfImDqEod5LmSG9hQ3xq+oPFZ9G3i3Y+ecs9baXAIy FNYw== X-Gm-Message-State: AOAM533YfJZdNOfmU47IVxazkegDe6lABnZhKsBspTnd3yVuF1jIkwTg x0VqcB0R+uQtJpprH8ikqvQ= X-Google-Smtp-Source: ABdhPJxbfmvU2ncizXBabK7KltNeOWnY/t46G7Se/Iz2ctUESHtz82kNTmexz3Wz0Fb8eazIK8lRPg== X-Received: by 2002:a1c:4b05:: with SMTP id y5mr6518661wma.5.1624566488830; Thu, 24 Jun 2021 13:28:08 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Wainer dos Santos Moschetta , BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Rikalo , Aurelien Jarno , Cleber Rosa , Huacai Chen , Jiaxun Yang Subject: [PATCH 4/5] tests/acceptance: Test Linux on the Fuloong 2E machine Date: Thu, 24 Jun 2021 22:27:46 +0200 Message-Id: <20210624202747.1433023-5-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210624202747.1433023-1-f4bug@amsat.org> References: <20210624202747.1433023-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Test the kernel from Lemote rescue image: http://dev.lemote.com/files/resource/download/rescue/rescue-yl Once downloaded, set the RESCUE_YL_PATH environment variable to point to the downloaded image and test as: $ RESCUE_YL_PATH=3D~/images/fuloong2e/rescue-yl \ AVOCADO_ALLOW_UNTRUSTED_CODE=3D1 \ avocado --show=3Dapp,console run tests/acceptance/machine_mips_fuloong2= e.py Fetching asset from tests/acceptance/machine_mips_fuloong2e.py:MipsFuloon= g2e.test_linux_kernel_isa_serial (1/1) tests/acceptance/machine_mips_fuloong2e.py:MipsFuloong2e.test_linu= x_kernel_isa_serial: console: Linux version 2.6.27.7lemote (root@debian) (gcc version 4.1.3 20= 080623 (prerelease) (Debian 4.1.2-23)) #6 Fri Dec 12 00:11:25 CST 2008 console: busclock=3D33000000, cpuclock=3D-2145008360,memsize=3D256,highme= msize=3D0 console: console [early0] enabled console: CPU revision is: 00006302 (ICT Loongson-2) PASS (0.16 s) JOB TIME : 0.51 s Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wainer dos Santos Moschetta --- MAINTAINERS | 1 + tests/acceptance/machine_mips_fuloong2e.py | 42 ++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 tests/acceptance/machine_mips_fuloong2e.py diff --git a/MAINTAINERS b/MAINTAINERS index 1a041eaf864..1c515b4ba14 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1176,6 +1176,7 @@ F: hw/isa/vt82c686.c F: hw/pci-host/bonito.c F: hw/usb/vt82c686-uhci-pci.c F: include/hw/isa/vt82c686.h +F: tests/acceptance/machine_mips_fuloong2e.py =20 Loongson-3 virtual platforms M: Huacai Chen diff --git a/tests/acceptance/machine_mips_fuloong2e.py b/tests/acceptance/= machine_mips_fuloong2e.py new file mode 100644 index 00000000000..0ac285e2af1 --- /dev/null +++ b/tests/acceptance/machine_mips_fuloong2e.py @@ -0,0 +1,42 @@ +# Functional tests for the Lemote Fuloong-2E machine. +# +# Copyright (c) 2019 Philippe Mathieu-Daud=C3=A9 +# +# This work is licensed under the terms of the GNU GPL, version 2 or later. +# See the COPYING file in the top-level directory. +# +# SPDX-License-Identifier: GPL-2.0-or-later + +import os + +from avocado import skipUnless +from avocado_qemu import Test +from avocado_qemu import wait_for_console_pattern + +class MipsFuloong2e(Test): + + timeout =3D 60 + + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code= ') + @skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not available= ') + def test_linux_kernel_isa_serial(self): + """ + :avocado: tags=3Darch:mips64el + :avocado: tags=3Dmachine:fuloong2e + :avocado: tags=3Dendian:little + :avocado: tags=3Ddevice:bonito64 + :avocado: tags=3Ddevice:via686b + """ + # Recovery system for the Yeeloong laptop + # (enough to test the fuloong2e southbridge, accessing its ISA bus) + # http://dev.lemote.com/files/resource/download/rescue/rescue-yl + kernel_hash =3D 'ec4d1bd89a8439c41033ca63db60160cc6d6f09a' + kernel_path =3D self.fetch_asset('file://' + os.getenv('RESCUE_YL_= PATH'), + asset_hash=3Dkernel_hash) + + self.vm.set_console() + self.vm.add_args('-kernel', kernel_path) + self.vm.launch() + wait_for_console_pattern(self, 'Linux version 2.6.27.7lemote') + cpu_revision =3D 'CPU revision is: 00006302 (ICT Loongson-2)' + wait_for_console_pattern(self, cpu_revision) --=20 2.31.1 From nobody Mon Feb 9 14:01:47 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.46 as permitted sender) client-ip=209.85.128.46; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f46.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1624566495; cv=none; d=zohomail.com; s=zohoarc; b=htHiiVpYF6C9oJFoZ/91f9kEll1biatg3SO83i9GVt7Us0c/NEJKtIHwtsjUqrQ0J4yqWDygpoVZAyHRj5d700gA7va7x0ECIoL2o97BdYHHWO0Wto6+xI+j06VXLqtoNxcWhfnCMdXd5WUC1EXPB1bv1U3AQgmUIl3SQoH/g1c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1624566495; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=UCi9zS+WOU642oVpvfnDDUDAscPjtG7ffJ6K2lD9Qwg=; b=Pg+Ta/g1sXeFZMhGTLrJ9fTtTj2IzTqYVgMPbWreQWC+AAqKrmAX2HVYS7zvYJF6lJ3hYIMxzNx6vTaMfJ1Qvh9NOSeNE7V7FQL2qo2Nhj6QC3jBo/AmczM5s6CV0lGveYb6J7bSgXJL55wvl4ZmM9vWS3m+C41jSo7pluDSXJc= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.46 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f46.google.com (mail-wm1-f46.google.com [209.85.128.46]) by mx.zohomail.com with SMTPS id 1624566495291308.0555097308461; Thu, 24 Jun 2021 13:28:15 -0700 (PDT) Received: by mail-wm1-f46.google.com with SMTP id v20-20020a05600c2154b02901dcefb16af0so4426462wml.5 for ; Thu, 24 Jun 2021 13:28:14 -0700 (PDT) Return-Path: Return-Path: Received: from x1w.. (93.red-83-35-24.dynamicip.rima-tde.net. [83.35.24.93]) by smtp.gmail.com with ESMTPSA id r2sm4251734wrv.39.2021.06.24.13.28.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 24 Jun 2021 13:28:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UCi9zS+WOU642oVpvfnDDUDAscPjtG7ffJ6K2lD9Qwg=; b=TLPuGl1TMUEq/UOZeZ6u3CFhQSinB3sAxHRWZm2TYVRVun6FDuTD8CHJcTkfU7qxHl Or3v4oBH0vVJ5IepZbfLh0S/19N7qC5wYqHp9pJgly9y5PTisb0U35SUsAt+GX6dv+MO VDA5A/u9qRwfYQsofjaUnS57yKo7NaYcqspk0VBqMInXnFoQ/knNA5RO0T9iEQpFCVgQ qgtyDgwz+tYu5ejw0GQmPVQDL/4eNXCI0EWpsw6tVukpOTaM/uWugp6Nb+gne/y5tfsF XT1h/s9j7p7dRTmNVSwgDVi1bCth6642rf4oChVvub0k+KQKkgHOdtx+stQjDwFjm1wS KIRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=UCi9zS+WOU642oVpvfnDDUDAscPjtG7ffJ6K2lD9Qwg=; b=U15i0/M5KYFQyTaBadp9NnAvlnRhWIFgN5d0SuhHUuLomVh6di0C+jnwyqa0me2ETB A+Yuyxdoj1ort7xOGCAKU0BX3UJltQRb5HlDfvaI66C3Rsppr83OQTfzxMWTJTg3TAQn mHUGWAhFZUDAzSNf2j9iTFLFNOfYMadnDfHd0yp7lQ/X+V60H6LLVhFQsrgnf6hdXn3f AMOWUHey4UJV6dt5+9J0oIB1No+kOfekfZuSZhK0jU5JsuhpzsLVnof95HOchCeQ5CuL zQnnqZpyAlIB6ln2CdLFjBwbxxhLfB2DL3lj4ogpr1C+RX/9Js51qaW51QZopXZhRQRn 4aXA== X-Gm-Message-State: AOAM532twxU4YZBxwN2wJQ5lRbrxrl/HlKxTbKEqr+Owt/rNgcbPSw6L ZDtxn5AIY5lYxGjsweNft1I= X-Google-Smtp-Source: ABdhPJyNwhoGvLwqSjI1MJdyRpZOdiVSjBwwhSGw96BiAU/d1vThocBAYzWzRBFNCiEWvdUPUTjl/Q== X-Received: by 2002:a05:600c:291:: with SMTP id 17mr6399367wmk.52.1624566493521; Thu, 24 Jun 2021 13:28:13 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Wainer dos Santos Moschetta , BALATON Zoltan , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Aleksandar Rikalo , Aurelien Jarno , Cleber Rosa , Huacai Chen , Jiaxun Yang Subject: [PATCH 5/5] tests/acceptance: Test PMON on the Fuloong 2E machine Date: Thu, 24 Jun 2021 22:27:47 +0200 Message-Id: <20210624202747.1433023-6-f4bug@amsat.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210624202747.1433023-1-f4bug@amsat.org> References: <20210624202747.1433023-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Test the PMON firmware. As the firmware is not redistributable, it has to be downloaded manually first. Then it can be used by providing its path via the PMON_BIN_PATH environment variable: $ PMON2E_BIN_PATH=3D~/images/fuloong2e/pmon_2e.bin \ AVOCADO_ALLOW_UNTRUSTED_CODE=3D1 \ avocado --show=3Dapp,console run tests/acceptance/machine_mips_fuloong2= e.py Fetching asset from tests/acceptance/machine_mips_fuloong2e.py:MipsFuloon= g2e.test_linux_kernel_isa_serial (1/3) tests/acceptance/machine_mips_fuloong2e.py:MipsFuloong2e.test_pmon= _serial_console: console: PMON2000 MIPS Initializing. Standby... console: ERRORPC=3D00000000 CONFIG=3D00030932 console: PRID=3D00006302 console: Init SDRAM Done! console: Sizing caches... console: Init caches... console: godson2 caches found console: Init caches done, cfg =3D 00030932 console: Copy PMON to execute location... console: copy text section done. console: Copy PMON to execute location done. Uncompressing Bios........................OK,Booting Bios PASS (0.25 s) (2/3) tests/acceptance/machine_mips_fuloong2e.py:MipsFuloong2e.test_pmon= _framebuffer_console: [...] Uncompressing Bios........................OK,Booting Bios console: FREQ console: FREI console: DONE console: TTYI console: TTYD console: ENVI console: MAPV console: Mfg 0, Id 60 console: STDV console: SBDD console: PPCIH console: PCIS console: PCIR console: PCIW console: NETI console: RTCL console: PCID console: VGAI console: Default MODE_ID 2 console: starting radeon init... console: radeon init done console: FRBI console: cfb_console init,fb=3Db4000000 console: Video: Drawing the logo ... console: CONSOLE_SIZE 450560HSTI PASS (4.10 s) (3/3) tests/acceptance/machine_mips_fuloong2e.py:MipsFuloong2e.test_linu= x_kernel_isa_serial: console: Linux version 2.6.27.7lemote (root@debian) (gcc version 4.1.3 20= 080623 (prerelease) (Debian 4.1.2-23)) #6 Fri Dec 12 00:11:25 CST 2008 console: busclock=3D33000000, cpuclock=3D-2145008360,memsize=3D256,highme= msize=3D0 console: console [early0] enabled console: CPU revision is: 00006302 (ICT Loongson-2) PASS (0.19 s) RESULTS : PASS 3 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | = CANCEL 0 JOB TIME : 5.10 s Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Wainer dos Santos Moschetta --- tests/acceptance/machine_mips_fuloong2e.py | 62 ++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/tests/acceptance/machine_mips_fuloong2e.py b/tests/acceptance/= machine_mips_fuloong2e.py index 0ac285e2af1..4854ba98560 100644 --- a/tests/acceptance/machine_mips_fuloong2e.py +++ b/tests/acceptance/machine_mips_fuloong2e.py @@ -8,15 +8,77 @@ # SPDX-License-Identifier: GPL-2.0-or-later =20 import os +import time =20 from avocado import skipUnless from avocado_qemu import Test from avocado_qemu import wait_for_console_pattern =20 +from tesseract_utils import tesseract_available, tesseract_ocr + class MipsFuloong2e(Test): =20 timeout =3D 60 =20 + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code= ') + @skipUnless(os.getenv('PMON2E_BIN_PATH'), 'PMON2E_BIN_PATH not availab= le') + def test_pmon_serial_console(self): + """ + :avocado: tags=3Darch:mips64el + :avocado: tags=3Dmachine:fuloong2e + :avocado: tags=3Dendian:little + :avocado: tags=3Ddevice:bonito64 + :avocado: tags=3Ddevice:via686b + """ + pmon_hash =3D 'c812e1695d7b2320036f3ef494976969' # v1.1.2 + pmon_path =3D self.fetch_asset('file://' + os.getenv('PMON2E_BIN_P= ATH'), + asset_hash=3Dpmon_hash, algorithm=3D'= md5') + + self.vm.set_console() + self.vm.add_args('-bios', pmon_path) + self.vm.launch() + wait_for_console_pattern(self, 'PMON2000 MIPS Initializing. Standb= y...') + wait_for_console_pattern(self, 'Booting Bios') + + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code= ') + # Tesseract 4 adds a new OCR engine based on LSTM neural networks. The + # new version is faster and more accurate than version 3. The drawback= is + # that it is still alpha-level software. + @skipUnless(tesseract_available(4), 'tesseract v4 OCR tool not availab= le') + @skipUnless(os.getenv('PMON2E_BIN_PATH'), 'PMON2E_BIN_PATH not availab= le') + def test_pmon_framebuffer_console(self): + """ + :avocado: tags=3Darch:mips64el + :avocado: tags=3Dmachine:fuloong2e + :avocado: tags=3Dendian:little + :avocado: tags=3Ddevice:bonito64 + :avocado: tags=3Ddevice:ati-vga + """ + screenshot_path =3D os.path.join(self.workdir, 'dump.ppm') + + pmon_hash =3D 'c812e1695d7b2320036f3ef494976969' # v1.1.2 + pmon_path =3D self.fetch_asset('file://' + os.getenv('PMON2E_BIN_P= ATH'), + asset_hash=3Dpmon_hash, algorithm=3D'= md5') + + self.vm.set_console() + self.vm.add_args('-bios', pmon_path, + '-vga', 'std', + '-device', 'ati-vga,model=3Drv100') + self.vm.launch() + + wait_for_console_pattern(self, 'Video: Drawing the logo ...') + self.log.info('VM launched, waiting for logo on display') + time.sleep(2) + wait_for_console_pattern(self, 'CONSOLE_SIZE') + self.vm.command('human-monitor-command', command_line=3D'stop') + self.vm.command('human-monitor-command', + command_line=3D'screendump %s' % screenshot_path) + + lines =3D tesseract_ocr(screenshot_path, tesseract_version=3D4, + tesseract_args=3D'--dpi 128') + pmon_version =3D 'PNON2000 for Loongson, Version 1.1.2' # PNON is = enough + self.assertIn(pmon_version, lines) + @skipUnless(os.getenv('AVOCADO_ALLOW_UNTRUSTED_CODE'), 'untrusted code= ') @skipUnless(os.getenv('RESCUE_YL_PATH'), 'RESCUE_YL_PATH not available= ') def test_linux_kernel_isa_serial(self): --=20 2.31.1