Am Wed, Apr 14, 2021 at 10:55:14PM +0200 schrieb Mark Kettenis:
> > Date: Wed, 14 Apr 2021 22:25:16 +0200
> > From: Patrick Wildt <patr...@blueri.se>
> > 
> > Am Wed, Apr 14, 2021 at 10:17:58PM +0200 schrieb Patrick Wildt:
> > > Hi,
> > > 
> > > Parallels 16 for Mac supports the Apple M1 SoC now, and since it does
> > > provide an EFI 'BIOS', our images boot out of the box (once converted
> > > to 'hdd' or supplied as USB stick).
> > > 
> > > Unfortunately virtio doesn't attach, because Parallels seems to provide
> > > a 'new' version 2.  The following diff adds support for version 2 and
> > > I used it to install the VM over vio(4) network.  And I was able to
> > > install packages over vio(4) network.  Disk is ahci(4), USB passthrough
> > > is xhci(4), so that works nicely out of the box.
> > > 
> > > Not sure if we want this for 6.9 or not.  I think it wouldn't break the
> > > current version 1, so I think it shouldn't hurt.
> > > 
> > > If you're wondering why I'm 'so late' with this: jcs@ asked me to have
> > > a look at the official Parallels for M1 release, and I just did that.
> > > So I couldn't be any faster than this anyway.
> > > 
> > > Opinions?
> > > 
> > > Patrick
> > 
> > Obviously I forgot to pay dmesg tax ;)
> > 
> > OpenBSD 6.9 (GENERIC.MP) #295: Wed Apr 14 22:06:35 CEST 2021
> >     patr...@lx2k.blueri.se:/usr/src/sys/arch/arm64/compile/GENERIC.MP
> > real mem  = 516423680 (492MB)
> > avail mem = 468152320 (446MB)
> > random: boothowto does not indicate good seed
> > mainbus0 at root: Parallels ARM Virtual Machine
> > psci0 at mainbus0: PSCI 1.0
> > cpu0 at mainbus0 mpidr 0: Unknown, MIDR 0x410f0000
> > cpu0: 192KB 64b/line 6-way L1 PIPT I-cache, 128KB 64b/line 8-way L1 D-cache
> > cpu0: 12288KB 128b/line 12-way L2 cache
> > cpu0: 
> > TLBIOS+IRANGE,TS+AXFLAG,FHM,DP,SHA3,RDM,Atomic,CRC32,SHA2+SHA512,SHA1,AES+PMULL,SPECRES,SB,FRINTTS,GPI,LRCPC+LDAPUR,FCMA,JSCVT,API+PAC,DPB,SpecSEI,PAN+ATS1E1,LO,HPDS,CSV3,CSV2
> > cpu1 at mainbus0 mpidr 1: Unknown, MIDR 0x410f0000
> > cpu1: 192KB 64b/line 6-way L1 PIPT I-cache, 128KB 64b/line 8-way L1 D-cache
> > cpu1: 12288KB 128b/line 12-way L2 cache
> > cpu1: 
> > TLBIOS+IRANGE,TS+AXFLAG,FHM,DP,SHA3,RDM,Atomic,CRC32,SHA2+SHA512,SHA1,AES+PMULL,SPECRES,SB,FRINTTS,GPI,LRCPC+LDAPUR,FCMA,JSCVT,API+PAC,DPB,SpecSEI,PAN+ATS1E1,LO,HPDS,CSV3,CSV2
> > efi0 at mainbus0: UEFI 2.7
> > efi0: EDK II rev 0x10000
> > smbios0 at efi0: SMBIOS 3.0.0
> > smbios0: vendor Parallels Software International Inc. version "16.5.0 
> > (50692)" date Mar 25 2021
> > smbios0: Parallels Parallels ARM Virtual Machine
> > apm0 at mainbus0
> > ampintc0 at mainbus0 nirq 128, ncpu 2 ipi: 0, 1: "interrupt-controller"
> > agtimer0 at mainbus0: 24000 kHz
> > "soc" at mainbus0 not configured
> > "clk24mhz" at mainbus0 not configured
> > pluart0 at mainbus0
> > ahci0 at mainbus0: AHCI 1.1
> > ahci0: port 0: 1.5Gb/s
> > ahci0: port 1: 1.5Gb/s
> > scsibus0 at ahci0: 32 targets
> > sd0 at scsibus0 targ 0 lun 0: <ATA, OpenBSD-0 SSD, F.CM> 
> > t10.ATA_OpenBSD-0_SSD_Y15J1M1AG4B4S7VMR61V
> > sd0: 8192MB, 512 bytes/sector, 16777216 sectors, thin
> > sd1 at scsibus0 targ 1 lun 0: <ATA, miniroot69, F.PB> 
> > t10.ATA_miniroot69_NQGN5C6P8H5MSAW6W3PG
> > sd1: 33MB, 512 bytes/sector, 67584 sectors, thin
> > ehci0 at mainbus0
> > usb0 at ehci0: USB revision 2.0
> > uhub0 at usb0 configuration 1 interface 0 "Generic EHCI root hub" rev 
> > 2.00/1.00 addr 1
> > xhci0 at mainbus0, xHCI 1.10
> > usb1 at xhci0: USB revision 3.0
> > uhub1 at usb1 configuration 1 interface 0 "Generic xHCI root hub" rev 
> > 3.00/1.00 addr 1
> > "gpu" at mainbus0 not configured
> > "toolgate" at mainbus0 not configured
> > virtio0 at mainbus0: Virtio Memory Balloon Device
> > viomb0 at virtio0
> > virtio1 at mainbus0: Virtio Network Device
> > vio0 at virtio1: address 00:1c:42:8a:67:34
> > simplefb0 at mainbus0: 1024x768, 32bpp
> > wsdisplay0 at simplefb0 mux 1: console (std, vt100 emulation)
> > wsdisplay0: screen 1-5 added (std, vt100 emulation)
> > uhidev0 at uhub1 port 1 configuration 1 interface 0 "Parallels Virtual 
> > Mouse" rev 3.00/1.00 addr 2
> > uhidev0: iclass 3/0, 1 report id
> > ums0 at uhidev0 reportid 1: 8 buttons, Z and W dir
> > wsmouse0 at ums0 mux 0
> > uhidev1 at uhub1 port 1 configuration 1 interface 1 "Parallels Virtual 
> > Mouse" rev 3.00/1.00 addr 2
> > uhidev1: iclass 3/0, 2 report ids
> > ums1 at uhidev1 reportid 2: 8 buttons, Z and W dir
> > wsmouse1 at ums1 mux 0
> > uhidev2 at uhub1 port 2 configuration 1 interface 0 "Parallels Virtual 
> > Keyboard" rev 3.00/1.00 addr 3
> > uhidev2: iclass 3/1
> > ukbd0 at uhidev2: 8 variable keys, 5 key codes
> > wskbd0 at ukbd0: console keyboard, using wsdisplay0
> > uvideo0 at uhub1 port 3 configuration 1 interface 0 "Parallels FaceTime HD 
> > Camera" rev 3.10/1.00 addr 4
> > video0 at uvideo0
> > vscsi0 at root
> > scsibus1 at vscsi0: 256 targets
> > softraid0 at root
> > scsibus2 at softraid0: 256 targets
> > root on sd0a (4a24f1a721df244f.a) swap on sd0b dump on sd0b
> > Automatic boot in progress: starting file system checks.
> > /dev/sd0a (4a24f1a721df244f.a): file system is clean; not checking
> > /dev/sd0e (4a24f1a721df244f.e): file system is clean; not checking
> > /dev/sd0d (4a24f1a721df244f.d): file system is clean; not checking
> > pf enabled
> > starting network
> > vio0: 10.211.55.4 lease accepted from 10.211.55.1 (00:1c:42:00:00:18)
> > reordering libraries: done.
> > starting early daemons: syslogd pflogd ntpd.
> > starting RPC daemons:.
> > savecore: no core dump
> > checking quotas: done.
> > clearing /tmp
> > kern.securelevel: 0 -> 1
> > creating runtime link editor directory cache.
> > preserving editor files.
> > starting network daemons: sshd smtpd sndiod.
> > starting local daemons: cron.
> > Wed Apr 14 22:09:59 CEST 2021
> 
> Funny that it uses a device tree.  Can you post the eeprom -p output?


Node 0x38
    name: ''
    model: 'Parallels ARM Virtual Machine'
    interrupt-parent: 00000001
    #address-cells: 00000002
    #size-cells: 00000002
    dma-coherent: 

    Node 0xa8
        name: 'interrupt-controller'
        compatible: 'arm,cortex-a15-gic' + 'arm,cortex-a9-gic'
        #interrupt-cells: 00000003
        interrupt-controller: 
        reg: 
00000000.02010000.00000000.00001000.00000000.02000000.00000000.00003000
        phandle: 00000001

    Node 0x15c
        name: 'timer'
        compatible: 'arm,armv8-timer'
        interrupts: 
00000001.0000000d.00000f08.00000001.0000000e.00000f08.00000001.0000000b.00000f08.00000001.0000000a.00000f08

    Node 0x1c4
        name: 'aliases'
        serial0: '/uart@2110000'

    Node 0x1f0
        name: 'chosen'
        openbsd,dma-constraint: 00000000.00000000.ffffffff.ffffffff
        openbsd,uefi-mmap-desc-ver: 00000001
        openbsd,uefi-mmap-desc-size: 00000030
        openbsd,uefi-mmap-size: 000004b0
        openbsd,uefi-mmap-start: 00000000.5bf18008
        openbsd,uefi-system-table: 00000000.5fa60018
        openbsd,bootduid: 1420d2aa.8edf7459
        openbsd,boothowto: 00010000
        bootargs: 'sd0a:/bsd'
        stdout-path: '/chosen/framebuffer'

        Node 0x2cc
            name: 'framebuffer'
            compatible: 'simple-framebuffer'
            reg: 00000000.20000000.00000000.00300000
            width: 00000400
            height: 00000300
            stride: 00001000
            format: 'x8r8g8b8'
            status: 'okay'

    Node 0x37c
        name: 'cpus'
        #address-cells: 00000001
        #size-cells: 00000000

        Node 0x3a8
            name: 'cpu'
            status: 'okay'
            device_type: 'cpu'
            compatible: 'arm,armv8'
            reg: 00000000

        Node 0x404
            name: 'cpu'
            status: 'okay'
            device_type: 'cpu'
            compatible: 'arm,armv8'
            enable-method: 'psci'
            reg: 00000001

    Node 0x478
        name: 'soc'

    Node 0x484
        name: 'psci'
        compatible: 'arm,psci-0.2'
        method: 'smc'

    Node 0x4c0
        name: 'clk24mhz'
        compatible: 'fixed-clock'
        #clock-cells: 00000000
        clock-frequency: 016e3600
        clock-output-names: 'v2m:clk24mhz'
        phandle: 00000002

    Node 0x538
        name: 'uart'
        compatible: 'arm,pl011' + 'arm,primecell'
        reg: 00000000.02110000.00000000.00001000
        interrupts: 00000000.00000000.00000004
        clocks: 00000002.00000002
        clock-names: 'uartclk' + 'apb_pclk'
        status: 'okay'

    Node 0x5f0
        name: 'rtc'
        status: 'disabled'
        compatible: 'arm,pl031' + 'arm,primecell'
        reg: 00000000.02120000.00000000.00002000

    Node 0x65c
        name: 'ahci'
        compatible: 'generic-ahci'
        reg: 00000000.02140000.00000000.00002000
        interrupts: 00000000.00000002.00000004
        status: 'okay'

    Node 0x6d8
        name: 'ehci'
        compatible: 'generic-ehci'
        reg: 00000000.02150000.00000000.00001000
        interrupts: 00000000.00000003.00000004
        status: 'okay'

    Node 0x754
        name: 'xhci'
        compatible: 'generic-xhci'
        reg: 00000000.02160000.00000000.00001000
        interrupts: 00000000.00000004.00000004
        status: 'okay'

    Node 0x7d0
        name: 'gpu'
        compatible: 'parallels,gpu'
        reg: 
00000000.02170000.00000000.00004000.00000000.20000000.00000000.04000000
        interrupts: 00000000.00000007.00000001
        status: 'okay'

    Node 0x858
        name: 'toolgate'
        compatible: 'parallels,toolgate'
        reg: 00000000.02190000.00000000.00001000
        interrupts: 
00000000.00000008.00000001.00000000.00000009.00000001.00000000.0000000a.00000001.00000000.0000000b.00000001
        status: 'okay'

    Node 0x900
        name: 'balloon'
        compatible: 'virtio,mmio'
        reg: 00000000.021a0000.00000000.00004000
        interrupts: 00000000.00000006.00000004
        status: 'okay'

    Node 0x978
        name: 'ethernet'
        compatible: 'virtio,mmio'
        reg: 00000000.021c0000.00000000.00004000
        interrupts: 00000000.0000000c.00000004
        status: 'okay'

Reply via email to