[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 00/12] hw/isa/vt82c686: Implement relocation and toggling of S
From: |
Bernhard Beschow |
Subject: |
[PATCH v2 00/12] hw/isa/vt82c686: Implement relocation and toggling of SuperI/O functions |
Date: |
Mon, 18 Dec 2023 19:51:02 +0100 |
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-4 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 5-7 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 8-10 implement toggling and relocation for types TYPE_ISA_FDC,
TYPE_ISA_PARALLEL and TYPE_ISA_SERIAL. Patch 11 prepares the pegasos2 machine
which would end up with all SuperI/O functions disabled if no -bios argument is
given. Patch 12 finally implements the main feature which now relies on
firmware to configure the SuperI/O functions accordingly (except for pegasos2).
v2:
* Improve commit message (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 (12):
hw/block/fdc-isa: Free struct FDCtrl from PortioList
hw/block/fdc-sysbus: Free struct FDCtrl from MemoryRegion
hw/char/serial: Free struct SerialState from MemoryRegion
hw/char/parallel: Free struct ParallelState from PortioList
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 toggling for TYPE_ISA_FDC
hw/char/serial-isa: Implement relocation and toggling for
TYPE_ISA_SERIAL
hw/char/parallel-isa: Implement relocation and toggling 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 | 2 +
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 | 4 +-
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 | 21 +++++-
hw/char/serial-pci-multi.c | 7 +-
hw/char/serial-pci.c | 7 +-
hw/char/serial.c | 4 +-
hw/isa/vt82c686.c | 121 ++++++++++++++++++++++++---------
hw/ppc/pegasos2.c | 15 ++++
system/ioport.c | 41 +++++++++--
18 files changed, 221 insertions(+), 59 deletions(-)
--
2.43.0
- [PATCH v2 00/12] hw/isa/vt82c686: Implement relocation and toggling of SuperI/O functions,
Bernhard Beschow <=
- [PATCH v2 01/12] hw/block/fdc-isa: Free struct FDCtrl from PortioList, Bernhard Beschow, 2023/12/18
- [PATCH v2 02/12] hw/block/fdc-sysbus: Free struct FDCtrl from MemoryRegion, Bernhard Beschow, 2023/12/18
- [PATCH v2 03/12] hw/char/serial: Free struct SerialState from MemoryRegion, Bernhard Beschow, 2023/12/18
- [PATCH v2 07/12] exec/ioport: Add portio_list_set_enabled(), Bernhard Beschow, 2023/12/18
- [PATCH v2 05/12] exec/ioport: Resolve redundant .base attribute in struct MemoryRegionPortio, Bernhard Beschow, 2023/12/18
- [PATCH v2 06/12] exec/ioport: Add portio_list_set_address(), Bernhard Beschow, 2023/12/18