qemu-ppc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: OpenMPIC controller emulation in qemu ?


From: BALATON Zoltan
Subject: Re: OpenMPIC controller emulation in qemu ?
Date: Fri, 17 May 2024 10:41:25 +0200 (CEST)

On Fri, 17 May 2024, Andrew Randrianasulu wrote:
On Fri, May 17, 2024 at 12:02 AM Mark Cave-Ayland <
mark.cave-ayland@ilande.co.uk> wrote:

On 16/05/2024 14:51, Andrew Randrianasulu wrote:

    > and openfirmware starts ....
    >
    > bash-5.1$ build/qemu-system-ppc -M mac99 -smp 2 -nographic
    >
    >>> =============================================================
    >>> OpenBIOS 1.1 [Mar 7 2023 22:21]
    >>> Configuration device id QEMU version 1 machine id 1
    >>> CPUs: 2
    >>> Memory: 128M
    >>> UUID: 00000000-0000-0000-0000-000000000000
    >>> CPU type PowerPC,G4
    > milliseconds isn't unique.
    > Welcome to OpenBIOS v1.1 built on Mar 7 2023 22:21
    > Trying hd:,\\:tbxi...
    > Trying hd:,\ppc\bootinfo.txt...
    > Trying hd:,%BOOT...
    > No valid state has been set by load or init-program
    >
    > 0 >

You can check the device tree in OpenBIOS by using show-devs to see how
many CPUs are
present, and confirm that the properties are set correctly.

The reason that SMP hasn't been enabled for the Mac machines is mainly
because no-one
has been inclined to work on it yet ;)

    >
    >
    >
    > but boooting finnix fails:
    >
    > bash-5.1$ build/qemu-system-ppc -M mac99 -smp 2 -nographic -cdrom
    > ~/finnix-ppc-110.iso -boot d
    >
    >>> =============================================================
    >>> OpenBIOS 1.1 [Mar 7 2023 22:21]
    >>> Configuration device id QEMU version 1 machine id 1
    >>> CPUs: 2
    >>> Memory: 128M
    >>> UUID: 00000000-0000-0000-0000-000000000000
    >>> CPU type PowerPC,G4
    > milliseconds isn't unique.
    > Welcome to OpenBIOS v1.1 built on Mar 7 2023 22:21
    > Trying cd:,\\:tbxi...
    >>> switching to new context:
    >
    > я:interpret: exception -13 caught

    There's a comment in openbios/forth/system/ciface.fs that says it
might
    not be an error and also a line:

    \ ." INTERPRETE: --- " 2dup type

    where you could remove the \ to get it print the Forth code that
causes
    the error. (By the way is INTERPRETE a typo with extra E at the end?)



I tried this and get:

bash-5.1$ build/qemu-system-ppc -M mac99 -smp 4 -nographic -cdrom
~/finnix-ppc-110.iso -boot d -bios /dev/shm/openbios-qemu.elf

>> =============================================================
>> OpenBIOS 1.1 [May 16 2024 12:44]
>> Configuration device id QEMU version 1 machine id 1
>> CPUs: 4
>> Memory: 128M
>> UUID: 00000000-0000-0000-0000-000000000000
>> CPU type PowerPC,G4
milliseconds isn't unique.
Welcome to OpenBIOS v1.1 built on May 16 2024 12:44
Trying cd:,\\:tbxi...
>> switching to new context:

я:interpret: exception -13 caughte-int nip nip ;

=====

Try rebuilding OpenBIOS with DEBUG_CIF enabled in libopenbios/client.c
which will
show the calls being used by the bootloader.



===============

bash-5.1$ build/qemu-system-ppc -M mac99 -smp 2 -nographic -cdrom
~/finnix-ppc-110.iso -boot d -bios /dev/shm/openbios-qemu.elf

Add -d unimp,guest_errors here. If it crashes you won't see an error without that so having these debug options enabled helps finding where it stopped.

=============================================================
OpenBIOS 1.1 [May 17 2024 00:06]
Configuration device id QEMU version 1 machine id 1
CPUs: 2
Memory: 128M
UUID: 00000000-0000-0000-0000-000000000000
CPU type PowerPC,G4
milliseconds isn't unique.
Welcome to OpenBIOS v1.1 built on May 17 2024 00:06
Trying cd:,\\:tbxi...
switching to new context:
finddevice("/chosen") = 0xfff57108
exit()
EXIT
0 >   ok
0 > show-devs
fff56d28 / (bootrom)
fff56e44 /aliases
fff56ee8 /openprom (BootROM)
fff5d110 /openprom/client-services
fff57090 /options
fff57108 /chosen
fff571b8 /builtin
fff5725c /builtin/console
fff5ce1c /packages
fff5e000 /packages/cmdline
fff5e140 /packages/disk-label
fff5fe64 /packages/terminal-emulator
fff60ed0 /packages/deblocker
fff61224 /packages/hfsplus-files
fff615b0 /packages/hfs-files
fff61938 /packages/ext2-files
fff61c5c /packages/iso9660-files
fff61f80 /packages/grubfs-files
fff622a4 /packages/mac-parts
fff62608 /packages/pc-parts
fff62928 /packages/xcoff-loader
fff629f4 /packages/elf-loader
fff62abc /packages/bootinfo-loader
fff5fb8c /cpus
fff6bdf8 /cpus/PowerPC,G4@0 (cpu)
fff5fc8c /memory@0 (memory)
fff5fd54 /rom@ff800000
fff62be8 /nvram@fff04000 (nvram)
fff62e80 /pci@f2000000 (pci)
fff633a8 /pci@f2000000/mac-io@c (mac-io)
fff63868 /pci@f2000000/mac-io@c/via-cuda@16000 (via-cuda)
fff63a88 /pci@f2000000/mac-io@c/via-cuda@16000/adb (adb)
fff63bf0 /pci@f2000000/mac-io@c/via-cuda@16000/adb/keyboard@8 (keyboard)
fff63dcc /pci@f2000000/mac-io@c/via-cuda@16000/adb/mouse@9 (mouse)
fff63f58 /pci@f2000000/mac-io@c/via-cuda@16000/rtc (rtc)
fff640e8 /pci@f2000000/mac-io@c/via-cuda@16000/power-mgt (power-mgt)
fff642d0 /pci@f2000000/mac-io@c/escc@13000 (escc)
fff643f0 /pci@f2000000/mac-io@c/escc@13000/ch-a@13020 (serial)
fff64648 /pci@f2000000/mac-io@c/escc@13000/ch-b@13000 (serial)
fff64910 /pci@f2000000/mac-io@c/escc-legacy@12000 (escc-legacy)
fff64a34 /pci@f2000000/mac-io@c/escc-legacy@12000/ch-a@12002 (serial)
fff64c50 /pci@f2000000/mac-io@c/escc-legacy@12000/ch-b@12000 (serial)
fff64edc /pci@f2000000/mac-io@c/ata-3@20000 (ata)
fff652ac /pci@f2000000/mac-io@c/ata-3@21000 (ata)
fff6567c /pci@f2000000/mac-io@c/ata-3@21000/cdrom@0 (block)
fff65b18 /pci@f2000000/mac-io@c/interrupt-controller@40000 (open-pic)
fff65d68 /pci@f2000000/usb@d (usb)
fff660b4 /pci@f2000000/QEMU,VGA@e (display)
fff6b688 /pci@f2000000/ethernet@f (network)
fff6bc0c /uni-n@f8000000 (memory-controller)
ok
0 >

==================

I think this mean forth just jumps back to its interpreter instead of
booting after enabling debug ?

It seems to be looking for something in chosen which is probably missing. Where's this Forth script that it runs?

and despite cpu number printed in banner it still only creates one cpu node?

Looks like it's hard coded in openbios/atch/ppc/qemu/init.c::cpu_generic_init() which only adds one CPU. But currently it likely stops before that could be a problem.

Regards,
BALATON Zoltan

reply via email to

[Prev in Thread] Current Thread [Next in Thread]