hw/audio/meson.build | 1 + hw/audio/via-ac97.c | 93 ++++ hw/isa/trace-events | 8 + hw/isa/vt82c686.c | 1000 ++++++++++++++++++++++++------------- hw/mips/fuloong2e.c | 38 +- include/hw/isa/vt82c686.h | 15 +- 6 files changed, 761 insertions(+), 394 deletions(-) create mode 100644 hw/audio/via-ac97.c
Hello,
This is an all in one series containing all the patches from my
previous part I and part II vt82c686b clean up series plus the end of
it to finally add vt8231 emulation that will be used by subsequent
ppc/pegasos2 emulation. I consider this finished for now and good
enough to get in also cleaning up and improving fuloong2e emulation a
bit but previous disclaimer is still valid: It does not aim to fix all
existing bugs or make the model perfectly emulate the real chip just
reach the level where we can have working emulation to boot guests
which can then be improved later. (E.g. I think state saving was
broken before and it remains broken after because I don't know all the
details how to add vmstate for all kinds of data structures and this
could be addressed separately when fixing the already broken state
saving if someone wants to test and fix it.) With this it boots at
least MorphOS on pegasos2 and works with the pmon_2e.bin for fuloong2e
which needs more fixes for Linux that are currently under review. More
testing is welcome.
It still needs the Bonito BONITO_PCICONF_REG_MASK fix for fuloong2e
because it no longer maps SMBus but due to the Bonito bug guest cannot
write register 0xd2 to map it. With that fix pmon_2e.bin from here:
http://www.anheng.com.cn/loongson/pmon/ works for me with this
command: qemu-system-mips64el -M fuloong2e -net none -bios pmon_2e.bin
After rolling this for two years now I hope it can finally be merged
and eventually also get pegasos2 emulation that will need this.
Regards,
BALATON Zoltan
BALATON Zoltan (24):
vt82c686: Rename AC97/MC97 parts from VT82C686B to VIA
vt82c686: Remove unnecessary _DEVICE suffix from type macros
vt82c686b: Rename VT82C686B to VT82C686B_ISA
vt82c686: Remove vt82c686b_[am]c97_init() functions
vt82c686: Split off via-[am]c97 into separate file in hw/audio
audio/via-ac97: Simplify code and set user_creatable to false
vt82c686: Remove legacy vt82c686b_isa_init() function
vt82c686: Remove legacy vt82c686b_pm_init() function
vt82c686: Convert debug printf to trace points
vt82c686: Remove unneeded includes and defines
vt82c686: Use shorter name for local variable holding object state
vt82c686: Rename superio config related parts
vt82c686: Move superio memory region to SuperIOConfig struct
vt82c686: Reorganise code
vt82c686: Fix SMBus IO base and configuration registers
vt82c686: Fix up power management io base and config
vt82c686: Make vt82c686b-pm an abstract base class and add vt8231-pm
based on it
vt82c686: Simplify vt82c686b_realize()
vt82c686: Move creation of ISA devices to the ISA bridge
vt82c686: Fix superio_cfg_{read,write}() functions
vt82c686: Implement control of serial port io ranges via config regs
vt82c686: QOM-ify superio related functionality
vt82c686: Add VT8231_SUPERIO based on VIA_SUPERIO
vt82c686: Add emulation of VT8231 south bridge
hw/audio/meson.build | 1 +
hw/audio/via-ac97.c | 93 ++++
hw/isa/trace-events | 8 +
hw/isa/vt82c686.c | 1000 ++++++++++++++++++++++++-------------
hw/mips/fuloong2e.c | 38 +-
include/hw/isa/vt82c686.h | 15 +-
6 files changed, 761 insertions(+), 394 deletions(-)
create mode 100644 hw/audio/via-ac97.c
--
2.21.3
On 1/2/21 11:43 AM, BALATON Zoltan via wrote: > Hello, > > This is an all in one series containing all the patches from my > previous part I and part II vt82c686b clean up series plus the end of > it to finally add vt8231 emulation that will be used by subsequent > ppc/pegasos2 emulation. I consider this finished for now and good > enough to get in also cleaning up and improving fuloong2e emulation a > bit but previous disclaimer is still valid: It does not aim to fix all > existing bugs or make the model perfectly emulate the real chip just > reach the level where we can have working emulation to boot guests > which can then be improved later. (E.g. I think state saving was > broken before and it remains broken after because I don't know all the > details how to add vmstate for all kinds of data structures and this > could be addressed separately when fixing the already broken state > saving if someone wants to test and fix it.) With this it boots at > least MorphOS on pegasos2 and works with the pmon_2e.bin for fuloong2e > which needs more fixes for Linux that are currently under review. More > testing is welcome. > > It still needs the Bonito BONITO_PCICONF_REG_MASK fix for fuloong2e > because it no longer maps SMBus but due to the Bonito bug guest cannot > write register 0xd2 to map it. With that fix pmon_2e.bin from here: > http://www.anheng.com.cn/loongson/pmon/ works for me with this > command: qemu-system-mips64el -M fuloong2e -net none -bios pmon_2e.bin > > After rolling this for two years now I hope it can finally be merged > and eventually also get pegasos2 emulation that will need this. > > Regards, > BALATON Zoltan > > BALATON Zoltan (24): > vt82c686: Rename AC97/MC97 parts from VT82C686B to VIA > vt82c686: Remove unnecessary _DEVICE suffix from type macros > vt82c686b: Rename VT82C686B to VT82C686B_ISA > vt82c686: Remove vt82c686b_[am]c97_init() functions > vt82c686: Split off via-[am]c97 into separate file in hw/audio > audio/via-ac97: Simplify code and set user_creatable to false > vt82c686: Remove legacy vt82c686b_isa_init() function > vt82c686: Remove legacy vt82c686b_pm_init() function > vt82c686: Convert debug printf to trace points > vt82c686: Remove unneeded includes and defines > vt82c686: Use shorter name for local variable holding object state > vt82c686: Rename superio config related parts As the first half of this series is reviewed, I'm queuing it (patches 1-12) via mips-next. Regards, Phil.
On Sun, 3 Jan 2021, Philippe Mathieu-Daudé wrote: > On 1/2/21 11:43 AM, BALATON Zoltan via wrote: >> Hello, >> >> This is an all in one series containing all the patches from my >> previous part I and part II vt82c686b clean up series plus the end of >> it to finally add vt8231 emulation that will be used by subsequent >> ppc/pegasos2 emulation. I consider this finished for now and good >> enough to get in also cleaning up and improving fuloong2e emulation a >> bit but previous disclaimer is still valid: It does not aim to fix all >> existing bugs or make the model perfectly emulate the real chip just >> reach the level where we can have working emulation to boot guests >> which can then be improved later. (E.g. I think state saving was >> broken before and it remains broken after because I don't know all the >> details how to add vmstate for all kinds of data structures and this >> could be addressed separately when fixing the already broken state >> saving if someone wants to test and fix it.) With this it boots at >> least MorphOS on pegasos2 and works with the pmon_2e.bin for fuloong2e >> which needs more fixes for Linux that are currently under review. More >> testing is welcome. >> >> It still needs the Bonito BONITO_PCICONF_REG_MASK fix for fuloong2e >> because it no longer maps SMBus but due to the Bonito bug guest cannot >> write register 0xd2 to map it. With that fix pmon_2e.bin from here: >> http://www.anheng.com.cn/loongson/pmon/ works for me with this >> command: qemu-system-mips64el -M fuloong2e -net none -bios pmon_2e.bin >> >> After rolling this for two years now I hope it can finally be merged >> and eventually also get pegasos2 emulation that will need this. >> >> Regards, >> BALATON Zoltan >> >> BALATON Zoltan (24): >> vt82c686: Rename AC97/MC97 parts from VT82C686B to VIA >> vt82c686: Remove unnecessary _DEVICE suffix from type macros >> vt82c686b: Rename VT82C686B to VT82C686B_ISA >> vt82c686: Remove vt82c686b_[am]c97_init() functions >> vt82c686: Split off via-[am]c97 into separate file in hw/audio >> audio/via-ac97: Simplify code and set user_creatable to false >> vt82c686: Remove legacy vt82c686b_isa_init() function >> vt82c686: Remove legacy vt82c686b_pm_init() function >> vt82c686: Convert debug printf to trace points >> vt82c686: Remove unneeded includes and defines >> vt82c686: Use shorter name for local variable holding object state >> vt82c686: Rename superio config related parts > > As the first half of this series is reviewed, I'm queuing it > (patches 1-12) via mips-next. Thanks, You may want to fix the single vt82c686b: in the above commit title that was a typo, just for consistency. Will this pull include the Bonito BONITO_PCICONF_REG_MASK fix or some replacement for that? That would be needed to get the rest of this series starting with 15/24 working. Up to that it's just clean up which should be OK. I can repost the remaining patches rebased once it's merged in master or if you tell me which branch should I use. Regards, BALATON Zoltan
On 1/3/21 3:27 PM, BALATON Zoltan via wrote: > On Sun, 3 Jan 2021, Philippe Mathieu-Daudé wrote: >> On 1/2/21 11:43 AM, BALATON Zoltan via wrote: >>> Hello, >>> >>> This is an all in one series containing all the patches from my >>> previous part I and part II vt82c686b clean up series plus the end of >>> it to finally add vt8231 emulation that will be used by subsequent >>> ppc/pegasos2 emulation. I consider this finished for now and good >>> enough to get in also cleaning up and improving fuloong2e emulation a >>> bit but previous disclaimer is still valid: It does not aim to fix all >>> existing bugs or make the model perfectly emulate the real chip just >>> reach the level where we can have working emulation to boot guests >>> which can then be improved later. (E.g. I think state saving was >>> broken before and it remains broken after because I don't know all the >>> details how to add vmstate for all kinds of data structures and this >>> could be addressed separately when fixing the already broken state >>> saving if someone wants to test and fix it.) With this it boots at >>> least MorphOS on pegasos2 and works with the pmon_2e.bin for fuloong2e >>> which needs more fixes for Linux that are currently under review. More >>> testing is welcome. >>> >>> It still needs the Bonito BONITO_PCICONF_REG_MASK fix for fuloong2e >>> because it no longer maps SMBus but due to the Bonito bug guest cannot >>> write register 0xd2 to map it. With that fix pmon_2e.bin from here: >>> http://www.anheng.com.cn/loongson/pmon/ works for me with this >>> command: qemu-system-mips64el -M fuloong2e -net none -bios pmon_2e.bin >>> >>> After rolling this for two years now I hope it can finally be merged >>> and eventually also get pegasos2 emulation that will need this. >>> >>> Regards, >>> BALATON Zoltan >>> >>> BALATON Zoltan (24): >>> vt82c686: Rename AC97/MC97 parts from VT82C686B to VIA >>> vt82c686: Remove unnecessary _DEVICE suffix from type macros >>> vt82c686b: Rename VT82C686B to VT82C686B_ISA >>> vt82c686: Remove vt82c686b_[am]c97_init() functions >>> vt82c686: Split off via-[am]c97 into separate file in hw/audio >>> audio/via-ac97: Simplify code and set user_creatable to false >>> vt82c686: Remove legacy vt82c686b_isa_init() function >>> vt82c686: Remove legacy vt82c686b_pm_init() function >>> vt82c686: Convert debug printf to trace points >>> vt82c686: Remove unneeded includes and defines >>> vt82c686: Use shorter name for local variable holding object state >>> vt82c686: Rename superio config related parts >> >> As the first half of this series is reviewed, I'm queuing it >> (patches 1-12) via mips-next. > > Thanks, You may want to fix the single vt82c686b: in the above commit > title that was a typo, just for consistency. Fixed (along with your git author email, instead of the list). > Will this pull include the > Bonito BONITO_PCICONF_REG_MASK fix or some replacement for that? That > would be needed to get the rest of this series starting with 15/24 > working. Up to that it's just clean up which should be OK. I checked the Bonito(32) ASIC and Bonito64 (FPGA) manuals, and for (vendor_id = 0xdf53, device_id = 0x00d5) our implementation is correct. I am waiting for further news from Jiaxun who asked someone at Loongson for a manual of their Bonito variant. I expect a different PCI device_id, so we can add it with your change. > I can repost > the remaining patches rebased once it's merged in master or if you tell > me which branch should I use. IMHO no need (at least not worthwhile until mips/next is merged). Regards, Phil.
On Sun, 3 Jan 2021, Philippe Mathieu-Daudé wrote: > On 1/3/21 3:27 PM, BALATON Zoltan via wrote: >> On Sun, 3 Jan 2021, Philippe Mathieu-Daudé wrote: >>> On 1/2/21 11:43 AM, BALATON Zoltan via wrote: >>>> Hello, >>>> >>>> This is an all in one series containing all the patches from my >>>> previous part I and part II vt82c686b clean up series plus the end of >>>> it to finally add vt8231 emulation that will be used by subsequent >>>> ppc/pegasos2 emulation. I consider this finished for now and good >>>> enough to get in also cleaning up and improving fuloong2e emulation a >>>> bit but previous disclaimer is still valid: It does not aim to fix all >>>> existing bugs or make the model perfectly emulate the real chip just >>>> reach the level where we can have working emulation to boot guests >>>> which can then be improved later. (E.g. I think state saving was >>>> broken before and it remains broken after because I don't know all the >>>> details how to add vmstate for all kinds of data structures and this >>>> could be addressed separately when fixing the already broken state >>>> saving if someone wants to test and fix it.) With this it boots at >>>> least MorphOS on pegasos2 and works with the pmon_2e.bin for fuloong2e >>>> which needs more fixes for Linux that are currently under review. More >>>> testing is welcome. >>>> >>>> It still needs the Bonito BONITO_PCICONF_REG_MASK fix for fuloong2e >>>> because it no longer maps SMBus but due to the Bonito bug guest cannot >>>> write register 0xd2 to map it. With that fix pmon_2e.bin from here: >>>> http://www.anheng.com.cn/loongson/pmon/ works for me with this >>>> command: qemu-system-mips64el -M fuloong2e -net none -bios pmon_2e.bin >>>> >>>> After rolling this for two years now I hope it can finally be merged >>>> and eventually also get pegasos2 emulation that will need this. >>>> >>>> Regards, >>>> BALATON Zoltan >>>> >>>> BALATON Zoltan (24): >>>> vt82c686: Rename AC97/MC97 parts from VT82C686B to VIA >>>> vt82c686: Remove unnecessary _DEVICE suffix from type macros >>>> vt82c686b: Rename VT82C686B to VT82C686B_ISA >>>> vt82c686: Remove vt82c686b_[am]c97_init() functions >>>> vt82c686: Split off via-[am]c97 into separate file in hw/audio >>>> audio/via-ac97: Simplify code and set user_creatable to false >>>> vt82c686: Remove legacy vt82c686b_isa_init() function >>>> vt82c686: Remove legacy vt82c686b_pm_init() function >>>> vt82c686: Convert debug printf to trace points >>>> vt82c686: Remove unneeded includes and defines >>>> vt82c686: Use shorter name for local variable holding object state >>>> vt82c686: Rename superio config related parts >>> >>> As the first half of this series is reviewed, I'm queuing it >>> (patches 1-12) via mips-next. >> >> Thanks, You may want to fix the single vt82c686b: in the above commit >> title that was a typo, just for consistency. > > Fixed (along with your git author email, instead of the list). Thanks, sorry for the email address, that's something that seems to have changed last August without me doing anthing differently and I still don't know if it's something with the list or my mail provider. I've asked them both but I guess it's still holidays so haven't got an answer yet. >> Will this pull include the >> Bonito BONITO_PCICONF_REG_MASK fix or some replacement for that? That >> would be needed to get the rest of this series starting with 15/24 >> working. Up to that it's just clean up which should be OK. > > I checked the Bonito(32) ASIC and Bonito64 (FPGA) manuals, and > for (vendor_id = 0xdf53, device_id = 0x00d5) our implementation > is correct. I am waiting for further news from Jiaxun who asked > someone at Loongson for a manual of their Bonito variant. > > I expect a different PCI device_id, so we can add it with your > change. It's not my change, Jiaxun suggested it but fixes the problem with accessing register at 0xd2 that's needed on fuloong2e to get SMBus mapped after my series (patch 15 to be exact). >> I can repost >> the remaining patches rebased once it's merged in master or if you tell >> me which branch should I use. > > IMHO no need (at least not worthwhile until mips/next is merged). OK, I'll wait for that then before posting the remaining patches again. If you can have a look at them anyway I can make any necessary changes by then. Regards, BALATON Zoltan
在 2021/1/4 上午1:07, BALATON Zoltan 写道: > On Sun, 3 Jan 2021, Philippe Mathieu-Daudé wrote: >> On 1/3/21 3:27 PM, BALATON Zoltan via wrote: >>> On Sun, 3 Jan 2021, Philippe Mathieu-Daudé wrote: >>>> On 1/2/21 11:43 AM, BALATON Zoltan via wrote: >>>>> Hello, >>>>> >>>>> This is an all in one series containing all the patches from my >>>>> previous part I and part II vt82c686b clean up series plus the end of >>>>> it to finally add vt8231 emulation that will be used by subsequent >>>>> ppc/pegasos2 emulation. I consider this finished for now and good >>>>> enough to get in also cleaning up and improving fuloong2e emulation a >>>>> bit but previous disclaimer is still valid: It does not aim to fix >>>>> all >>>>> existing bugs or make the model perfectly emulate the real chip just >>>>> reach the level where we can have working emulation to boot guests >>>>> which can then be improved later. (E.g. I think state saving was >>>>> broken before and it remains broken after because I don't know all >>>>> the >>>>> details how to add vmstate for all kinds of data structures and this >>>>> could be addressed separately when fixing the already broken state >>>>> saving if someone wants to test and fix it.) With this it boots at >>>>> least MorphOS on pegasos2 and works with the pmon_2e.bin for >>>>> fuloong2e >>>>> which needs more fixes for Linux that are currently under review. >>>>> More >>>>> testing is welcome. >>>>> >>>>> It still needs the Bonito BONITO_PCICONF_REG_MASK fix for fuloong2e >>>>> because it no longer maps SMBus but due to the Bonito bug guest >>>>> cannot >>>>> write register 0xd2 to map it. With that fix pmon_2e.bin from here: >>>>> http://www.anheng.com.cn/loongson/pmon/ works for me with this >>>>> command: qemu-system-mips64el -M fuloong2e -net none -bios >>>>> pmon_2e.bin >>>>> >>>>> After rolling this for two years now I hope it can finally be merged >>>>> and eventually also get pegasos2 emulation that will need this. >>>>> >>>>> Regards, >>>>> BALATON Zoltan >>>>> >>>>> BALATON Zoltan (24): >>>>> vt82c686: Rename AC97/MC97 parts from VT82C686B to VIA >>>>> vt82c686: Remove unnecessary _DEVICE suffix from type macros >>>>> vt82c686b: Rename VT82C686B to VT82C686B_ISA >>>>> vt82c686: Remove vt82c686b_[am]c97_init() functions >>>>> vt82c686: Split off via-[am]c97 into separate file in hw/audio >>>>> audio/via-ac97: Simplify code and set user_creatable to false >>>>> vt82c686: Remove legacy vt82c686b_isa_init() function >>>>> vt82c686: Remove legacy vt82c686b_pm_init() function >>>>> vt82c686: Convert debug printf to trace points >>>>> vt82c686: Remove unneeded includes and defines >>>>> vt82c686: Use shorter name for local variable holding object state >>>>> vt82c686: Rename superio config related parts >>>> >>>> As the first half of this series is reviewed, I'm queuing it >>>> (patches 1-12) via mips-next. >>> >>> Thanks, You may want to fix the single vt82c686b: in the above commit >>> title that was a typo, just for consistency. >> >> Fixed (along with your git author email, instead of the list). > > Thanks, sorry for the email address, that's something that seems to > have changed last August without me doing anthing differently and I > still don't know if it's something with the list or my mail provider. > I've asked them both but I guess it's still holidays so haven't got an > answer yet. > >>> Will this pull include the >>> Bonito BONITO_PCICONF_REG_MASK fix or some replacement for that? That >>> would be needed to get the rest of this series starting with 15/24 >>> working. Up to that it's just clean up which should be OK. >> >> I checked the Bonito(32) ASIC and Bonito64 (FPGA) manuals, and >> for (vendor_id = 0xdf53, device_id = 0x00d5) our implementation >> is correct. I am waiting for further news from Jiaxun who asked >> someone at Loongson for a manual of their Bonito variant. >> >> I expect a different PCI device_id, so we can add it with your >> change. Hi all, Bonito 2E manual (Chinese) is available here: https://github.com/loongson-community/docs/blob/master/2E/Godson_2E_NB_UM.pdf It said when accessing PCICFG map, the address is continues, so there is no need to mask out lowest 2 bit. The actual command on PCI bus will be shifted by hardware as per PCI spec requirement, but that is out of our scope, it is SysAD internal implementation. As you may see, bonito64(malta version) driver in kernel does not shift regno as well. https://elixir.bootlin.com/linux/latest/source/arch/mips/pci/ops-bonito64.c So In my opinion the fix is fine. Thanks. - Jiaxun > > It's not my change, Jiaxun suggested it but fixes the problem with > accessing register at 0xd2 that's needed on fuloong2e to get SMBus > mapped after my series (patch 15 to be exact). > >>> I can repost >>> the remaining patches rebased once it's merged in master or if you tell >>> me which branch should I use. >> >> IMHO no need (at least not worthwhile until mips/next is merged). > > OK, I'll wait for that then before posting the remaining patches > again. If you can have a look at them anyway I can make any necessary > changes by then. > > Regards, > BALATON Zoltan
© 2016 - 2025 Red Hat, Inc.