[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[RFC PATCH-for-6.1 00/10] hw/misc: Add memory_region_add_subregion_alias
From: |
Philippe Mathieu-Daudé |
Subject: |
[RFC PATCH-for-6.1 00/10] hw/misc: Add memory_region_add_subregion_aliased() helper |
Date: |
Fri, 26 Mar 2021 01:27:18 +0100 |
Hi,
This series introduce the memory_region_add_subregion_aliased()
helper which basically create a device which maps a subregion
multiple times.
Examples are easier, so having a subregion aliased every @span_size
then mapped onto a container at an offset, you get something like:
^-----------^
| |
| |
| +-------+ | +---------+ <--+
| | +---------+ |
| | | | |
| | +-----------> | alias#3 | |
| | | | | |
| | | +---------+ |
| | | +---------+ |
| | | | | |
| | | +-------> | alias#2 | |
| | | | | | |region
| container | | | +---------+ | size
| | | | +---------+ |
| | | | | | |
| | | | +----> | alias#1 | |
| | | | | | | |
| | | | | +---------+ <--+ |
| | +-+---+--+--+ +---------+ | |
| | | | | | |span |
| | | subregion +-> | alias#0 | |size |
offset | | | | | | | |
+----> | +-------+ | +-----------+ +---------+ <--+ <--+
| | |
| | |
| | |
| | |
| | |
| ^-----------^
I know it need more documentation and tests, but I prefer to send
as draft RFC for early review before spending more time on it.
Based-on: <20210325120921.858993-1-f4bug@amsat.org>
https://www.mail-archive.com/qemu-devel@nongnu.org/msg795218.html
Philippe Mathieu-Daudé (10):
hw/misc: Add device to help managing aliased memory regions
hw/arm/musicpal: Open-code pflash_cfi02_register() call
hw/arm/musicpal: Map flash using memory_region_add_subregion_aliased()
hw/arm/digic: Open-code pflash_cfi02_register() call
hw/arm/digic: Map flash using memory_region_add_subregion_aliased()
hw/block/pflash_cfi02: Remove pflash_setup_mappings()
hw/block/pflash_cfi02: Simplify pflash_cfi02_register() prototype
hw/misc/aliased_region: Simplify aliased I/O regions
hw/m68k/q800: Add MacIO container
hw/m68k/q800: Map MacIO using memory_region_add_subregion_aliased()
include/hw/block/flash.h | 1 -
include/hw/misc/aliased_region.h | 91 +++++++++++++++
hw/arm/digic_boards.c | 28 ++++-
hw/arm/musicpal.c | 29 ++++-
hw/arm/xilinx_zynq.c | 2 +-
hw/block/pflash_cfi02.c | 36 +-----
hw/lm32/lm32_boards.c | 4 +-
hw/m68k/q800.c | 61 +++++-----
hw/misc/aliased_region.c | 185 +++++++++++++++++++++++++++++++
hw/ppc/ppc405_boards.c | 6 +-
hw/sh4/r2d.c | 2 +-
MAINTAINERS | 6 +
hw/arm/Kconfig | 2 +
hw/m68k/Kconfig | 1 +
hw/misc/Kconfig | 3 +
hw/misc/meson.build | 1 +
16 files changed, 375 insertions(+), 83 deletions(-)
create mode 100644 include/hw/misc/aliased_region.h
create mode 100644 hw/misc/aliased_region.c
--
2.26.2
- [RFC PATCH-for-6.1 00/10] hw/misc: Add memory_region_add_subregion_aliased() helper,
Philippe Mathieu-Daudé <=
- [RFC PATCH-for-6.1 01/10] hw/misc: Add device to help managing aliased memory regions, Philippe Mathieu-Daudé, 2021/03/25
- [PATCH-for-6.1 02/10] hw/arm/musicpal: Open-code pflash_cfi02_register() call, Philippe Mathieu-Daudé, 2021/03/25
- [RFC PATCH-for-6.1 03/10] hw/arm/musicpal: Map flash using memory_region_add_subregion_aliased(), Philippe Mathieu-Daudé, 2021/03/25
- [PATCH-for-6.1 04/10] hw/arm/digic: Open-code pflash_cfi02_register() call, Philippe Mathieu-Daudé, 2021/03/25
- [RFC PATCH-for-6.1 05/10] hw/arm/digic: Map flash using memory_region_add_subregion_aliased(), Philippe Mathieu-Daudé, 2021/03/25
- [PATCH-for-6.1 06/10] hw/block/pflash_cfi02: Remove pflash_setup_mappings(), Philippe Mathieu-Daudé, 2021/03/25
- [PATCH-for-6.1 07/10] hw/block/pflash_cfi02: Simplify pflash_cfi02_register() prototype, Philippe Mathieu-Daudé, 2021/03/25