>Please see inline.

>On Oct 13, 2015, at 7:17 AM, Matt Churchyard via freebsd-virtualization 
><freebsd-virtualization@freebsd.org> wrote:

> In my quest to continue expanding guest support in my vm-bhyve utility (See 
> https://github.com/churchers/vm-bhyve :) ), I've found the Windows support 
> pretty solid once I got clear on the slot requirements. I'm now trying an OS 
> that requires CSM (Illumos) but unfortunately I'm currently struggling to get 
> it to boot up correctly.
> Here's an example of the command I'm generating at the moment (This is 
> running on an Intel Core-i3):
> bhyve -c 2 -m 2G -s 0,hostbridge -s 31,lpc \
>      -s 3,ahci-cd,/data/vm/.iso/smartos-latest.iso \
>      -s 4:0,ahci-hd,/data/vm/smartos/disk0.img \
>      -s 5:0,virtio-net,tap0 \
>      -l com1,stdio -l com2,/dev/nmdm2A \
>      -H -l bootrom,/data/vm/.config/BHYVE_UEFI_CSM.fd \
>      smartos
> I have com1 set to stdio so I can easily watch the output as it runs.
> It tends to get as far as "Legacy INT19 Boot...", then fall over.
> Depending on whether I put the network interface directly in the slot after 
> the HDD, I seem to get different errors -
> slot 3 - cd
> slot 4 - hdd
> slot 5 - virtio-net
> panic[cpu0]/thread=ffffff01457cdb40: BAD TRAP: type=e (#pf Page fault) 
> rp=ffffff0004a69a60 addr=40 occurred in module "genunix" due to a NULL 
> pointer dereference
> slot 3 - cd
> slot 4 - hdd
> slot 7 - virtio-net
> panic[cpu1]/thread=ffffff0004002c40: BAD TRAP: type=d (#gp General 
> protection) rp=ffffff0004002740 addr=0
> On com2 I see the boot menu, then one and a half lines of dots. The second 
> line of dots stops about 2/3 of the way across.

>Have you tried booting illumos in verbose mode - edit the grub command line 
>and provide '-v'.  That may give you a better backtrace than a >program 

This is what I get from a verbose boot:

Bhyve-HandleProtocol: Copying DevPath: 
PciRoot(0x0)/Pci(0x3,0x0)/Sata(0x0,0x0,0x0) [32]
Legacy INT19 Boot...
cpu0: x86 (chipid 0x0 GenuineIntel 206A7 family 6 model 42 step 7 clock 3109 
cpu0: Intel(r) Core(tm) i3-2100 CPU @ 3.10GHz
pseudo-device: stmf_sbd0
stmf_sbd0 is /pseudo/stmf_sbd@0
pseudo-device: lofi0
lofi0 is /pseudo/lofi@0
pseudo-device: devinfo0
devinfo0 is /pseudo/devinfo@0
acpinex0 at root
acpinex0 is /fw
iscsi0 at root
iscsi0 is /iscsi
xsvc0 at root: space 0 offset 0
xsvc0 is /xsvc@0,0
acpinex: sb@0, acpinex1
acpinex1 is /fw/sb@0
pseudo-device: pseudo1
pseudo1 is /pseudo/zconsnex@1
pseudo-device: pseudo2
pseudo2 is /pseudo/zfdnex@2
/pci@0,0/pci8086,2821@3 :
        SATA CD/DVD (ATAPI) device at port 0
        model BHYVE SATA DVD ROM
        firmware 001
        serial number BHYVE-EA14-A68A-54FA
        supported features:
        SATA Gen3 signaling speed (6.0Gbps)
pseudo-device: llc10
llc10 is /pseudo/llc1@0
pseudo-device: power0
power0 is /pseudo/power@0
pseudo-device: ramdisk1024
ramdisk1024 is /pseudo/ramdisk@1024
pseudo-device: ucode0
ucode0 is /pseudo/ucode@0
pseudo-device: zfs0
zfs0 is /pseudo/zfs@0
pseudo-device: srn0
srn0 is /pseudo/srn@0
pseudo-device: dtrace0
dtrace0 is /pseudo/dtrace@0
pseudo-device: dcpc0
dcpc0 is /pseudo/dcpc@0
pseudo-device: fasttrap0
fasttrap0 is /pseudo/fasttrap@0
pseudo-device: fbt0
fbt0 is /pseudo/fbt@0
pseudo-device: profile0
profile0 is /pseudo/profile@0
pseudo-device: lockstat0
lockstat0 is /pseudo/lockstat@0
pseudo-device: sdt0
sdt0 is /pseudo/sdt@0
pseudo-device: systrace0
systrace0 is /pseudo/systrace@0
pseudo-device: ipd0
ipd0 is /pseudo/ipd@0
pseudo-device: stmf0
stmf0 is /pseudo/stmf@0
sd0 at ahci0: target 0 lun 0
sd0 is /pci@0,0/pci8086,2821@3/cdrom@0,0
pseudo-device: fssnap0
fssnap0 is /pseudo/fssnap@0
/pci@0,0/pci8086,2821@3/cdrom@0,0 (sd0) online
/pci@0,0/pci8086,2821@4 :
        SATA disk device at port 0
        model BHYVE SATA DISK
        firmware 001
        serial number BHYVE-3083-1AF1-1754
        supported features:
         48-bit LBA, DMA, Native Command Queueing
        SATA Gen3 signaling speed (6.0Gbps)
        Supported queue depth 32
        capacity = 62914560 sectors
WARNING: kvm: no hardware support

pseudo-device: pool0
pool0 is /pseudo/pool@0
pseudo-device: bpf0
bpf0 is /pseudo/bpf@0
sd1 at ahci1: target 0 lun 0
sd1 is /pci@0,0/pci8086,2821@4/disk@0,0
pseudo-device: pm0
pm0 is /pseudo/pm@0
pseudo-device: nsmb0
nsmb0 is /pseudo/nsmb@0
pseudo-device: tap0
tap0 is /pseudo/tap@0
/pci@0,0/pci8086,2821@4/disk@0,0 (sd1) online
NOTICE: vioif0: Got MAC address from host: e4:94:1:0:ff:ff
pseudo-device: tun0
tun0 is /pseudo/tun@0
pseudo-device: lx_systrace0
lx_systrace0 is /pseudo/lx_systrace@0

panic[cpu0]/thread=ffffff0002566c40: BAD TRAP: type=d (#gp General protection) 
rp=ffffff00025664c0 addr=20

sched: #gp General protection
pid=0, pc=0xfffffffff80d375a, sp=0xffffff00025665b0, eflags=0x10282
cr0: 8005003b<pg,wp,ne,et,ts,mp,pe> cr4: 406b8<osxsav,xmme,fxsr,pge,pae,pse,de>
cr2: fed3b5accr3: 1dc00000cr8: c

        rdi: 7f1a90ffffff00c3 rsi: ffffff00c33321f8 rdx: ffffff00c37f5828
        rcx: ffffff00c3868603  r8: ffffff00ca7aa600  r9:             2ba6
        rax:                0 rbx: ffffff00c30d0ef0 rbp: ffffff00025665c0
        r10: fffffffffb8554c4 r11:                1 r12:               1f
        r13: ffffff00c319f880 r14:               10 r15:               20
        fsb:                0 gsb: fffffffffbc326a0  ds:               4b
         es:               4b  fs:                0  gs:              1c3
        trp:                d err:                0 rip: fffffffff80d375a
         cs:               30 rfl:            10282 rsp: ffffff00025665b0
         ss:               38

This is the log of the bhyve options used (apart from 1 cpu, 1G ram)

Oct 13 14:22:43:  [bhyve devices: -s 0,hostbridge -s 31,lpc -s 
4:0,ahci-hd,/data/vm/smartos/disk0.img -s 7:0,virtio-net,tap1]
Oct 13 14:22:43:  [bhyve console: -l com1,/dev/nmdm1A -l com2,/dev/nmdm2A]
Oct 13 14:22:43:  [bhyve options: -Hw -l 
Oct 13 14:22:43:  [bhyve iso device: -s 

> Interestingly, my code normally puts the CD after the HDD, which Windows 
> seems happy with as long as the slots are consecutive.
> In SmartOS this gives me a different error:
> slot 3 - hdd
> slot 4 - cd
> slot 5 - virtio-net
> PlatformBdsBootFail
> Boot Failed. Harddisk 1
> !!!! Find PE image 
> /home/grehan/proj/stock_edk2/Build/BhyveX64/DEBUG_GCC48/X64/UefiCpuPkg/CpuDxe/CpuDxe/DEBUG/CpuDxe.dll
>  (ImageBase=000000007F8DC000, EntryPoint=000000007F8DC2AF) !!!!

>This error is from the UEFI code.  It implies that the CSM boot failed or was 
>never invoked.  If the HDD isn't bootable, yet the CD is, that is the >most 
>likely source as the CSM assumes the first block device it encounters is the 
>desired boot source.

Ok, so the boot semantics are currently different between the CSM and non-CSM 
firmware? CSM will try and boot the first device and fail if it's not bootable, 
whereas non-CSM will always boot CD if it's bootable, regardless of order (from 
Windows instructions).

freebsd-virtualization@freebsd.org mailing list
To unsubscribe, send any mail to 

Reply via email to