Index: usr.sbin/bhyve/pci_fbuf.c =================================================================== --- usr.sbin/bhyve/pci_fbuf.c +++ usr.sbin/bhyve/pci_fbuf.c @@ -135,7 +135,7 @@ sc = pi->pi_arg; DPRINTF(DEBUG_VERBOSE, - ("fbuf wr: offset 0x%lx, size: %d, value: 0x%lx\n", + ("fbuf wr: offset 0x%lx, size: %d, value: 0x%lx", offset, size, value)); if (offset + size > DMEMSZ) { @@ -217,7 +217,7 @@ } DPRINTF(DEBUG_VERBOSE, - ("fbuf rd: offset 0x%lx, size: %d, value: 0x%lx\n", + ("fbuf rd: offset 0x%lx, size: %d, value: 0x%lx", offset, size, value)); return (value); Index: usr.sbin/bhyve/rfb.c =================================================================== --- usr.sbin/bhyve/rfb.c +++ usr.sbin/bhyve/rfb.c @@ -1049,6 +1049,7 @@ pthread_mutex_lock(&rc->mtx); pthread_cond_wait(&rc->cond, &rc->mtx); pthread_mutex_unlock(&rc->mtx); + DPRINTF(("rfb client connected")); } freeaddrinfo(ai); Index: usr.sbin/bhyve/smbiostbl.c =================================================================== --- usr.sbin/bhyve/smbiostbl.c +++ usr.sbin/bhyve/smbiostbl.c @@ -444,7 +444,7 @@ -1, /* handle of memory error data */ 64, /* total width in bits including ecc */ 64, /* data width in bits */ - 0x7fff, /* size in bytes (0x7fff=use extended)*/ + 0, /* size in bytes (0x7fff=use extended)*/ SMBIOS_MDFF_UNKNOWN, 0, /* set (0x00=none, 0xff=unknown) */ 1, /* device locator string */ @@ -695,12 +695,17 @@ uint16_t *n, uint16_t *size) { struct smbios_table_type17 *type17; + uint64_t memsize, size_MB; smbios_generic_initializer(template_entry, template_strings, curaddr, endaddr, n, size); type17 = (struct smbios_table_type17 *)curaddr; type17->arrayhand = type16_handle; - type17->xsize = guest_lomem; + + memsize = guest_lomem + guest_himem; + size_MB = memsize / MB; + + type17->size = size_MB & 0x7FFF; if (guest_himem > 0) { curaddr = *endaddr; @@ -708,7 +713,10 @@ curaddr, endaddr, n, size); type17 = (struct smbios_table_type17 *)curaddr; type17->arrayhand = type16_handle; - type17->xsize = guest_himem; + if (size_MB > 0x7FFF) { + type17->size = 0x7FFF; + type17->xsize = size_MB & 0x7FFFFFFF; + } } return (0); @@ -750,12 +758,12 @@ smbios_ep->eplen = 0x1F; assert(sizeof (struct smbios_entry_point) == smbios_ep->eplen); smbios_ep->major = 2; - smbios_ep->minor = 6; + smbios_ep->minor = 7; smbios_ep->revision = 0; memcpy(smbios_ep->ianchor, SMBIOS_ENTRY_IANCHOR, SMBIOS_ENTRY_IANCHORLEN); smbios_ep->staddr = staddr; - smbios_ep->bcdrev = 0x24; + smbios_ep->bcdrev = 0x27; } static void