On Tue, Jan 09, 2018 at 10:39:30PM +0000, Stuart Henderson wrote:
> There was a new release of SeaBIOS recently which includes its own
> serial console redirection code. This updates SeaBIOS, enables
> CONFIG_SERCON and removes SGABIOS and the option rom-related
> code/config.
> 
> Working here in a quick test with OpenBSD guest (also gets rid of the
> doubled characters in the boot loader seen before with SGABIOS) but I'm
> not making heavy use of vmm myself.
> 
> After building, to test:
> 
> fw_update -p /path/to/packages/amd64/ -D unsigned
> 
> To revert to the old one in case of problems, pkg_delete vmm-firmware
> and re-run fw_update with no command line.

cool, seems ok to me. if we do a quick sanity test with a linux guest
bootloader (eg can you see grub), then I think this can become the default.

thanks sthen

> 
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/Makefile,v
> retrieving revision 1.11
> diff -u -p -r1.11 Makefile
> --- Makefile  27 Nov 2017 22:34:14 -0000      1.11
> +++ Makefile  9 Jan 2018 22:38:49 -0000
> @@ -2,22 +2,21 @@
>  
>  ONLY_FOR_ARCHS=      amd64 i386
>  
> -# XXX errors with with clang
> +# XXX errors with clang -
>  # ./src/string.c:24:16: error: invalid output constraint '=Qi' in asm
> +#
> +# ... and ports-gcc -
> +# ld: Relocatable linking with relocations from format elf64-x86-64 
> (out/ccode16.o) to format elf32-i386 (out/code16.o) is not supported
> +
>  CC =         /usr/bin/gcc
>  
>  FW_DRIVER=   vmm
> -FW_VER=              1.10.2
> -SB_VER=              20100422
> -REVISION=    5
> +FW_VER=              1.11.0
>  DISTNAME=    seabios-${FW_VER}
> -DISTFILES=   ${DISTNAME}${EXTRACT_SUFX} \
> -     sgabios-20100422{23d474943dcd55d0550a3d20b3d30e9040a4f15b}.tar.gz:0
>  
>  HOMEPAGE=    https://www.seabios.org/
>  
>  MASTER_SITES=        https://code.coreboot.org/p/seabios/downloads/get/
> -MASTER_SITES0=       https://github.com/qemu/sgabios/archive/
>  
>  # LGPLv3 but distributed via fw_update/firmware.openbsd.org so disable
>  # normal packaging.
> @@ -42,31 +41,17 @@ MAKE_FLAGS=       PYTHON="${MODPY_BIN}" V=1 EX
>               LD32BIT_FLAG=-melf_i386_obsd LD="${LD} -nopie -znorelro" 
>  
>  post-extract:
> -     mv ${WRKDIR}/sgabios-* ${WRKDIR}/sgabios
>       cp ${FILESDIR}/config ${WRKSRC}/.config
>  
>  post-build:
> -     sed -i 's,^#define BUILD_CL.*,#define BUILD_CL "${SB_VER}",' \
> -         ${WRKDIR}/sgabios/sgabios.S
> -     cd ${WRKDIR}/sgabios; env ${MAKE_ENV} ${MAKE_PROGRAM} \
> -         BUILD_USER='\"_<vmm\"' BUILD_HOST='\"OpenBSD>\"'
> -     dd if=/dev/zero of=${WRKDIR}/space bs=1 count=196608
> -     cat ${WRKDIR}/sgabios/sgabios.bin ${WRKDIR}/space \
> -         ${WRKSRC}/out/bios.bin > ${WRKDIR}/vmm-bios
> -     printf 'vmm-bios includes SeaBIOS (LGPLv3) and ' > 
> ${WRKDIR}/vmm-bios-license
> -     printf 'SGABIOS (Apache License 2.0\\n-----\\n' >> 
> ${WRKDIR}/vmm-bios-license
> -     cat ${WRKSRC}/COPYING.LESSER >> ${WRKDIR}/vmm-bios-license
> -     printf '-----\\n' >> ${WRKDIR}/vmm-bios-license
> -     cat ${WRKDIR}/sgabios/COPYING >> ${WRKDIR}/vmm-bios-license
> -     printf '-----\\n' >> ${WRKDIR}/vmm-bios-license
> -
> -post-build:
>       @if ! grep -q "\"${FW_VER}${EXTRAVERSION}\"" \
>           ${WRKSRC}/out/autoversion.h; then printf \
>           "\\nPort problem: 'cleanbuild' version string not used.\\n\\n"; \
>           tail -2 ${WRKSRC}/out/autoversion.h; echo; exit 1; fi
>  
>  do-install:
> -      ${INSTALL_DATA} ${WRKDIR}/vmm-bios{,-license} ${PREFIX}/firmware/
> +     ${INSTALL_DATA} ${WRKSRC}/out/bios.bin ${PREFIX}/firmware/vmm-bios
> +     ${INSTALL_DATA} ${WRKSRC}/COPYING.LESSER \
> +         ${PREFIX}/firmware/vmm-bios-license
>  
>  .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/distinfo,v
> retrieving revision 1.2
> diff -u -p -r1.2 distinfo
> --- distinfo  25 Apr 2017 20:09:35 -0000      1.2
> +++ distinfo  9 Jan 2018 22:38:49 -0000
> @@ -1,4 +1,2 @@
> -SHA256 (firmware/seabios-1.10.2.tar.gz) = 
> iccLcPp6sXlpTvuVwsidT1Cjk4EyHL7V2DAsubJelT0=
> -SHA256 (firmware/sgabios-20100422.tar.gz) = 
> +GidGDnBpBFHhvTWaR61NL95A18Y1Lm93Ijp7+biDg4=
> -SIZE (firmware/seabios-1.10.2.tar.gz) = 589283
> -SIZE (firmware/sgabios-20100422.tar.gz) = 31191
> +SHA256 (firmware/seabios-1.11.0.tar.gz) = 
> YitDLruKOwsTuKzNbUoZan6zrxHyQ4FeX3112c65m/c=
> +SIZE (firmware/seabios-1.11.0.tar.gz) = 607746
> Index: files/config
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/files/config,v
> retrieving revision 1.4
> diff -u -p -r1.4 config
> --- files/config      27 Nov 2017 22:34:14 -0000      1.4
> +++ files/config      9 Jan 2018 22:38:49 -0000
> @@ -39,6 +39,7 @@ CONFIG_VIRTIO_SCSI=y
>  # CONFIG_PS2PORT is not set
>  # CONFIG_USB is not set
>  CONFIG_SERIAL=y
> +CONFIG_SERCON=y
>  # CONFIG_LPT is not set
>  CONFIG_RTC_TIMER=y
>  CONFIG_HARDWARE_IRQ=y
> @@ -56,7 +57,7 @@ CONFIG_CDROM_EMU=y
>  # CONFIG_PCIBIOS is not set
>  CONFIG_APMBIOS=y
>  # CONFIG_PNPBIOS is not set
> -CONFIG_OPTIONROMS=y
> +# CONFIG_OPTIONROMS is not set
>  # CONFIG_PMM is not set
>  CONFIG_BOOT=y
>  CONFIG_KEYBOARD=y
> Index: patches/patch-Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/patches/patch-Makefile,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-Makefile
> --- patches/patch-Makefile    16 Jul 2017 14:11:21 -0000      1.1
> +++ patches/patch-Makefile    9 Jan 2018 22:38:49 -0000
> @@ -3,7 +3,7 @@ $OpenBSD: patch-Makefile,v 1.1 2017/07/1
>  Index: Makefile
>  --- Makefile.orig
>  +++ Makefile
> -@@ -55,10 +55,18 @@ EXTRAVERSION=
> +@@ -56,10 +56,18 @@ EXTRAVERSION=
>   
>   CPPFLAGS = -P -MD -MT $@
>   
> Index: patches/patch-src_fw_paravirt_c
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/patches/patch-src_fw_paravirt_c,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_fw_paravirt_c
> --- patches/patch-src_fw_paravirt_c   19 Jul 2017 19:33:51 -0000      1.1
> +++ patches/patch-src_fw_paravirt_c   9 Jan 2018 22:38:49 -0000
> @@ -6,7 +6,7 @@ qemu config device which VMM doesn't hav
>  Index: src/fw/paravirt.c
>  --- src/fw/paravirt.c.orig
>  +++ src/fw/paravirt.c
> -@@ -489,6 +489,18 @@ qemu_cfg_e820(void)
> +@@ -500,6 +500,18 @@ qemu_cfg_e820(void)
>       dprintf(1, "RamSizeOver4G: 0x%016llx [cmos]\n", RamSizeOver4G);
>   }
>   
> Index: patches/patch-src_fw_paravirt_h
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/patches/patch-src_fw_paravirt_h,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_fw_paravirt_h
> --- patches/patch-src_fw_paravirt_h   19 Jul 2017 19:33:51 -0000      1.1
> +++ patches/patch-src_fw_paravirt_h   9 Jan 2018 22:38:49 -0000
> @@ -6,7 +6,7 @@ qemu config device which VMM doesn't hav
>  Index: src/fw/paravirt.h
>  --- src/fw/paravirt.h.orig
>  +++ src/fw/paravirt.h
> -@@ -59,4 +59,5 @@ int qemu_cfg_write_file(void *src, struct romfile_s *f
> +@@ -60,4 +60,5 @@ int qemu_cfg_write_file(void *src, struct romfile_s *f
>   int qemu_cfg_write_file_simple(void *src, u16 key, u32 offset, u32 len);
>   u16 qemu_get_romfile_key(struct romfile_s *file);
>   
> Index: patches/patch-src_fw_pciinit_c
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/patches/patch-src_fw_pciinit_c,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_fw_pciinit_c
> --- patches/patch-src_fw_pciinit_c    26 Mar 2017 17:06:29 -0000      1.1
> +++ patches/patch-src_fw_pciinit_c    9 Jan 2018 22:38:49 -0000
> @@ -3,9 +3,10 @@ $OpenBSD: patch-src_fw_pciinit_c,v 1.1 2
>  Since we hijacked the OpenBSD PCI vendor ID, this diff should probably
>  not be upstreamed.
>  
> ---- src/fw/pciinit.c.orig    Fri Feb 24 15:01:20 2017
> -+++ src/fw/pciinit.c Sat Mar 25 14:19:56 2017
> -@@ -141,6 +141,11 @@ static int mch_pci_slot_get_irq(struct pci_device *pci
> +Index: src/fw/pciinit.c
> +--- src/fw/pciinit.c.orig
> ++++ src/fw/pciinit.c
> +@@ -142,6 +142,11 @@ static int mch_pci_slot_get_irq(struct pci_device *pci
>       return pci_irqs[(pin - 1 + pin_addend) & 3];
>   }
>   
> @@ -17,7 +18,7 @@ not be upstreamed.
>   /* PIIX3/PIIX4 PCI to ISA bridge */
>   static void piix_isa_bridge_setup(struct pci_device *pci, void *arg)
>   {
> -@@ -506,11 +511,18 @@ static void mch_mem_addr_setup(struct pci_device *dev,
> +@@ -507,11 +512,18 @@ static void mch_mem_addr_setup(struct pci_device *dev,
>           pci_io_low_end = acpi_pm_base;
>   }
>   
> Index: patches/patch-src_hw_pci_ids_h
> ===================================================================
> RCS file: /cvs/ports/sysutils/firmware/vmm/patches/patch-src_hw_pci_ids_h,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-src_hw_pci_ids_h
> --- patches/patch-src_hw_pci_ids_h    26 Mar 2017 17:06:29 -0000      1.1
> +++ patches/patch-src_hw_pci_ids_h    9 Jan 2018 22:38:49 -0000
> @@ -3,9 +3,10 @@ $OpenBSD: patch-src_hw_pci_ids_h,v 1.1 2
>  Since we hijacked the OpenBSD PCI vendor ID, this diff should probably
>  not be upstreamed.
>  
> ---- src/hw/pci_ids.h.orig    Fri Feb 24 15:01:20 2017
> -+++ src/hw/pci_ids.h Sat Mar 25 14:13:05 2017
> -@@ -146,6 +146,9 @@
> +Index: src/hw/pci_ids.h
> +--- src/hw/pci_ids.h.orig
> ++++ src/hw/pci_ids.h
> +@@ -147,6 +147,9 @@
>   #define PCI_DEVICE_ID_BERKOM_A4T            0xffa4
>   #define PCI_DEVICE_ID_BERKOM_SCITEL_QUADRO  0xffa8
>   
> Index: patches/patch-src_optionroms_c
> ===================================================================
> RCS file: patches/patch-src_optionroms_c
> diff -N patches/patch-src_optionroms_c
> --- patches/patch-src_optionroms_c    19 Jul 2017 19:33:51 -0000      1.2
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,16 +0,0 @@
> -$OpenBSD: patch-src_optionroms_c,v 1.2 2017/07/19 19:33:51 sthen Exp $
> -
> -Needed for SGABIOS option ROM for VMM. Normally these are setup based on
> -the qemu fw_cfg interface (or coreboot CBFS on hardware).
> -
> ---- src/optionroms.c.orig    Fri Mar 31 09:34:40 2017
> -+++ src/optionroms.c Fri Mar 31 09:35:35 2017
> -@@ -361,7 +361,7 @@ optionrom_setup(void)
> - 
> -     // All option roms found and deployed - now build BEV/BCV vectors.
> - 
> --    u32 pos = post_vga;
> -+    u32 pos = BUILD_BIOS_ADDR - BUILD_ROM_START;
> -     while (pos < rom_get_last()) {
> -         struct rom_header *rom = (void*)pos;
> -         if (! is_valid_rom(rom)) {
> 

Reply via email to