qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Bernhard Beschow <shentey@gmail.com>
To: qemu-devel@nongnu.org
Cc: "Eduardo Habkost" <eduardo@habkost.net>,
	"Artyom Tarasenko" <atar4qemu@gmail.com>,
	"Marc-André Lureau" <marcandre.lureau@redhat.com>,
	"Fabiano Rosas" <farosas@suse.de>,
	"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
	"Cédric Le Goater" <clg@kaod.org>,
	"Frédéric Barrat" <fbarrat@linux.ibm.com>,
	"John Snow" <jsnow@redhat.com>,
	qemu-block@nongnu.org, "Kevin Wolf" <kwolf@redhat.com>,
	"Thomas Huth" <huth@tuxfamily.org>,
	"Richard Henderson" <richard.henderson@linaro.org>,
	"Nicholas Piggin" <npiggin@gmail.com>,
	"Aleksandar Rikalo" <aleksandar.rikalo@syrmia.com>,
	"Peter Xu" <peterx@redhat.com>,
	"BALATON Zoltan" <balaton@eik.bme.hu>,
	"Leonardo Bras" <leobras@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	"Juan Quintela" <quintela@redhat.com>,
	"Philippe Mathieu-Daudé" <philmd@linaro.org>,
	qemu-ppc@nongnu.org, "David Hildenbrand" <david@redhat.com>,
	"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
	"Sergio Lopez" <slp@redhat.com>,
	"Hanna Reitz" <hreitz@redhat.com>,
	"Mark Cave-Ayland" <mark.cave-ayland@ilande.co.uk>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Bernhard Beschow" <shentey@gmail.com>
Subject: [PATCH v4 00/11] hw/isa/vt82c686: Implement relocation and toggling of SuperI/O functions
Date: Sat,  6 Jan 2024 22:05:20 +0100	[thread overview]
Message-ID: <20240106210531.140542-1-shentey@gmail.com> (raw)

This series implements relocation of the SuperI/O functions of the VIA south
bridges which resolves some FIXME's. It is part of my via-apollo-pro-133t
branch [1] which is an extension of bringing the VIA south bridges to the PC
machine [2]. This branch is able to run some real-world X86 BIOSes in the hope
that it allows us to form a better understanding of the real vt82c686b devices.
Implementing relocation and toggling of the SuperI/O functions is one step to
make these BIOSes run without error messages, so here we go.

The series is structured as follows: Patches 1-3 prepare the TYPE_ISA_FDC,
TYPE_ISA_PARALLEL and TYPE_ISA_SERIAL to relocate and toggle (enable/disable)
themselves without breaking encapsulation of their respective device states.
This is achieved by moving the MemoryRegions and PortioLists from the device
states into the encapsulating ISA devices since they will be relocated and
toggled.

Inspired by the memory API patches 4-6 add two convenience functions to the
portio_list API to toggle and relocate portio lists. Patch 5 is a preparation
for that which removes some redundancies which otherwise had to be dealt with
during relocation.

Patches 7-9 implement toggling and relocation for types TYPE_ISA_FDC,
TYPE_ISA_PARALLEL and TYPE_ISA_SERIAL. Patch 10 prepares the pegasos2 machine
which would end up with all SuperI/O functions disabled if no -bios argument is
given. Patch 11 finally implements the main feature which now relies on
firmware to configure the SuperI/O functions accordingly (except for pegasos2).

v4:
* Drop incomplete SuperI/O vmstate handling (Zoltan)

v3:
* Rework various commit messages (Zoltan)
* Drop patch "hw/char/serial: Free struct SerialState from MemoryRegion"
  (Zoltan)
* Generalize wording in migration.rst to include portio_list API (Zoltan)

v2:
* Improve commit messages (Zoltan)
* Split pegasos2 from vt82c686 patch (Zoltan)
* Avoid poking into device internals (Zoltan)

Testing done:
* `make check`
* `make check-avocado`
* Run MorphOS on pegasos2 with and without pegasos2.rom
* Run Linux on amigaone
* Run real-world BIOSes on via-apollo-pro-133t branch
* Start rescue-yl on fuloong2e

[1] https://github.com/shentok/qemu/tree/via-apollo-pro-133t
[2] https://github.com/shentok/qemu/tree/pc-via

Bernhard Beschow (11):
  hw/block/fdc-isa: Move portio_list from FDCtrl to FDCtrlISABus
  hw/block/fdc-sysbus: Move iomem from FDCtrl to FDCtrlSysBus
  hw/char/parallel: Move portio_list from ParallelState to
    ISAParallelState
  exec/ioport: Resolve redundant .base attribute in struct
    MemoryRegionPortio
  exec/ioport: Add portio_list_set_address()
  exec/ioport: Add portio_list_set_enabled()
  hw/block/fdc-isa: Implement relocation and enabling/disabling for
    TYPE_ISA_FDC
  hw/char/serial-isa: Implement relocation and enabling/disabling for
    TYPE_ISA_SERIAL
  hw/char/parallel-isa: Implement relocation and enabling/disabling for
    TYPE_ISA_PARALLEL
  hw/ppc/pegasos2: Let pegasos2 machine configure SuperI/O functions
  hw/isa/vt82c686: Implement relocation and toggling of SuperI/O
    functions

 docs/devel/migration.rst       |  6 ++--
 hw/block/fdc-internal.h        |  4 ---
 include/exec/ioport.h          |  4 ++-
 include/hw/block/fdc.h         |  3 ++
 include/hw/char/parallel-isa.h |  5 +++
 include/hw/char/parallel.h     |  2 --
 include/hw/char/serial.h       |  2 ++
 hw/block/fdc-isa.c             | 18 +++++++++-
 hw/block/fdc-sysbus.c          |  6 ++--
 hw/char/parallel-isa.c         | 14 ++++++++
 hw/char/parallel.c             |  2 +-
 hw/char/serial-isa.c           | 14 ++++++++
 hw/isa/vt82c686.c              | 66 ++++++++++++++++++++++++++++------
 hw/ppc/pegasos2.c              | 15 ++++++++
 system/ioport.c                | 41 +++++++++++++++++----
 15 files changed, 172 insertions(+), 30 deletions(-)

-- 
2.43.0



             reply	other threads:[~2024-01-06 21:06 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-06 21:05 Bernhard Beschow [this message]
2024-01-06 21:05 ` [PATCH v4 01/11] hw/block/fdc-isa: Move portio_list from FDCtrl to FDCtrlISABus Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 02/11] hw/block/fdc-sysbus: Move iomem from FDCtrl to FDCtrlSysBus Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 03/11] hw/char/parallel: Move portio_list from ParallelState to ISAParallelState Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 04/11] exec/ioport: Resolve redundant .base attribute in struct MemoryRegionPortio Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 05/11] exec/ioport: Add portio_list_set_address() Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 06/11] exec/ioport: Add portio_list_set_enabled() Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 07/11] hw/block/fdc-isa: Implement relocation and enabling/disabling for TYPE_ISA_FDC Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 08/11] hw/char/serial-isa: Implement relocation and enabling/disabling for TYPE_ISA_SERIAL Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 09/11] hw/char/parallel-isa: Implement relocation and enabling/disabling for TYPE_ISA_PARALLEL Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 10/11] hw/ppc/pegasos2: Let pegasos2 machine configure SuperI/O functions Bernhard Beschow
2024-01-07 13:54   ` BALATON Zoltan
2024-01-08 19:54     ` Bernhard Beschow
2024-01-06 21:05 ` [PATCH v4 11/11] hw/isa/vt82c686: Implement relocation and toggling of " Bernhard Beschow
2024-01-07 13:59   ` BALATON Zoltan
2024-01-08 19:53     ` Bernhard Beschow
2024-01-08 20:57       ` BALATON Zoltan
2024-01-07 14:13 ` [PATCH v4 00/11] " Mark Cave-Ayland
2024-01-08 20:07   ` Bernhard Beschow
2024-01-08 22:12     ` Mark Cave-Ayland
2024-01-09 22:09       ` Bernhard Beschow

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240106210531.140542-1-shentey@gmail.com \
    --to=shentey@gmail.com \
    --cc=aleksandar.rikalo@syrmia.com \
    --cc=atar4qemu@gmail.com \
    --cc=balaton@eik.bme.hu \
    --cc=clg@kaod.org \
    --cc=david@redhat.com \
    --cc=eduardo@habkost.net \
    --cc=farosas@suse.de \
    --cc=fbarrat@linux.ibm.com \
    --cc=hpoussin@reactos.org \
    --cc=hreitz@redhat.com \
    --cc=huth@tuxfamily.org \
    --cc=jiaxun.yang@flygoat.com \
    --cc=jsnow@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=leobras@redhat.com \
    --cc=marcandre.lureau@redhat.com \
    --cc=marcel.apfelbaum@gmail.com \
    --cc=mark.cave-ayland@ilande.co.uk \
    --cc=mst@redhat.com \
    --cc=npiggin@gmail.com \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=philmd@linaro.org \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=quintela@redhat.com \
    --cc=richard.henderson@linaro.org \
    --cc=slp@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).