On Sun, Jan 14, 2024 at 12:52:53PM +0000, Bernhard Beschow wrote: > > > Am 14. Januar 2024 12:39:00 UTC schrieb Bernhard Beschow <shen...@gmail.com>: > >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). > > > > > > > >v5: > > > >* Use cpu_physical_memory_write() in pegasos2 (Zoltan) > > > >* Use an int as for loop variable (Zoltan) > > > > > > > >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 > > > > Ping for the above six patches. These are critical for this series and > haven't had comments from maintainers for five iterations, so pardon for the > annoyance.
Was hoping for more reviews. Oh well. Tagged. > Best regards, > Bernhard > > > 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 | 65 ++++++++++++++++++++++++++++------ > > > > hw/ppc/pegasos2.c | 12 +++++++ > > > > system/ioport.c | 41 +++++++++++++++++---- > > > > 15 files changed, 168 insertions(+), 30 deletions(-) > > > > > > > >-- > > >2.43.0 > > > > > >