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: Mon, 20 May 2024 19:57:44 +0200 (CEST)

On Mon, 20 May 2024, Andrew Randrianasulu wrote:
On Sun, May 19, 2024 at 8:40 PM BALATON Zoltan <balaton@eik.bme.hu> wrote:

On Sun, 19 May 2024, BALATON Zoltan wrote:
Find a distro that's known to work on real PowerMac3,3 with two CPUs. Debian
should also work as long as it's a version that you can confirm somewhere
that it booted on real machine. There may be Adelie as well which should
still support PPC but I don't know if it works on Macs or on QEMU. If you

Adelie should support at least PowerMac3,4 which is probably sufficiently
close according to:
https://help.adelielinux.org/html/hcl/fullsys.html#idm43559808
and adelie-live-xfce-ppc-1.0-beta5-20240426.iso seems to boot with
QEMU mac99,via=pmu so maybe try that (although is does not explicitly says
it runs on Dual G4 Mac).

with new "unimplemented devices in macio" patch from Zoltan  Adelie
kernel boots like this:

/dev/shm/qemu-9.0.0/build/qemu-system-ppc -m 256  -M mac99,via=pmu
-smp 2  -kernel /mnt/tmp/boot/vmlinux  -vga none -device ati-vga
-bios /dev/shm/openbios-qemu.elf -d unimp -nographic

Add -d unimp,guest_errors -trace enable="macio*" It's strange that we see no trace of accessing the macio registers 0x54 or so when it kicks the CPU. If there are still no logs that way and you can use gdb-multiarch maybe you can step through that kernel function and try to find what address it's trying to access. There are some docs here: https://www.qemu.org/docs/master/system/gdb.html but if you have no experience with kernel debugging it may be a bit difficult.

Regards,
BALATON Zoltan

Quiescing Open Firmware ...
of_client_interface: quiesce
of_client_interface return:
Booting Linux via __start() @ 0x01000000 ...
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x52000000)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x08000000)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
Hello World !
[    0.000000] Total memory = 256MB; using 512kB for hash table
[    0.000000] Activating Kernel Userspace Execution Prevention
[    0.000000] Activating Kernel Userspace Access Protection
[    0.000000] Linux version 5.13.12_1 (voidlinux@voidlinux) (gcc
(GCC) 10.2.1 20201203, GNU ld (GNU Binutils) 2.35.1) #1 SMP Thu Aug 19
14:12:26 UTC 2021
[    0.000000] ioremap() called early from
pmac_feature_init+0xd4/0xad4. Use early_ioremap() instead
[    0.000000] Found UniNorth memory controller & host bridge @
0xf8000000 revision: 0x07
[    0.000000] Mapped at 0xf73c0000
[    0.000000] ioremap() called early from
probe_one_macio+0x17c/0x2b4. Use early_ioremap() instead
[    0.000000] Found a Keylargo mac-io controller, rev: 0, mapped at 0x(ptrval)
[    0.000000] PowerMac motherboard: PowerMac G4 AGP Graphics
[    0.000000] ioremap() called early from udbg_scc_init+0x1e4/0x3f8.
Use early_ioremap() instead
[    0.000000] boot stdout isn't a display !
[    0.000000] Using PowerMac machine description
[    0.000000] printk: bootconsole [udbg0] enabled
[    0.000000] CPU maps initialized for 1 thread per core
[    0.000000] -----------------------------------------------------
[    0.000000] phys_mem_size     = 0x10000000
[    0.000000] dcache_bsize      = 0x20
[    0.000000] icache_bsize      = 0x20
[    0.000000] cpu_features      = 0x000000000501a00a
[    0.000000]   possible        = 0x00000000277de14a
[    0.000000]   always          = 0x0000000001000000
[    0.000000] cpu_user_features = 0x9c000001 0x00000000
[    0.000000] mmu_features      = 0x00000001
[    0.000000] Hash_size         = 0x80000
[    0.000000] Hash_mask         = 0x1fff
[    0.000000] -----------------------------------------------------
[    0.000000] ioremap() called early from
pmac_setup_arch+0x118/0x290. Use early_ioremap() instead
[    0.000000] ioremap() called early from find_via_pmu+0x224/0x548.
Use early_ioremap() instead
[    0.000000] ioremap() called early from find_via_pmu+0x250/0x548.
Use early_ioremap() instead
[    0.000000] via-pmu: Server Mode is disabled
[    0.000000] PMU driver v2 initialized for Core99, firmware: 01
[    0.000000] ioremap() called early from
pmac_nvram_init+0x150/0x53c. Use early_ioremap() instead
[    0.000000] nvram: Checking bank 0...
[    0.000000] Invalid signature
[    0.000000] Invalid checksum
[    0.000000] nvram: gen0=0, gen1=0
[    0.000000] nvram: Active bank is: 0
[    0.000000] nvram: OF partition at 0xffffffff
[    0.000000] nvram: XP partition at 0xffffffff
[    0.000000] nvram: NR partition at 0xffffffff
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000]   Normal   empty
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] percpu: Embedded 22 pages/cpu s59884 r8192 d22036 u90112
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 64960
[    0.000000] Kernel command line:
[    0.000000] Dentry cache hash table entries: 32768 (order: 5,
131072 bytes, linear)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536
bytes, linear)
[    0.000000] mem auto-init: stack:off, heap alloc:on, heap free:off
[    0.000000] Kernel virtual memory layout:
[    0.000000]   * 0xf7bdf000..0xfffff000  : fixmap
[    0.000000]   * 0xf7400000..0xf7800000  : highmem PTEs
[    0.000000]   * 0xf7337000..0xf7400000  : early ioremap
[    0.000000]   * 0xd1000000..0xf7337000  : vmalloc & ioremap
[    0.000000] Memory: 242044K/262144K available (10912K kernel code,
1444K rwdata, 2512K rodata, 1420K init, 516K bss, 20100K reserved, 0K
cma-reserved, 0K highmem)
[    0.000000] random: get_random_u32 called from
__kmem_cache_create+0x38/0x57c with crng_init=0
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=2, Nodes=1
[    0.000000] ftrace: allocating 29527 entries in 87 pages
[    0.000000] ftrace: allocated 87 pages with 5 groups
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=2048 to nr_cpu_ids=2.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Rude variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay
is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
[    0.000000] NR_IRQS: 512, nr_irqs: 512, preallocated irqs: 16
[    0.000000] mpic: Setting up MPIC " MPIC 1   " version 1.2 at
80040000, max 2 CPUs
[    0.000000] mpic: ISU size: 64, shift: 6, mask: 3f
[    0.000000] mpic: Initializing for 64 sources
[    0.000000] GMT Delta read from XPRAM: 0 minutes, DST: on
[    0.001361] clocksource: timebase: mask: 0xffffffffffffffff
max_cycles: 0x5c40939b5, max_idle_ns: 440795202646 ns
[    0.003105] clocksource: timebase mult[28000000] shift[24] registered
[    0.026558] Console: colour dummy device 80x25
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x52000000)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x08000000)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device read  (size 4, offset 0x00038)
macio-unimp: unimplemented device write (size 4, offset 0x00038, value
0x00000000)
[    0.065057] printk: console [ttyPZ0] enabled
[    0.065057] printk: console [ttyPZ0] enabled
[    0.067168] printk: bootconsole [udbg0] disabled
[    0.067168] printk: bootconsole [udbg0] disabled
[    0.070739] pid_max: default: 32768 minimum: 301
[    0.074044] LSM: Security Framework initializing
[    0.077374] Yama: becoming mindful.
[    0.085612] AppArmor: AppArmor initialized
[    0.087394] Mount-cache hash table entries: 1024 (order: 0, 4096
bytes, linear)
[    0.088569] Mountpoint-cache hash table entries: 1024 (order: 0,
4096 bytes, linear)
smp_core99_probe
[    0.164164] PowerMac SMP probe found 2 cpus
[    0.166986] PMU i2c /pci@f2000000/mac-io@c/via-pmu@16000
[    0.168565]  channel 1 bus <multibus>
[    0.169182]  channel 2 bus <multibus>
[    0.170633] Processor timebase sync using GPIO 0x73
[    0.171554] mpic: requesting IPIs...
[    0.175853] CPU0: L2CR is 0
[    0.194444] rcu: Hierarchical SRCU implementation.
[    0.219538] smp: Bringing up secondary CPUs ...
smp_core99_kick_cpu
smp_core99_kick_cpu done
[    5.373624] Processor 1 is stuck.
[    5.392563] smp: Brought up 1 node, 1 CPU
[    5.430124] devtmpfs: initialized
[    5.460276] Found UniNorth PCI host bridge at 0x00000000f2000000.
Firmware bus number: 0->0
[    5.461767] PCI host bridge /pci@f2000000 (primary) ranges:
[    5.464340]   IO 0x00000000f2000000..0x00000000f27fffff -> 0x0000000000000000
[    5.466264]  MEM 0x0000000080000000..0x000000008fffffff -> 0x0000000080000000
[    5.470858] clocksource: jiffies: mask: 0xffffffff max_cycles:
0xffffffff, max_idle_ns: 7645041785100000 ns
[    5.473072] futex hash table entries: 512 (order: 2, 16384 bytes, linear)
[    5.524477] NET: Registered protocol family 16
[    5.534404] audit: initializing netlink subsys (disabled)
[    5.543490] audit: type=2000 audit(1716205301.364:1):
state=initialized audit_enabled=0 res=1
[    5.552652] thermal_sys: Registered thermal governor 'fair_share'

[    5.552887] thermal_sys: Registered thermal governor 'step_wise'
[    5.566417] PCI: Probing PCI hardware
[    5.579140] PCI host bridge to bus 0000:00
[    5.580379] pci_bus 0000:00: root bus resource [io  0x0000-0x7fffff]
[    5.581917] pci_bus 0000:00: root bus resource [mem 0x80000000-0x8fffffff]
[    5.583069] pci_bus 0000:00: root bus resource [bus 00-ff]
[    5.584320] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to ff
[    5.589813] pci 0000:00:0b.0: [106b:001f] type 00 class 0x060000
[    5.600103] pci 0000:00:0c.0: [106b:0022] type 00 class 0xff0000
[    5.602310] pci 0000:00:0c.0: reg 0x10: [mem 0x80000000-0x8007ffff]
[    5.608979] pci 0000:00:0d.0: [106b:003f] type 00 class 0x0c0310
[    5.610692] pci 0000:00:0d.0: reg 0x10: [mem 0x80080000-0x800800ff]
[    5.617915] pci 0000:00:0e.0: [106b:0021] type 00 class 0x020000
[    5.619309] pci 0000:00:0e.0: reg 0x10: [mem 0x80200000-0x803fffff]
[    5.625641] pci 0000:00:0f.0: [1002:5046] type 00 class 0x030000
[    5.628360] pci 0000:00:0f.0: reg 0x10: [mem 0x81000000-0x81ffffff pref]
[    5.631239] pci 0000:00:0f.0: reg 0x14: [io  0x1000-0x10ff]
[    5.635152] pci 0000:00:0f.0: reg 0x18: [mem 0x82000000-0x82003fff]
[    5.646534] pci 0000:00:0f.0: reg 0x30: [mem 0x82010000-0x8201ffff pref]
[    5.650177] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    5.660460] pci_bus 0000:00: resource 4 [io  0x0000-0x7fffff]
[    5.661013] pci_bus 0000:00: resource 5 [mem 0x80000000-0x8fffffff]
[    5.689713] Kprobes globally optimized
[   10.559365] iommu: Default domain type: Translated
[   10.568184] pci 0000:00:0f.0: vgaarb: setting as boot VGA device
[   10.571467] pci 0000:00:0f.0: vgaarb: VGA device added:
decodes=io+mem,owns=io+mem,locks=none
[   10.573483] pci 0000:00:0f.0: vgaarb: bridge control possible
[   10.574406] vgaarb: loaded
[   10.578851] SCSI subsystem initialized
[   10.608547] clocksource: Switched to clocksource timebase
[   10.863544] VFS: Disk quotas dquot_6.6.0
[   10.864625] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[   10.873752] AppArmor: AppArmor Filesystem Enabled
[   10.913812] NET: Registered protocol family 2
[   10.917044] IP idents hash table entries: 4096 (order: 3, 32768
bytes, linear)
[   10.940708] tcp_listen_portaddr_hash hash table entries: 512
(order: 0, 6144 bytes, linear)
[   10.941942] TCP established hash table entries: 2048 (order: 1,
8192 bytes, linear)
[   10.943198] TCP bind hash table entries: 2048 (order: 2, 16384 bytes, linear)
[   10.944457] TCP: Hash tables configured (established 2048 bind 2048)
[   10.949724] MPTCP token hash table entries: 256 (order: 0, 4096
bytes, linear)
[   10.951149] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[   10.952542] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[   10.958736] NET: Registered protocol family 1
[   10.960910] NET: Registered protocol family 44
[   10.966195] PCI: CLS 0 bytes, default 32
[   10.974762] Thermal assist unit using workqueue, shrink_timer: 2000 ms
[   10.993974] Initialise system trusted keyrings
[   10.999125] workingset: timestamp_bits=14 max_order=16 bucket_order=2
[   11.023401] zbud: loaded
[   11.031343] Key type asymmetric registered
[   11.032239] Asymmetric key parser 'x509' registered
[   11.033355] Block layer SCSI generic (bsg) driver version 0.4
loaded (major 250)
[   11.035535] io scheduler mq-deadline registered
[   11.036454] io scheduler kyber registered
[   11.037611] io scheduler bfq registered
[   11.048623] aty128fb: Found Intel x86 BIOS ROM Image
[   11.049475] aty128fb: Rage128 BIOS located
[   11.052270] aty128fb: Rage128 PF PRO AGP [chip rev 0x0]
[   11.052351] 16M 128-bit SDR SGRAM (1:1)
[   11.086791] Console: switching to colour frame buffer device 128x48
[   11.094516] fb0: ATY Rage128 frame buffer device on Rage128 PF PRO AGP
[   11.103530] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[   11.117074] pmac_zilog: 0.6 (Benjamin Herrenschmidt
<benh@kernel.crashing.org>)
[   11.118439] Serial: MPC52xx PSC UART driver
[   11.120166] Non-volatile memory driver v1.3
[   11.120822] Linux agpgart interface v0.103
[   11.125943] MacIO PCI driver attached to Keylargo chipset
[   11.136193] 0.00013020:ch-a: ttyPZ0 at MMIO 0x80013020 (irq = 37,
base_baud = 230400) is a Z85c30 ESCC - Serial port
[   11.141032] 0.00013000:ch-b: ttyPZ1 at MMIO 0x80013000 (irq = 36,
base_baud = 230400) is a Z85c30 ESCC - Serial port
[   11.156779] mousedev: PS/2 mouse device common for all mice
[   11.162119] rtc-generic rtc-generic: registered as rtc0
[   11.164272] rtc-generic rtc-generic: setting system clock to
2024-05-20T11:41:46 UTC (1716205306)
[   11.170033] PowerMac i2c bus pmu 2 registered
[   11.171226] PowerMac i2c bus pmu 1 registered
[   11.173723] ledtrig-cpu: registered to indicate activity on CPUs
[   11.176020] drop_monitor: Initializing network drop monitor service
[   11.180845] NET: Registered protocol family 10
[   11.256567] Segment Routing with IPv6
[   11.257251] RPL Segment Routing with IPv6
[   11.258898] mip6: Mobile IPv6
[   11.260636] NET: Registered protocol family 17
[   11.262237] mpls_gso: MPLS GSO support
[   11.262900] drmem: No dynamic reconfiguration memory found
[   11.268458] registered taskstats version 1
[   11.269177] Loading compiled-in X.509 certificates
[   11.275193] zswap: loaded using pool lzo/zbud
[   11.278499] Key type ._fscrypt registered
[   11.278985] Key type .fscrypt registered
[   11.279399] Key type fscrypt-provisioning registered
[   11.286297] AppArmor: AppArmor sha1 policy hashing enabled
[   11.295416] input: PMU as /devices/virtual/input/input0
[   11.318242] List of all partitions:
[   11.318973] No filesystem could mount root, tried:
[   11.319026]
[   11.320119] Kernel panic - not syncing: VFS: Unable to mount root
fs on unknown-block(8,1)
[   11.321278] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.13.12_1 #1
[   11.322454] Call Trace:
[   11.322913] [d1025db0] [c05ee5dc] dump_stack+0x9c/0xd0 (unreliable)
[   11.323860] [d1025dd0] [c008e354] panic+0x154/0x364
[   11.324378] [d1025e30] [c0d20958] mount_block_root+0x330/0x384
[   11.324949] [d1025eb0] [c0d20ba8] prepare_namespace+0x170/0x1b4
[   11.325519] [d1025ed0] [c0d20344] kernel_init_freeable+0x238/0x26c
[   11.326121] [d1025f10] [c0007c28] kernel_init+0x20/0x120
[   11.326649] [d1025f30] [c00220fc] ret_from_kernel_thread+0x14/0x1c
[   11.329832] ---[ end Kernel panic - not syncing: VFS: Unable to
mount root fs on unknown-block(8,1) ]--



Regards,
BALATON Zoltan


reply via email to

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