From nobody Sat May 18 05:34:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) client-ip=209.85.221.47; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f47.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1618825418; cv=none; d=zohomail.com; s=zohoarc; b=bmijfwhMs0NR0/U9US8RT0n/3GVKZZBVRUEhTz8YcHPr4GwvRe4bcl6+Jf12mslungHPVnnhQ1Zry78ZWIv74F+0yNeb/2rDXrRg/tetxwe79YgJEWKPhgRj56QHdX+KVt3+gYLtO0zO+IlpHVXEh0BbcTXxLJmU8WhacEC/jIg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618825418; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=v9JqXmP/0u1BAwybxwxkBZqBwyDXMM6e3M5Yn/b7xSA=; b=CtPovwiTZ1RFCqv3smU9h8Tg2HxtWSWXBAecaCnM1XDqCz3pOrF63NR7sKkX755SkxX7aJBNnRp5+RwjxYn1HaEXcbJorZd1WfV62jK/Q6JU92brkZzlQTPFBkVx2X7vkEZQQfIcc4Wm4Tsak0R9F3BBr9dW4rBWxnTKgMVIxIg= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mx.zohomail.com with SMTPS id 1618825418621670.700107060857; Mon, 19 Apr 2021 02:43:38 -0700 (PDT) Received: by mail-wr1-f47.google.com with SMTP id w4so29543135wrt.5 for ; Mon, 19 Apr 2021 02:43:37 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (39.red-81-40-121.staticip.rima-tde.net. [81.40.121.39]) by smtp.gmail.com with ESMTPSA id v185sm19836235wmb.25.2021.04.19.02.43.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 02:43:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=v9JqXmP/0u1BAwybxwxkBZqBwyDXMM6e3M5Yn/b7xSA=; b=tiU7DScooeFxI5pUWFEOOFDcE7lNi68rNl1qL6p1mjNoz3b9msRXmmzMia1XHr2P3j uFUXfjgDeD+8d1nFuHDA9j6966ij0OjnzrLUEDzihBMTCFCgBRdB/zvhxThQIPxFbnZx oAfrZzH3Qpx8P15zHD680GjjMfctYL3sreuuJAbMKpJo5Jb0ehJJqlBpdF2DIZPLed9A TaO5QpJ8z5pIcLj984Wf5KA3nzsYNdCOPZi5Y2cRtEyhRKZlzHPjvh9CR8Cnyx12FnhX ZIKwzdOjgi8N2ZhbcTIQCwaTgARtNs4lYhDHj2zkkEAyMA0oxdgUwfeaQfBJStpItTyi CipQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=v9JqXmP/0u1BAwybxwxkBZqBwyDXMM6e3M5Yn/b7xSA=; b=QmLG8A0yV4HX58mFCilI4wZpWoHfyW+9G6lzs2e3yryeI3zKFzM4jER8QKErxSoelI Qjo35j80Ecfhrsr4uWloejIv1B7Wn9mVLG9qF7ZvJCGY6l8viF/QpLoc8hnKy0ETfghV zL5tzpW5DCIqDeXxHURrvE4zhJT/mQtwkPdGIJER51C+LUSPBDfmoPCvS/zmPDdi/qDU EEljctmk/2Scmg2/yPqIqUqwUo0avf7Si6vcryZWX5mgINeRNOY6LS/ySR9aYi+mCn8x H1uYdrAfm558QTjtwxDoUrAk8YbytcRGzwduFPpj/ZR2XX5ZzEWZVUwwZRq4wAa5t1oT 6gAA== X-Gm-Message-State: AOAM530DlTa92IYEsDAWQ8qoHQhB50Ug8DT7WcNBUKZy73UQgLQgZj8a SHHFckIMiaxZofGV9NOpRaM= X-Google-Smtp-Source: ABdhPJzmQhnoSCxDLRaokvedCgZ2VBGZ/MhU0WZkJXngvnmHp9i13mOz0oqJr8oCssNQ21GoI4hrzQ== X-Received: by 2002:adf:f504:: with SMTP id q4mr13538435wro.304.1618825416767; Mon, 19 Apr 2021 02:43:36 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, qemu-block@nongnu.org, David Edmondson , Richard Henderson , Stephen Checkoway , Peter Xu , Paolo Bonzini Subject: [RFC PATCH v2 1/7] hw/misc: Add device to help managing aliased memory regions Date: Mon, 19 Apr 2021 11:43:23 +0200 Message-Id: <20210419094329.1402767-2-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210419094329.1402767-1-f4bug@amsat.org> References: <20210419094329.1402767-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) // TODO explain here how buses work? when some address lines are // not bound we get memory aliasing, high addresses are masked. // etc... Add a helper to manage this use case easily. For example a having @span_size =3D @region_size / 4 we get such mapping: ^-----------^ | | | | | +-------+ | +---------+ <--+ | | +---------+ | | | | | | | | +-----------> | alias#3 | | | | | | | | | | | +---------+ | | | | +---------+ | | | | | | | | | | +-------> | alias#2 | | | | | | | | |region | container | | | +---------+ | size | | | | +---------+ | | | | | | | | | | | | +----> | alias#1 | | | | | | | | | | | | | | | +---------+ <--+ | | | +-+---+--+--+ +---------+ | | | | | | | | |span | | | | subregion +-> | alias#0 | |size | offset | | | | | | | | +----> | +-------+ | +-----------+ +---------+ <--+ <--+ | | | | | | | | | | | | | | | | ^-----------^ Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- Not really RFC, simply that I'v to add the technical description, but I'd like to know if there could be a possibility to not accept this device (because I missed something) before keeping working on it. So far it is only used in hobbyist boards. Cc: Peter Xu Cc: Paolo Bonzini --- include/hw/misc/aliased_region.h | 87 ++++++++++++++++++++ hw/misc/aliased_region.c | 132 +++++++++++++++++++++++++++++++ MAINTAINERS | 6 ++ hw/misc/Kconfig | 3 + hw/misc/meson.build | 1 + 5 files changed, 229 insertions(+) create mode 100644 include/hw/misc/aliased_region.h create mode 100644 hw/misc/aliased_region.c diff --git a/include/hw/misc/aliased_region.h b/include/hw/misc/aliased_reg= ion.h new file mode 100644 index 00000000000..0ce0d5d1cef --- /dev/null +++ b/include/hw/misc/aliased_region.h @@ -0,0 +1,87 @@ +/* + * Aliased memory regions + * + * Copyright (c) 2018 Philippe Mathieu-Daud=C3=A9 + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef HW_MISC_ALIASED_REGION_H +#define HW_MISC_ALIASED_REGION_H + +#include "exec/memory.h" +#include "hw/sysbus.h" + +#define TYPE_ALIASED_REGION "aliased-memory-region" +OBJECT_DECLARE_SIMPLE_TYPE(AliasedRegionState, ALIASED_REGION) + +struct AliasedRegionState { + /*< private >*/ + SysBusDevice parent_obj; + + /*< public >*/ + MemoryRegion container; + uint64_t region_size; + uint64_t span_size; + MemoryRegion *mr; + + struct { + size_t count; + MemoryRegion *alias; + } mem; +}; + +/** + * memory_region_add_subregion_aliased: + * @container: the #MemoryRegion to contain the aliased subregions. + * @offset: the offset relative to @container where the aliased subregion + * are added. + * @region_size: size of the region containing the aliased subregions. + * @subregion: the subregion to be aliased. + * @span_size: size between each aliased subregion + * + * This utility function creates and maps an instance of aliased-memory-re= gion, + * which is a dummy device of a single region which simply contains multip= le + * aliases of the provided @subregion, spanned over the @region_size every + * @span_size. The device is mapped at @offset within @container. + * + * For example a having @span_size =3D @region_size / 4 we get such mappin= g: + * + * +-----------+ + * | | + * | | + * | +-------+ | +---------+ <--+ + * | | +---------+ | + * | | | | | + * | | +-----------> | alias#3 | | + * | | | | | | + * | | | +---------+ | + * | | | +---------+ | + * | | | | | | + * | | | +-------> | alias#2 | | + * | | | | | | |re= gion + * | container | | | +---------+ | s= ize + * | | | | +---------+ | + * | | | | | | | + * | | | | +----> | alias#1 | | + * | | | | | | | | + * | | | | | +---------+ <--+ | + * | | +-+---+--+--+ +---------+ | | + * | | | | | | |span | + * | | | subregion +-> | alias#0 | |size | + * offset | | | | | | | | + * +----> | +-------+ | +-----------+ +---------+ <--+ <--+ + * | | | + * | | | + * | | | + * | | | + * | | | + * + +-----------+ + */ +void memory_region_add_subregion_aliased(MemoryRegion *container, + hwaddr offset, + uint64_t region_size, + MemoryRegion *subregion, + uint64_t span_size); + +#endif diff --git a/hw/misc/aliased_region.c b/hw/misc/aliased_region.c new file mode 100644 index 00000000000..3132276af29 --- /dev/null +++ b/hw/misc/aliased_region.c @@ -0,0 +1,132 @@ +/* + * Aliased memory regions + * + * Copyright (c) 2018 Philippe Mathieu-Daud=C3=A9 + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/cutils.h" +#include "qapi/error.h" +#include "hw/sysbus.h" +#include "hw/misc/aliased_region.h" +#include "hw/qdev-properties.h" + +static void aliased_mem_realize(AliasedRegionState *s, const char *mr_name) +{ + uint64_t subregion_size; + int subregion_bits; + + memory_region_init(&s->container, OBJECT(s), mr_name, s->region_size); + + subregion_bits =3D 64 - clz64(s->span_size - 1); + s->mem.count =3D s->region_size >> subregion_bits; + assert(s->mem.count > 1); + subregion_size =3D 1ULL << subregion_bits; + + s->mem.alias =3D g_new(MemoryRegion, s->mem.count); + for (size_t i =3D 0; i < s->mem.count; i++) { + g_autofree char *name =3D g_strdup_printf("%s [#%zu/%zu]", + memory_region_name(s->mr), + i, s->mem.count); + memory_region_init_alias(&s->mem.alias[i], OBJECT(s), name, + s->mr, 0, s->span_size); + memory_region_add_subregion(&s->container, i * subregion_size, + &s->mem.alias[i]); + } +} + +static void aliased_mr_realize(DeviceState *dev, Error **errp) +{ + AliasedRegionState *s =3D ALIASED_REGION(dev); + g_autofree char *name =3D NULL, *span =3D NULL; + + if (s->region_size =3D=3D 0) { + error_setg(errp, "property 'region-size' not specified or zero"); + return; + } + + if (s->mr =3D=3D NULL) { + error_setg(errp, "property 'iomem' not specified"); + return; + } + + if (!s->span_size) { + s->span_size =3D pow2ceil(memory_region_size(s->mr)); + } else if (!is_power_of_2(s->span_size)) { + error_setg(errp, "property 'span-size' must be a power of 2"); + return; + } + + span =3D size_to_str(s->span_size); + name =3D g_strdup_printf("masked %s [span of %s]", + memory_region_name(s->mr), span); + aliased_mem_realize(s, name); + sysbus_init_mmio(SYS_BUS_DEVICE(s), &s->container); +} + +static void aliased_mr_unrealize(DeviceState *dev) +{ + AliasedRegionState *s =3D ALIASED_REGION(dev); + + g_free(s->mem.alias); +} + +static Property aliased_mr_properties[] =3D { + DEFINE_PROP_UINT64("region-size", AliasedRegionState, region_size, 0), + DEFINE_PROP_UINT64("span-size", AliasedRegionState, span_size, 0), + DEFINE_PROP_LINK("iomem", AliasedRegionState, mr, + TYPE_MEMORY_REGION, MemoryRegion *), + DEFINE_PROP_END_OF_LIST(), +}; + +static void aliased_mr_class_init(ObjectClass *klass, void *data) +{ + DeviceClass *dc =3D DEVICE_CLASS(klass); + + dc->realize =3D aliased_mr_realize; + dc->unrealize =3D aliased_mr_unrealize; + /* Reason: needs to be wired up to work */ + dc->user_creatable =3D false; + device_class_set_props(dc, aliased_mr_properties); +} + +static const TypeInfo aliased_mr_info =3D { + .name =3D TYPE_ALIASED_REGION, + .parent =3D TYPE_SYS_BUS_DEVICE, + .instance_size =3D sizeof(AliasedRegionState), + .class_init =3D aliased_mr_class_init, +}; + +static void aliased_mr_register_types(void) +{ + type_register_static(&aliased_mr_info); +} + +type_init(aliased_mr_register_types) + +void memory_region_add_subregion_aliased(MemoryRegion *container, + hwaddr offset, + uint64_t region_size, + MemoryRegion *subregion, + uint64_t span_size) +{ + DeviceState *dev; + + if (!region_size) { + region_size =3D pow2ceil(memory_region_size(container)); + } else { + assert(region_size <=3D memory_region_size(container)); + } + + dev =3D qdev_new(TYPE_ALIASED_REGION); + qdev_prop_set_uint64(dev, "region-size", region_size); + qdev_prop_set_uint64(dev, "span-size", span_size); + object_property_set_link(OBJECT(dev), "iomem", OBJECT(subregion), + &error_abort); + sysbus_realize(SYS_BUS_DEVICE(dev), &error_abort); + + memory_region_add_subregion(container, offset, + sysbus_mmio_get_region(SYS_BUS_DEVICE(dev)= , 0)); +} diff --git a/MAINTAINERS b/MAINTAINERS index 36055f14c59..151c342e338 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2095,6 +2095,12 @@ S: Maintained F: include/hw/misc/empty_slot.h F: hw/misc/empty_slot.c =20 +Aliased memory region +M: Philippe Mathieu-Daud=C3=A9 +S: Maintained +F: include/hw/misc/aliased_region.h +F: hw/misc/aliased_region.c + Standard VGA M: Gerd Hoffmann S: Maintained diff --git a/hw/misc/Kconfig b/hw/misc/Kconfig index c71ed258204..ca51b99989e 100644 --- a/hw/misc/Kconfig +++ b/hw/misc/Kconfig @@ -151,6 +151,9 @@ config AUX config UNIMP bool =20 +config ALIASED_REGION + bool + config LED bool =20 diff --git a/hw/misc/meson.build b/hw/misc/meson.build index 21034dc60a8..e65541b835f 100644 --- a/hw/misc/meson.build +++ b/hw/misc/meson.build @@ -12,6 +12,7 @@ softmmu_ss.add(when: 'CONFIG_EMC141X', if_true: files('emc141x.c')) softmmu_ss.add(when: 'CONFIG_UNIMP', if_true: files('unimp.c')) softmmu_ss.add(when: 'CONFIG_EMPTY_SLOT', if_true: files('empty_slot.c')) +softmmu_ss.add(when: 'CONFIG_ALIASED_REGION', if_true: files('aliased_regi= on.c')) softmmu_ss.add(when: 'CONFIG_LED', if_true: files('led.c')) softmmu_ss.add(when: 'CONFIG_PVPANIC_COMMON', if_true: files('pvpanic.c')) =20 --=20 2.26.3 From nobody Sat May 18 05:34:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) client-ip=209.85.221.47; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f47.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1618825423; cv=none; d=zohomail.com; s=zohoarc; b=KlUdaUY9Rg9wuwDcYrKDLuwmaKFlwnBokLOvSbLbiEKqPUnIk1z4n1m8GwqG28E4sWvytnoP2IqWd3uQCr/t3/dilqH9O89GCp55SSXU+LigRnh3+ZuhyLNaDpcjqu66r0YNTugOo1VY1NKC9pZMow7TFINSVJhI1a3epwWFXU8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618825423; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=JtPHGXi9+ZTv4ayRzYeSfqDe3/H34ya16cXAvGHk8ns=; b=jr7B5m5CjaA7elJso417vluW72i6iE/QcovQv4/rNo0ji1QhckMdwBy18kM3ojdaFWt8QyrnJN9u0hOtZ0RGCcO5mZIu/VYKWUF86lB1wk3nlJgf/MNi/JbgllIC/sx+bX+qpGc7HnMzlM2YCadi4tbtN62F2DVjuUkaxe6lrJk= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.47 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) by mx.zohomail.com with SMTPS id 1618825423365708.101296884271; Mon, 19 Apr 2021 02:43:43 -0700 (PDT) Received: by mail-wr1-f47.google.com with SMTP id g9so17249521wrx.0 for ; Mon, 19 Apr 2021 02:43:42 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (39.red-81-40-121.staticip.rima-tde.net. [81.40.121.39]) by smtp.gmail.com with ESMTPSA id i12sm20510138wrm.77.2021.04.19.02.43.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 02:43:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JtPHGXi9+ZTv4ayRzYeSfqDe3/H34ya16cXAvGHk8ns=; b=B3X7/nLQKcvkVPTy6ZAaoTk8LefVhKIvifLMxHhKC1yR30pdWM/E5pv0Y15vJY8Y/A OGm7yQ9tzlDx/VfhmvfKhTnAcwcg3fHKOiklCtJ0nKiJkzMq9PRblY721B5B1lr78omQ Rf6zPPzs+cWSotRJ//eVjGbepATZnRS3kavHx2mOd69gGci1hdPIXn7j+PiZE+zlVR7s zZt0yZHvXEbuUQiwFoICjaE2+cMcJQX0IHXF2P2IVNkX9ojnMa5cntJnPKFGQBKr7ZaJ Pz7e2uFyZCoxunsw6z1fDFuLCrP39PidC+Hn2I7cOgKZW3YyYPxsnmsjBo1uqu9sZqVN 6qLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=JtPHGXi9+ZTv4ayRzYeSfqDe3/H34ya16cXAvGHk8ns=; b=lu3j8pkE3s5dWRQtV0qiVZTeK5d4CQeYyqmAoEa84JLFHbzregwYF6peLCY+VwjwR3 Y4KJA99Y2givUhi3+4fu21caiDdsR7mMvXOIsqEfpwMAlI4zxtmkfFEk54FR0GFhf4en VzW3VC/SSbbPFhKDk45JTDqUAdrmQDghkx9mg2RE42XzyLUscsy4VJtNQw7CGHkXEAAv Y5PUfjRQsmSt85zbOaVu1v0hJWEaeMfR+CeHSv3pNzyl3+f8CeD4nnS+XFB65A2oTtXr z0x53rQEgquhf9320tG5YbsY02jC6kCF2OpfGyKC9wCSb7jcDpZUoxhGkFPxhpPr3txa vlHA== X-Gm-Message-State: AOAM531VWW0aWFFfDBjGGnWtX4D1YkjCYYSS0gdaE0BvkFVQwQki5yzw vic5GMgczLlndYknfzsBjb4= X-Google-Smtp-Source: ABdhPJzSGGgH0VOwusuxbv5aErzxPHvG6k3FVMbwvOpndYD6swr7R85i1z+6jZlKTq2wiYqFEqo3kA== X-Received: by 2002:adf:fcca:: with SMTP id f10mr13683276wrs.148.1618825421710; Mon, 19 Apr 2021 02:43:41 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, qemu-block@nongnu.org, David Edmondson , Richard Henderson , Stephen Checkoway , Jan Kiszka , Peter Maydell Subject: [PATCH v2 2/7] hw/arm/musicpal: Open-code pflash_cfi02_register() call Date: Mon, 19 Apr 2021 11:43:24 +0200 Message-Id: <20210419094329.1402767-3-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210419094329.1402767-1-f4bug@amsat.org> References: <20210419094329.1402767-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) To be able to manually map the flash region on the main memory (in the next commit), first expand the pflash_cfi02_register in place. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- hw/arm/musicpal.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index 9cebece2de0..8b58b66f263 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -10,6 +10,7 @@ */ =20 #include "qemu/osdep.h" +#include "qemu/units.h" #include "qapi/error.h" #include "cpu.h" #include "hw/sysbus.h" @@ -1640,6 +1641,7 @@ static void musicpal_init(MachineState *machine) /* Register flash */ dinfo =3D drive_get(IF_PFLASH, 0, 0); if (dinfo) { + static const size_t sector_size =3D 64 * KiB; BlockBackend *blk =3D blk_by_legacy_dinfo(dinfo); =20 flash_size =3D blk_getlength(blk); @@ -1649,17 +1651,30 @@ static void musicpal_init(MachineState *machine) exit(1); } =20 + dev =3D qdev_new(TYPE_PFLASH_CFI02); + qdev_prop_set_drive(dev, "drive", blk); + qdev_prop_set_uint32(dev, "num-blocks", flash_size / sector_size); + qdev_prop_set_uint32(dev, "sector-length", sector_size); + qdev_prop_set_uint8(dev, "width", 2); /* 16-bit */ + qdev_prop_set_uint8(dev, "mappings", MP_FLASH_SIZE_MAX / flash_siz= e); + qdev_prop_set_uint8(dev, "big-endian", 0); + qdev_prop_set_uint16(dev, "id0", 0x00bf); + qdev_prop_set_uint16(dev, "id1", 0x236d); + qdev_prop_set_uint16(dev, "id2", 0x0000); + qdev_prop_set_uint16(dev, "id3", 0x0000); + qdev_prop_set_uint16(dev, "unlock-addr0", 0x5555); + qdev_prop_set_uint16(dev, "unlock-addr1", 0x2aaa); + qdev_prop_set_string(dev, "name", "musicpal.flash"); + sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, + 0x100000000ULL - MP_FLASH_SIZE_MAX); + /* * The original U-Boot accesses the flash at 0xFE000000 instead of * 0xFF800000 (if there is 8 MB flash). So remap flash access if t= he * image is smaller than 32 MB. */ - pflash_cfi02_register(0x100000000ULL - MP_FLASH_SIZE_MAX, - "musicpal.flash", flash_size, - blk, 0x10000, - MP_FLASH_SIZE_MAX / flash_size, - 2, 0x00BF, 0x236D, 0x0000, 0x0000, - 0x5555, 0x2AAA, 0); } sysbus_create_simple(TYPE_MV88W8618_FLASHCFG, MP_FLASHCFG_BASE, NULL); =20 --=20 2.26.3 From nobody Sat May 18 05:34:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) client-ip=209.85.128.44; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f44.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1618825428; cv=none; d=zohomail.com; s=zohoarc; b=kdQlXgbeinVYM7hlVqHESLFhi5Le2cHIGlkwQzUs0kepNyXENtyJOx/GApa+zK/dPNNfIG0xmdeH+FjfEfr9BI0NihilNWDoAwOMdARawM6xWc4WHKC6iC9gpl7ccyqKf99FDOAMPUbQjR1Fp6idvO7wTnTG4Fuaa22LPqSjq50= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618825428; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=sOI3H+tYEXd1gcKPERk4u/zYCW6lDXvWoG47VXjTEXY=; b=lt4DOdPusUdLALdhMhc6nZLYn0prv5rxCo5C/VEqgaa6nYOHsz9iyTuPa43ilBpefGcFmEqUKxhnulVhcZXKD9lv0D0Tj/EYVJFk85nYdOMYDCUg1Q6maW5l5dANb21jDUUEStPaLINqcgIleDKwR8WzVW6eK+a1xxoMQoafgiI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by mx.zohomail.com with SMTPS id 1618825428179985.8022343241337; Mon, 19 Apr 2021 02:43:48 -0700 (PDT) Received: by mail-wm1-f44.google.com with SMTP id y204so16404534wmg.2 for ; Mon, 19 Apr 2021 02:43:47 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (39.red-81-40-121.staticip.rima-tde.net. [81.40.121.39]) by smtp.gmail.com with ESMTPSA id r2sm21846731wrt.79.2021.04.19.02.43.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 02:43:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sOI3H+tYEXd1gcKPERk4u/zYCW6lDXvWoG47VXjTEXY=; b=nlnMkk1kQt/iKVsv2fedv82/l50YhHkqHpq4NcVZXZjb9K/BsVRpmiu1Q7FID/ftRq nsJb/3wWfDWXRiYkmXdNPGED6hSB0kJQu12Kh7vXs7shdvtli8aGeUSjXbYQCCkuOsda 8HBNVlZ+njCWONPSiuPiiUVsuIqYFEkPseDhncB8Rxu+deCyRDCVvT12lLEA5w1WUa6a QoTUc8sDmol5581JT8sStejNmaNPwIlqUVYcwl6w78Do7WZ7xEDKF0oGASE1+GwdF+wA 1xS9Bg/2HtpwOtS/Btgu+RHPrErgPZCLRJPxW9+BX+YPlq0TF6OVEJMxfqotr6S1Ffhk p9Qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=sOI3H+tYEXd1gcKPERk4u/zYCW6lDXvWoG47VXjTEXY=; b=mI9DkC6UH12jGfb6b9EdzjJiDOidNRtz12eBhHBoZQiLOZF0fhbjDGWBZfdcuf9whJ b8P3nYBU4dFNCrwBtAi9sHYDdSPB6D9loWoD+eUaMRJZmVKWezkQXM2SyTW2H7xwHI/x njq5gyaprmxj59FbgzQZor2ttrulUQhCpTR6IXYmQyJDtwEg6C1m+wdHR9Dw3Zj8hJff P4MHE3Am+J+FVD8Iv+3zFrWQUpQfz5BFCIBCByOPJEMk1fRj/0XJs6fptxSe7ziZ9vmt GW02yrguo3aoDxK0bnoCZAQjZI8KtGmZJQeGV4NWyThyk8sBfBRxNzINH7pJSs+mOKsw X1QA== X-Gm-Message-State: AOAM53360l1Di5FC56rpugVZOZVyMQoHjGw4zSRA/y4g+IzKPQzo66sc SIwR6qHuSeMKLxRXN06HEOE= X-Google-Smtp-Source: ABdhPJw1Epq2rUDC3V7DnelJ5R5sAaZLF+IN1LxQ8SJox/k+vA0nq+QLgNLpKSNlkowF75ER4Tdl0A== X-Received: by 2002:a1c:6241:: with SMTP id w62mr20425567wmb.79.1618825426436; Mon, 19 Apr 2021 02:43:46 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, qemu-block@nongnu.org, David Edmondson , Richard Henderson , Stephen Checkoway , Peter Maydell , Jan Kiszka Subject: [PATCH v2 3/7] hw/arm/musicpal: Map flash using memory_region_add_subregion_aliased() Date: Mon, 19 Apr 2021 11:43:25 +0200 Message-Id: <20210419094329.1402767-4-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210419094329.1402767-1-f4bug@amsat.org> References: <20210419094329.1402767-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Instead of using a device specific feature for mapping the flash memory multiple times over a wider region, use the generic memory_region_add_subregion_aliased() helper. There is no change in the memory layout: - before: (qemu) info mtree 00000000fe000000-00000000ffffffff (prio 0, i/o): pflash 00000000fe000000-00000000fe7fffff (prio 0, romd): alias pflash-alias @m= usicpal.flash 0000000000000000-00000000007fffff 00000000fe800000-00000000feffffff (prio 0, romd): alias pflash-alias @m= usicpal.flash 0000000000000000-00000000007fffff 00000000ff000000-00000000ff7fffff (prio 0, romd): alias pflash-alias @m= usicpal.flash 0000000000000000-00000000007fffff 00000000ff800000-00000000ffffffff (prio 0, romd): alias pflash-alias @m= usicpal.flash 0000000000000000-00000000007fffff - after: 00000000fe000000-00000000ffffffff (prio 0, i/o): masked musicpal.flash [s= pan of 8 MiB] 00000000fe000000-00000000fe7fffff (prio 0, romd): alias musicpal.flash = [#0/4] @musicpal.flash 0000000000000000-00000000007fffff 00000000fe800000-00000000feffffff (prio 0, romd): alias musicpal.flash = [#1/4] @musicpal.flash 0000000000000000-00000000007fffff 00000000ff000000-00000000ff7fffff (prio 0, romd): alias musicpal.flash = [#2/4] @musicpal.flash 0000000000000000-00000000007fffff 00000000ff800000-00000000ffffffff (prio 0, romd): alias musicpal.flash = [#3/4] @musicpal.flash 0000000000000000-00000000007fffff Flatview is the same: (qemu) info mtree -f FlatView #0 AS "memory", root: system AS "cpu-memory-0", root: system AS "emac-dma", root: system Root memory region: system 00000000fe000000-00000000fe7fffff (prio 0, romd): musicpal.flash 00000000fe800000-00000000feffffff (prio 0, romd): musicpal.flash 00000000ff000000-00000000ff7fffff (prio 0, romd): musicpal.flash 00000000ff800000-00000000ffffffff (prio 0, romd): musicpal.flash Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- hw/arm/musicpal.c | 11 +++++++---- hw/arm/Kconfig | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index 8b58b66f263..7d1f2f3fb3f 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -30,6 +30,7 @@ #include "hw/irq.h" #include "hw/or-irq.h" #include "hw/audio/wm8750.h" +#include "hw/misc/aliased_region.h" #include "sysemu/block-backend.h" #include "sysemu/runstate.h" #include "sysemu/dma.h" @@ -1656,7 +1657,7 @@ static void musicpal_init(MachineState *machine) qdev_prop_set_uint32(dev, "num-blocks", flash_size / sector_size); qdev_prop_set_uint32(dev, "sector-length", sector_size); qdev_prop_set_uint8(dev, "width", 2); /* 16-bit */ - qdev_prop_set_uint8(dev, "mappings", MP_FLASH_SIZE_MAX / flash_siz= e); + qdev_prop_set_uint8(dev, "mappings", 0); qdev_prop_set_uint8(dev, "big-endian", 0); qdev_prop_set_uint16(dev, "id0", 0x00bf); qdev_prop_set_uint16(dev, "id1", 0x236d); @@ -1667,14 +1668,16 @@ static void musicpal_init(MachineState *machine) qdev_prop_set_string(dev, "name", "musicpal.flash"); sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); =20 - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, - 0x100000000ULL - MP_FLASH_SIZE_MAX); - /* * The original U-Boot accesses the flash at 0xFE000000 instead of * 0xFF800000 (if there is 8 MB flash). So remap flash access if t= he * image is smaller than 32 MB. */ + memory_region_add_subregion_aliased(get_system_memory(), + 0x100000000ULL - MP_FLASH_SIZE_MAX, + MP_FLASH_SIZE_MAX, + sysbus_mmio_get_region(SYS_BUS_DEVICE(dev)= , 0), + flash_size); } sysbus_create_simple(TYPE_MV88W8618_FLASHCFG, MP_FLASHCFG_BASE, NULL); =20 diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index 8c37cf00da7..aa8553b3cd3 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -101,6 +101,7 @@ config MUSICPAL select MARVELL_88W8618 select PTIMER select PFLASH_CFI02 + select ALIASED_REGION select SERIAL select WM8750 =20 --=20 2.26.3 From nobody Sat May 18 05:34:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) client-ip=209.85.221.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1618825433; cv=none; d=zohomail.com; s=zohoarc; b=n2A49L0MowR766mR0a6hpykGZDo01xxMqp/S79VBSbforz68MIaGjlotQs/XVrJcZbjZIGgoIoSuD6Sz7HQQ/oQh0woo+1f1B58FDGgUA8QHDvUWemM9o+Mci2v9W6PeBmfl2Smo3QeDMFDEOI8Vcq9ieVRClbclOn3BIhprsnk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618825433; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XmR3JkBwNqN9aB8s6qQPXTp8v3g1pCResCZWxmCdWQU=; b=eZ5mAquCNDBsw3z5EDVeRDW0GrGqVdTYmPcxvMkzhQl5wuWStrlusk/3Ti85zihzDN4sKxRVIzT45AphP/y1Y3alS8c2WwYe1ARyNJy0qltI8+FbYohpE2b6CUeo7gIJAuLityoKu1KAZvT/3gX3DYclRmM1GUo7n3oZckdRWc8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by mx.zohomail.com with SMTPS id 1618825433081272.2382591881916; Mon, 19 Apr 2021 02:43:53 -0700 (PDT) Received: by mail-wr1-f43.google.com with SMTP id k26so16851194wrc.8 for ; Mon, 19 Apr 2021 02:43:52 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (39.red-81-40-121.staticip.rima-tde.net. [81.40.121.39]) by smtp.gmail.com with ESMTPSA id q19sm19005354wmc.44.2021.04.19.02.43.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 02:43:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XmR3JkBwNqN9aB8s6qQPXTp8v3g1pCResCZWxmCdWQU=; b=paa2swu2/dF1gOusHim2I7d654iDzYt10AJKRcYEBYbvqU83rCT1gOmg96WzUfDE58 w9OOKdcKnNTa5ZgrYE4Tu0Uos7TiIsHqyCJuJUBsKZsbDZH6zj2P+KINIoHzA3JlzT15 WulLJHbuSDY+SN/H5F6Q7DWs9UNyvPl37vNRPT0EQlrgtfNTl0XxzPYpyA9XbdWGJHs4 p/1Q4mFL7jCpgbNmbTOC8CJxvl1OkJCWYDbmVx5F7FHrzgm7MzoUUHOHx1qaAi4i8exZ 8rHSMKRouAOeAxffZX6NuA52pN2f7cWMnreSe2mRpUCTsGkgwI0H4vtMeUNW7Rvm8gD1 s6sg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=XmR3JkBwNqN9aB8s6qQPXTp8v3g1pCResCZWxmCdWQU=; b=GgdireJhT5GR01Qbmn5queTGCU/0+rzlfnoy4rE7hPqYQyUP9Tt8mkViq8KzFZruhp KO3NfkNosMjZ32K8fXOK90PtO/rFbeGie1yoD431QDD4LLjon0v+/tIrPR04ID0cQoGu YxrCXfvg9sd/yeWSRwxfsYoo2fZFW4Q7CF4XDDIHu24t+b+f9wMaOBZvNi5b3ILz8aiV SwjgSS3e8eGJcW8ek5+lfKyZRXBQwmwIbIp7+M/lO6vCKOr6TtyGqMbjiXHfDOTJViRm 7G/wyjl2qu2HhXTt1GeUg3A9uBle9akaSZEhT8P9nNj+eMrl2XG+/04h9WqKY5vaN44G QWiQ== X-Gm-Message-State: AOAM531xfjBMj3OyqwRzQxajOVqISebwXO1v5Wgxyucv5BbAtn6wkPa8 cKMTkQKVMTwThSJlbYOqb+M= X-Google-Smtp-Source: ABdhPJwqI9LMO/iniVc7gwzU+EAMkH5J2aswK4xO8yxVwTFROaPLStInXbZCBThfGZPwPpePvwrMiQ== X-Received: by 2002:adf:f504:: with SMTP id q4mr13539548wro.304.1618825431429; Mon, 19 Apr 2021 02:43:51 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, qemu-block@nongnu.org, David Edmondson , Richard Henderson , Stephen Checkoway , Antony Pavlov , Peter Maydell Subject: [PATCH v2 4/7] hw/arm/digic: Open-code pflash_cfi02_register() call Date: Mon, 19 Apr 2021 11:43:26 +0200 Message-Id: <20210419094329.1402767-5-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210419094329.1402767-1-f4bug@amsat.org> References: <20210419094329.1402767-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) To be able to manually map the flash region on the main memory (in the next commit), first expand the pflash_cfi02_register in place. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- hw/arm/digic_boards.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/hw/arm/digic_boards.c b/hw/arm/digic_boards.c index 6cdc1d83fca..fc4a671b2e1 100644 --- a/hw/arm/digic_boards.c +++ b/hw/arm/digic_boards.c @@ -31,6 +31,8 @@ #include "hw/boards.h" #include "exec/address-spaces.h" #include "qemu/error-report.h" +#include "hw/qdev-properties.h" +#include "hw/misc/aliased_region.h" #include "hw/arm/digic.h" #include "hw/block/flash.h" #include "hw/loader.h" @@ -120,12 +122,25 @@ static void digic4_add_k8p3215uqb_rom(DigicState *s, = hwaddr addr, #define FLASH_K8P3215UQB_SIZE (4 * 1024 * 1024) #define FLASH_K8P3215UQB_SECTOR_SIZE (64 * 1024) =20 - pflash_cfi02_register(addr, "pflash", FLASH_K8P3215UQB_SIZE, - NULL, FLASH_K8P3215UQB_SECTOR_SIZE, - DIGIC4_ROM_MAX_SIZE / FLASH_K8P3215UQB_SIZE, - 4, - 0x00EC, 0x007E, 0x0003, 0x0001, - 0x0555, 0x2aa, 0); + DeviceState *dev =3D qdev_new(TYPE_PFLASH_CFI02); + + qdev_prop_set_uint32(dev, "num-blocks", + FLASH_K8P3215UQB_SIZE / FLASH_K8P3215UQB_SECTOR_S= IZE); + qdev_prop_set_uint32(dev, "sector-length", FLASH_K8P3215UQB_SECTOR_SIZ= E); + qdev_prop_set_uint8(dev, "width", 4); /* 32-bit */ + qdev_prop_set_uint8(dev, "mappings", + DIGIC4_ROM_MAX_SIZE / FLASH_K8P3215UQB_SIZE); + qdev_prop_set_uint8(dev, "big-endian", 0); + qdev_prop_set_uint16(dev, "id0", 0x00ec); + qdev_prop_set_uint16(dev, "id1", 0x007e); + qdev_prop_set_uint16(dev, "id2", 0x0003); + qdev_prop_set_uint16(dev, "id3", 0x0001); + qdev_prop_set_uint16(dev, "unlock-addr0", 0x0555); + qdev_prop_set_uint16(dev, "unlock-addr1", 0x2aa); + qdev_prop_set_string(dev, "name", "pflash"); + sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); + + sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr); =20 digic_load_rom(s, addr, FLASH_K8P3215UQB_SIZE, filename); } --=20 2.26.3 From nobody Sat May 18 05:34:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.49 as permitted sender) client-ip=209.85.128.49; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f49.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1618825438; cv=none; d=zohomail.com; s=zohoarc; b=enB0GckMdATjW5/JXzaawoavCmzmh9q8lTgejsw1zeuyCryqox07zoB+7Rc0aEpGBD90ptfW6tuM48Li+hyYvbdeSjY7lh4LZ5csyzjMHG/KGx55fS+Ct1tFvVdh5nG22egZz5yqEKDLjYIS6jVE/OHOMX8PY1HM99bsRPfgyWg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618825438; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=wGahhPByYM3/GV4I+MipmLSfFtBrhhdK0pNeulGHnOg=; b=Fx9C1BLJ4JLyQdqdWwM+kI54mN00bpjpGZZKGLV6pFcIPo8tA8j38OY4PfeX/EmXJsCyGmv+Tdc26+Q1zo8lvQTXy2ORxE2qN4J6jB4agCum31U5ZFLxq9iFuvvnonqyIkaRpjQMnjC/F5r/0ALcHL/TsOWCz7NBEnOoiGlXrH8= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.49 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) by mx.zohomail.com with SMTPS id 1618825438015767.2840743045972; Mon, 19 Apr 2021 02:43:58 -0700 (PDT) Received: by mail-wm1-f49.google.com with SMTP id p19so17804343wmq.1 for ; Mon, 19 Apr 2021 02:43:57 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (39.red-81-40-121.staticip.rima-tde.net. [81.40.121.39]) by smtp.gmail.com with ESMTPSA id d10sm8780039wri.41.2021.04.19.02.43.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 02:43:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=wGahhPByYM3/GV4I+MipmLSfFtBrhhdK0pNeulGHnOg=; b=rLqVoY70nGRtxd4t+4gNmXqpZ501xpYtqx0+gTRHJl+q/TDR0WKwomF7AX+z/GnYA3 hYIIroyGfy1UEKVnpKE2dozXwLhPy/JGv6lODL5jR3R0IKk1me304GZUXefeZRN5ll3w JhCLWCg52Zq6fAw+a40LxUlS70mJH4wCU7DkUM3pSxtd1ddcrX0OCosPT90ToBHqg71P I0v1Kqv63i0qqZc+qUJfpn2HZ9qwpW3kMm/c0QpWzsO4Wen4vrnPlyq+CuYXHGpefi2v XIUkSK5DWAtjycgzK/L476Z10jjjxoGs5Cl4m1qiqGFpatAWa1sU61l1wnIBc68RHNWO levw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=wGahhPByYM3/GV4I+MipmLSfFtBrhhdK0pNeulGHnOg=; b=a0zFNnpP2x/td3JESyoUybJeL2teKVcRbzCdF5wTFfspOfdvBik4kSqklpdNU8LM/7 5bQKm3RDS5XVJowAauZntiIAF8R6chOA6VGq+Cu1e2bBmeo08B7zwLou+5+dHzeUYP5Y 82+LFEnXsJg9GMQxYtrwMqTBh6qUlGWEx4qeX0P8riwQmHksVQpgDwOgaYC7aW3x+0/K alQKkB9DC+35SNUyyoJsFwWf2mn3Ec7nxLDEfRvRo4rAI6k3JN+NIEObLAg1PRK47ZZx Cm+EsB1KDUAqdVgHiy29f7MTLCd6NuUsij/bvjKxSXCSr/j0Jqxly6TW774kAtHa/UEX BAyQ== X-Gm-Message-State: AOAM5303AGYpLE4cOWtxK8DI/IqkwSxgHdzOsTKqe8kRVVnqS+b3MyLs 1DYFkZc6cms6pUHW4nAk0CQ= X-Google-Smtp-Source: ABdhPJwyl3Kv8/bu34lp44ExPoJfa7wZXEs40FRUbTvz4VoCDL6IJT4GpScDCUg8QveyKI/+c4Ho6g== X-Received: by 2002:a7b:ce09:: with SMTP id m9mr20924525wmc.150.1618825436271; Mon, 19 Apr 2021 02:43:56 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, qemu-block@nongnu.org, David Edmondson , Richard Henderson , Stephen Checkoway , Peter Maydell , Antony Pavlov Subject: [PATCH v2 5/7] hw/arm/digic: Map flash using memory_region_add_subregion_aliased() Date: Mon, 19 Apr 2021 11:43:27 +0200 Message-Id: <20210419094329.1402767-6-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210419094329.1402767-1-f4bug@amsat.org> References: <20210419094329.1402767-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) Instead of using a device specific feature for mapping the flash memory multiple times over a wider region, use the generic memory_region_add_subregion_aliased() helper. There is no change in the memory layout. * before: $ qemu-system-arm -M canon-a1100 -S -monitor stdio QEMU 5.2.90 monitor - type 'help' for more information (qemu) info mtree address-space: memory 0000000000000000-ffffffffffffffff (prio 0, i/o): system 0000000000000000-0000000003ffffff (prio 0, ram): ram 00000000c0210000-00000000c02100ff (prio 0, i/o): digic-timer 00000000c0210100-00000000c02101ff (prio 0, i/o): digic-timer 00000000c0210200-00000000c02102ff (prio 0, i/o): digic-timer 00000000c0800000-00000000c0800017 (prio 0, i/o): digic-uart 00000000f8000000-00000000ffffffff (prio 0, i/o): pflash 00000000f8000000-00000000f83fffff (prio 0, romd): alias pflash-alia= s @pflash 0000000000000000-00000000003fffff 00000000f8400000-00000000f87fffff (prio 0, romd): alias pflash-alia= s @pflash 0000000000000000-00000000003fffff 00000000f8800000-00000000f8bfffff (prio 0, romd): alias pflash-alia= s @pflash 0000000000000000-00000000003fffff ... 00000000ff400000-00000000ff7fffff (prio 0, romd): alias pflash-alia= s @pflash 0000000000000000-00000000003fffff 00000000ff800000-00000000ffbfffff (prio 0, romd): alias pflash-alia= s @pflash 0000000000000000-00000000003fffff 00000000ffc00000-00000000ffffffff (prio 0, romd): alias pflash-alia= s @pflash 0000000000000000-00000000003fffff * after: (qemu) info mtree address-space: memory 0000000000000000-ffffffffffffffff (prio 0, i/o): system 0000000000000000-0000000003ffffff (prio 0, ram): ram 00000000c0210000-00000000c02100ff (prio 0, i/o): digic-timer 00000000c0210100-00000000c02101ff (prio 0, i/o): digic-timer 00000000c0210200-00000000c02102ff (prio 0, i/o): digic-timer 00000000c0800000-00000000c0800017 (prio 0, i/o): digic-uart 00000000f8000000-00000000ffffffff (prio 0, i/o): masked pflash [span = of 4 MiB] 00000000f8000000-00000000f83fffff (prio 0, romd): alias pflash [#0/= 32] @pflash 0000000000000000-00000000003fffff 00000000f8400000-00000000f87fffff (prio 0, romd): alias pflash [#1/= 32] @pflash 0000000000000000-00000000003fffff 00000000f8800000-00000000f8bfffff (prio 0, romd): alias pflash [#2/= 32] @pflash 0000000000000000-00000000003fffff ... 00000000ff400000-00000000ff7fffff (prio 0, romd): alias pflash [#29= /32] @pflash 0000000000000000-00000000003fffff 00000000ff800000-00000000ffbfffff (prio 0, romd): alias pflash [#30= /32] @pflash 0000000000000000-00000000003fffff 00000000ffc00000-00000000ffffffff (prio 0, romd): alias pflash [#31= /32] @pflash 0000000000000000-00000000003fffff Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- hw/arm/digic_boards.c | 8 +++++--- hw/arm/Kconfig | 1 + 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/hw/arm/digic_boards.c b/hw/arm/digic_boards.c index fc4a671b2e1..293402b1240 100644 --- a/hw/arm/digic_boards.c +++ b/hw/arm/digic_boards.c @@ -128,8 +128,7 @@ static void digic4_add_k8p3215uqb_rom(DigicState *s, hw= addr addr, FLASH_K8P3215UQB_SIZE / FLASH_K8P3215UQB_SECTOR_S= IZE); qdev_prop_set_uint32(dev, "sector-length", FLASH_K8P3215UQB_SECTOR_SIZ= E); qdev_prop_set_uint8(dev, "width", 4); /* 32-bit */ - qdev_prop_set_uint8(dev, "mappings", - DIGIC4_ROM_MAX_SIZE / FLASH_K8P3215UQB_SIZE); + qdev_prop_set_uint8(dev, "mappings", 0); qdev_prop_set_uint8(dev, "big-endian", 0); qdev_prop_set_uint16(dev, "id0", 0x00ec); qdev_prop_set_uint16(dev, "id1", 0x007e); @@ -140,7 +139,10 @@ static void digic4_add_k8p3215uqb_rom(DigicState *s, h= waddr addr, qdev_prop_set_string(dev, "name", "pflash"); sysbus_realize_and_unref(SYS_BUS_DEVICE(dev), &error_fatal); =20 - sysbus_mmio_map(SYS_BUS_DEVICE(dev), 0, addr); + memory_region_add_subregion_aliased(get_system_memory(), + addr, DIGIC4_ROM_MAX_SIZE, + sysbus_mmio_get_region(SYS_BUS_DEVICE(dev), 0), + FLASH_K8P3215UQB_SIZE); =20 digic_load_rom(s, addr, FLASH_K8P3215UQB_SIZE, filename); } diff --git a/hw/arm/Kconfig b/hw/arm/Kconfig index aa8553b3cd3..1a7b9724d6c 100644 --- a/hw/arm/Kconfig +++ b/hw/arm/Kconfig @@ -42,6 +42,7 @@ config DIGIC bool select PTIMER select PFLASH_CFI02 + select ALIASED_REGION =20 config EXYNOS4 bool --=20 2.26.3 From nobody Sat May 18 05:34:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) client-ip=209.85.221.43; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wr1-f43.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1618825442; cv=none; d=zohomail.com; s=zohoarc; b=bF5oOGdZAHyPyBX6DxI3VwG18d2Iy3OyHd/RS7ZUnyO/uIJx8krVyolc75HS30gkZM6HXc6j9kb8SUdOtsUe8Yj4q1UJ6IlFY4VBom1i5uUvLng7d8s4inaLttHnH2A2vro38uRPJfXX8oxw+8UkGD03cs6JrGd9Eyremja+xcg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618825442; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=XqJkbva3nWlGVisZauccBxQqniG/+dNtVwIMgiK+D8E=; b=hV8N3yns4aLqb5AVqaNQjGV7AnR2XweFuY1MEgTtDmiQ6Axf0BtcENzNDCwQl19370Ew9wA7mb5ifwsbfHR3LJ1emEWf22rXdpfTUn0DVvuJuLfmEIPXlwCs4FgecLWU/NovfTIyJKZ/9CZbJG7V0WnFXIEiVnroeudcaba0PX4= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.221.43 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wr1-f43.google.com (mail-wr1-f43.google.com [209.85.221.43]) by mx.zohomail.com with SMTPS id 1618825442851829.4915722168566; Mon, 19 Apr 2021 02:44:02 -0700 (PDT) Received: by mail-wr1-f43.google.com with SMTP id m9so20516033wrx.3 for ; Mon, 19 Apr 2021 02:44:02 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (39.red-81-40-121.staticip.rima-tde.net. [81.40.121.39]) by smtp.gmail.com with ESMTPSA id h17sm21813663wru.67.2021.04.19.02.44.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 02:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=XqJkbva3nWlGVisZauccBxQqniG/+dNtVwIMgiK+D8E=; b=ScDU8W3y7FWGoQwe6oNdG5PGWV26vCKPJnrM+JgNAUKVEuVFzwDxoiErhqOeddpMXz Bt+TGbJbU8jZm16KP7/u/54rFLelgE7a12kYy18rePaqQzXY57IDKH6T9Xir35akER8C UPrU+6zZNeviPglxy45BrGBImFJfcWeBTU778i1B7HFA8l18Syqgs9KWTxXDtzEcjyl/ kxIKir0YIyEBzazSOQgKNOmpLSZLypvU/cKJ5rqqHZsLeFUb1I4ijt13n1hpEnUQGmzw V4k82i4zarLfotUa0pT3Int1Swy7XMg34nUplr7QqQrOhiEbn0KiyLIdK08r5iDHeP67 X1bQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=XqJkbva3nWlGVisZauccBxQqniG/+dNtVwIMgiK+D8E=; b=UKNNR+lwce2F3u7fv19GgxlbLSKmCuW32QaCzLOSLqGpkvc68HhzrHEQHIe8GsgE4X kpE3hAvbxbU+1UO05IqbQpXT8Bi67t92o1pU7Y1EKijR+2rwowH6U/PEmL5BsL+Fz0zX Tq5Tff3jdPAyjS8jZMcwfEaOPvrAnpCcKm84MbSX3a5oZrDITVZymWNHHP43AUqjtWo+ mnipX0kWHqrzIU/of6XhsqxJu2XD0P9X6J6r4cdzDvH3r/PYqunObH4jP5EFfA7wR8Dw vEQvXtIfaUuGeqUS8OC3uCwOYZ5L+n4Xe/tiUCggTTTg20ojhA2tfUxbTl+W6ODfaDQJ 6Btw== X-Gm-Message-State: AOAM533ift+R3IwqUoEj3APFtVDFT+ggaxavsWzXGVFIYgfzuMVh/ZNL tcF9+XP3HUmj36vHeEniJow= X-Google-Smtp-Source: ABdhPJxDNzAie/xkljMs8nVK1paL6FhtNGmapR42BXWOW/csOVeM4tGLEh01VW+IjzMId+CHcQLnOA== X-Received: by 2002:adf:fb91:: with SMTP id a17mr13740886wrr.118.1618825441124; Mon, 19 Apr 2021 02:44:01 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, qemu-block@nongnu.org, David Edmondson , Richard Henderson , Stephen Checkoway , David Gibson , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Kevin Wolf , Max Reitz Subject: [PATCH v2 6/7] hw/block/pflash_cfi02: Remove pflash_setup_mappings() Date: Mon, 19 Apr 2021 11:43:28 +0200 Message-Id: <20210419094329.1402767-7-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210419094329.1402767-1-f4bug@amsat.org> References: <20210419094329.1402767-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) All boards calling pflash_cfi02_register() use nb_mappings=3D1, which does not do any mapping: $ git grep -wl pflash_cfi02_register hw/ hw/arm/xilinx_zynq.c hw/block/pflash_cfi02.c hw/lm32/lm32_boards.c hw/ppc/ppc405_boards.c hw/sh4/r2d.c We can remove this now unneeded code. Reviewed-by: David Gibson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- hw/block/pflash_cfi02.c | 35 ++--------------------------------- 1 file changed, 2 insertions(+), 33 deletions(-) diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 02c514fb6e0..6f4b3e3c3fe 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -75,7 +75,6 @@ struct PFlashCFI02 { uint32_t nb_blocs[PFLASH_MAX_ERASE_REGIONS]; uint32_t sector_len[PFLASH_MAX_ERASE_REGIONS]; uint32_t chip_len; - uint8_t mappings; uint8_t width; uint8_t be; int wcycle; /* if 0, the flash is read normally */ @@ -92,13 +91,6 @@ struct PFlashCFI02 { uint16_t unlock_addr1; uint8_t cfi_table[0x4d]; QEMUTimer timer; - /* - * The device replicates the flash memory across its memory space. Em= ulate - * that by having a container (.mem) filled with an array of aliases - * (.mem_mappings) pointing to the flash memory (.orig_mem). - */ - MemoryRegion mem; - MemoryRegion *mem_mappings; /* array; one per mapping */ MemoryRegion orig_mem; bool rom_mode; int read_counter; /* used for lazy switch-back to rom mode */ @@ -158,23 +150,6 @@ static inline void toggle_dq2(PFlashCFI02 *pfl) pfl->status ^=3D 0x04; } =20 -/* - * Set up replicated mappings of the same region. - */ -static void pflash_setup_mappings(PFlashCFI02 *pfl) -{ - unsigned i; - hwaddr size =3D memory_region_size(&pfl->orig_mem); - - memory_region_init(&pfl->mem, OBJECT(pfl), "pflash", pfl->mappings * s= ize); - pfl->mem_mappings =3D g_new(MemoryRegion, pfl->mappings); - for (i =3D 0; i < pfl->mappings; ++i) { - memory_region_init_alias(&pfl->mem_mappings[i], OBJECT(pfl), - "pflash-alias", &pfl->orig_mem, 0, size); - memory_region_add_subregion(&pfl->mem, i * size, &pfl->mem_mapping= s[i]); - } -} - static void pflash_reset_state_machine(PFlashCFI02 *pfl) { trace_pflash_reset(pfl->name); @@ -917,12 +892,7 @@ static void pflash_cfi02_realize(DeviceState *dev, Err= or **errp) pfl->sector_erase_map =3D bitmap_new(pfl->total_sectors); =20 pfl->rom_mode =3D true; - if (pfl->mappings > 1) { - pflash_setup_mappings(pfl); - sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->mem); - } else { - sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->orig_mem); - } + sysbus_init_mmio(SYS_BUS_DEVICE(dev), &pfl->orig_mem); =20 timer_init_ns(&pfl->timer, QEMU_CLOCK_VIRTUAL, pflash_timer, pfl); pfl->status =3D 0; @@ -950,7 +920,6 @@ static Property pflash_cfi02_properties[] =3D { DEFINE_PROP_UINT32("num-blocks3", PFlashCFI02, nb_blocs[3], 0), DEFINE_PROP_UINT32("sector-length3", PFlashCFI02, sector_len[3], 0), DEFINE_PROP_UINT8("width", PFlashCFI02, width, 0), - DEFINE_PROP_UINT8("mappings", PFlashCFI02, mappings, 0), DEFINE_PROP_UINT8("big-endian", PFlashCFI02, be, 0), DEFINE_PROP_UINT16("id0", PFlashCFI02, ident0, 0), DEFINE_PROP_UINT16("id1", PFlashCFI02, ident1, 0), @@ -1008,6 +977,7 @@ PFlashCFI02 *pflash_cfi02_register(hwaddr base, { DeviceState *dev =3D qdev_new(TYPE_PFLASH_CFI02); =20 + assert(nb_mappings <=3D 1); if (blk) { qdev_prop_set_drive(dev, "drive", blk); } @@ -1015,7 +985,6 @@ PFlashCFI02 *pflash_cfi02_register(hwaddr base, qdev_prop_set_uint32(dev, "num-blocks", size / sector_len); qdev_prop_set_uint32(dev, "sector-length", sector_len); qdev_prop_set_uint8(dev, "width", width); - qdev_prop_set_uint8(dev, "mappings", nb_mappings); qdev_prop_set_uint8(dev, "big-endian", !!be); qdev_prop_set_uint16(dev, "id0", id0); qdev_prop_set_uint16(dev, "id1", id1); --=20 2.26.3 From nobody Sat May 18 05:34:55 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) client-ip=209.85.128.44; envelope-from=philippe.mathieu.daude@gmail.com; helo=mail-wm1-f44.google.com; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com ARC-Seal: i=1; a=rsa-sha256; t=1618825448; cv=none; d=zohomail.com; s=zohoarc; b=V7OTNC4gRjhUfMono8mkpqmfbwXjXI13bLnksyzF/dgD+WqeipsAM/gMsyVtoe0QMt+F1LS50pyA/N3/yo7C8XlcLGGWYkLOB+1i6ypVdQesBr2Ikb7ErMSZHpIMK/c08F02gYwuZS7xAqaJEXwXifbuTyPvex3F1O1mRC3Gc7w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1618825448; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Sender:Subject:To; bh=NIYm1L8/p/Xz5vVKMeT4Sh/uIFcZTxSNDGLqYrwlXUg=; b=F6xdIeeCdPsJ+dP1QSy/HB+f3h55mxjEnxs8HV/hx6u4zxICTUYYCD5wLrkCW7hyJ7QtiCXvcS/Ri2UIb/vMXmKMZBV7RH2Illy69FrvdQzsfNmvEX8FF6MLBrpCDoxDXzikv9Q4kxXhsRFSj4LuUYKvl3TPugzJXnZAbbcYvec= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of _spf.google.com designates 209.85.128.44 as permitted sender) smtp.mailfrom=philippe.mathieu.daude@gmail.com Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) by mx.zohomail.com with SMTPS id 1618825448276502.92233968603387; Mon, 19 Apr 2021 02:44:08 -0700 (PDT) Received: by mail-wm1-f44.google.com with SMTP id y5-20020a05600c3645b0290132b13aaa3bso5946743wmq.1 for ; Mon, 19 Apr 2021 02:44:07 -0700 (PDT) Return-Path: Return-Path: Received: from localhost.localdomain (39.red-81-40-121.staticip.rima-tde.net. [81.40.121.39]) by smtp.gmail.com with ESMTPSA id f6sm19373065wmf.28.2021.04.19.02.44.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 19 Apr 2021 02:44:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NIYm1L8/p/Xz5vVKMeT4Sh/uIFcZTxSNDGLqYrwlXUg=; b=PuY9QoFJIZK1ZC96tYMufQ2zuXkXFma++NjrGdqRQU0ssg0qrTtZtRdII/Z0MxAhV+ pmocHCOGAjDEpyUOGk8OGaUyTgD2xyItu9LMpwB7Tmgx2VyHqKGCZSeQbgrVQE7NS0Ru /h/KEBkmbEPA3AJWf2LA7w2tKk1olFgqoft9jQCDnC5cdydI3s2lwIlI68Kb/UTyhN2K 23YT3RQDM6OVhB5vV3o/4L8m8kYZwLJt+1RuBg/CK50OwqaFtUSSARKSXyiizVaxlpus n/RbZlYbNZhb/CG993AhqSh9HlypR8LUuw9zuy2JcFBqZYFllq9SSV9AwUeFbqUF1jcO 6cBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=NIYm1L8/p/Xz5vVKMeT4Sh/uIFcZTxSNDGLqYrwlXUg=; b=STt1tLKemKgOdnx5RlQwX06bG8hJray4JgBtHPmySV6+aYDnA1kBtaTwJlBRTEhFBX pDwyOTW2RYIA4Z1AoMyWEsp3R0BKEG2vc1TlKGONxfTIWlxQW3OsBU1+UWnSUDCKbvRo 1OFwV1/qkBVeuyjDhRK68W5b64MoafxozbfzuqF/cB6R2h+eT3SI5TxXGY5jJnkln47t PDzbm1jT1aN2zIXB2Ak0ZwyUQHRh6z1dltMBBGAYRLAs3k1+I8FvDOMm2d7Arm6yV2xJ ZzokN8DU7RbQY0cyBUSQdomr6t85Bjfnc7XxPc7w6yGUtoPXM8y6v+Q9uZKzbYEqcrGy 1X6Q== X-Gm-Message-State: AOAM533qGBCMu6dW7xsDfO4saqbDO4cpiP4nPm3rALY4BaK4QaoeTznV Q44Mhtjtv400XbU5cFMgp18= X-Google-Smtp-Source: ABdhPJzkbKnx1+4DOjtJrm+VHLizSPB+Pup+AuqBBVjmHHgp+ILXt/jNIqUwBPjYjlmrypwDYxmWxQ== X-Received: by 2002:a1c:1b46:: with SMTP id b67mr20992483wmb.122.1618825446452; Mon, 19 Apr 2021 02:44:06 -0700 (PDT) Sender: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-arm@nongnu.org, qemu-block@nongnu.org, David Edmondson , Richard Henderson , Stephen Checkoway , David Gibson , Antony Pavlov , Peter Maydell , Jan Kiszka , "Edgar E. Iglesias" , Alistair Francis , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Kevin Wolf , Max Reitz , Michael Walle , Greg Kurz , Yoshinori Sato , Magnus Damm , qemu-ppc@nongnu.org (open list:405) Subject: [PATCH v2 7/7] hw/block/pflash_cfi02: Simplify pflash_cfi02_register() prototype Date: Mon, 19 Apr 2021 11:43:29 +0200 Message-Id: <20210419094329.1402767-8-f4bug@amsat.org> X-Mailer: git-send-email 2.26.3 In-Reply-To: <20210419094329.1402767-1-f4bug@amsat.org> References: <20210419094329.1402767-1-f4bug@amsat.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZohoMail-DKIM: pass (identity @gmail.com) The previous commit removed the mapping code from TYPE_PFLASH_CFI02. pflash_cfi02_register() doesn't use the 'nb_mappings' argument anymore. Simply remove it to simplify. Reviewed-by: David Gibson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/hw/block/flash.h | 1 - hw/arm/digic_boards.c | 1 - hw/arm/musicpal.c | 1 - hw/arm/xilinx_zynq.c | 2 +- hw/block/pflash_cfi02.c | 3 +-- hw/lm32/lm32_boards.c | 4 ++-- hw/ppc/ppc405_boards.c | 6 +++--- hw/sh4/r2d.c | 2 +- 8 files changed, 8 insertions(+), 12 deletions(-) diff --git a/include/hw/block/flash.h b/include/hw/block/flash.h index 7dde0adcee7..0e5dd818a9d 100644 --- a/include/hw/block/flash.h +++ b/include/hw/block/flash.h @@ -36,7 +36,6 @@ PFlashCFI02 *pflash_cfi02_register(hwaddr base, hwaddr size, BlockBackend *blk, uint32_t sector_len, - int nb_mappings, int width, uint16_t id0, uint16_t id1, uint16_t id2, uint16_t id3, diff --git a/hw/arm/digic_boards.c b/hw/arm/digic_boards.c index 293402b1240..eb694c70d4c 100644 --- a/hw/arm/digic_boards.c +++ b/hw/arm/digic_boards.c @@ -128,7 +128,6 @@ static void digic4_add_k8p3215uqb_rom(DigicState *s, hw= addr addr, FLASH_K8P3215UQB_SIZE / FLASH_K8P3215UQB_SECTOR_S= IZE); qdev_prop_set_uint32(dev, "sector-length", FLASH_K8P3215UQB_SECTOR_SIZ= E); qdev_prop_set_uint8(dev, "width", 4); /* 32-bit */ - qdev_prop_set_uint8(dev, "mappings", 0); qdev_prop_set_uint8(dev, "big-endian", 0); qdev_prop_set_uint16(dev, "id0", 0x00ec); qdev_prop_set_uint16(dev, "id1", 0x007e); diff --git a/hw/arm/musicpal.c b/hw/arm/musicpal.c index 7d1f2f3fb3f..e882e11df36 100644 --- a/hw/arm/musicpal.c +++ b/hw/arm/musicpal.c @@ -1657,7 +1657,6 @@ static void musicpal_init(MachineState *machine) qdev_prop_set_uint32(dev, "num-blocks", flash_size / sector_size); qdev_prop_set_uint32(dev, "sector-length", sector_size); qdev_prop_set_uint8(dev, "width", 2); /* 16-bit */ - qdev_prop_set_uint8(dev, "mappings", 0); qdev_prop_set_uint8(dev, "big-endian", 0); qdev_prop_set_uint16(dev, "id0", 0x00bf); qdev_prop_set_uint16(dev, "id1", 0x236d); diff --git a/hw/arm/xilinx_zynq.c b/hw/arm/xilinx_zynq.c index 8db6cfd47f5..d12b00e7648 100644 --- a/hw/arm/xilinx_zynq.c +++ b/hw/arm/xilinx_zynq.c @@ -220,7 +220,7 @@ static void zynq_init(MachineState *machine) pflash_cfi02_register(0xe2000000, "zynq.pflash", FLASH_SIZE, dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, FLASH_SECTOR_SIZE, 1, - 1, 0x0066, 0x0022, 0x0000, 0x0000, 0x0555, 0x2aa, + 0x0066, 0x0022, 0x0000, 0x0000, 0x0555, 0x2aa, 0); =20 /* Create the main clock source, and feed slcr with it */ diff --git a/hw/block/pflash_cfi02.c b/hw/block/pflash_cfi02.c index 6f4b3e3c3fe..2b412402fac 100644 --- a/hw/block/pflash_cfi02.c +++ b/hw/block/pflash_cfi02.c @@ -968,7 +968,7 @@ PFlashCFI02 *pflash_cfi02_register(hwaddr base, hwaddr size, BlockBackend *blk, uint32_t sector_len, - int nb_mappings, int width, + int width, uint16_t id0, uint16_t id1, uint16_t id2, uint16_t id3, uint16_t unlock_addr0, @@ -977,7 +977,6 @@ PFlashCFI02 *pflash_cfi02_register(hwaddr base, { DeviceState *dev =3D qdev_new(TYPE_PFLASH_CFI02); =20 - assert(nb_mappings <=3D 1); if (blk) { qdev_prop_set_drive(dev, "drive", blk); } diff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c index b5d97dd53ed..96877ba7cfb 100644 --- a/hw/lm32/lm32_boards.c +++ b/hw/lm32/lm32_boards.c @@ -121,7 +121,7 @@ static void lm32_evr_init(MachineState *machine) pflash_cfi02_register(flash_base, "lm32_evr.flash", flash_size, dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, flash_sector_size, - 1, 2, 0x01, 0x7e, 0x43, 0x00, 0x555, 0x2aa, 1); + 2, 0x01, 0x7e, 0x43, 0x00, 0x555, 0x2aa, 1); =20 /* create irq lines */ env->pic_state =3D lm32_pic_init(qemu_allocate_irq(cpu_irq_handler, cp= u, 0)); @@ -218,7 +218,7 @@ static void lm32_uclinux_init(MachineState *machine) pflash_cfi02_register(flash_base, "lm32_uclinux.flash", flash_size, dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, flash_sector_size, - 1, 2, 0x01, 0x7e, 0x43, 0x00, 0x555, 0x2aa, 1); + 2, 0x01, 0x7e, 0x43, 0x00, 0x555, 0x2aa, 1); =20 /* create irq lines */ env->pic_state =3D lm32_pic_init(qemu_allocate_irq(cpu_irq_handler, en= v, 0)); diff --git a/hw/ppc/ppc405_boards.c b/hw/ppc/ppc405_boards.c index 8f77887fb18..2503e033497 100644 --- a/hw/ppc/ppc405_boards.c +++ b/hw/ppc/ppc405_boards.c @@ -198,7 +198,7 @@ static void ref405ep_init(MachineState *machine) pflash_cfi02_register((uint32_t)(-bios_size), "ef405ep.bios", bios_size, blk_by_legacy_dinfo(dinfo), - 64 * KiB, 1, + 64 * KiB, 2, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x= 2AA, 1); } else @@ -469,7 +469,7 @@ static void taihu_405ep_init(MachineState *machine) pflash_cfi02_register(0xFFE00000, "taihu_405ep.bios", bios_size, blk_by_legacy_dinfo(dinfo), - 64 * KiB, 1, + 64 * KiB, 4, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x= 2AA, 1); fl_idx++; @@ -502,7 +502,7 @@ static void taihu_405ep_init(MachineState *machine) bios_size =3D 32 * MiB; pflash_cfi02_register(0xfc000000, "taihu_405ep.flash", bios_size, blk_by_legacy_dinfo(dinfo), - 64 * KiB, 1, + 64 * KiB, 4, 0x0001, 0x22DA, 0x0000, 0x0000, 0x555, 0x= 2AA, 1); fl_idx++; diff --git a/hw/sh4/r2d.c b/hw/sh4/r2d.c index 443820901d4..b7288dcba80 100644 --- a/hw/sh4/r2d.c +++ b/hw/sh4/r2d.c @@ -301,7 +301,7 @@ static void r2d_init(MachineState *machine) dinfo =3D drive_get(IF_PFLASH, 0, 0); pflash_cfi02_register(0x0, "r2d.flash", FLASH_SIZE, dinfo ? blk_by_legacy_dinfo(dinfo) : NULL, - 64 * KiB, 1, 2, 0x0001, 0x227e, 0x2220, 0x2200, + 64 * KiB, 2, 0x0001, 0x227e, 0x2220, 0x2200, 0x555, 0x2aa, 0); =20 /* NIC: rtl8139 on-board, and 2 slots. */ --=20 2.26.3