From nobody Mon Feb 9 21:40:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163585099890744.251785659912116; Tue, 2 Nov 2021 04:03:18 -0700 (PDT) Received: from localhost ([::1]:59364 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrZV-0001nl-P2 for importer@patchew.org; Tue, 02 Nov 2021 07:03:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40822) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrVz-0007Gz-4L for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:39 -0400 Received: from mail-qk1-x730.google.com ([2607:f8b0:4864:20::730]:41675) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrVw-0006qi-Tp for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:38 -0400 Received: by mail-qk1-x730.google.com with SMTP id br39so6028745qkb.8 for ; Tue, 02 Nov 2021 03:59:36 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=R3Zw5SkKkRqQw+OjvhJOUwlZRrn68fgFrPkNLpbWJ7U=; b=oBkrwhY+FGQmb3PTwHvC/Nn8DuJI8zcHCLAdv9+VNOveM277/XaO/IICYibF/usug5 ETBQ0rftP/cK4Om36OsL9CEnnVTQws9kVD+5PiXovjMuXG47xFz5MFhsDS8q1a/fLH5R z9q62aTD+FIS05IbRxCsHckFtlQlIQuDvzRIwKPd5LiaimEwCyJFgXMw79OzaU/AbMc2 o6oeCcoo0kxp51mYIx8eqcP8wH37A6Bzx1nXjLV3uGEtmVSRmL7jd/hJOeRHDGAvgwpx G0I3IbKNIJ7xviE11S9Mp5UOIedJNulGD76oToIJKbfdL1L+GEcGPR7n7BxuHpoID1Ob WG/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=R3Zw5SkKkRqQw+OjvhJOUwlZRrn68fgFrPkNLpbWJ7U=; b=XFScz9XpWy0jKjfOxvyzw5Lue8T6Q2QlLEOW7Q6632NHfOK3GbzRZJ53cPtat/9erG Mzp1q9X93+FO9I2H7JhY7SxXabBylMy9ZBjOX98jvuuNNovOAmstwKtT4ia7vSNGHkVh 6DPJ6be6FJCss8yBYqn3s9B3cESpdzBf0178hw3+03Wke09FggIQZ1STXC8p7z4Aksl1 fxZx9Eih7PXDu2saOFUA872q1lwxgf9XbnChdPRuDtS6skBUOxxgEkmNw0+6auyhooQS 7CJlNhHI6yoHFYWWbzQ+r1hH8blzvo1aYZ2mDDfgde865bPUIaomsDDPXBKLppEr9/tj Msgw== X-Gm-Message-State: AOAM533EU/+ypQ0lLfkJZT+RFf99mljCR+WuiyGK8HdUnbIe2x8Go0Pd BpJc9HG0RFtezgAdSnI340Xs03u/R9PT4w== X-Google-Smtp-Source: ABdhPJydEuxM1PB/SuPUYEwvE3Qs+cp9V5ghi2yYhNtRypmyETb4m9QrRTvT46VcY8JuFTahmMjkng== X-Received: by 2002:a05:620a:d8d:: with SMTP id q13mr29396233qkl.247.1635850776000; Tue, 02 Nov 2021 03:59:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 01/12] hw/sd: add nuvoton MMC Date: Tue, 2 Nov 2021 06:59:23 -0400 Message-Id: <20211102105934.214596-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::730; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x730.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hao Wu , Tyrone Ting , Shengtan Mao , Chris Rauer , Peter Maydell Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635851000424100002 Content-Type: text/plain; charset="utf-8" From: Shengtan Mao Signed-off-by: Shengtan Mao Signed-off-by: Hao Wu Reviewed-by: Hao Wu Reviewed-by: Chris Rauer Reviewed-by: Tyrone Ting Reviewed-by: Peter Maydell Message-Id: <20211008002628.1958285-2-wuhaotsh@google.com> [rth: Fix typos of "nonexistent"] Signed-off-by: Richard Henderson --- include/hw/sd/npcm7xx_sdhci.h | 65 ++++++++++++ hw/sd/npcm7xx_sdhci.c | 182 ++++++++++++++++++++++++++++++++++ hw/sd/meson.build | 1 + 3 files changed, 248 insertions(+) create mode 100644 include/hw/sd/npcm7xx_sdhci.h create mode 100644 hw/sd/npcm7xx_sdhci.c diff --git a/include/hw/sd/npcm7xx_sdhci.h b/include/hw/sd/npcm7xx_sdhci.h new file mode 100644 index 0000000000..d728f0a40d --- /dev/null +++ b/include/hw/sd/npcm7xx_sdhci.h @@ -0,0 +1,65 @@ +/* + * NPCM7xx SD-3.0 / eMMC-4.51 Host Controller + * + * Copyright (c) 2021 Google LLC + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WIT= HOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#ifndef NPCM7XX_SDHCI_H +#define NPCM7XX_SDHCI_H + +#include "hw/sd/sdhci.h" +#include "qom/object.h" + +#define TYPE_NPCM7XX_SDHCI "npcm7xx.sdhci" +#define NPCM7XX_PRSTVALS_SIZE 6 +#define NPCM7XX_PRSTVALS 0x60 +#define NPCM7XX_PRSTVALS_0 0x0 +#define NPCM7XX_PRSTVALS_1 0x2 +#define NPCM7XX_PRSTVALS_2 0x4 +#define NPCM7XX_PRSTVALS_3 0x6 +#define NPCM7XX_PRSTVALS_4 0x8 +#define NPCM7XX_PRSTVALS_5 0xA +#define NPCM7XX_BOOTTOCTRL 0x10 +#define NPCM7XX_SDHCI_REGSIZE 0x20 + +#define NPCM7XX_PRSNTS_RESET 0x04A00000 +#define NPCM7XX_BLKGAP_RESET 0x80 +#define NPCM7XX_CAPAB_RESET 0x0100200161EE0399 +#define NPCM7XX_MAXCURR_RESET 0x0000000000000005 +#define NPCM7XX_HCVER_RESET 0x1002 + +#define NPCM7XX_PRSTVALS_0_RESET 0x0040 +#define NPCM7XX_PRSTVALS_1_RESET 0x0001 +#define NPCM7XX_PRSTVALS_3_RESET 0x0001 + +OBJECT_DECLARE_SIMPLE_TYPE(NPCM7xxSDHCIState, NPCM7XX_SDHCI) + +typedef struct NPCM7xxRegs { + /* Preset Values Register Field, read-only */ + uint16_t prstvals[NPCM7XX_PRSTVALS_SIZE]; + /* Boot Timeout Control Register, read-write */ + uint32_t boottoctrl; +} NPCM7xxRegisters; + +typedef struct NPCM7xxSDHCIState { + SysBusDevice parent; + + MemoryRegion container; + MemoryRegion iomem; + BusState *bus; + NPCM7xxRegisters regs; + + SDHCIState sdhci; +} NPCM7xxSDHCIState; + +#endif /* NPCM7XX_SDHCI_H */ diff --git a/hw/sd/npcm7xx_sdhci.c b/hw/sd/npcm7xx_sdhci.c new file mode 100644 index 0000000000..ef503365df --- /dev/null +++ b/hw/sd/npcm7xx_sdhci.c @@ -0,0 +1,182 @@ +/* + * NPCM7xx SD-3.0 / eMMC-4.51 Host Controller + * + * Copyright (c) 2021 Google LLC + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WIT= HOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "qemu/osdep.h" + +#include "hw/sd/npcm7xx_sdhci.h" +#include "migration/vmstate.h" +#include "sdhci-internal.h" +#include "qemu/log.h" + +static uint64_t npcm7xx_sdhci_read(void *opaque, hwaddr addr, unsigned int= size) +{ + NPCM7xxSDHCIState *s =3D opaque; + uint64_t val =3D 0; + + switch (addr) { + case NPCM7XX_PRSTVALS_0: + case NPCM7XX_PRSTVALS_1: + case NPCM7XX_PRSTVALS_2: + case NPCM7XX_PRSTVALS_3: + case NPCM7XX_PRSTVALS_4: + case NPCM7XX_PRSTVALS_5: + val =3D s->regs.prstvals[(addr - NPCM7XX_PRSTVALS_0) / 2]; + break; + case NPCM7XX_BOOTTOCTRL: + val =3D s->regs.boottoctrl; + break; + default: + qemu_log_mask(LOG_GUEST_ERROR, "SDHCI read of nonexistent reg: 0x%= 02" + HWADDR_PRIx, addr); + break; + } + + return val; +} + +static void npcm7xx_sdhci_write(void *opaque, hwaddr addr, uint64_t val, + unsigned int size) +{ + NPCM7xxSDHCIState *s =3D opaque; + + switch (addr) { + case NPCM7XX_BOOTTOCTRL: + s->regs.boottoctrl =3D val; + break; + default: + qemu_log_mask(LOG_GUEST_ERROR, "SDHCI write of nonexistent reg: 0x= %02" + HWADDR_PRIx, addr); + break; + } +} + +static bool npcm7xx_sdhci_check_mem_op(void *opaque, hwaddr addr, + unsigned size, bool is_write, + MemTxAttrs attrs) +{ + switch (addr) { + case NPCM7XX_PRSTVALS_0: + case NPCM7XX_PRSTVALS_1: + case NPCM7XX_PRSTVALS_2: + case NPCM7XX_PRSTVALS_3: + case NPCM7XX_PRSTVALS_4: + case NPCM7XX_PRSTVALS_5: + /* RO Word */ + return !is_write && size =3D=3D 2; + case NPCM7XX_BOOTTOCTRL: + /* R/W Dword */ + return size =3D=3D 4; + default: + return false; + } +} + +static const MemoryRegionOps npcm7xx_sdhci_ops =3D { + .read =3D npcm7xx_sdhci_read, + .write =3D npcm7xx_sdhci_write, + .endianness =3D DEVICE_NATIVE_ENDIAN, + .valid =3D { + .min_access_size =3D 1, + .max_access_size =3D 4, + .unaligned =3D false, + .accepts =3D npcm7xx_sdhci_check_mem_op, + }, +}; + +static void npcm7xx_sdhci_realize(DeviceState *dev, Error **errp) +{ + NPCM7xxSDHCIState *s =3D NPCM7XX_SDHCI(dev); + SysBusDevice *sbd =3D SYS_BUS_DEVICE(dev); + SysBusDevice *sbd_sdhci =3D SYS_BUS_DEVICE(&s->sdhci); + + memory_region_init(&s->container, OBJECT(s), + "npcm7xx.sdhci-container", 0x1000); + sysbus_init_mmio(sbd, &s->container); + + memory_region_init_io(&s->iomem, OBJECT(s), &npcm7xx_sdhci_ops, s, + TYPE_NPCM7XX_SDHCI, NPCM7XX_SDHCI_REGSIZE); + memory_region_add_subregion_overlap(&s->container, NPCM7XX_PRSTVALS, + &s->iomem, 1); + + sysbus_realize(sbd_sdhci, errp); + memory_region_add_subregion(&s->container, 0, + sysbus_mmio_get_region(sbd_sdhci, 0)); + + /* propagate irq and "sd-bus" from generic-sdhci */ + sysbus_pass_irq(sbd, sbd_sdhci); + s->bus =3D qdev_get_child_bus(DEVICE(sbd_sdhci), "sd-bus"); + + /* Set the read only preset values. */ + memset(s->regs.prstvals, 0, sizeof(s->regs.prstvals)); + s->regs.prstvals[0] =3D NPCM7XX_PRSTVALS_0_RESET; + s->regs.prstvals[1] =3D NPCM7XX_PRSTVALS_1_RESET; + s->regs.prstvals[3] =3D NPCM7XX_PRSTVALS_3_RESET; +} + +static void npcm7xx_sdhci_reset(DeviceState *dev) +{ + NPCM7xxSDHCIState *s =3D NPCM7XX_SDHCI(dev); + device_cold_reset(DEVICE(&s->sdhci)); + s->regs.boottoctrl =3D 0; + + s->sdhci.prnsts =3D NPCM7XX_PRSNTS_RESET; + s->sdhci.blkgap =3D NPCM7XX_BLKGAP_RESET; + s->sdhci.capareg =3D NPCM7XX_CAPAB_RESET; + s->sdhci.maxcurr =3D NPCM7XX_MAXCURR_RESET; + s->sdhci.version =3D NPCM7XX_HCVER_RESET; +} + +static const VMStateDescription vmstate_npcm7xx_sdhci =3D { + .name =3D TYPE_NPCM7XX_SDHCI, + .version_id =3D 0, + .fields =3D (VMStateField[]) { + VMSTATE_UINT32(regs.boottoctrl, NPCM7xxSDHCIState), + VMSTATE_END_OF_LIST(), + }, +}; + +static void npcm7xx_sdhci_class_init(ObjectClass *classp, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(classp); + + dc->desc =3D "NPCM7xx SD/eMMC Host Controller"; + dc->realize =3D npcm7xx_sdhci_realize; + dc->reset =3D npcm7xx_sdhci_reset; + dc->vmsd =3D &vmstate_npcm7xx_sdhci; +} + +static void npcm7xx_sdhci_instance_init(Object *obj) +{ + NPCM7xxSDHCIState *s =3D NPCM7XX_SDHCI(obj); + + object_initialize_child(OBJECT(s), "generic-sdhci", &s->sdhci, + TYPE_SYSBUS_SDHCI); +} + +static TypeInfo npcm7xx_sdhci_info =3D { + .name =3D TYPE_NPCM7XX_SDHCI, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(NPCM7xxSDHCIState), + .instance_init =3D npcm7xx_sdhci_instance_init, + .class_init =3D npcm7xx_sdhci_class_init, +}; + +static void npcm7xx_sdhci_register_types(void) +{ + type_register_static(&npcm7xx_sdhci_info); +} + +type_init(npcm7xx_sdhci_register_types) diff --git a/hw/sd/meson.build b/hw/sd/meson.build index f1ce357a3b..807ca07b7c 100644 --- a/hw/sd/meson.build +++ b/hw/sd/meson.build @@ -9,4 +9,5 @@ softmmu_ss.add(when: 'CONFIG_PXA2XX', if_true: files('pxa2x= x_mmci.c')) softmmu_ss.add(when: 'CONFIG_RASPI', if_true: files('bcm2835_sdhost.c')) softmmu_ss.add(when: 'CONFIG_ASPEED_SOC', if_true: files('aspeed_sdhci.c')) softmmu_ss.add(when: 'CONFIG_ALLWINNER_H3', if_true: files('allwinner-sdho= st.c')) +softmmu_ss.add(when: 'CONFIG_NPCM7XX', if_true: files('npcm7xx_sdhci.c')) softmmu_ss.add(when: 'CONFIG_CADENCE_SDHCI', if_true: files('cadence_sdhci= .c')) --=20 2.25.1 From nobody Mon Feb 9 21:40:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163585099879397.60571975047685; Tue, 2 Nov 2021 04:03:18 -0700 (PDT) Received: from localhost ([::1]:59384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrZV-0001oW-Jl for importer@patchew.org; Tue, 02 Nov 2021 07:03:17 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40826) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrVz-0007HR-NQ for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:39 -0400 Received: from mail-qk1-x736.google.com ([2607:f8b0:4864:20::736]:38574) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrVx-0006qo-Nx for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:39 -0400 Received: by mail-qk1-x736.google.com with SMTP id bi29so19188092qkb.5 for ; Tue, 02 Nov 2021 03:59:37 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XZ8jbPHuutNMQo4+y79myRiaCVlrVDNnYi0kShgMey4=; b=expS31den/rdIslwD9iTjzplKePiOZDROIcR0GaWJb1MAYZDvU3KjVwDkIRY008+9r CxsJTQJwE11l5kNHjV2at28/itidqTosWE52T8mw0mIWubz9UsjdqS2fw1VWsUTIOVTV wm+c6F+4UYDKzFTNNHyruwY/mqwKFIoVu/vHKBi8FBtaQitL3rd9HJB0Lfrkgx82GMC9 ZAZ8+sOOFD1qxicASvMhuSod34ExvSxk0bTp/JHuDSvhk2/pUSW3tweBXKEoncV6qRYE ETf6MbCEfA2kVJa/rEHOaHHdmDgT1rrAE+QkGJq3sUoobi52eRgzRe2o+i6+a9uEofr6 vJPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=XZ8jbPHuutNMQo4+y79myRiaCVlrVDNnYi0kShgMey4=; b=JkJXueJqZr/TknnGNrVzdWa5ELvpJWLjzUwuk6pwyNLSmkGNm3cOJ8phKWb0chcvPD NMWp0N1qno8o0jsT4TQ7BzlgazGI36cK+1QdTgAn3l8n8WTkfsVTnua89xJxiieDl2WO JCil3KUb8k+nydX+/M7l7nkQ39l7KZ0c0ZS9pICTGDiO0mPvbGiO8tWVsC3mblsqLC6g 1zFsr7CN72L5Xz3HyqrDPlIgANXdqeZeCZa4eVZ3lvvnOIPAJe6bCPt3To5hUpqrMNUX UsmxL0Q/mj95MiM9hQ5WmNdDzNKdl9f9k63XVEC9Tx9jZr96l2Po4USG9eNMXkkVPumP nDSA== X-Gm-Message-State: AOAM530D8mZ5b1gQswVxb1Xc4U4KA4MS/fuGxxU0LDXqsXCUQsE0mODM HqAEFLWdwmElPlJ71N/vsKkgPzk9xlMgnA== X-Google-Smtp-Source: ABdhPJyQO0CpQ2CNKwZSLhE6LpFqmHKwHI7WZ/ef4GYY9WP9wNe/+EZ1xwmMo5ppTORZfNgs3OZ9+A== X-Received: by 2002:a05:620a:4455:: with SMTP id w21mr12251340qkp.140.1635850776694; Tue, 02 Nov 2021 03:59:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 02/12] hw/arm: Add Nuvoton SD module to board Date: Tue, 2 Nov 2021 06:59:24 -0400 Message-Id: <20211102105934.214596-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::736; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x736.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hao Wu , Tyrone Ting , Shengtan Mao , Chris Rauer , Peter Maydell Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635851000381100001 Content-Type: text/plain; charset="utf-8" From: Shengtan Mao Signed-off-by: Shengtan Mao Signed-off-by: Hao Wu Reviewed-by: Hao Wu Reviewed-by: Chris Rauer Reviewed-by: Tyrone Ting Reviewed-by: Peter Maydell Message-Id: <20211008002628.1958285-3-wuhaotsh@google.com> Signed-off-by: Richard Henderson --- include/hw/arm/npcm7xx.h | 2 ++ hw/arm/npcm7xx.c | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/include/hw/arm/npcm7xx.h b/include/hw/arm/npcm7xx.h index 61ecc57ab9..ce593235d9 100644 --- a/include/hw/arm/npcm7xx.h +++ b/include/hw/arm/npcm7xx.h @@ -35,6 +35,7 @@ #include "hw/usb/hcd-ehci.h" #include "hw/usb/hcd-ohci.h" #include "target/arm/cpu.h" +#include "hw/sd/npcm7xx_sdhci.h" =20 #define NPCM7XX_MAX_NUM_CPUS (2) =20 @@ -103,6 +104,7 @@ typedef struct NPCM7xxState { OHCISysBusState ohci; NPCM7xxFIUState fiu[2]; NPCM7xxEMCState emc[2]; + NPCM7xxSDHCIState mmc; } NPCM7xxState; =20 #define TYPE_NPCM7XX "npcm7xx" diff --git a/hw/arm/npcm7xx.c b/hw/arm/npcm7xx.c index 2ab0080e0b..878c2208e0 100644 --- a/hw/arm/npcm7xx.c +++ b/hw/arm/npcm7xx.c @@ -63,6 +63,8 @@ #define NPCM7XX_ROM_BA (0xffff0000) #define NPCM7XX_ROM_SZ (64 * KiB) =20 +/* SDHCI Modules */ +#define NPCM7XX_MMC_BA (0xf0842000) =20 /* Clock configuration values to be fixed up when bypassing bootloader */ =20 @@ -83,6 +85,7 @@ enum NPCM7xxInterrupt { NPCM7XX_UART3_IRQ, NPCM7XX_EMC1RX_IRQ =3D 15, NPCM7XX_EMC1TX_IRQ, + NPCM7XX_MMC_IRQ =3D 26, NPCM7XX_TIMER0_IRQ =3D 32, /* Timer Module 0 */ NPCM7XX_TIMER1_IRQ, NPCM7XX_TIMER2_IRQ, @@ -443,6 +446,8 @@ static void npcm7xx_init(Object *obj) for (i =3D 0; i < ARRAY_SIZE(s->emc); i++) { object_initialize_child(obj, "emc[*]", &s->emc[i], TYPE_NPCM7XX_EM= C); } + + object_initialize_child(obj, "mmc", &s->mmc, TYPE_NPCM7XX_SDHCI); } =20 static void npcm7xx_realize(DeviceState *dev, Error **errp) @@ -707,6 +712,12 @@ static void npcm7xx_realize(DeviceState *dev, Error **= errp) &error_abort); memory_region_add_subregion(get_system_memory(), NPCM7XX_ROM_BA, &s->i= rom); =20 + /* SDHCI */ + sysbus_realize(SYS_BUS_DEVICE(&s->mmc), &error_abort); + sysbus_mmio_map(SYS_BUS_DEVICE(&s->mmc), 0, NPCM7XX_MMC_BA); + sysbus_connect_irq(SYS_BUS_DEVICE(&s->mmc), 0, + npcm7xx_irq(s, NPCM7XX_MMC_IRQ)); + create_unimplemented_device("npcm7xx.shm", 0xc0001000, 4 * = KiB); create_unimplemented_device("npcm7xx.vdmx", 0xe0800000, 4 * = KiB); create_unimplemented_device("npcm7xx.pcierc", 0xe1000000, 64 * = KiB); @@ -736,7 +747,6 @@ static void npcm7xx_realize(DeviceState *dev, Error **e= rrp) create_unimplemented_device("npcm7xx.usbd[8]", 0xf0838000, 4 * = KiB); create_unimplemented_device("npcm7xx.usbd[9]", 0xf0839000, 4 * = KiB); create_unimplemented_device("npcm7xx.sd", 0xf0840000, 8 * = KiB); - create_unimplemented_device("npcm7xx.mmc", 0xf0842000, 8 * = KiB); create_unimplemented_device("npcm7xx.pcimbx", 0xf0848000, 512 * = KiB); create_unimplemented_device("npcm7xx.aes", 0xf0858000, 4 * = KiB); create_unimplemented_device("npcm7xx.des", 0xf0859000, 4 * = KiB); --=20 2.25.1 From nobody Mon Feb 9 21:40:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851225874484.25937817553574; Tue, 2 Nov 2021 04:07:05 -0700 (PDT) Received: from localhost ([::1]:42360 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrdA-0001G5-Rh for importer@patchew.org; Tue, 02 Nov 2021 07:07:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40858) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW0-0007Ko-Tv for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:40 -0400 Received: from mail-qv1-xf35.google.com ([2607:f8b0:4864:20::f35]:39435) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrVy-0006qu-6q for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:40 -0400 Received: by mail-qv1-xf35.google.com with SMTP id k29so13000022qve.6 for ; Tue, 02 Nov 2021 03:59:37 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=CLouTaodPxEP08iPvDZkl4yjeSN0JJ+7RsZ1lYxtnnA=; b=udCD3SO4jUmgz+y/9Vje7uguJ0g42ikO7p9VGEXg43kT0HZT07xfVd+1HFcQhUNtjv TnaqYkeK58EJ2neZhbcTjKC0SdFSaPYhv4FRbj3VfWg0a04FfFD8r4TpZiihFOt0/fy8 iAPKE0p8iP67qW0/Sm1MOPAAQyX77AfubBv6FsBKGfUy0pIGfpyprwMWt6jDvDDyneAM CBcY6RyBYGh2ErRoc/2Lu3simN7zwTTMrgKxeNBvEr8L+yaF0P2lWQyndNvmloqtA/zs Jj4Wf6oDLSzKqcjC+cqVT4sTz/f62j7XZ7eim/dS6+hcxYBCnlJ75o1gBKp7FTKn0f0O EvAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=CLouTaodPxEP08iPvDZkl4yjeSN0JJ+7RsZ1lYxtnnA=; b=zCHqair+79YSLwd39nY0sJxasxZL/gUQhe1NSAvjoDjHN5WW6OomxTbPPMYt2EnLqB fdjnBUuxGaUiN3uKV2YGyTObvRFXFJ+AHdToKSlEdaZqgY9wwlAxw10j4NYY1AlZBhvJ cCK6VRGjx8ycz7TNpLq40PPdhNorC5tW1ID9hB96SXl2iX4kuqfZMxAte0E6AEnWczqH IZHCBH6lg3/ZncQWJr8QrmRwmfVwVRgCWEhaMoNosKdgIrPNoIW47IsjjdpqS1g+mKM8 ZjVZI0oMGBWYIocWiaqo1Hdjw1fqH1J1tt04emx2CKv1AJK4IXlWuydjS6CDgaXH0qPg BnnA== X-Gm-Message-State: AOAM533EAVzEpFmdeLVkbx3ILrn+5UdQbkNDNpVP/hIaac5zgjy0Fpor /N5od9c52PWac2HuImDBxxGTAJxNpaB+bg== X-Google-Smtp-Source: ABdhPJyvQuiNa9+ksesrJRD+np1HJvRvKdMeHMWcLS2HARq0EMYv3t3hG3Roh5Yhu5UI+HFKYbB12w== X-Received: by 2002:a05:6214:129:: with SMTP id w9mr14626249qvs.22.1635850777424; Tue, 02 Nov 2021 03:59:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 03/12] hw/arm: Attach MMC to quanta-gbs-bmc Date: Tue, 2 Nov 2021 06:59:25 -0400 Message-Id: <20211102105934.214596-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::f35; envelope-from=richard.henderson@linaro.org; helo=mail-qv1-xf35.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hao Wu , Tyrone Ting , Shengtan Mao , Peter Maydell Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635851228340100001 Content-Type: text/plain; charset="utf-8" From: Shengtan Mao Signed-off-by: Shengtan Mao Signed-off-by: Hao Wu Reviewed-by: Hao Wu Reviewed-by: Tyrone Ting Reviewed-by: Peter Maydell Message-Id: <20211008002628.1958285-4-wuhaotsh@google.com> Signed-off-by: Richard Henderson --- hw/arm/npcm7xx_boards.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/hw/arm/npcm7xx_boards.c b/hw/arm/npcm7xx_boards.c index a656169f61..dec7d16ae5 100644 --- a/hw/arm/npcm7xx_boards.c +++ b/hw/arm/npcm7xx_boards.c @@ -27,6 +27,9 @@ #include "qemu-common.h" #include "qemu/datadir.h" #include "qemu/units.h" +#include "sysemu/blockdev.h" +#include "sysemu/sysemu.h" +#include "sysemu/block-backend.h" =20 #define NPCM750_EVB_POWER_ON_STRAPS 0x00001ff7 #define QUANTA_GSJ_POWER_ON_STRAPS 0x00001fff @@ -81,6 +84,22 @@ static void npcm7xx_connect_dram(NPCM7xxState *soc, Memo= ryRegion *dram) &error_abort); } =20 +static void sdhci_attach_drive(SDHCIState *sdhci) +{ + DriveInfo *di =3D drive_get_next(IF_SD); + BlockBackend *blk =3D di ? blk_by_legacy_dinfo(di) : NULL; + + BusState *bus =3D qdev_get_child_bus(DEVICE(sdhci), "sd-bus"); + if (bus =3D=3D NULL) { + error_report("No SD bus found in SOC object"); + exit(1); + } + + DeviceState *carddev =3D qdev_new(TYPE_SD_CARD); + qdev_prop_set_drive_err(carddev, "drive", blk, &error_fatal); + qdev_realize_and_unref(carddev, bus, &error_fatal); +} + static NPCM7xxState *npcm7xx_create_soc(MachineState *machine, uint32_t hw_straps) { @@ -355,6 +374,7 @@ static void quanta_gbs_init(MachineState *machine) drive_get(IF_MTD, 0, 0)); =20 quanta_gbs_i2c_init(soc); + sdhci_attach_drive(&soc->mmc.sdhci); npcm7xx_load_kernel(machine, soc); } =20 --=20 2.25.1 From nobody Mon Feb 9 21:40:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851169084738.8440345460663; Tue, 2 Nov 2021 04:06:09 -0700 (PDT) Received: from localhost ([::1]:39420 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrcG-0007b2-1V for importer@patchew.org; Tue, 02 Nov 2021 07:06:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40876) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW2-0007Mm-2L for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:42 -0400 Received: from mail-qt1-x835.google.com ([2607:f8b0:4864:20::835]:42503) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrVz-0006r4-VP for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:41 -0400 Received: by mail-qt1-x835.google.com with SMTP id v22so809761qtk.9 for ; Tue, 02 Nov 2021 03:59:38 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5olNar/voJxctGgKV5rYLhEwaLGt/m101tgdSsLT0J8=; b=iXo8DKjfBucclI9t86IravtApnAGcNWoUib2yhBaKXhno4bbiMjAytNyF1vaAbKqcV XEqmEO5OGQ7hlQYqBI4kqa3pc1MJV1zd52TfnZF8T29PipSLipGR9eujSaMLclHAKlrF NTWHmTIL/awZEfeoypipjh87Via0SvJlHpdj71eV7nFp0QRYkQRLQ02KjcCbvLF892T5 /sAnH+WCAI00M1RTEI3AF8vt0UrwsEx/Ba+dQmJl/Q4f+7c+gcrc6A0K9fjuluxy8jQ6 bcUleGSsKuFuancADcenDttF8H+ZRZo56C+ktNcOQCwnm2I/ijAMbXAGIBh41xjJcVmp yWmw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5olNar/voJxctGgKV5rYLhEwaLGt/m101tgdSsLT0J8=; b=q4SZCMGK81KkVkX97BaxEdWehHU9OVjVPt+OL6jbHSYN0VtgB7e5QwD9ccZ+f8/tan R8vuAt8A+D5/SlrtqwDfvAwzgt9g7AmEUNkvhyiQzrP3rgOm/HmlxPYvCrqS8f7JcMLc MvZjjqgEynaEDwZHttBv1xCbRsHvPmei412G+BwBy5pvCKvBg+YYNyIpzbCK8c1M/MXr gFv929TrJ7Udwck+SdQo+v779hxSWGtToH19+UWFgwZpMwVZESNwhikkAEr7AFZJbyeT xHCXB32ktcxJX90ZQupTTNsCsS6gjX4u8yYyZO/UtKjAJiUYEweY0ObhrDVHUgFiYIWS ilgw== X-Gm-Message-State: AOAM5310den1UzPOYlaMIVt0a/a4r895ZSlp7Q1oxIZ6ApDD0u6fYSyD XZZl900Wi2Y8LykDOWg3pdnmmc8LJq4o6Q== X-Google-Smtp-Source: ABdhPJw4WRHwICzM0iDdhcrb8DznynhQ6OUJ5uBGTW5BYEUNTnjSOuLyr/A8Kk2QB7URHOReeQCp5Q== X-Received: by 2002:ac8:5996:: with SMTP id e22mr9678548qte.373.1635850778036; Tue, 02 Nov 2021 03:59:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 04/12] tests/qtest/libqos: add SDHCI commands Date: Tue, 2 Nov 2021 06:59:26 -0400 Message-Id: <20211102105934.214596-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::835; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x835.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hao Wu , Tyrone Ting , Shengtan Mao , Chris Rauer , Peter Maydell Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635851170733100001 Content-Type: text/plain; charset="utf-8" From: Shengtan Mao Signed-off-by: Shengtan Mao Signed-off-by: Hao Wu Reviewed-by: Hao Wu Reviewed-by: Chris Rauer Reviewed-by: Tyrone Ting Reviewed-by: Peter Maydell Message-Id: <20211008002628.1958285-5-wuhaotsh@google.com> Signed-off-by: Richard Henderson --- tests/qtest/libqos/sdhci-cmd.h | 70 ++++++++++++++++++++ tests/qtest/libqos/sdhci-cmd.c | 116 +++++++++++++++++++++++++++++++++ tests/qtest/libqos/meson.build | 1 + 3 files changed, 187 insertions(+) create mode 100644 tests/qtest/libqos/sdhci-cmd.h create mode 100644 tests/qtest/libqos/sdhci-cmd.c diff --git a/tests/qtest/libqos/sdhci-cmd.h b/tests/qtest/libqos/sdhci-cmd.h new file mode 100644 index 0000000000..64763c5a2a --- /dev/null +++ b/tests/qtest/libqos/sdhci-cmd.h @@ -0,0 +1,70 @@ +/* + * MMC Host Controller Commands + * + * Copyright (c) 2021 Google LLC + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WIT= HOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "libqtest.h" + +/* more details at hw/sd/sdhci-internal.h */ +#define SDHC_BLKSIZE 0x04 +#define SDHC_BLKCNT 0x06 +#define SDHC_ARGUMENT 0x08 +#define SDHC_TRNMOD 0x0C +#define SDHC_CMDREG 0x0E +#define SDHC_BDATA 0x20 +#define SDHC_PRNSTS 0x24 +#define SDHC_BLKGAP 0x2A +#define SDHC_CLKCON 0x2C +#define SDHC_SWRST 0x2F +#define SDHC_CAPAB 0x40 +#define SDHC_MAXCURR 0x48 +#define SDHC_HCVER 0xFE + +/* TRNSMOD Reg */ +#define SDHC_TRNS_BLK_CNT_EN 0x0002 +#define SDHC_TRNS_READ 0x0010 +#define SDHC_TRNS_WRITE 0x0000 +#define SDHC_TRNS_MULTI 0x0020 + +/* CMD Reg */ +#define SDHC_CMD_DATA_PRESENT (1 << 5) +#define SDHC_ALL_SEND_CID (2 << 8) +#define SDHC_SEND_RELATIVE_ADDR (3 << 8) +#define SDHC_SELECT_DESELECT_CARD (7 << 8) +#define SDHC_SEND_CSD (9 << 8) +#define SDHC_STOP_TRANSMISSION (12 << 8) +#define SDHC_READ_MULTIPLE_BLOCK (18 << 8) +#define SDHC_WRITE_MULTIPLE_BLOCK (25 << 8) +#define SDHC_APP_CMD (55 << 8) + +/* SWRST Reg */ +#define SDHC_RESET_ALL 0x01 + +/* CLKCTRL Reg */ +#define SDHC_CLOCK_INT_EN 0x0001 +#define SDHC_CLOCK_INT_STABLE 0x0002 +#define SDHC_CLOCK_SDCLK_EN (1 << 2) + +/* Set registers needed to send commands to SD */ +void sdhci_cmd_regs(QTestState *qts, uint64_t base_addr, uint16_t blksize, + uint16_t blkcnt, uint32_t argument, uint16_t trnmod, + uint16_t cmdreg); + +/* Read at most 1 block of SD using non-DMA */ +ssize_t sdhci_read_cmd(QTestState *qts, uint64_t base_addr, char *msg, + size_t count); + +/* Write at most 1 block of SD using non-DMA */ +void sdhci_write_cmd(QTestState *qts, uint64_t base_addr, const char *msg, + size_t count, size_t blksize); diff --git a/tests/qtest/libqos/sdhci-cmd.c b/tests/qtest/libqos/sdhci-cmd.c new file mode 100644 index 0000000000..2d9e518341 --- /dev/null +++ b/tests/qtest/libqos/sdhci-cmd.c @@ -0,0 +1,116 @@ +/* + * MMC Host Controller Commands + * + * Copyright (c) 2021 Google LLC + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WIT= HOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "qemu/osdep.h" +#include "sdhci-cmd.h" +#include "libqtest.h" + +static ssize_t read_fifo(QTestState *qts, uint64_t reg, char *msg, size_t = count) +{ + uint32_t mask =3D 0xff; + size_t index =3D 0; + uint32_t msg_frag; + int size; + while (index < count) { + size =3D count - index; + if (size > 4) { + size =3D 4; + } + msg_frag =3D qtest_readl(qts, reg); + while (size > 0) { + msg[index] =3D msg_frag & mask; + if (msg[index++] =3D=3D 0) { + return index; + } + msg_frag >>=3D 8; + --size; + } + } + return index; +} + +static void write_fifo(QTestState *qts, uint64_t reg, const char *msg, + size_t count) +{ + size_t index =3D 0; + uint32_t msg_frag; + int size; + int frag_i; + while (index < count) { + size =3D count - index; + if (size > 4) { + size =3D 4; + } + msg_frag =3D 0; + frag_i =3D 0; + while (frag_i < size) { + msg_frag |=3D ((uint32_t)msg[index++]) << (frag_i * 8); + ++frag_i; + } + qtest_writel(qts, reg, msg_frag); + } +} + +static void fill_block(QTestState *qts, uint64_t reg, int count) +{ + while (--count >=3D 0) { + qtest_writel(qts, reg, 0); + } +} + +void sdhci_cmd_regs(QTestState *qts, uint64_t base_addr, uint16_t blksize, + uint16_t blkcnt, uint32_t argument, uint16_t trnmod, + uint16_t cmdreg) +{ + qtest_writew(qts, base_addr + SDHC_BLKSIZE, blksize); + qtest_writew(qts, base_addr + SDHC_BLKCNT, blkcnt); + qtest_writel(qts, base_addr + SDHC_ARGUMENT, argument); + qtest_writew(qts, base_addr + SDHC_TRNMOD, trnmod); + qtest_writew(qts, base_addr + SDHC_CMDREG, cmdreg); +} + +ssize_t sdhci_read_cmd(QTestState *qts, uint64_t base_addr, char *msg, + size_t count) +{ + sdhci_cmd_regs(qts, base_addr, count, 1, 0, + SDHC_TRNS_MULTI | SDHC_TRNS_READ | SDHC_TRNS_BLK_CNT_EN, + SDHC_READ_MULTIPLE_BLOCK | SDHC_CMD_DATA_PRESENT); + + /* read sd fifo_buffer */ + ssize_t bytes_read =3D read_fifo(qts, base_addr + SDHC_BDATA, msg, cou= nt); + + sdhci_cmd_regs(qts, base_addr, 0, 0, 0, + SDHC_TRNS_MULTI | SDHC_TRNS_READ | SDHC_TRNS_BLK_CNT_EN, + SDHC_STOP_TRANSMISSION); + + return bytes_read; +} + +void sdhci_write_cmd(QTestState *qts, uint64_t base_addr, const char *msg, + size_t count, size_t blksize) +{ + sdhci_cmd_regs(qts, base_addr, blksize, 1, 0, + SDHC_TRNS_MULTI | SDHC_TRNS_WRITE | SDHC_TRNS_BLK_CNT_E= N, + SDHC_WRITE_MULTIPLE_BLOCK | SDHC_CMD_DATA_PRESENT); + + /* write to sd fifo_buffer */ + write_fifo(qts, base_addr + SDHC_BDATA, msg, count); + fill_block(qts, base_addr + SDHC_BDATA, (blksize - count) / 4); + + sdhci_cmd_regs(qts, base_addr, 0, 0, 0, + SDHC_TRNS_MULTI | SDHC_TRNS_WRITE | SDHC_TRNS_BLK_CNT_E= N, + SDHC_STOP_TRANSMISSION); +} diff --git a/tests/qtest/libqos/meson.build b/tests/qtest/libqos/meson.build index 1f5c8f1053..4af1f04787 100644 --- a/tests/qtest/libqos/meson.build +++ b/tests/qtest/libqos/meson.build @@ -5,6 +5,7 @@ libqos_srcs =3D files('../libqtest.c', 'fw_cfg.c', 'malloc.c', 'libqos.c', + 'sdhci-cmd.c', =20 # spapr 'malloc-spapr.c', --=20 2.25.1 From nobody Mon Feb 9 21:40:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851032258809.4779960111422; Tue, 2 Nov 2021 04:03:52 -0700 (PDT) Received: from localhost ([::1]:60866 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhra3-0002xD-Aq for importer@patchew.org; Tue, 02 Nov 2021 07:03:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40874) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW1-0007Mj-Vz for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:42 -0400 Received: from mail-qv1-xf2f.google.com ([2607:f8b0:4864:20::f2f]:34364) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrVz-0006rD-TQ for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:41 -0400 Received: by mail-qv1-xf2f.google.com with SMTP id i13so497183qvm.1 for ; Tue, 02 Nov 2021 03:59:39 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Q6HNZmGYTbycFPeFxtYkDDBxjYNGXuSc6oSxfpDPpfw=; b=HzTiYXrXDlrijK6UQC32i9x0dktLH7nT0GHXfsWa/oRI5BcRPF3BUZ+T3P0895f/zA mEHWOEQ1NEhNl9cFocEDhNUWUz8KIkL2uBgcSvDqQSmiCSjMlYPsC36GJAuc1KWh0BsL NsZ3cY8khirldVJ/TRrnFBDPH41Z8JNDmmkAKWc1XdgFWQZrVc7I2GdItwayT0AEjKVV jw8VNFD1Mvneq2dsUK/rIPCHYdP3zGEQRTKzRT3AheBCLBlR7zRFmJnqZdeisSgWjigv gE8KS/wt5kAiKjBTnX6QQVc/1IwfAlEReNSr8kbRq1BsNsanHTb7GHMVu4pranF78fNJ 89rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Q6HNZmGYTbycFPeFxtYkDDBxjYNGXuSc6oSxfpDPpfw=; b=gwMi65TuTcljM6vNGehs2//NMNS/AYMhZzX3El66V9A4nXUw7PB2mHFzaL+zR/5V37 sD8aNGMw3q+z0Tt1W1ea2upyeHa+Y1FXovpbs+cGkoL644iVlxTb5R0cQ4EF1RJOQHLw Z+rgHk6B2V5f2jeuGwC30ABPxe7SOfNlhNr1Fw0q4sb6YjYd6vHfXLgSkekUcDFOFzzJ nBDVYewT6Oct7ucuIvotkI4c3xCn5GyFjzAaqHxkcSCPPkBOj6kmsLh1auVd/L5E47/G K798MFZ5MKe2rUq3tOjTzYXJO3X0ROWi4ve5m5qVeAvdu/L04DugMNSDfj/PX5Fi/YpK D5PA== X-Gm-Message-State: AOAM532t5PWtrTsrzbSO55Qvpf0u1Vw+2fh9/i1CqSl7nlPfx0yBhxCy 39qvtuhA5KOOettmEPVN8I3pf8DoD9mwIg== X-Google-Smtp-Source: ABdhPJwGWoaQwGjHxOTlUZuAHYWmJsTmj0LmgD5OhT8jUH6iFv7Ut0G82e9598T58/gbKjj8t9srcA== X-Received: by 2002:a05:6214:1d2b:: with SMTP id f11mr18926667qvd.7.1635850778982; Tue, 02 Nov 2021 03:59:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 05/12] tests/qtest: add qtests for npcm7xx sdhci Date: Tue, 2 Nov 2021 06:59:27 -0400 Message-Id: <20211102105934.214596-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::f2f; envelope-from=richard.henderson@linaro.org; helo=mail-qv1-xf2f.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Hao Wu , Tyrone Ting , Shengtan Mao , Chris Rauer , Peter Maydell Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635851032874100001 Content-Type: text/plain; charset="utf-8" From: Shengtan Mao Signed-off-by: Shengtan Mao Signed-off-by: Hao Wu Reviewed-by: Hao Wu Reviewed-by: Chris Rauer Reviewed-by: Tyrone Ting Reviewed-by: Peter Maydell Message-Id: <20211008002628.1958285-6-wuhaotsh@google.com> Signed-off-by: Richard Henderson --- tests/qtest/npcm7xx_sdhci-test.c | 209 +++++++++++++++++++++++++++++++ tests/qtest/meson.build | 1 + 2 files changed, 210 insertions(+) create mode 100644 tests/qtest/npcm7xx_sdhci-test.c diff --git a/tests/qtest/npcm7xx_sdhci-test.c b/tests/qtest/npcm7xx_sdhci-t= est.c new file mode 100644 index 0000000000..a6732f657d --- /dev/null +++ b/tests/qtest/npcm7xx_sdhci-test.c @@ -0,0 +1,209 @@ +/* + * QTests for NPCM7xx SD-3.0 / MMC-4.51 Host Controller + * + * Copyright (c) 2021 Google LLC + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WIT= HOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#include "qemu/osdep.h" +#include "hw/sd/npcm7xx_sdhci.h" + +#include "libqos/libqtest.h" +#include "libqtest-single.h" +#include "libqos/sdhci-cmd.h" + +#define NPCM7XX_MMC_BA 0xF0842000 +#define NPCM7XX_BLK_SIZE 512 +#define NPCM7XX_TEST_IMAGE_SIZE (1 << 30) + +static char *sd_path; + +static QTestState *setup_sd_card(void) +{ + QTestState *qts =3D qtest_initf( + "-machine quanta-gbs-bmc " + "-device sd-card,drive=3Ddrive0 " + "-drive id=3Ddrive0,if=3Dnone,file=3D%s,format=3Draw,auto-read-onl= y=3Doff", + sd_path); + + qtest_writew(qts, NPCM7XX_MMC_BA + SDHC_SWRST, SDHC_RESET_ALL); + qtest_writew(qts, NPCM7XX_MMC_BA + SDHC_CLKCON, + SDHC_CLOCK_SDCLK_EN | SDHC_CLOCK_INT_STABLE | + SDHC_CLOCK_INT_EN); + sdhci_cmd_regs(qts, NPCM7XX_MMC_BA, 0, 0, 0, 0, SDHC_APP_CMD); + sdhci_cmd_regs(qts, NPCM7XX_MMC_BA, 0, 0, 0x41200000, 0, (41 << 8)); + sdhci_cmd_regs(qts, NPCM7XX_MMC_BA, 0, 0, 0, 0, SDHC_ALL_SEND_CID); + sdhci_cmd_regs(qts, NPCM7XX_MMC_BA, 0, 0, 0, 0, SDHC_SEND_RELATIVE_ADD= R); + sdhci_cmd_regs(qts, NPCM7XX_MMC_BA, 0, 0, 0x45670000, 0, + SDHC_SELECT_DESELECT_CARD); + + return qts; +} + +static void write_sdread(QTestState *qts, const char *msg) +{ + size_t len =3D strlen(msg); + char *rmsg =3D g_malloc(len); + + /* write message to sd */ + int fd =3D open(sd_path, O_WRONLY); + int ret; + + g_assert(fd > 0); + ret =3D write(fd, msg, len); + g_assert(ret =3D=3D len); + ret =3D close(fd); + g_assert(ret =3D=3D 0); + + /* read message using sdhci */ + ret =3D sdhci_read_cmd(qts, NPCM7XX_MMC_BA, rmsg, len); + g_assert(ret =3D=3D len); + g_assert(!strcmp(rmsg, msg)); + + free(rmsg); +} + +/* Check MMC can read values from sd */ +static void test_read_sd(void) +{ + QTestState *qts =3D setup_sd_card(); + + write_sdread(qts, "hello world"); + write_sdread(qts, "goodbye"); + + qtest_quit(qts); +} + +static void sdwrite_read(QTestState *qts, const char *msg) +{ + size_t len =3D strlen(msg); + char *rmsg =3D g_malloc(len); + + /* write message using sdhci */ + sdhci_write_cmd(qts, NPCM7XX_MMC_BA, msg, len, NPCM7XX_BLK_SIZE); + + /* read message from sd */ + int fd =3D open(sd_path, O_RDONLY); + int ret; + + g_assert(fd > 0); + ret =3D read(fd, rmsg, len); + g_assert(ret =3D=3D len); + ret =3D close(fd); + g_assert(ret =3D=3D 0); + + g_assert(!strcmp(rmsg, msg)); + + free(rmsg); +} + +/* Check MMC can write values to sd */ +static void test_write_sd(void) +{ + QTestState *qts =3D setup_sd_card(); + + sdwrite_read(qts, "hello world"); + sdwrite_read(qts, "goodbye"); + + qtest_quit(qts); +} + +/* Check SDHCI has correct default values. */ +static void test_reset(void) +{ + QTestState *qts =3D qtest_init("-machine quanta-gbs-bmc"); + + uint64_t addr =3D NPCM7XX_MMC_BA; + uint64_t end_addr =3D addr + 0x100; + uint16_t prstvals_resets[] =3D {NPCM7XX_PRSTVALS_0_RESET, + NPCM7XX_PRSTVALS_1_RESET, + 0, + NPCM7XX_PRSTVALS_3_RESET, + 0, + 0}; + int i; + uint32_t mask; + while (addr < end_addr) { + switch (addr - NPCM7XX_MMC_BA) { + case SDHC_PRNSTS: + /* ignores bits 20 to 24: they are changed when reading regist= ers */ + mask =3D 0x1f00000; + g_assert_cmphex(qtest_readl(qts, addr) | mask, =3D=3D, + NPCM7XX_PRSNTS_RESET | mask); + addr +=3D 4; + break; + case SDHC_BLKGAP: + g_assert_cmphex(qtest_readb(qts, addr), =3D=3D, NPCM7XX_BLKGAP= _RESET); + addr +=3D 1; + break; + case SDHC_CAPAB: + g_assert_cmphex(qtest_readq(qts, addr), =3D=3D, NPCM7XX_CAPAB_= RESET); + addr +=3D 8; + break; + case SDHC_MAXCURR: + g_assert_cmphex(qtest_readq(qts, addr), =3D=3D, NPCM7XX_MAXCUR= R_RESET); + addr +=3D 8; + break; + case SDHC_HCVER: + g_assert_cmphex(qtest_readw(qts, addr), =3D=3D, NPCM7XX_HCVER_= RESET); + addr +=3D 2; + break; + case NPCM7XX_PRSTVALS: + for (i =3D 0; i < NPCM7XX_PRSTVALS_SIZE; ++i) { + g_assert_cmphex(qtest_readw(qts, addr + 2 * i), =3D=3D, + prstvals_resets[i]); + } + addr +=3D NPCM7XX_PRSTVALS_SIZE * 2; + break; + default: + g_assert_cmphex(qtest_readb(qts, addr), =3D=3D, 0); + addr +=3D 1; + } + } + + qtest_quit(qts); +} + +static void drive_destroy(void) +{ + unlink(sd_path); + g_free(sd_path); +} + +static void drive_create(void) +{ + int fd, ret; + + sd_path =3D g_strdup("/tmp/qtest_npcm7xx_sdhci.XXXXXX"); + /* Create a temporary raw image */ + fd =3D mkstemp(sd_path); + g_assert_cmpint(fd, >=3D, 0); + ret =3D ftruncate(fd, NPCM7XX_TEST_IMAGE_SIZE); + g_assert_cmpint(ret, =3D=3D, 0); + g_message("%s", sd_path); + close(fd); +} + +int main(int argc, char **argv) +{ + drive_create(); + + g_test_init(&argc, &argv, NULL); + + qtest_add_func("npcm7xx_sdhci/reset", test_reset); + qtest_add_func("npcm7xx_sdhci/write_sd", test_write_sd); + qtest_add_func("npcm7xx_sdhci/read_sd", test_read_sd); + + int ret =3D g_test_run(); + drive_destroy(); + return ret; +} diff --git a/tests/qtest/meson.build b/tests/qtest/meson.build index c9d8458062..84fa391229 100644 --- a/tests/qtest/meson.build +++ b/tests/qtest/meson.build @@ -157,6 +157,7 @@ qtests_npcm7xx =3D \ 'npcm7xx_gpio-test', 'npcm7xx_pwm-test', 'npcm7xx_rng-test', + 'npcm7xx_sdhci-test', 'npcm7xx_smbus-test', 'npcm7xx_timer-test', 'npcm7xx_watchdog_timer-test'] + \ --=20 2.25.1 From nobody Mon Feb 9 21:40:29 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1635851166; cv=none; d=zohomail.com; s=zohoarc; b=aDEdpJ6CtzmG6SIC3ER+2vl20v36N9wVx0n34aKN0NxI3bWGeVIvHtWb20GEHrxTPeQVdRKfq6aUsu8f0kK7AFUYpU5TcqkpSpxlVNI7FYu75b/9wS4nkPENWaOkmryPPfgYPASqU3gtWUc4tnfb43IRSgu1l3NFoCLIZvNgwA4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635851166; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4iN+wCNn39PyCmqyIu9fXyF1t2chc7mKLTiK8TWZaXs=; b=Hyv9D6yfUxwRDx89OYtdFojQNCgLr4GvPT5LgeTI3JrTAReODxBE3qvVhfDk5xB1F9zywCypOCvYgzN/Jea2i1QsQZNwqgjl6xJYiqTgbcBPWPc7MIj/mF8EQ4qMLfvWIAcC1oISkLdjC0JYKXHug/h4JwPry9g96ZcKp9rE/RQ= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851166525764.589390780331; Tue, 2 Nov 2021 04:06:06 -0700 (PDT) Received: from localhost ([::1]:39172 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrcD-0007Qr-I5 for importer@patchew.org; Tue, 02 Nov 2021 07:06:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40932) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW4-0007VU-2n for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:44 -0400 Received: from mail-qt1-x833.google.com ([2607:f8b0:4864:20::833]:33450) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrW2-0006rQ-3l for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:43 -0400 Received: by mail-qt1-x833.google.com with SMTP id h16so14018333qtk.0 for ; Tue, 02 Nov 2021 03:59:40 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=4iN+wCNn39PyCmqyIu9fXyF1t2chc7mKLTiK8TWZaXs=; b=Rmrgg8GUf+8rtUpNAlHRceo2G4oWGcF6zrWd1cN/UVsWM8cV+/EkczEfKxoO98q4/7 mqCQTvW9oLMdY18Rk+P2iuf2a16OSpj7TqE4puOl4zxX7kVEKuWq/pZgwXOUbUREHZT/ ve2TqIk7+0u+kCw2S/prmqtMX+uyeVQQS1I9rzLTNVjm089wLmd/G8njAbBbW5s7rmrg hjUbPMXsJDshCW1wCbPiaoIg53RUjyLD9bbP1FqgbwrR4rOm9nyYuQfRRllRXoMmn1XB 2j9cnW7yIcAf0SOzKm0gNGRBmGLpAjg1qU3toaHukL/fmFD6YkfBq6I+187PwHWqz+QZ UWVQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=4iN+wCNn39PyCmqyIu9fXyF1t2chc7mKLTiK8TWZaXs=; b=JX75X5WPZoR9EYCIc8gOefZjd8KaObGuObQJ0VDKVXJp+XbvLVqe3JrMyC5KX27ksC s7N86uRdJQWB/jF0j9Mq53XnblmyCMEf60bB4mHd8zfgeV4jfD/YQhJwlrnInMtLnmPu e8tUjdXIQsAZkaIM7mcJA63iyqewbNkldFsNvuZy0OnMy7AsCqsd/EBHLFLOPe7t5DqV 1hf0oHtz1QQDVV2EcinDODIuMjTtIEjlkuOYgskvfaqfqWBqRLK9zxDECtd/EtuNmaBE ghRfvcBO01oKX4Rx5sl52yENbrBNeKCPHn8+FE0sgRUkqS4Wk0L9xPPlr7qh64/wsTlX KsBw== X-Gm-Message-State: AOAM530R2IXmgDGsj3kNs/Wf9E1QdIx0r2l8zCr4oI+KHfPgkEY+o3zF X0XNzf68Fgpq3qnMafCPovQm85RPaye2Ww== X-Google-Smtp-Source: ABdhPJw94t1wIFmqKFf1yTS4tgJyTpt9dWdPoHOnp8uQuqGi27FYzs6mYeLORsl7vpSBGqtCzo+zkA== X-Received: by 2002:ac8:5c08:: with SMTP id i8mr37226021qti.181.1635850780141; Tue, 02 Nov 2021 03:59:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 06/12] target/arm: Advertise MVE to gdb when present Date: Tue, 2 Nov 2021 06:59:28 -0400 Message-Id: <20211102105934.214596-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::833; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x833.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1635851168371100001 From: Peter Maydell Cortex-M CPUs with MVE should advertise this fact to gdb, using the org.gnu.gdb.arm.m-profile-mve XML feature, which defines the VPR register. Presence of this feature also tells gdb to create pseudo-registers Q0..Q7, so we do not need to tell gdb about them separately. Note that unless you have a very recent GDB that includes this fix: http://patches-tcwg.linaro.org/patch/58133/ gdb will mis-print the individual fields of the VPR register as zero (but showing the whole thing as hex, eg with "print /x $vpr" will give the correct value). Signed-off-by: Peter Maydell Reviewed-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20211101160814.5103-1-peter.maydell@linaro.org> Signed-off-by: Richard Henderson --- configs/targets/aarch64-softmmu.mak | 2 +- configs/targets/arm-linux-user.mak | 2 +- configs/targets/arm-softmmu.mak | 2 +- configs/targets/armeb-linux-user.mak | 2 +- target/arm/gdbstub.c | 25 +++++++++++++++++++++++++ gdb-xml/arm-m-profile-mve.xml | 19 +++++++++++++++++++ 6 files changed, 48 insertions(+), 4 deletions(-) create mode 100644 gdb-xml/arm-m-profile-mve.xml diff --git a/configs/targets/aarch64-softmmu.mak b/configs/targets/aarch64-= softmmu.mak index 13d40b55e6..d489e6da83 100644 --- a/configs/targets/aarch64-softmmu.mak +++ b/configs/targets/aarch64-softmmu.mak @@ -1,5 +1,5 @@ TARGET_ARCH=3Daarch64 TARGET_BASE_ARCH=3Darm TARGET_SUPPORTS_MTTCG=3Dy -TARGET_XML_FILES=3D gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-x= ml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sy= sregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml +TARGET_XML_FILES=3D gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-x= ml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sy= sregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-prof= ile-mve.xml TARGET_NEED_FDT=3Dy diff --git a/configs/targets/arm-linux-user.mak b/configs/targets/arm-linux= -user.mak index acecc339e3..3e10d6b15d 100644 --- a/configs/targets/arm-linux-user.mak +++ b/configs/targets/arm-linux-user.mak @@ -1,6 +1,6 @@ TARGET_ARCH=3Darm TARGET_SYSTBL_ABI=3Dcommon,oabi TARGET_SYSTBL=3Dsyscall.tbl -TARGET_XML_FILES=3D gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-v= fp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-prof= ile.xml +TARGET_XML_FILES=3D gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-v= fp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-prof= ile.xml gdb-xml/arm-m-profile-mve.xml TARGET_HAS_BFLT=3Dy CONFIG_ARM_COMPATIBLE_SEMIHOSTING=3Dy diff --git a/configs/targets/arm-softmmu.mak b/configs/targets/arm-softmmu.= mak index f6c95ba07a..92c8349b96 100644 --- a/configs/targets/arm-softmmu.mak +++ b/configs/targets/arm-softmmu.mak @@ -1,4 +1,4 @@ TARGET_ARCH=3Darm TARGET_SUPPORTS_MTTCG=3Dy -TARGET_XML_FILES=3D gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-v= fp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-prof= ile.xml +TARGET_XML_FILES=3D gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-v= fp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-prof= ile.xml gdb-xml/arm-m-profile-mve.xml TARGET_NEED_FDT=3Dy diff --git a/configs/targets/armeb-linux-user.mak b/configs/targets/armeb-l= inux-user.mak index 662c73d8fb..f81e5bf1fe 100644 --- a/configs/targets/armeb-linux-user.mak +++ b/configs/targets/armeb-linux-user.mak @@ -2,6 +2,6 @@ TARGET_ARCH=3Darm TARGET_SYSTBL_ABI=3Dcommon,oabi TARGET_SYSTBL=3Dsyscall.tbl TARGET_WORDS_BIGENDIAN=3Dy -TARGET_XML_FILES=3D gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-v= fp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-prof= ile.xml +TARGET_XML_FILES=3D gdb-xml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-v= fp3.xml gdb-xml/arm-vfp-sysregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-prof= ile.xml gdb-xml/arm-m-profile-mve.xml TARGET_HAS_BFLT=3Dy CONFIG_ARM_COMPATIBLE_SEMIHOSTING=3Dy diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index e0dcb33e32..134da0d0ae 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -199,6 +199,27 @@ static int vfp_gdb_set_sysreg(CPUARMState *env, uint8_= t *buf, int reg) return 0; } =20 +static int mve_gdb_get_reg(CPUARMState *env, GByteArray *buf, int reg) +{ + switch (reg) { + case 0: + return gdb_get_reg32(buf, env->v7m.vpr); + default: + return 0; + } +} + +static int mve_gdb_set_reg(CPUARMState *env, uint8_t *buf, int reg) +{ + switch (reg) { + case 0: + env->v7m.vpr =3D ldl_p(buf); + return 4; + default: + return 0; + } +} + /** * arm_get/set_gdb_*: get/set a gdb register * @env: the CPU state @@ -468,6 +489,10 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cp= u) 2, "arm-vfp-sysregs.xml", 0); } } + if (cpu_isar_feature(aa32_mve, cpu)) { + gdb_register_coprocessor(cs, mve_gdb_get_reg, mve_gdb_set_reg, + 1, "arm-m-profile-mve.xml", 0); + } gdb_register_coprocessor(cs, arm_gdb_get_sysreg, arm_gdb_set_sysreg, arm_gen_dynamic_sysreg_xml(cs, cs->gdb_num_re= gs), "system-registers.xml", 0); diff --git a/gdb-xml/arm-m-profile-mve.xml b/gdb-xml/arm-m-profile-mve.xml new file mode 100644 index 0000000000..cba664c4c5 --- /dev/null +++ b/gdb-xml/arm-m-profile-mve.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + --=20 2.25.1 From nobody Mon Feb 9 21:40:29 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1635851428; cv=none; d=zohomail.com; s=zohoarc; b=HgEkYj+y4iDOXjPi4uPqgnrdWuCszR931KNTHjL8fq5eecmkQH8oBzujQvNFMQXPAwb9cKuCjxLEuxJ8cc7V5Qh+7mzhR4J0Pnz80eoYOd4OmWSVBsiXpjTvGGCaDWLFLArRoY3GsjMB7cBQfD0O30a7f/4tvz0/XBvc4GHp++4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635851428; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5cdNvFSJ5wR7JnuiQcjHWFGJQar8vceYVcWEUN+hvfs=; b=YAr0ZajM9Ri3cH8uDurXq2AS4dyS1lnwAoHlaTGYwBYovh/0Jd/3hZRC1d+ToeCU9gxfwGaO+CRlzNJKdkJgINQZLKQzMhvZqw9ouMGH1tvTsLCUZWIEfOqNEw+2/BkzXSh/UxDsyy9nPlhOTL27BSBdCkH4UJ/U0R4Qy7oESx0= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851428178110.51717203547298; Tue, 2 Nov 2021 04:10:28 -0700 (PDT) Received: from localhost ([::1]:50050 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrgR-00070R-89 for importer@patchew.org; Tue, 02 Nov 2021 07:10:27 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40910) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW3-0007RL-5Y for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:43 -0400 Received: from mail-qk1-x72f.google.com ([2607:f8b0:4864:20::72f]:36501) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrW1-0006ra-Pq for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:42 -0400 Received: by mail-qk1-x72f.google.com with SMTP id i9so18667574qki.3 for ; Tue, 02 Nov 2021 03:59:41 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5cdNvFSJ5wR7JnuiQcjHWFGJQar8vceYVcWEUN+hvfs=; b=R0N4J02AVwpi3erHg6YVQNU7idMdJURf9oPGwOVBoRYJkR7ib0fRaMv3Jxm/S3btl2 08J2ck3z39XEG9IedTqo11liSEbYNfAM5gGuQvbf0NiH42LVXlBOGt5wWESzOGAbD9KC ZlboyfRnueLfqQz7JWYb9CUllw09lHr5N15jR2gEvvQcKkYZiNeIlWfiNmYZrBeKRPSB wTmXrF2XkJt0WqsGgAZOgoNf6mwoLGMqYP7PWUW3Jn97w4FV5lzxCLcOy0fPfFGL//9t is1muJFCq7osFjoKB7xIT8MVb5SvktQ/R/HXhmUFy3PEw7LySBE2DUH+JKTRvk/WA8lP zN1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5cdNvFSJ5wR7JnuiQcjHWFGJQar8vceYVcWEUN+hvfs=; b=ctegOxrQcDhmoAfwJnY/rUkwYEruxh+HoYWOu8yvmHJxyRkdynbih2falxU7tZhoc6 yD0p7rqnrSIvgkFWOzoLrtTO+VCn2lWQIHCbiA4vn8/emp7BTGPY9BrVtlYKf8eppFsB nxxlAPHbebRPBX2jVHiEs5AsoVLp60fh6JHfdla2ANdTkqafWHaLTtBauN6vK91BTXti Pr6XxYhSmjhvsnm3lKHpgz5BKWTYnnjSgGSbmH1qEvs9kLFc1ejJDtPiUw7WXYuWVkcK CMbYNt7FzP0trLJvrfs4w0KWLF8PPAqlRB+3zHOqux/uKgQri0tFqaYEXfEJ0ZHcZrul ogDA== X-Gm-Message-State: AOAM533BIfZesg2q6qtMWeMud5cG3646Frs9XFTrfkGLMYF8Jy/1brwH 6PdSGG7VVQtx2L2559SAmhZAzUxwbhI0Hg== X-Google-Smtp-Source: ABdhPJyJTWqX0tkg7zoFxjsYPfDj0cOEoLlkWmmchGwE2oUu7ljM4DMh++641Af3+TLrMYYQjLBe9w== X-Received: by 2002:a05:620a:318e:: with SMTP id bi14mr17284924qkb.439.1635850780883; Tue, 02 Nov 2021 03:59:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 07/12] target/arm: Use tcg_constant_i32() in op_smlad() Date: Tue, 2 Nov 2021 06:59:29 -0400 Message-Id: <20211102105934.214596-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::72f; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72f.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1635851429602100001 From: Philippe Mathieu-Daud=C3=A9 Avoid using a TCG temporary for a read-only constant. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20211029231834.2476117-2-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/arm/translate.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index d6af5b1b03..083a6d6ed7 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -7849,10 +7849,9 @@ static bool op_smlad(DisasContext *s, arg_rrrr *a, b= ool m_swap, bool sub) t3 =3D tcg_temp_new_i32(); tcg_gen_sari_i32(t3, t1, 31); qf =3D load_cpu_field(QF); - one =3D tcg_const_i32(1); + one =3D tcg_constant_i32(1); tcg_gen_movcond_i32(TCG_COND_NE, qf, t2, t3, one, qf); store_cpu_field(qf, QF); - tcg_temp_free_i32(one); tcg_temp_free_i32(t3); tcg_temp_free_i32(t2); } --=20 2.25.1 From nobody Mon Feb 9 21:40:29 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1635851343; cv=none; d=zohomail.com; s=zohoarc; b=DGZ6IaHJU76e3rW71EpwXQ3lU4ltSLFHU/YIFeggJMOLu+Vha7IVUK2mAeCkT165Ev7t/JJvB2Vw7NAIBx9jRe2NsSkEvA37t/rtpPQmVtsNzhRWlCZkvidElYPr0EXhZ0G0fE6EYAwpZ4DVfpL3rE6th/6E/HJCHyEH0upGyVw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635851343; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=kgIAZfpBiG9Bp0aRLB9BDRfUW43JbXvDwVrmE2eY/v8=; b=UYTeA76AMfZZkN0hlNMd6PSVeGzlfPRQTES6aJi8pUL38LpgYQ4LwhbE3CKG9QzMK7M1iAfupAdEmC+pIOG4ks83EhFf3UKa3ajtc7Q+ApAYqkXR0g5+65n9HYyEiQVOT+uuy36USwmAiJpRcWkea06IA2NycacBo5+HNguExjo= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851343771130.0066919139531; Tue, 2 Nov 2021 04:09:03 -0700 (PDT) Received: from localhost ([::1]:45850 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrf3-0003bM-3z for importer@patchew.org; Tue, 02 Nov 2021 07:09:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40928) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW3-0007Um-SC for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:43 -0400 Received: from mail-qk1-x734.google.com ([2607:f8b0:4864:20::734]:42772) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrW2-0006ri-C7 for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:43 -0400 Received: by mail-qk1-x734.google.com with SMTP id bm28so4082989qkb.9 for ; Tue, 02 Nov 2021 03:59:42 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=kgIAZfpBiG9Bp0aRLB9BDRfUW43JbXvDwVrmE2eY/v8=; b=Z/NV4hhKqW0tOWm77uZhklFGUZzngF+3cAH2rjx1O4hQQZNufFkaxuuSDCSekf/AuP 2XPE2NM1u6OZuMz/gaJ2SrTrO1Xo8ZHX9xw1ZWKHUS40Orgdl7CbiXdDSMcZagKK39Q5 X3h8vXBC6SvXu0GEwbZvxV4q4milYL4pgyah+00DgpXExStFcyu6qjWA+A667rcOFago dqbeC4J9OjD9Fbng4LIhbnQFTBF8VzLBuXx1d+dmZ0G0ZPO3O2z3oZJbj3b0prm/x2Jz 7EqZ66Yx1KJGGMKfj9RrzrLwsyIwjjDDCSv8n09mkW9FARVJPyKSDVLjtkx5nDQvx0jf OlDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=kgIAZfpBiG9Bp0aRLB9BDRfUW43JbXvDwVrmE2eY/v8=; b=SDGc1xWkBjAeEkAfae6z3cbuXd+he+mov2oPbwaHLImbIzT+dcq3HVJKAmtrH0Df1F 3zTwsLxoC7wVTOVN9kZMTUKDii8Kem0Wa/54wxohfHRS/guALdGjRHaa1kOybd8OX+sd 0YTjvZ7c1tmkScI+OMlx4D+o3BX5XCqtUXAN0jmd8UPPnwfef8xniK0Y247JHFvfuGCb NYTUjlgSdzeTY1AhQri8kmM66HJ7ursBvVq3jdjACDEGK1yMqTY+Ts/C9sphGtKD6K5O JEHINe6TyucUxlovrp81Ex7O8giTRgTsdEfFOhjcop2sCtFKqNy2kG+/wtIxPUA40JO2 HSeg== X-Gm-Message-State: AOAM531ULP87tmEIpqe1qLFefSVYDGA8fBls/6E5AgjuB0EPH6pSZ+nu MzQ+oPyceU2OEQQbw9QaWwZ7b31jWWzVNQ== X-Google-Smtp-Source: ABdhPJxba/hCChtj3JW5asj9xBZcZH6U85IDIzSMZ1vwA9Q5JC9aDEYP3Ms+D7cZs36sZIiBxcQ5nQ== X-Received: by 2002:a05:620a:103c:: with SMTP id a28mr12149541qkk.271.1635850781549; Tue, 02 Nov 2021 03:59:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 08/12] target/arm: Introduce store_cpu_field_constant() helper Date: Tue, 2 Nov 2021 06:59:30 -0400 Message-Id: <20211102105934.214596-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::734; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x734.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1635851345415100001 From: Philippe Mathieu-Daud=C3=A9 Similarly to the store_cpu_field() helper which takes a TCG temporary, store its value to the CPUState, introduce the store_cpu_field_constant() helper which store a constant to CPUState (without using any TCG temporary). Suggested-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20211029231834.2476117-3-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/arm/translate-a32.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/arm/translate-a32.h b/target/arm/translate-a32.h index 88f15df60e..17af8dc95a 100644 --- a/target/arm/translate-a32.h +++ b/target/arm/translate-a32.h @@ -70,6 +70,9 @@ static inline void store_cpu_offset(TCGv_i32 var, int off= set) #define store_cpu_field(var, name) \ store_cpu_offset(var, offsetof(CPUARMState, name)) =20 +#define store_cpu_field_constant(val, name) \ + tcg_gen_st_i32(tcg_constant_i32(val), cpu_env, offsetof(CPUARMState, n= ame)) + /* Create a new temporary and set it to the value of a CPU register. */ static inline TCGv_i32 load_reg(DisasContext *s, int reg) { --=20 2.25.1 From nobody Mon Feb 9 21:40:29 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1635851506; cv=none; d=zohomail.com; s=zohoarc; b=RYdqvbKA8VHN2UrTw4k7hmI/uX/BxPO2TCmW2iFDBtROci9YqenxFKpSBQs1m2G1uCt1OLXyFMN7BAOycaXbbh3bz4Mcf4lwOFEPHA4KRsjlScYnQmih7qg2zgi4uD8gcrtRcttx8n+K1pLD6l8enEpyDBvCMMpZHNcc0NMEun8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635851506; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=c0LVKpqK5ZdwRcDR8+puDfp4OkQJywpu1yKfC81QITE=; b=SDSdtSafI7xFZ5xWXwMigdVL3IV0KtLTpKAi+eKYm5P/a0O7CH0QsWBOx0PR8Jn5lmgYUVd6U05Gvu2AXlS1xG5n34tEkSu9XZCcxnsMKVIghzlIVy3Ttj5Ex0dxF5dNGMdJHg4EObXg0Ls6lHO5or94eLFB98aEgB0T5n9BOJE= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851506666454.41238166192227; Tue, 2 Nov 2021 04:11:46 -0700 (PDT) Received: from localhost ([::1]:54596 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrhh-0001fL-NX for importer@patchew.org; Tue, 02 Nov 2021 07:11:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40954) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW4-0007YG-PH for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:44 -0400 Received: from mail-qt1-x829.google.com ([2607:f8b0:4864:20::829]:39909) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrW3-0006rw-5c for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:44 -0400 Received: by mail-qt1-x829.google.com with SMTP id t40so18431844qtc.6 for ; Tue, 02 Nov 2021 03:59:42 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=c0LVKpqK5ZdwRcDR8+puDfp4OkQJywpu1yKfC81QITE=; b=jGy8ufsF9BlJqQg5ys9AI5hUcxHOZlITIFf3AeH1bU+N8OexQ654ptpdWe8L/niPlm c/Gf9rBQu0SYZ+iyraOYbTSnBAd0WU6AKEYuIXjUC9xzAKk9mcTeoImwRoE9dtGMz/fn nLUE865Vnx7Nl8Or34TWpT5D5FVPQaIHVOuTUNyeyx61xqp/UdoznJYTtneciB1lede6 lHK93req04x/itHUPYqC4gpDTd7ynmpMKwEJFMBnd48zXDdgjJwAWMZXMocO+FG+XTjr S5N/RFfqMv0tGg3ao0rYKKe8LUXPQyWu8kRd067DJqgiDT+KBM4EUXZB2mr7/H41+Ti/ L9wQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=c0LVKpqK5ZdwRcDR8+puDfp4OkQJywpu1yKfC81QITE=; b=qkGt5Tb9vJqQJzfWhet8KRsLrNKeDa4AzbOKEv1aIZzcAqMLqjHKtyAqMSpDpvAw3R SbR1GBr/EszJBRVNasgZA76eCh+7Zf5k9yp5mQro9u8GtKLXmkSuiCJAM2XgzXLrEYAB st4tFXXXZoI8z1mxUl7AjIeagOac36SYa2o+32nmXuVG1Bj1UTbHLIDXnQRq5mMGiTzc 25DFkBO6zeuqekQIqKNCCpHsPQckH3eYeQEXiE7VdE8zpTAAFdheoRPmVVSdeKIhf9cm v3NUDScMvG7joaXqZUsbhLIwOFnHwT2oPj9AIVByGOqPuyQYIHmvOBgD1wr0VMaXz0PD qvZw== X-Gm-Message-State: AOAM533TnyPiQVPKI37jk5nzvwz/ZuNvlLEi0idgRk8sf8FTZ2kJ1The uVHtIVaCTR01d6Vez4hHGw1CRvejJ3+LVg== X-Google-Smtp-Source: ABdhPJx5aCK0vIT0S2ce6ZHKmkCh1KdMr2aGpjTRCGyI6OYhOTe2nCrgZUv3XWXwMhRK0TVnA/EDJQ== X-Received: by 2002:ac8:7d52:: with SMTP id h18mr20910290qtb.351.1635850782274; Tue, 02 Nov 2021 03:59:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 09/12] target/arm: Use the constant variant of store_cpu_field() when possible Date: Tue, 2 Nov 2021 06:59:31 -0400 Message-Id: <20211102105934.214596-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::829; envelope-from=richard.henderson@linaro.org; helo=mail-qt1-x829.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1635851508041100001 From: Philippe Mathieu-Daud=C3=A9 When using a constant variable, we can replace the store_cpu_field() call by store_cpu_field_constant() which avoid using TCG temporaries. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20211029231834.2476117-4-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/arm/translate.c | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index 083a6d6ed7..52ba562c96 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -364,8 +364,7 @@ void clear_eci_state(DisasContext *s) * multiple insn executes. */ if (s->eci) { - TCGv_i32 tmp =3D tcg_const_i32(0); - store_cpu_field(tmp, condexec_bits); + store_cpu_field_constant(0, condexec_bits); s->eci =3D 0; } } @@ -740,9 +739,8 @@ void gen_set_condexec(DisasContext *s) { if (s->condexec_mask) { uint32_t val =3D (s->condexec_cond << 4) | (s->condexec_mask >> 1); - TCGv_i32 tmp =3D tcg_temp_new_i32(); - tcg_gen_movi_i32(tmp, val); - store_cpu_field(tmp, condexec_bits); + + store_cpu_field_constant(val, condexec_bits); } } =20 @@ -8362,8 +8360,6 @@ static bool trans_BL(DisasContext *s, arg_i *a) =20 static bool trans_BLX_i(DisasContext *s, arg_BLX_i *a) { - TCGv_i32 tmp; - /* * BLX would be useless on M-profile; the encoding space * is used for other insns from v8.1M onward, and UNDEFs before that. @@ -8377,8 +8373,7 @@ static bool trans_BLX_i(DisasContext *s, arg_BLX_i *a) return false; } tcg_gen_movi_i32(cpu_R[14], s->base.pc_next | s->thumb); - tmp =3D tcg_const_i32(!s->thumb); - store_cpu_field(tmp, thumb); + store_cpu_field_constant(!s->thumb, thumb); gen_jmp(s, (read_pc(s) & ~3) + a->imm); return true; } @@ -8677,7 +8672,6 @@ static bool trans_LCTP(DisasContext *s, arg_LCTP *a) * doesn't cache branch information, all we need to do is reset * FPSCR.LTPSIZE to 4. */ - TCGv_i32 ltpsize; =20 if (!dc_isar_feature(aa32_lob, s) || !dc_isar_feature(aa32_mve, s)) { @@ -8688,8 +8682,7 @@ static bool trans_LCTP(DisasContext *s, arg_LCTP *a) return true; } =20 - ltpsize =3D tcg_const_i32(4); - store_cpu_field(ltpsize, v7m.ltpsize); + store_cpu_field_constant(4, v7m.ltpsize); return true; } =20 @@ -9487,9 +9480,7 @@ static void arm_tr_tb_start(DisasContextBase *dcbase,= CPUState *cpu) /* Reset the conditional execution bits immediately. This avoids complications trying to do it at the end of the block. */ if (dc->condexec_mask || dc->condexec_cond) { - TCGv_i32 tmp =3D tcg_temp_new_i32(); - tcg_gen_movi_i32(tmp, 0); - store_cpu_field(tmp, condexec_bits); + store_cpu_field_constant(0, condexec_bits); } } =20 --=20 2.25.1 From nobody Mon Feb 9 21:40:29 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1635851330; cv=none; d=zohomail.com; s=zohoarc; b=LAFXqGK1p7AEc4jK3HJOM+F/hbTFYYj42XhcUw3t1h9CudtxJSF3ALSDdL9lASzc0NNRv/2sbbeK788VC7W7b6mB08KA8OfAa+v5XEqZ4NVMngqy0h97O8eQ/mm7yzywcO9gdRJ/pfZKTVW1Jcxoku1HoR/jwnzJf1MFXNby82U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635851330; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=j4r+jFmgKYVYNdmx8Xu4OV+7rTClDutKXjKZGGfWtS4=; b=HQjJFLHl8UCyAFhFf53HD3zX3MNIEaXKWRkF7qUbYSbe+waztPueWKGITWhZNGNXX8rv8GvVyg64dTLKCbRMNfCkOShlSVferqMHcwdlVQ7XblNGviwKoW2umqMEp6uRkCK7N0JQm9XOQEqjvVhGuKrqHqYuP8oakRkZEulssBI= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 163585133068328.31288085115216; Tue, 2 Nov 2021 04:08:50 -0700 (PDT) Received: from localhost ([::1]:45560 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrer-0003Q0-AY for importer@patchew.org; Tue, 02 Nov 2021 07:08:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40976) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW5-0007c9-L5 for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:45 -0400 Received: from mail-qk1-x732.google.com ([2607:f8b0:4864:20::732]:45580) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrW4-0006sB-83 for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:45 -0400 Received: by mail-qk1-x732.google.com with SMTP id n15so5700313qkp.12 for ; Tue, 02 Nov 2021 03:59:43 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=j4r+jFmgKYVYNdmx8Xu4OV+7rTClDutKXjKZGGfWtS4=; b=JbLKWpI7lQ6koyQoSFzQMT5yCpPcB2OC46GQooFuveUGjJ3IiC8BWCr53P1vKVNLoh OXFmoeGbclMUXKCg3kh8HG5ou8n3E8FsLKaRk9WMfbHYppPVVM2bJ0j2K/bU0gvoTYb5 rFJUzVA00ySijNs3eZBVIScrulF07BPNYPB4zLe9Pdhr201y34YCHx7RdDy4eWTEFYFJ IIXd0Qx9XwVMFKvI3mdLRD4hRPOaPqz8MtzBsPDsB7wB3MtJeMx8EJHpOf7ytQb4T6kG 5Cy4wtvw65qI8D+kvl2M5r8YaNeHEzEFq/uKni6glAiKDvh52jugunugTgeZnuNO8Kkr VX1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=j4r+jFmgKYVYNdmx8Xu4OV+7rTClDutKXjKZGGfWtS4=; b=fYNLocjzDFPmrqDOYd+uz7B0QD6hHu/NuoBqhx9ZY/6DS+2d+3IA7mYjVxE2DuN332 EnI+GFq+bt0+/cNfTPJHcA+WEn4/SpXg7z0kP+VwvaqBWNMJPUlX3BWL/NKKslrT8xDW HVPvMf5zFgpwS0AibC3ZcrELUKH8ACirXEBVfu+6y9HWR33By9pBu3YSAtmFGOt2A3TT WNmLwYdIBX/m/7ok55FdHtH4ediI288XBs8+XGuBdsv/k4hbkZ0CrORfd51Vh1yuBBZM PMCPbKM4rYeZNjkS8eK0k349MtzYE2LR0W2UJnk4ycYXa6ViX14PFe7jn9w5DES+m+Qf Nwdg== X-Gm-Message-State: AOAM531F24ja7YaSvkyvHB6phVRQ0V3PGqldxcvT16taLycPoLyQqcvk gmxu12RJjnwePBp09aJf39y4aO+J72NRcQ== X-Google-Smtp-Source: ABdhPJxh4eYSZFcShZ0n/cKNc+KRm50ClqvTSI+QS2OpdgxF0LX8ah+pC3ripIt6rjeXgE1sFxrUrQ== X-Received: by 2002:a05:620a:40d6:: with SMTP id g22mr28856807qko.104.1635850782838; Tue, 02 Nov 2021 03:59:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 10/12] target/arm: Use tcg_constant_i64() in do_sat_addsub_64() Date: Tue, 2 Nov 2021 06:59:32 -0400 Message-Id: <20211102105934.214596-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::732; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x732.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1635851331765100001 From: Philippe Mathieu-Daud=C3=A9 The immediate value used for comparison is constant and read-only. Move it to the constant pool. This frees a TCG temporary for unsigned saturation opcodes. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20211029231834.2476117-5-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/arm/translate-sve.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/target/arm/translate-sve.c b/target/arm/translate-sve.c index bc91a64171..76b5fe9f31 100644 --- a/target/arm/translate-sve.c +++ b/target/arm/translate-sve.c @@ -1943,20 +1943,20 @@ static void do_sat_addsub_32(TCGv_i64 reg, TCGv_i64= val, bool u, bool d) static void do_sat_addsub_64(TCGv_i64 reg, TCGv_i64 val, bool u, bool d) { TCGv_i64 t0 =3D tcg_temp_new_i64(); - TCGv_i64 t1 =3D tcg_temp_new_i64(); TCGv_i64 t2; =20 if (u) { if (d) { tcg_gen_sub_i64(t0, reg, val); - tcg_gen_movi_i64(t1, 0); - tcg_gen_movcond_i64(TCG_COND_LTU, reg, reg, val, t1, t0); + t2 =3D tcg_constant_i64(0); + tcg_gen_movcond_i64(TCG_COND_LTU, reg, reg, val, t2, t0); } else { tcg_gen_add_i64(t0, reg, val); - tcg_gen_movi_i64(t1, -1); - tcg_gen_movcond_i64(TCG_COND_LTU, reg, t0, reg, t1, t0); + t2 =3D tcg_constant_i64(-1); + tcg_gen_movcond_i64(TCG_COND_LTU, reg, t0, reg, t2, t0); } } else { + TCGv_i64 t1 =3D tcg_temp_new_i64(); if (d) { /* Detect signed overflow for subtraction. */ tcg_gen_xor_i64(t0, reg, val); @@ -1966,7 +1966,7 @@ static void do_sat_addsub_64(TCGv_i64 reg, TCGv_i64 v= al, bool u, bool d) =20 /* Bound the result. */ tcg_gen_movi_i64(reg, INT64_MIN); - t2 =3D tcg_const_i64(0); + t2 =3D tcg_constant_i64(0); tcg_gen_movcond_i64(TCG_COND_LT, reg, t0, t2, reg, t1); } else { /* Detect signed overflow for addition. */ @@ -1977,13 +1977,12 @@ static void do_sat_addsub_64(TCGv_i64 reg, TCGv_i64= val, bool u, bool d) =20 /* Bound the result. */ tcg_gen_movi_i64(t1, INT64_MAX); - t2 =3D tcg_const_i64(0); + t2 =3D tcg_constant_i64(0); tcg_gen_movcond_i64(TCG_COND_LT, reg, t0, t2, t1, reg); } - tcg_temp_free_i64(t2); + tcg_temp_free_i64(t1); } tcg_temp_free_i64(t0); - tcg_temp_free_i64(t1); } =20 /* Similarly with a vector and a scalar operand. */ --=20 2.25.1 From nobody Mon Feb 9 21:40:29 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=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1635851717; cv=none; d=zohomail.com; s=zohoarc; b=j4YQ/86AE+bal9P5bg80xAbI/vVDzpa65UxyIuyoehkJhv2ono9gXyv9Oze5TS4ZN4YWwSt7GsPTmkflOmFgYLZq/1f+s3j7GjGrJfVf4kzEFfAtNXhQ7as3FktdWaERKP9QYbtLWzXcuOp3BX418CRMJMs44TSKmAkVcWqG54E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1635851717; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=GgIC/L4O3idafA92xVJBzxSWcbdJlwK/CFRWNxE3FH0=; b=OpjWTSN8QM3H9G0Yt5K9Dqh1h/WHfO+JzH+xvZMVA6RZ3Q+nJ17Njw4W495JPGTu0kgIWMY3uPSOAfwIzFdf4MZ/tkL6ECGvkWQLTcg675GC3ZjbHC+0R3t8iWQr62yliUZ3o63m6Ng1ItD74yIBVcIcgl0yckTG9mrrrQyXYoA= 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 lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851717178295.4081791653457; Tue, 2 Nov 2021 04:15:17 -0700 (PDT) Received: from localhost ([::1]:34882 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrl6-0007Q9-5H for importer@patchew.org; Tue, 02 Nov 2021 07:15:16 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40980) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW5-0007dG-VH for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:45 -0400 Received: from mail-qk1-x72b.google.com ([2607:f8b0:4864:20::72b]:42764) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrW4-0006s9-5U for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:45 -0400 Received: by mail-qk1-x72b.google.com with SMTP id bm28so4083040qkb.9 for ; Tue, 02 Nov 2021 03:59:43 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GgIC/L4O3idafA92xVJBzxSWcbdJlwK/CFRWNxE3FH0=; b=FEqC+Re8yKwgdSYWXwuTtz9g4ZrqKR8Xcz/RJooXCLwbHJeTjn9E9YOtNb4+JJTG5Z 9/rd5iv9JdBvc/RkP4/NM7KA6g9ClNXCGSyyl6cp05bX8nb6Qt+GXIzlxRN6tZfSogka aA0JloMinPQ09oRSKgFEU8oNRQFItue5NrLotoSDO0TPXqLjWvVfKIB+XomdA1/8VfRG mrt1c9/dvZ/HkivnWEfyGySGQce/jE/ggFe2bj+V870tbhBlhNhiioyMHF5IhCblMkkK RlyrP83FvS18surWBv/0I0elyykyLO4Ax9IsGxsvrqeV00OvNn+IPXgjoPy3jy/VLPTC p9ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GgIC/L4O3idafA92xVJBzxSWcbdJlwK/CFRWNxE3FH0=; b=1APIcmC1m+KXr09q2GoLPPOTluvIM5/RHd9yhhaJYS9B89UXTebIDPUdqJT5c7hGaE +m5Gp/TMitE6+Wof9CdT2g2v2Tejg2mNUAwZPYbXxGWQkWXztNTZEl0RMe0L2AM71VOA Vh7OGVCJiOhrtgicwx5EVE6IarnCn37L7rllKU8L8WQ6lKFe/4WXMl0MRVEYLpaFwvVb vUUFQiND/cUQ7uHiEr/KYFUqC1m+LI4A0FhdZbKSB2uLEDVU98k84NDg1sqCGb0PtnDd 0YyWyeKjmMXZ9lr+zUUqYoe5UeWbl0njNsh8MN/5TLm5VyaIan/sjTuD7sJYaj1IeNzo pqhw== X-Gm-Message-State: AOAM531ScmqX6uWav3kDlBlu2UBtBZowR+LtxO/G8OSO/gzmt60KAgnG wFWsK1t+qihQiAVy1xoJxfUNtp63kWrInA== X-Google-Smtp-Source: ABdhPJxRdvj75Xec8CegNNxrFNyyuB03ShyBqXN96PafnrnvZOVVMwk5oVvzBjh18TJAboPDUNfCtg== X-Received: by 2002:a05:620a:98e:: with SMTP id x14mr25381468qkx.457.1635850783324; Tue, 02 Nov 2021 03:59:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 11/12] target/arm: Use tcg_constant_i32() in gen_rev16() Date: Tue, 2 Nov 2021 06:59:33 -0400 Message-Id: <20211102105934.214596-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::72b; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72b.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1635851719197100001 From: Philippe Mathieu-Daud=C3=A9 Since the mask is a constant value, use tcg_constant_i32() instead of a TCG temporary. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson Message-Id: <20211029231834.2476117-6-f4bug@amsat.org> Signed-off-by: Richard Henderson --- target/arm/translate.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target/arm/translate.c b/target/arm/translate.c index 52ba562c96..98f5925928 100644 --- a/target/arm/translate.c +++ b/target/arm/translate.c @@ -388,13 +388,12 @@ static void gen_smul_dual(TCGv_i32 a, TCGv_i32 b) void gen_rev16(TCGv_i32 dest, TCGv_i32 var) { TCGv_i32 tmp =3D tcg_temp_new_i32(); - TCGv_i32 mask =3D tcg_const_i32(0x00ff00ff); + TCGv_i32 mask =3D tcg_constant_i32(0x00ff00ff); tcg_gen_shri_i32(tmp, var, 8); tcg_gen_and_i32(tmp, tmp, mask); tcg_gen_and_i32(var, var, mask); tcg_gen_shli_i32(var, var, 8); tcg_gen_or_i32(dest, var, tmp); - tcg_temp_free_i32(mask); tcg_temp_free_i32(tmp); } =20 --=20 2.25.1 From nobody Mon Feb 9 21:40:29 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; 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=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1635851626321431.7762251312729; Tue, 2 Nov 2021 04:13:46 -0700 (PDT) Received: from localhost ([::1]:58716 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mhrjd-0004Pu-8c for importer@patchew.org; Tue, 02 Nov 2021 07:13:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:40984) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mhrW6-0007gR-Ox for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:46 -0400 Received: from mail-qk1-x72e.google.com ([2607:f8b0:4864:20::72e]:34773) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1mhrW4-0006sT-Ux for qemu-devel@nongnu.org; Tue, 02 Nov 2021 06:59:46 -0400 Received: by mail-qk1-x72e.google.com with SMTP id bq14so7728627qkb.1 for ; Tue, 02 Nov 2021 03:59:44 -0700 (PDT) Received: from localhost.localdomain (rrcs-172-254-253-57.nyc.biz.rr.com. [172.254.253.57]) by smtp.gmail.com with ESMTPSA id z26sm11789510qko.13.2021.11.02.03.59.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Nov 2021 03:59:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gjZPVUhejzMPbTovw5hhnqve/TPMZkIYSlSBPY79smc=; b=dQIC3V0q8wJm3Ywz2PK07TZX8Yr/yOPLKJWWVgIdpvZ6Rru1EOJRiC44Q1O0kkSSdW w9dntCvEjj5L/8JvSYh52FFOefch15dj9Un9UQZn0Lt8VuTI6JblFwquzNub2mNYnuBX cPE4lgpDN6rxWp1MmslQevMjviXiECpATr/SaHioKj/+tUUZuVdebPdd4JjkQ8yHAzay SYCJJ8NfTfSNK21URjQXL/cDw/736UZqGL2uz0SfQYDVV8GbpazFxa+VHahBigtqZ3TE JjKoSxIDrdi1gdv/JsmroXF9LN2eSkY8x7szuX+vj7cq0O1zjqZ8utCdAHTCg5xw4U76 Tq0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gjZPVUhejzMPbTovw5hhnqve/TPMZkIYSlSBPY79smc=; b=BxKmrAg6fX/8sEym/tfvtxof8gNhSaErO1vTW8aG2adyxcEyy4skplAQEHFApsDrk7 CNnv3oAOuNaq6WgJCjpWXi51ah89lH5bnsQ2FZKWF6rLe7wUKgkrcD0IVaQVthKnDroA YrgGWsrg7HqdSadNF0zK57bQBbAKO1sRY8yO7JW/4R2gbfxd4CVGt/1aLCspJIWqiD0k mHOg584ZcwT02lUNA6FlyGvSyp9v2ID5nue+27uYNufl3XP7Aw8Hl/3hoRg9yS8TIdE0 tYs9Erbk03p0cgvw84AAfrDbJcAKNDns3rjY6RwzNi6hpq8gTr9zYVhbHrc6Gt5MvH01 BW+Q== X-Gm-Message-State: AOAM532bx/kQC11EXKKKzVdV3AG4eo9+SfSegzZeKg0keZVmcB9NaN51 cccY5k3m2mClwNDTdQXUL1yRfm2Piyci+w== X-Google-Smtp-Source: ABdhPJxRKawp5e9WesErgawKnsmJrc7HW6eKP0BD47K9RdMGiggZ+zfG4ojFO2WJ+EqniyNMI44a3Q== X-Received: by 2002:a05:620a:450b:: with SMTP id t11mr16152091qkp.362.1635850784091; Tue, 02 Nov 2021 03:59:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Subject: [PULL 12/12] hw/arm/virt: Rename default_bus_bypass_iommu Date: Tue, 2 Nov 2021 06:59:34 -0400 Message-Id: <20211102105934.214596-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20211102105934.214596-1-richard.henderson@linaro.org> References: <20211102105934.214596-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::72e; envelope-from=richard.henderson@linaro.org; helo=mail-qk1-x72e.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, 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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jean-Philippe Brucker , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Eric Auger Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1635851627314100001 From: Jean-Philippe Brucker Since commit d8fb7d0969d5 ("vl: switch -M parsing to keyval"), machine parameter definitions cannot use underscores, because keyval_dashify() transforms them to dashes and the parser doesn't find the parameter. This affects option default_bus_bypass_iommu which was introduced in the same release: $ qemu-system-aarch64 -M virt,default_bus_bypass_iommu=3Don qemu-system-aarch64: Property 'virt-6.1-machine.default-bus-bypass-iommu' n= ot found Rename the parameter to "default-bus-bypass-iommu". Passing "default_bus_bypass_iommu" is still valid since the underscore are transformed automatically. Fixes: 6d7a85483a06 ("hw/arm/virt: Add default_bus_bypass_iommu machine opt= ion") Signed-off-by: Jean-Philippe Brucker Tested-by: Eric Auger Reviewed-by: Eric Auger Reviewed-by: Philippe Mathieu-Daud=C3=A9 Message-Id: <20211026093733.2144161-1-jean-philippe@linaro.org> Signed-off-by: Richard Henderson --- hw/arm/virt.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/arm/virt.c b/hw/arm/virt.c index ca433adb5b..369552ad45 100644 --- a/hw/arm/virt.c +++ b/hw/arm/virt.c @@ -2737,10 +2737,10 @@ static void virt_machine_class_init(ObjectClass *oc= , void *data) "Set the IOMMU type. " "Valid values are none and smmuv= 3"); =20 - object_class_property_add_bool(oc, "default_bus_bypass_iommu", + object_class_property_add_bool(oc, "default-bus-bypass-iommu", virt_get_default_bus_bypass_iommu, virt_set_default_bus_bypass_iommu); - object_class_property_set_description(oc, "default_bus_bypass_iommu", + object_class_property_set_description(oc, "default-bus-bypass-iommu", "Set on/off to enable/disable " "bypass_iommu for default root b= us"); =20 --=20 2.25.1