MAINTAINERS | 1 + hw/ppc/pegasos2.c | 770 +++++++++++++++++++-------------------- hw/ppc/vof.c | 50 ++- include/hw/boards.h | 16 +- pc-bios/dtb/meson.build | 2 + pc-bios/dtb/pegasos1.dtb | Bin 0 -> 857 bytes pc-bios/dtb/pegasos1.dts | 125 +++++++ pc-bios/dtb/pegasos2.dtb | Bin 0 -> 1701 bytes pc-bios/dtb/pegasos2.dts | 167 +++++++++ 9 files changed, 718 insertions(+), 413 deletions(-) create mode 100644 pc-bios/dtb/pegasos1.dtb create mode 100644 pc-bios/dtb/pegasos1.dts create mode 100644 pc-bios/dtb/pegasos2.dtb create mode 100644 pc-bios/dtb/pegasos2.dts
This series changes how the fdt for VOF is generated in pegasos2 by moving the static parts to a dtb and only generate the changing parts such as memory size and PCI devices programmatically. This simplifies the code and allows simply adding emulation of Pegasos I which has a different north bridge and slightly different memory map but otherwise very similar and can be emulated by reusing parts from the amigaone machine. The machine was tested with a Pegasos I ROM image and MorphOS. The first VOF patch (submitted separetely before, the reviewed v3 is included here) fixes handling the name property in VOF that cannot be represented in a dts as that always takes the path as the name and cannot accept an explicit name property but we need the name property to appear when guest queries properties which previously was worked around by adding it to every node. The series also adds an extended DEFINE_MACHINE macro that is later used for more easily define the abstract machine type and hide most of the QOM boiler plate. Regards, BALATON Zoltan Link to previous version: https://patchew.org/QEMU/cover.1751494995.git.balaton@eik.bme.hu/ v3: - rebase on master v2: - rebase on master - added some R-b tags from Philippe - move first patch later (was first to allow merging separately) - clarify blurb above BALATON Zoltan (13): ppc/vof: Make nextprop behave more like Open Firmware hw/ppc/pegasos2: Remove explicit name properties from device tree hw/ppc/pegasos2: Change device tree generation hw/ppc/pegasos2: Remove fdt pointer from machine state hw/ppc/pegasos2: Rename mv field in machine state hw/ppc/pegasos2: Add south bridge pointer in the machine state hw/ppc/pegasos2: Move PCI IRQ routing setup to a function hw/ppc/pegasos2: Move hardware specific parts out of machine reset hw/ppc/pegasos2: Introduce abstract superclass hw/ppc/pegasos2: Add bus frequency to machine state hw/boards: Extend DEFINE_MACHINE macro to cover more use cases hw/ppc/pegasos2: Add Pegasos I emulation hw/ppc/pegasos2: Add VOF support for pegasos1 MAINTAINERS | 1 + hw/ppc/pegasos2.c | 770 +++++++++++++++++++-------------------- hw/ppc/vof.c | 50 ++- include/hw/boards.h | 16 +- pc-bios/dtb/meson.build | 2 + pc-bios/dtb/pegasos1.dtb | Bin 0 -> 857 bytes pc-bios/dtb/pegasos1.dts | 125 +++++++ pc-bios/dtb/pegasos2.dtb | Bin 0 -> 1701 bytes pc-bios/dtb/pegasos2.dts | 167 +++++++++ 9 files changed, 718 insertions(+), 413 deletions(-) create mode 100644 pc-bios/dtb/pegasos1.dtb create mode 100644 pc-bios/dtb/pegasos1.dts create mode 100644 pc-bios/dtb/pegasos2.dtb create mode 100644 pc-bios/dtb/pegasos2.dts -- 2.41.3
Hi BALATON,
I tested this series with the provided patches and observed the following:
When I run QEMU with the ROM option, the machine boots successfully with
the below command:
qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \
-cdrom debian-8.11.0-powerpc-netinst.iso \
-device VGA,romfile="" -serial stdio
However, when I try to boot the machine without the ROM using VOF, the
machine does not come up and no logs appear on stdout:
qemu-system-ppc64 -machine pegasos2 -serial stdio \
-kernel vmlinuz-chrp.initrd -append "---" \
-cdrom debian-8.11.0-powerpc-netinst.iso
Please let me know if I am missing any parameters or setup required for
booting via VOF on Pegasos2.
Documentation referred: qemu/docs/system/ppc/amigang.rst
Regards,
Yogesh Vyas
On Sat, Oct 18, 2025 at 8:44 PM BALATON Zoltan <balaton@eik.bme.hu> wrote:
> This series changes how the fdt for VOF is generated in pegasos2 by
> moving the static parts to a dtb and only generate the changing parts
> such as memory size and PCI devices programmatically. This simplifies
> the code and allows simply adding emulation of Pegasos I which has a
> different north bridge and slightly different memory map but otherwise
> very similar and can be emulated by reusing parts from the amigaone
> machine. The machine was tested with a Pegasos I ROM image and MorphOS.
>
> The first VOF patch (submitted separetely before, the reviewed v3 is
> included here) fixes handling the name property in VOF that cannot be
> represented in a dts as that always takes the path as the name and
> cannot accept an explicit name property but we need the name property
> to appear when guest queries properties which previously was worked
> around by adding it to every node.
>
> The series also adds an extended DEFINE_MACHINE macro that is later
> used for more easily define the abstract machine type and hide most of
> the QOM boiler plate.
>
> Regards,
> BALATON Zoltan
>
> Link to previous version:
> https://patchew.org/QEMU/cover.1751494995.git.balaton@eik.bme.hu/
>
> v3:
> - rebase on master
>
> v2:
> - rebase on master
> - added some R-b tags from Philippe
> - move first patch later (was first to allow merging separately)
> - clarify blurb above
>
> BALATON Zoltan (13):
> ppc/vof: Make nextprop behave more like Open Firmware
> hw/ppc/pegasos2: Remove explicit name properties from device tree
> hw/ppc/pegasos2: Change device tree generation
> hw/ppc/pegasos2: Remove fdt pointer from machine state
> hw/ppc/pegasos2: Rename mv field in machine state
> hw/ppc/pegasos2: Add south bridge pointer in the machine state
> hw/ppc/pegasos2: Move PCI IRQ routing setup to a function
> hw/ppc/pegasos2: Move hardware specific parts out of machine reset
> hw/ppc/pegasos2: Introduce abstract superclass
> hw/ppc/pegasos2: Add bus frequency to machine state
> hw/boards: Extend DEFINE_MACHINE macro to cover more use cases
> hw/ppc/pegasos2: Add Pegasos I emulation
> hw/ppc/pegasos2: Add VOF support for pegasos1
>
> MAINTAINERS | 1 +
> hw/ppc/pegasos2.c | 770 +++++++++++++++++++--------------------
> hw/ppc/vof.c | 50 ++-
> include/hw/boards.h | 16 +-
> pc-bios/dtb/meson.build | 2 +
> pc-bios/dtb/pegasos1.dtb | Bin 0 -> 857 bytes
> pc-bios/dtb/pegasos1.dts | 125 +++++++
> pc-bios/dtb/pegasos2.dtb | Bin 0 -> 1701 bytes
> pc-bios/dtb/pegasos2.dts | 167 +++++++++
> 9 files changed, 718 insertions(+), 413 deletions(-)
> create mode 100644 pc-bios/dtb/pegasos1.dtb
> create mode 100644 pc-bios/dtb/pegasos1.dts
> create mode 100644 pc-bios/dtb/pegasos2.dtb
> create mode 100644 pc-bios/dtb/pegasos2.dts
>
> --
> 2.41.3
>
>
>
On Sun, 19 Oct 2025, Yogesh Vyas wrote: > When I run QEMU with the ROM option, the machine boots successfully with > the below command: > > qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \ > -cdrom debian-8.11.0-powerpc-netinst.iso \ > -device VGA,romfile="" -serial stdio > > However, when I try to boot the machine without the ROM using VOF, the > machine does not come up and no logs appear on stdout: > > qemu-system-ppc64 -machine pegasos2 -serial stdio \ > -kernel vmlinuz-chrp.initrd -append "---" \ > -cdrom debian-8.11.0-powerpc-netinst.iso > > Please let me know if I am missing any parameters or setup required for > booting via VOF on Pegasos2. > > Documentation referred: qemu/docs/system/ppc/amigang.rst Maybe you did not use the right vmlinuz-chrp.initrd. Pegasos2 is a 32 bit machine so you need /install/powerpc/vmlinuz-chrp.initrd for it (see in the /install/pegasos script that is used with firmware). Even if you call it from qemu-system-ppc64 which includes both 32 bit and 64 bit machines but does not make 32 bit machines 64 bit so you still need the 32 bit OS. Regards, BALATON Zoltan
On Sun, Oct 19, 2025 at 5:37 PM BALATON Zoltan <balaton@eik.bme.hu> wrote: > On Sun, 19 Oct 2025, Yogesh Vyas wrote: > > When I run QEMU with the ROM option, the machine boots successfully with > > the below command: > > > > qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \ > > -cdrom debian-8.11.0-powerpc-netinst.iso \ > > -device VGA,romfile="" -serial stdio > > > > However, when I try to boot the machine without the ROM using VOF, the > > machine does not come up and no logs appear on stdout: > > > > qemu-system-ppc64 -machine pegasos2 -serial stdio \ > > -kernel vmlinuz-chrp.initrd -append "---" \ > > -cdrom debian-8.11.0-powerpc-netinst.iso > > > > Please let me know if I am missing any parameters or setup required for > > booting via VOF on Pegasos2. > > > > Documentation referred: qemu/docs/system/ppc/amigang.rst > > Maybe you did not use the right vmlinuz-chrp.initrd. Pegasos2 is a 32 bit > machine so you need /install/powerpc/vmlinuz-chrp.initrd for it (see in > the /install/pegasos script that is used with firmware). Even if you call > it from qemu-system-ppc64 which includes both 32 bit and 64 bit machines > but does not make 32 bit machines 64 bit so you still need the 32 bit OS. > > Hi Balaton, I am using 32bit images only and looks like VOF boot works with the distro provided Qemu (both ppc and pp64), however doesn't work with upstream Qemu for VOF. yogi@fedora:~/work/images$ file vmlinuz-chrp.initrd vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, not stripped yogi@fedora:~/work/images$ file debian-8.11.0-powerpc-netinst.iso debian-8.11.0-powerpc-netinst.iso: ISO 9660 CD-ROM filesystem data (DOS/MBR boot sector) 'Debian 8.11.0 ppc 1' Qemu distro version: yogi@fedora:~/work/images$ qemu-system-ppc --version QEMU emulator version 9.2.4 (qemu-9.2.4-2.fc42) Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers yogi@fedora:~/work/images$ qemu-system-ppc64 --version QEMU emulator version 9.2.4 (qemu-9.2.4-2.fc42) Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers When using upstream Qemu (both ppc and pp64) with VOF it just gets stuck with no console output. Am I missing something? I also tried applying the patches from https://lore.kernel.org/qemu-devel/cover.1761346145.git.balaton@eik.bme.hu/T/#t but still the same issue. Regards, Yogesh > Regards, > BALATON Zoltan >
On Sun, 26 Oct 2025, Yogesh Vyas wrote: > On Sun, Oct 19, 2025 at 5:37 PM BALATON Zoltan <balaton@eik.bme.hu> wrote: >> On Sun, 19 Oct 2025, Yogesh Vyas wrote: >>> When I run QEMU with the ROM option, the machine boots successfully with >>> the below command: >>> >>> qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \ >>> -cdrom debian-8.11.0-powerpc-netinst.iso \ >>> -device VGA,romfile="" -serial stdio >>> >>> However, when I try to boot the machine without the ROM using VOF, the >>> machine does not come up and no logs appear on stdout: >>> >>> qemu-system-ppc64 -machine pegasos2 -serial stdio \ >>> -kernel vmlinuz-chrp.initrd -append "---" \ >>> -cdrom debian-8.11.0-powerpc-netinst.iso >>> >>> Please let me know if I am missing any parameters or setup required for >>> booting via VOF on Pegasos2. >>> >>> Documentation referred: qemu/docs/system/ppc/amigang.rst >> >> Maybe you did not use the right vmlinuz-chrp.initrd. Pegasos2 is a 32 bit >> machine so you need /install/powerpc/vmlinuz-chrp.initrd for it (see in >> the /install/pegasos script that is used with firmware). Even if you call >> it from qemu-system-ppc64 which includes both 32 bit and 64 bit machines >> but does not make 32 bit machines 64 bit so you still need the 32 bit OS. >> >> > Hi Balaton, > I am using 32bit images only and looks like VOF boot works with the distro > provided Qemu (both ppc and pp64), however doesn't work with upstream Qemu > for VOF. That's odd, it works for me with QEMU master so I can't reproduce this. > yogi@fedora:~/work/images$ file vmlinuz-chrp.initrd > vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, > version 1 (SYSV), statically linked, not stripped The file command says 32-bit for both /install/powerpc/vmlinuz-chrp.initrd and /install/powerpc64/vmlinuz-chrp.initrd but only the first one should work. Can you double check you have the right vmlinuz-chrp.initrd file? But if you say the same file works with 9.2.4 I have no idea why. I see these files on the CD 9301172 Jun 19 2018 /install/powerpc/vmlinuz-chrp.initrd 10534888 Jun 19 2018 /install/powerpc64/vmlinuz-chrp.initrd File command says: vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, not stripped vmlinuz-chrp.initrd64: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), statically linked, not stripped but only the first from the powerpc directory is supposed to work and it does boot for me with QEMU master. You can also check following the other way described in qemu/docs/system/ppc/amigang.rst using -bios pegasos2.rom which loads the correct image from the CD. Does that work? Regards, BALATON Zoltan
On 10/26/25 4:39 PM, BALATON Zoltan wrote: > On Sun, 26 Oct 2025, Yogesh Vyas wrote: >> On Sun, Oct 19, 2025 at 5:37 PM BALATON Zoltan <balaton@eik.bme.hu> >> wrote: >>> On Sun, 19 Oct 2025, Yogesh Vyas wrote: >>>> When I run QEMU with the ROM option, the machine boots successfully >>>> with >>>> the below command: >>>> >>>> qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \ >>>> -cdrom debian-8.11.0-powerpc-netinst.iso \ >>>> -device VGA,romfile="" -serial stdio >>>> >>>> However, when I try to boot the machine without the ROM using VOF, the >>>> machine does not come up and no logs appear on stdout: >>>> >>>> qemu-system-ppc64 -machine pegasos2 -serial stdio \ >>>> -kernel vmlinuz-chrp.initrd -append "---" \ >>>> -cdrom debian-8.11.0-powerpc-netinst.iso >>>> >>>> Please let me know if I am missing any parameters or setup required >>>> for >>>> booting via VOF on Pegasos2. >>>> >>>> Documentation referred: qemu/docs/system/ppc/amigang.rst >>> >>> Maybe you did not use the right vmlinuz-chrp.initrd. Pegasos2 is a >>> 32 bit >>> machine so you need /install/powerpc/vmlinuz-chrp.initrd for it (see in >>> the /install/pegasos script that is used with firmware). Even if you >>> call >>> it from qemu-system-ppc64 which includes both 32 bit and 64 bit >>> machines >>> but does not make 32 bit machines 64 bit so you still need the 32 >>> bit OS. >>> >>> >> Hi Balaton, >> I am using 32bit images only and looks like VOF boot works with the >> distro >> provided Qemu (both ppc and pp64), however doesn't work with upstream >> Qemu >> for VOF. > > That's odd, it works for me with QEMU master so I can't reproduce this. > >> yogi@fedora:~/work/images$ file vmlinuz-chrp.initrd >> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, >> version 1 (SYSV), statically linked, not stripped > > The file command says 32-bit for both > /install/powerpc/vmlinuz-chrp.initrd and > /install/powerpc64/vmlinuz-chrp.initrd but only the first one should > work. Can you double check you have the right vmlinuz-chrp.initrd > file? But if you say the same file works with 9.2.4 I have no idea > why. I see these files on the CD > > 9301172 Jun 19 2018 /install/powerpc/vmlinuz-chrp.initrd > 10534888 Jun 19 2018 /install/powerpc64/vmlinuz-chrp.initrd I am also using the same file: yogi@fedora:~/work/images$ ls -lrt vmlinuz-chrp.initrd -r--r--r--. 1 yogi yogi 9301172 Oct 18 23:50 vmlinuz-chrp.initrd > > File command says: > > vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco > 4500, version 1 (SYSV), statically linked, not stripped > vmlinuz-chrp.initrd64: ELF 32-bit MSB executable, PowerPC or cisco > 4500, version 1 (SYSV), statically linked, not stripped > > but only the first from the powerpc directory is supposed to work and > it does boot for me with QEMU master. You can also check following the > other way described in qemu/docs/system/ppc/amigang.rst using -bios > pegasos2.rom which loads the correct image from the CD. Does that work? Yes, I had mentioned it in my first mail that ROM option works as expected. It is only an issue when using VOF with upstream Qemu. Could you please share your Qemu command line if it's different from the one mentioned in the documentation. Regards, Yogesh Vyas > > Regards, > BALATON Zoltan
On Sun, 26 Oct 2025, Yogesh Vyas wrote: > > On 10/26/25 4:39 PM, BALATON Zoltan wrote: >> On Sun, 26 Oct 2025, Yogesh Vyas wrote: >>> On Sun, Oct 19, 2025 at 5:37 PM BALATON Zoltan <balaton@eik.bme.hu> wrote: >>>> On Sun, 19 Oct 2025, Yogesh Vyas wrote: >>>>> When I run QEMU with the ROM option, the machine boots successfully with >>>>> the below command: >>>>> >>>>> qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \ >>>>> -cdrom debian-8.11.0-powerpc-netinst.iso \ >>>>> -device VGA,romfile="" -serial stdio >>>>> >>>>> However, when I try to boot the machine without the ROM using VOF, the >>>>> machine does not come up and no logs appear on stdout: >>>>> >>>>> qemu-system-ppc64 -machine pegasos2 -serial stdio \ >>>>> -kernel vmlinuz-chrp.initrd -append "---" \ >>>>> -cdrom debian-8.11.0-powerpc-netinst.iso >>>>> >>>>> Please let me know if I am missing any parameters or setup required for >>>>> booting via VOF on Pegasos2. >>>>> >>>>> Documentation referred: qemu/docs/system/ppc/amigang.rst >>>> >>>> Maybe you did not use the right vmlinuz-chrp.initrd. Pegasos2 is a 32 bit >>>> machine so you need /install/powerpc/vmlinuz-chrp.initrd for it (see in >>>> the /install/pegasos script that is used with firmware). Even if you call >>>> it from qemu-system-ppc64 which includes both 32 bit and 64 bit machines >>>> but does not make 32 bit machines 64 bit so you still need the 32 bit OS. >>>> >>>> >>> Hi Balaton, >>> I am using 32bit images only and looks like VOF boot works with the distro >>> provided Qemu (both ppc and pp64), however doesn't work with upstream Qemu >>> for VOF. >> >> That's odd, it works for me with QEMU master so I can't reproduce this. >> >>> yogi@fedora:~/work/images$ file vmlinuz-chrp.initrd >>> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, >>> version 1 (SYSV), statically linked, not stripped >> >> The file command says 32-bit for both /install/powerpc/vmlinuz-chrp.initrd >> and /install/powerpc64/vmlinuz-chrp.initrd but only the first one should >> work. Can you double check you have the right vmlinuz-chrp.initrd file? But >> if you say the same file works with 9.2.4 I have no idea why. I see these >> files on the CD >> >> 9301172 Jun 19 2018 /install/powerpc/vmlinuz-chrp.initrd >> 10534888 Jun 19 2018 /install/powerpc64/vmlinuz-chrp.initrd > > > I am also using the same file: > > yogi@fedora:~/work/images$ ls -lrt vmlinuz-chrp.initrd > -r--r--r--. 1 yogi yogi 9301172 Oct 18 23:50 vmlinuz-chrp.initrd > >> >> File command says: >> >> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, >> version 1 (SYSV), statically linked, not stripped >> vmlinuz-chrp.initrd64: ELF 32-bit MSB executable, PowerPC or cisco 4500, >> version 1 (SYSV), statically linked, not stripped >> >> but only the first from the powerpc directory is supposed to work and it >> does boot for me with QEMU master. You can also check following the other >> way described in qemu/docs/system/ppc/amigang.rst using -bios pegasos2.rom >> which loads the correct image from the CD. Does that work? > > Yes, I had mentioned it in my first mail that ROM option works as expected. > It is only an issue when using VOF with upstream Qemu. Or if you suspect it's a VOF issue you can try -trace enable="vof*" Regards, BALATON Zoltan
On 10/26/25 10:15 PM, BALATON Zoltan wrote: > On Sun, 26 Oct 2025, Yogesh Vyas wrote: > >> >> On 10/26/25 4:39 PM, BALATON Zoltan wrote: >>> On Sun, 26 Oct 2025, Yogesh Vyas wrote: >>>> On Sun, Oct 19, 2025 at 5:37 PM BALATON Zoltan <balaton@eik.bme.hu> >>>> wrote: >>>>> On Sun, 19 Oct 2025, Yogesh Vyas wrote: >>>>>> When I run QEMU with the ROM option, the machine boots >>>>>> successfully with >>>>>> the below command: >>>>>> >>>>>> qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \ >>>>>> -cdrom debian-8.11.0-powerpc-netinst.iso \ >>>>>> -device VGA,romfile="" -serial stdio >>>>>> >>>>>> However, when I try to boot the machine without the ROM using >>>>>> VOF, the >>>>>> machine does not come up and no logs appear on stdout: >>>>>> >>>>>> qemu-system-ppc64 -machine pegasos2 -serial stdio \ >>>>>> -kernel vmlinuz-chrp.initrd -append "---" \ >>>>>> -cdrom debian-8.11.0-powerpc-netinst.iso >>>>>> >>>>>> Please let me know if I am missing any parameters or setup >>>>>> required for >>>>>> booting via VOF on Pegasos2. >>>>>> >>>>>> Documentation referred: qemu/docs/system/ppc/amigang.rst >>>>> >>>>> Maybe you did not use the right vmlinuz-chrp.initrd. Pegasos2 is a >>>>> 32 bit >>>>> machine so you need /install/powerpc/vmlinuz-chrp.initrd for it >>>>> (see in >>>>> the /install/pegasos script that is used with firmware). Even if >>>>> you call >>>>> it from qemu-system-ppc64 which includes both 32 bit and 64 bit >>>>> machines >>>>> but does not make 32 bit machines 64 bit so you still need the 32 >>>>> bit OS. >>>>> >>>>> >>>> Hi Balaton, >>>> I am using 32bit images only and looks like VOF boot works with the >>>> distro >>>> provided Qemu (both ppc and pp64), however doesn't work with >>>> upstream Qemu >>>> for VOF. >>> >>> That's odd, it works for me with QEMU master so I can't reproduce this. >>> >>>> yogi@fedora:~/work/images$ file vmlinuz-chrp.initrd >>>> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, >>>> version 1 (SYSV), statically linked, not stripped >>> >>> The file command says 32-bit for both >>> /install/powerpc/vmlinuz-chrp.initrd and >>> /install/powerpc64/vmlinuz-chrp.initrd but only the first one should >>> work. Can you double check you have the right vmlinuz-chrp.initrd >>> file? But if you say the same file works with 9.2.4 I have no idea >>> why. I see these files on the CD >>> >>> 9301172 Jun 19 2018 /install/powerpc/vmlinuz-chrp.initrd >>> 10534888 Jun 19 2018 /install/powerpc64/vmlinuz-chrp.initrd >> >> >> I am also using the same file: >> >> yogi@fedora:~/work/images$ ls -lrt vmlinuz-chrp.initrd >> -r--r--r--. 1 yogi yogi 9301172 Oct 18 23:50 vmlinuz-chrp.initrd >> >>> >>> File command says: >>> >>> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco >>> 4500, version 1 (SYSV), statically linked, not stripped >>> vmlinuz-chrp.initrd64: ELF 32-bit MSB executable, PowerPC or cisco >>> 4500, version 1 (SYSV), statically linked, not stripped >>> >>> but only the first from the powerpc directory is supposed to work >>> and it does boot for me with QEMU master. You can also check >>> following the other way described in >>> qemu/docs/system/ppc/amigang.rst using -bios pegasos2.rom which >>> loads the correct image from the CD. Does that work? >> >> Yes, I had mentioned it in my first mail that ROM option works as >> expected. It is only an issue when using VOF with upstream Qemu. > > Or if you suspect it's a VOF issue you can try -trace enable="vof*" > Hi Balaton, As suggested, I tried both options in upstream: yogi@fedora:~/work/git/fork/qemu/build$ ./qemu-system-ppc -machine pegasos2 -serial stdio -kernel ~/work/images/vmlinuz-chrp.initrd -append "---" -cdrom ~/work/images/debian-8.11.0-powerpc-netinst.iso -d guest_errors -trace enable="vof*" I could see the below trace and the error message: vof_getproplen ph=0x13 "subsystem-vendor-id" => len=4 vof_getprop ph=0x13 "subsystem-vendor-id" => len=4 [00001100] vof_getproplen ph=0x13 "reg" => len=20 vof_getprop ph=0x13 "reg" => len=20 [00000000 00000000 00000000 00000000 00000000] vof_write ih=0x2 [22] "Device tree strings 0x" vof_write ih=0x2 [8] "01b0d000" vof_write ih=0x2 [6] " -> 0x" vof_write ih=0x2 [8] "01b0d405" vof_write ih=0x2 [2] " " vof_write ih=0x2 [22] "Device tree struct 0x" vof_write ih=0x2 [8] "01b0e000" vof_write ih=0x2 [6] " -> 0x" vof_write ih=0x2 [8] "01b0f000" vof_write ih=0x2 [2] " " vof_getprop ph=0x3 "stdin" => len=4 [00000001] vof_write ih=0x2 [18] "Calling quiesce..." vof_write ih=0x2 [2] " " vof_claimed 0x0..0xd80 size=0xd80 vof_claimed 0x8000..0x10000 size=0x8000 vof_claimed 0x400000..0xcd8dfc size=0x8d8dfc vof_claimed 0xd00000..0x15a1ec0 size=0x8a1ec0 vof_claimed 0x15a2000..0x1b0b90d size=0x56990d vof_claimed 0x1b0c000..0x1c0c000 size=0x100000 vof_claimed 0x1ffff000..0x1ffff014 size=0x14 vof_write ih=0x2 [24] "returning from prom_init" vof_write ih=0x2 [2] " " Trying to read invalid spr 1012 (0x3f4) at c0013f48 Regards, Yogesh Vyas > Regards, > BALATON Zoltan
On Mon, 27 Oct 2025, Yogesh Vyas wrote: > On 10/26/25 10:15 PM, BALATON Zoltan wrote: >> On Sun, 26 Oct 2025, Yogesh Vyas wrote: >>> On 10/26/25 4:39 PM, BALATON Zoltan wrote: >>>> On Sun, 26 Oct 2025, Yogesh Vyas wrote: >>>>> On Sun, Oct 19, 2025 at 5:37 PM BALATON Zoltan <balaton@eik.bme.hu> >>>>> wrote: >>>>>> On Sun, 19 Oct 2025, Yogesh Vyas wrote: >>>>>>> When I run QEMU with the ROM option, the machine boots successfully >>>>>>> with >>>>>>> the below command: >>>>>>> >>>>>>> qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \ >>>>>>> -cdrom debian-8.11.0-powerpc-netinst.iso \ >>>>>>> -device VGA,romfile="" -serial stdio >>>>>>> >>>>>>> However, when I try to boot the machine without the ROM using VOF, the >>>>>>> machine does not come up and no logs appear on stdout: >>>>>>> >>>>>>> qemu-system-ppc64 -machine pegasos2 -serial stdio \ >>>>>>> -kernel vmlinuz-chrp.initrd -append "---" \ >>>>>>> -cdrom debian-8.11.0-powerpc-netinst.iso >>>>>>> >>>>>>> Please let me know if I am missing any parameters or setup required >>>>>>> for >>>>>>> booting via VOF on Pegasos2. >>>>>>> >>>>>>> Documentation referred: qemu/docs/system/ppc/amigang.rst >>>>>> >>>>>> Maybe you did not use the right vmlinuz-chrp.initrd. Pegasos2 is a 32 >>>>>> bit >>>>>> machine so you need /install/powerpc/vmlinuz-chrp.initrd for it (see in >>>>>> the /install/pegasos script that is used with firmware). Even if you >>>>>> call >>>>>> it from qemu-system-ppc64 which includes both 32 bit and 64 bit >>>>>> machines >>>>>> but does not make 32 bit machines 64 bit so you still need the 32 bit >>>>>> OS. >>>>>> >>>>>> >>>>> Hi Balaton, >>>>> I am using 32bit images only and looks like VOF boot works with the >>>>> distro >>>>> provided Qemu (both ppc and pp64), however doesn't work with upstream >>>>> Qemu >>>>> for VOF. >>>> >>>> That's odd, it works for me with QEMU master so I can't reproduce this. >>>> >>>>> yogi@fedora:~/work/images$ file vmlinuz-chrp.initrd >>>>> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, >>>>> version 1 (SYSV), statically linked, not stripped >>>> >>>> The file command says 32-bit for both >>>> /install/powerpc/vmlinuz-chrp.initrd and >>>> /install/powerpc64/vmlinuz-chrp.initrd but only the first one should >>>> work. Can you double check you have the right vmlinuz-chrp.initrd file? >>>> But if you say the same file works with 9.2.4 I have no idea why. I see >>>> these files on the CD >>>> >>>> 9301172 Jun 19 2018 /install/powerpc/vmlinuz-chrp.initrd >>>> 10534888 Jun 19 2018 /install/powerpc64/vmlinuz-chrp.initrd >>> >>> >>> I am also using the same file: >>> >>> yogi@fedora:~/work/images$ ls -lrt vmlinuz-chrp.initrd >>> -r--r--r--. 1 yogi yogi 9301172 Oct 18 23:50 vmlinuz-chrp.initrd >>> >>>> >>>> File command says: >>>> >>>> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, >>>> version 1 (SYSV), statically linked, not stripped >>>> vmlinuz-chrp.initrd64: ELF 32-bit MSB executable, PowerPC or cisco 4500, >>>> version 1 (SYSV), statically linked, not stripped >>>> >>>> but only the first from the powerpc directory is supposed to work and it >>>> does boot for me with QEMU master. You can also check following the other >>>> way described in qemu/docs/system/ppc/amigang.rst using -bios >>>> pegasos2.rom which loads the correct image from the CD. Does that work? >>> >>> Yes, I had mentioned it in my first mail that ROM option works as >>> expected. It is only an issue when using VOF with upstream Qemu. >> >> Or if you suspect it's a VOF issue you can try -trace enable="vof*" >> > Hi Balaton, > > As suggested, I tried both options in upstream: > yogi@fedora:~/work/git/fork/qemu/build$ ./qemu-system-ppc -machine pegasos2 > -serial stdio -kernel ~/work/images/vmlinuz-chrp.initrd -append "---" -cdrom > ~/work/images/debian-8.11.0-powerpc-netinst.iso -d guest_errors -trace > enable="vof*" > > I could see the below trace and the error message: > vof_getproplen ph=0x13 "subsystem-vendor-id" => len=4 > vof_getprop ph=0x13 "subsystem-vendor-id" => len=4 [00001100] > vof_getproplen ph=0x13 "reg" => len=20 > vof_getprop ph=0x13 "reg" => len=20 [00000000 00000000 00000000 00000000 > 00000000] > vof_write ih=0x2 [22] "Device tree strings 0x" > vof_write ih=0x2 [8] "01b0d000" > vof_write ih=0x2 [6] " -> 0x" > vof_write ih=0x2 [8] "01b0d405" > vof_write ih=0x2 [2] " > " > vof_write ih=0x2 [22] "Device tree struct 0x" > vof_write ih=0x2 [8] "01b0e000" > vof_write ih=0x2 [6] " -> 0x" > vof_write ih=0x2 [8] "01b0f000" > vof_write ih=0x2 [2] " > " > vof_getprop ph=0x3 "stdin" => len=4 [00000001] > vof_write ih=0x2 [18] "Calling quiesce..." > vof_write ih=0x2 [2] " > " > vof_claimed 0x0..0xd80 size=0xd80 > vof_claimed 0x8000..0x10000 size=0x8000 > vof_claimed 0x400000..0xcd8dfc size=0x8d8dfc > vof_claimed 0xd00000..0x15a1ec0 size=0x8a1ec0 > vof_claimed 0x15a2000..0x1b0b90d size=0x56990d > vof_claimed 0x1b0c000..0x1c0c000 size=0x100000 > vof_claimed 0x1ffff000..0x1ffff014 size=0x14 > vof_write ih=0x2 [24] "returning from prom_init" > vof_write ih=0x2 [2] " > " > Trying to read invalid spr 1012 (0x3f4) at c0013f48 Then VOF works too and the Linux kernel loader starts but it stops somewhere when the actual kernel starts. I get: vof_write ih=0x1 [18] "Calling quiesce..." vof_write ih=0x1 [2] " " vof_claimed 0x0..0xd80 size=0xd80 vof_claimed 0x8000..0x10000 size=0x8000 vof_claimed 0x400000..0xcd8dfc size=0x8d8dfc vof_claimed 0xd00000..0x15a1ec0 size=0x8a1ec0 vof_claimed 0x15a2000..0x1b0b90d size=0x56990d vof_claimed 0x1b0c000..0x1c0c000 size=0x100000 vof_claimed 0x1ffff000..0x1ffff014 size=0x14 vof_write ih=0x1 [24] "returning from prom_init" vof_write ih=0x1 [2] " " Trying to read invalid spr 1012 (0x3f4) at 00000000c0013f48 [ 0.000000] Using CHRP machine description [ 0.000000] Total memory = 512MB; using 1024kB for hash table (at cff00000) [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 3.16.0-6-powerpc (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 Debian 3.16.56-1+deb8u1 (2018-05-08) [ 0.000000] Found initrd at 0xc15a2000:0xc1b0b90d [ 0.000000] chrp type = 6 [Genesi Pegasos] Are you using this same vmlinuz-chrp.initrd? $ md5sum vmlinuz-chrp.initrd a440d76c1d2ccfa86bdff6dba017cf39 vmlinuz-chrp.initrd If so then probably there's something with your QEMU installation. Regards, BALATON Zoltan
On 10/28/25 1:48 AM, BALATON Zoltan wrote: > Trying to read invalid spr 1012 (0x3f4) at 00000000c0013f48 > [ 0.000000] Using CHRP machine description > [ 0.000000] Total memory = 512MB; using 1024kB for hash table (at > cff00000) > [ 0.000000] Initializing cgroup subsys cpuset > [ 0.000000] Initializing cgroup subsys cpu > [ 0.000000] Initializing cgroup subsys cpuacct > [ 0.000000] Linux version 3.16.0-6-powerpc (debian- > kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 Debian > 3.16.56-1+deb8u1 (2018-05-08) > [ 0.000000] Found initrd at 0xc15a2000:0xc1b0b90d > [ 0.000000] chrp type = 6 [Genesi Pegasos] > > Are you using this same vmlinuz-chrp.initrd? > > $ md5sum vmlinuz-chrp.initrd > a440d76c1d2ccfa86bdff6dba017cf39 vmlinuz-chrp.initrd Yes, md5sum is same as you mentioned: yogi@fedora:~/work/images$ md5sum vmlinuz-chrp.initrd a440d76c1d2ccfa86bdff6dba017cf39 vmlinuz-chrp.initrd Could you please share your Qemu configure command line? I can try one more time if that's different than mine. I used below configure command line: '../configure' '--target-list=ppc64-softmmu,ppc-softmmu' '--enable-virtfs' Regards, Yogesh Vyas > > If so then probably there's something with your QEMU installation.
On Sun, 2 Nov 2025, Yogesh Vyas wrote: > On 10/28/25 1:48 AM, BALATON Zoltan wrote: >> Trying to read invalid spr 1012 (0x3f4) at 00000000c0013f48 >> [ 0.000000] Using CHRP machine description >> [ 0.000000] Total memory = 512MB; using 1024kB for hash table (at >> cff00000) >> [ 0.000000] Initializing cgroup subsys cpuset >> [ 0.000000] Initializing cgroup subsys cpu >> [ 0.000000] Initializing cgroup subsys cpuacct >> [ 0.000000] Linux version 3.16.0-6-powerpc (debian- >> kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 Debian >> 3.16.56-1+deb8u1 (2018-05-08) >> [ 0.000000] Found initrd at 0xc15a2000:0xc1b0b90d >> [ 0.000000] chrp type = 6 [Genesi Pegasos] >> >> Are you using this same vmlinuz-chrp.initrd? >> >> $ md5sum vmlinuz-chrp.initrd >> a440d76c1d2ccfa86bdff6dba017cf39 vmlinuz-chrp.initrd > > Yes, md5sum is same as you mentioned: > yogi@fedora:~/work/images$ md5sum vmlinuz-chrp.initrd > a440d76c1d2ccfa86bdff6dba017cf39 vmlinuz-chrp.initrd > > Could you please share your Qemu configure command line? > I can try one more time if that's different than mine. > I used below configure command line: > '../configure' '--target-list=ppc64-softmmu,ppc-softmmu' '--enable-virtfs' I don't see how configure options could have anyhing to do with that but I've tested that this works on my machine: configure --disable-download --disable-tools --target-list=ppc64-softmmu qemu-system-ppc64 -M pegasos2 -serial stdio -kernel vmlinuz-chrp.initrd -append "---" -cdrom debian-8.11.0-powerpc-netinst.iso The configure options are just to only compile what's needed but it should work anyway with your or any options too as long as qemu-system-ppc or qemu-system-ppc64 is compiled. Can you test on a different machine? Regards, BALATON Zoltan
On Mon, 3 Nov 2025, BALATON Zoltan wrote: > On Sun, 2 Nov 2025, Yogesh Vyas wrote: >> On 10/28/25 1:48 AM, BALATON Zoltan wrote: >>> Trying to read invalid spr 1012 (0x3f4) at 00000000c0013f48 >>> [ 0.000000] Using CHRP machine description >>> [ 0.000000] Total memory = 512MB; using 1024kB for hash table (at >>> cff00000) >>> [ 0.000000] Initializing cgroup subsys cpuset >>> [ 0.000000] Initializing cgroup subsys cpu >>> [ 0.000000] Initializing cgroup subsys cpuacct >>> [ 0.000000] Linux version 3.16.0-6-powerpc (debian- >>> kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 Debian >>> 3.16.56-1+deb8u1 (2018-05-08) >>> [ 0.000000] Found initrd at 0xc15a2000:0xc1b0b90d >>> [ 0.000000] chrp type = 6 [Genesi Pegasos] >>> >>> Are you using this same vmlinuz-chrp.initrd? >>> >>> $ md5sum vmlinuz-chrp.initrd >>> a440d76c1d2ccfa86bdff6dba017cf39 vmlinuz-chrp.initrd >> >> Yes, md5sum is same as you mentioned: >> yogi@fedora:~/work/images$ md5sum vmlinuz-chrp.initrd >> a440d76c1d2ccfa86bdff6dba017cf39 vmlinuz-chrp.initrd >> >> Could you please share your Qemu configure command line? >> I can try one more time if that's different than mine. >> I used below configure command line: >> '../configure' '--target-list=ppc64-softmmu,ppc-softmmu' '--enable-virtfs' > > I don't see how configure options could have anyhing to do with that but I've > tested that this works on my machine: > > configure --disable-download --disable-tools --target-list=ppc64-softmmu > qemu-system-ppc64 -M pegasos2 -serial stdio -kernel vmlinuz-chrp.initrd > -append "---" -cdrom debian-8.11.0-powerpc-netinst.iso > > The configure options are just to only compile what's needed but it should > work anyway with your or any options too as long as qemu-system-ppc or > qemu-system-ppc64 is compiled. Can you test on a different machine? Someone else reported a possible regression maybe related to this patch too but I could not reproduce that either. Can you check what configure says about FDT and if you're using some external FDT library? I've tested with the internal fdt included with QEMU which works and also with libfdt 1.6.1 from my distro that also had no problems. I have no better idea what else could cause it than maybe some issue with some external libfdt version. Regards, BALATON Zoltan
On Sun, 26 Oct 2025, Yogesh Vyas wrote: > On 10/26/25 4:39 PM, BALATON Zoltan wrote: >> On Sun, 26 Oct 2025, Yogesh Vyas wrote: >>> On Sun, Oct 19, 2025 at 5:37 PM BALATON Zoltan <balaton@eik.bme.hu> wrote: >>>> On Sun, 19 Oct 2025, Yogesh Vyas wrote: >>>>> When I run QEMU with the ROM option, the machine boots successfully with >>>>> the below command: >>>>> >>>>> qemu-system-ppc64 -machine pegasos2 -bios pegasos2.rom \ >>>>> -cdrom debian-8.11.0-powerpc-netinst.iso \ >>>>> -device VGA,romfile="" -serial stdio >>>>> >>>>> However, when I try to boot the machine without the ROM using VOF, the >>>>> machine does not come up and no logs appear on stdout: >>>>> >>>>> qemu-system-ppc64 -machine pegasos2 -serial stdio \ >>>>> -kernel vmlinuz-chrp.initrd -append "---" \ >>>>> -cdrom debian-8.11.0-powerpc-netinst.iso >>>>> >>>>> Please let me know if I am missing any parameters or setup required for >>>>> booting via VOF on Pegasos2. >>>>> >>>>> Documentation referred: qemu/docs/system/ppc/amigang.rst >>>> >>>> Maybe you did not use the right vmlinuz-chrp.initrd. Pegasos2 is a 32 bit >>>> machine so you need /install/powerpc/vmlinuz-chrp.initrd for it (see in >>>> the /install/pegasos script that is used with firmware). Even if you call >>>> it from qemu-system-ppc64 which includes both 32 bit and 64 bit machines >>>> but does not make 32 bit machines 64 bit so you still need the 32 bit OS. >>>> >>>> >>> Hi Balaton, >>> I am using 32bit images only and looks like VOF boot works with the distro >>> provided Qemu (both ppc and pp64), however doesn't work with upstream Qemu >>> for VOF. >> >> That's odd, it works for me with QEMU master so I can't reproduce this. >> >>> yogi@fedora:~/work/images$ file vmlinuz-chrp.initrd >>> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, >>> version 1 (SYSV), statically linked, not stripped >> >> The file command says 32-bit for both /install/powerpc/vmlinuz-chrp.initrd >> and /install/powerpc64/vmlinuz-chrp.initrd but only the first one should >> work. Can you double check you have the right vmlinuz-chrp.initrd file? But >> if you say the same file works with 9.2.4 I have no idea why. I see these >> files on the CD >> >> 9301172 Jun 19 2018 /install/powerpc/vmlinuz-chrp.initrd >> 10534888 Jun 19 2018 /install/powerpc64/vmlinuz-chrp.initrd > > > I am also using the same file: > > yogi@fedora:~/work/images$ ls -lrt vmlinuz-chrp.initrd > -r--r--r--. 1 yogi yogi 9301172 Oct 18 23:50 vmlinuz-chrp.initrd > >> >> File command says: >> >> vmlinuz-chrp.initrd: ELF 32-bit MSB executable, PowerPC or cisco 4500, >> version 1 (SYSV), statically linked, not stripped >> vmlinuz-chrp.initrd64: ELF 32-bit MSB executable, PowerPC or cisco 4500, >> version 1 (SYSV), statically linked, not stripped >> >> but only the first from the powerpc directory is supposed to work and it >> does boot for me with QEMU master. You can also check following the other >> way described in qemu/docs/system/ppc/amigang.rst using -bios pegasos2.rom >> which loads the correct image from the CD. Does that work? > > Yes, I had mentioned it in my first mail that ROM option works as expected. > It is only an issue when using VOF with upstream Qemu. > > Could you please share your Qemu command line if it's different from the one > mentioned in the documentation. I've tested with the same command as in the docs: qemu-system-ppc64 -M pegasos2 -serial stdio -kernel vmlinuz-chrp.initrd -append "---" -cdrom debian-8.11.0-powerpc-netinst.iso and it boots for me like before. I don't know what could you check to find out why it does not work for you. Maybe you can try adding -d guest_errors and see if that prints any errors or try on different machine or distro to make sure it's not something local to your machine. Or check if you have local patches compared to master and that the vmlinuz-chrp.initrd is the same as on CD and not somehow corrupted. I really have no idea what could it be. Regards, BALATON Zoltan
© 2016 - 2025 Red Hat, Inc.