[PATCH v9 0/7] Pegasos2 emulation

BALATON Zoltan posted 7 patches 4 years, 10 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/cover.1615932192.git.balaton@eik.bme.hu
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Jiaxun Yang <jiaxun.yang@flygoat.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Huacai Chen <chenhuacai@kernel.org>
There is a newer version of this series
MAINTAINERS                             |  10 +
default-configs/devices/ppc-softmmu.mak |   2 +
hw/isa/Kconfig                          |   1 +
hw/isa/vt82c686.c                       | 422 +++++++++--
hw/pci-host/Kconfig                     |   4 +
hw/pci-host/meson.build                 |   2 +
hw/pci-host/mv64361.c                   | 966 ++++++++++++++++++++++++
hw/pci-host/mv643xx.h                   | 918 ++++++++++++++++++++++
hw/pci-host/trace-events                |   6 +
hw/ppc/Kconfig                          |   9 +
hw/ppc/meson.build                      |   2 +
hw/ppc/pegasos2.c                       | 144 ++++
include/hw/isa/vt82c686.h               |   2 +-
include/hw/pci-host/mv64361.h           |   8 +
include/hw/pci/pci_ids.h                |   4 +-
15 files changed, 2418 insertions(+), 82 deletions(-)
create mode 100644 hw/pci-host/mv64361.c
create mode 100644 hw/pci-host/mv643xx.h
create mode 100644 hw/ppc/pegasos2.c
create mode 100644 include/hw/pci-host/mv64361.h
[PATCH v9 0/7] Pegasos2 emulation
Posted by BALATON Zoltan 4 years, 10 months ago
Hello,

This is adding a new PPC board called pegasos2. More info on it can be
found at:

https://osdn.net/projects/qmiga/wiki/SubprojectPegasos2

Currently it needs a firmware ROM image that I cannot include due to
original copyright holder (bPlan) did not release it under a free
licence but I have plans to write a replacement in the future. With
the original board firmware it can boot MorphOS now as:

qemu-system-ppc -M pegasos2 -cdrom morphos.iso -device ati-vga,romfile="" -serial stdio

then enter "boot cd boot.img" at the firmware "ok" prompt as described
in the MorphOS.readme. To boot Linux use same command line with e.g.
-cdrom debian-8.11.0-powerpc-netinst.iso then enter
"boot cd install/pegasos"

The last patch adds the actual board code after previous patches
adding VT8231 and MV64361 system controller chip emulation.

Regards,
BALATON Zoltan

v9: Rebased to master

v8: Do not emulate setting of serial port address via register, just
    hard code a default address instead

v7: Fix errp usage in patch 2

v6: Rebased on master, updated commit message about migration change

v5: Changes for review comments from David and Philippe

V4: Rename pegasos2_reset to pegasos2_cpu_reset
    Add new files to MAINTAINERS

BALATON Zoltan (6):
  vt82c686: QOM-ify superio related functionality
  vt82c686: Add VT8231_SUPERIO based on VIA_SUPERIO
  vt82c686: Introduce abstract TYPE_VIA_ISA and base vt82c686b_isa on it
  vt82c686: Add emulation of VT8231 south bridge
  hw/pci-host: Add emulation of Marvell MV64361 PPC system controller
  hw/ppc: Add emulation of Genesi/bPlan Pegasos II

Philippe Mathieu-Daudé (1):
  hw/isa/Kconfig: Add missing dependency VIA VT82C686 -> APM

 MAINTAINERS                             |  10 +
 default-configs/devices/ppc-softmmu.mak |   2 +
 hw/isa/Kconfig                          |   1 +
 hw/isa/vt82c686.c                       | 422 +++++++++--
 hw/pci-host/Kconfig                     |   4 +
 hw/pci-host/meson.build                 |   2 +
 hw/pci-host/mv64361.c                   | 966 ++++++++++++++++++++++++
 hw/pci-host/mv643xx.h                   | 918 ++++++++++++++++++++++
 hw/pci-host/trace-events                |   6 +
 hw/ppc/Kconfig                          |   9 +
 hw/ppc/meson.build                      |   2 +
 hw/ppc/pegasos2.c                       | 144 ++++
 include/hw/isa/vt82c686.h               |   2 +-
 include/hw/pci-host/mv64361.h           |   8 +
 include/hw/pci/pci_ids.h                |   4 +-
 15 files changed, 2418 insertions(+), 82 deletions(-)
 create mode 100644 hw/pci-host/mv64361.c
 create mode 100644 hw/pci-host/mv643xx.h
 create mode 100644 hw/ppc/pegasos2.c
 create mode 100644 include/hw/pci-host/mv64361.h

-- 
2.21.4


Re: [PATCH v9 0/7] Pegasos2 emulation
Posted by Mark Cave-Ayland 4 years, 10 months ago
On 16/03/2021 22:03, BALATON Zoltan wrote:

> Hello,
> 
> This is adding a new PPC board called pegasos2. More info on it can be
> found at:
> 
> https://osdn.net/projects/qmiga/wiki/SubprojectPegasos2
> 
> Currently it needs a firmware ROM image that I cannot include due to
> original copyright holder (bPlan) did not release it under a free
> licence but I have plans to write a replacement in the future. With
> the original board firmware it can boot MorphOS now as:
> 
> qemu-system-ppc -M pegasos2 -cdrom morphos.iso -device ati-vga,romfile="" -serial stdio
> 
> then enter "boot cd boot.img" at the firmware "ok" prompt as described
> in the MorphOS.readme. To boot Linux use same command line with e.g.
> -cdrom debian-8.11.0-powerpc-netinst.iso then enter
> "boot cd install/pegasos"
> 
> The last patch adds the actual board code after previous patches
> adding VT8231 and MV64361 system controller chip emulation.
> 
> Regards,
> BALATON Zoltan
> 
> v9: Rebased to master
> 
> v8: Do not emulate setting of serial port address via register, just
>      hard code a default address instead
> 
> v7: Fix errp usage in patch 2
> 
> v6: Rebased on master, updated commit message about migration change
> 
> v5: Changes for review comments from David and Philippe
> 
> V4: Rename pegasos2_reset to pegasos2_cpu_reset
>      Add new files to MAINTAINERS
> 
> BALATON Zoltan (6):
>    vt82c686: QOM-ify superio related functionality
>    vt82c686: Add VT8231_SUPERIO based on VIA_SUPERIO
>    vt82c686: Introduce abstract TYPE_VIA_ISA and base vt82c686b_isa on it
>    vt82c686: Add emulation of VT8231 south bridge
>    hw/pci-host: Add emulation of Marvell MV64361 PPC system controller
>    hw/ppc: Add emulation of Genesi/bPlan Pegasos II
> 
> Philippe Mathieu-Daudé (1):
>    hw/isa/Kconfig: Add missing dependency VIA VT82C686 -> APM
> 
>   MAINTAINERS                             |  10 +
>   default-configs/devices/ppc-softmmu.mak |   2 +
>   hw/isa/Kconfig                          |   1 +
>   hw/isa/vt82c686.c                       | 422 +++++++++--
>   hw/pci-host/Kconfig                     |   4 +
>   hw/pci-host/meson.build                 |   2 +
>   hw/pci-host/mv64361.c                   | 966 ++++++++++++++++++++++++
>   hw/pci-host/mv643xx.h                   | 918 ++++++++++++++++++++++
>   hw/pci-host/trace-events                |   6 +
>   hw/ppc/Kconfig                          |   9 +
>   hw/ppc/meson.build                      |   2 +
>   hw/ppc/pegasos2.c                       | 144 ++++
>   include/hw/isa/vt82c686.h               |   2 +-
>   include/hw/pci-host/mv64361.h           |   8 +
>   include/hw/pci/pci_ids.h                |   4 +-
>   15 files changed, 2418 insertions(+), 82 deletions(-)
>   create mode 100644 hw/pci-host/mv64361.c
>   create mode 100644 hw/pci-host/mv643xx.h
>   create mode 100644 hw/ppc/pegasos2.c
>   create mode 100644 include/hw/pci-host/mv64361.h

FWIW I've not really been involved in this patchset, but having had a quick glance 
over it the QOM/device modelling and the general direction of the patchset looks 
okay. For that reason I don't feel I'm the right person to send a PR, particularly as 
I'm not regularly using the VIA devices and for non-Mac PPC machines the final nod 
really should come from David.

The important part is that it doesn't regress existing machines using the VIA 
devices: have you run it through Gitlab CI? Posting a link to a full green pipeline 
in GitLab gives confidence to a maintainer for machines/devices that are less common 
such as this that the code is stable and ready to merge.


ATB,

Mark.

Re: [PATCH v9 0/7] Pegasos2 emulation
Posted by BALATON Zoltan 4 years, 10 months ago
On Wed, 17 Mar 2021, Mark Cave-Ayland wrote:
> On 16/03/2021 22:03, BALATON Zoltan wrote:
>
>> Hello,
>> 
>> This is adding a new PPC board called pegasos2. More info on it can be
>> found at:
>> 
>> https://osdn.net/projects/qmiga/wiki/SubprojectPegasos2
>> 
>> Currently it needs a firmware ROM image that I cannot include due to
>> original copyright holder (bPlan) did not release it under a free
>> licence but I have plans to write a replacement in the future. With
>> the original board firmware it can boot MorphOS now as:
>> 
>> qemu-system-ppc -M pegasos2 -cdrom morphos.iso -device ati-vga,romfile="" 
>> -serial stdio
>> 
>> then enter "boot cd boot.img" at the firmware "ok" prompt as described
>> in the MorphOS.readme. To boot Linux use same command line with e.g.
>> -cdrom debian-8.11.0-powerpc-netinst.iso then enter
>> "boot cd install/pegasos"
>> 
>> The last patch adds the actual board code after previous patches
>> adding VT8231 and MV64361 system controller chip emulation.
>> 
>> Regards,
>> BALATON Zoltan
>> 
>> v9: Rebased to master
>> 
>> v8: Do not emulate setting of serial port address via register, just
>>      hard code a default address instead
>> 
>> v7: Fix errp usage in patch 2
>> 
>> v6: Rebased on master, updated commit message about migration change
>> 
>> v5: Changes for review comments from David and Philippe
>> 
>> V4: Rename pegasos2_reset to pegasos2_cpu_reset
>>      Add new files to MAINTAINERS
>> 
>> BALATON Zoltan (6):
>>    vt82c686: QOM-ify superio related functionality
>>    vt82c686: Add VT8231_SUPERIO based on VIA_SUPERIO
>>    vt82c686: Introduce abstract TYPE_VIA_ISA and base vt82c686b_isa on it
>>    vt82c686: Add emulation of VT8231 south bridge
>>    hw/pci-host: Add emulation of Marvell MV64361 PPC system controller
>>    hw/ppc: Add emulation of Genesi/bPlan Pegasos II
>> 
>> Philippe Mathieu-Daudé (1):
>>    hw/isa/Kconfig: Add missing dependency VIA VT82C686 -> APM
>>
>>   MAINTAINERS                             |  10 +
>>   default-configs/devices/ppc-softmmu.mak |   2 +
>>   hw/isa/Kconfig                          |   1 +
>>   hw/isa/vt82c686.c                       | 422 +++++++++--
>>   hw/pci-host/Kconfig                     |   4 +
>>   hw/pci-host/meson.build                 |   2 +
>>   hw/pci-host/mv64361.c                   | 966 ++++++++++++++++++++++++
>>   hw/pci-host/mv643xx.h                   | 918 ++++++++++++++++++++++
>>   hw/pci-host/trace-events                |   6 +
>>   hw/ppc/Kconfig                          |   9 +
>>   hw/ppc/meson.build                      |   2 +
>>   hw/ppc/pegasos2.c                       | 144 ++++
>>   include/hw/isa/vt82c686.h               |   2 +-
>>   include/hw/pci-host/mv64361.h           |   8 +
>>   include/hw/pci/pci_ids.h                |   4 +-
>>   15 files changed, 2418 insertions(+), 82 deletions(-)
>>   create mode 100644 hw/pci-host/mv64361.c
>>   create mode 100644 hw/pci-host/mv643xx.h
>>   create mode 100644 hw/ppc/pegasos2.c
>>   create mode 100644 include/hw/pci-host/mv64361.h
>
> FWIW I've not really been involved in this patchset, but having had a quick 
> glance over it the QOM/device modelling and the general direction of the 
> patchset looks okay. For that reason I don't feel I'm the right person to 
> send a PR, particularly as I'm not regularly using the VIA devices and for 
> non-Mac PPC machines the final nod really should come from David.

Thanks for the review, I've updated comments and sent v10. David is away 
this week so maybe it's only Philippe now who could still take this series 
before it's too late for 6.0 (if it isn't already).

> The important part is that it doesn't regress existing machines using the VIA 
> devices: have you run it through Gitlab CI? Posting a link to a full green 
> pipeline in GitLab gives confidence to a maintainer for machines/devices that 
> are less common such as this that the code is stable and ready to merge.

These are adding new device model that's only used by the new machine. How 
could it regress anything? Those patches that changed existing devices are 
already upstream. Also if it touches anything that's fuloong2e which is 
harfly critical and was barely working before I've started to clean it up 
to be able to use it's devices as a basis for pegasos2. Lastly the freeze 
is for finding and fixing regressions but for that the series should first 
be allowed to get in to be tested more widely.

I don't know how to run Gitlab CI, I don't even have an account. Thought 
that's what maintainers are there for to run these tests.

Regards,
BALATON Zoltan