On Sun, Dec 09, 2018 at 01:44:07PM +0100, Reyk Floeter wrote:
> Hi,
> 
> I don’t understand - does this turn on more of these annoying debug
> messages like “Boot from” by default again?
> 

If CONFIG_DEBUG_LEVEL is kept at -1 then the output will be:

Connected to /dev/ttypi (speed 115200)
Booting from Hard Disk...
Using drive 0, partition 3.
Loading......
probing: pc0 com0 mem[638K 510M a20=on] 
disk: hd0+
>> OpenBSD/amd64 BOOT 3.41
-
com0: 115200 baud
switching console to com0
>> OpenBSD/amd64 BOOT 3.41
boot> 

Since I plan to add bootorder support I think it is a useful message:

Connected to /dev/ttypi (speed 115200)
Booting from DVD/CD...
CD-ROM: E0
Loading /6.4/AMD64/CDBOOT
probing: pc0 com0 mem[638K 510M a20=on]
disk: hd0+ cd0
>> OpenBSD/amd64 CDBOOT 3.40
boot>

Makes it easier to know what SeaBIOS selected to boot from.
But honestly if this is the bikeshed to work on then I can readd the
boot.c diff since honestly that is absolutly unimportant.

> Reyk
> 
> > Am 09.12.2018 um 12:19 schrieb Claudio Jeker <cje...@diehard.n-r-g.com>:
> > 
> > I started looking at supporting fw_cfg in vmd. Now to make this work with
> > SeaBIOS there are a few fixes needed. First of all the way it reads the
> > FW_CFG_DATA port is not supported by vmm(4) (problem whith 'rep insb' on
> > IO ports). Additionally this cleans up some of the patches which I think
> > are not needed if the setting of screen-and-debug is changed. At least I
> > no longer see double printing of messages.
> > I enabled CONFIG_BOOTORDER because this is what I would like to tweak.
> > The CONFIG_DEBUG_LEVEL can be taken out before commit but it helped me
> > debugging this. Once vmd uses fw_cfg more of the patches can be removed.
> > 
> > -- 
> > :wq Claudio
> > 
> > Index: Makefile
> > ===================================================================
> > RCS file: /cvs/ports/sysutils/firmware/vmm/Makefile,v
> > retrieving revision 1.15
> > diff -u -p -r1.15 Makefile
> > --- Makefile    21 Nov 2018 00:26:05 -0000    1.15
> > +++ Makefile    9 Dec 2018 11:09:05 -0000
> > @@ -13,7 +13,7 @@ CC =        /usr/bin/gcc
> > FW_DRIVER=    vmm
> > FW_VER=        1.11.0
> > SB_VER=        20100422
> > -REVISION=    0
> > +REVISION=    1
> > DISTNAME=    seabios-${FW_VER}
> > DISTFILES=    ${DISTNAME}${EXTRACT_SUFX} \
> >    sgabios-20100422{23d474943dcd55d0550a3d20b3d30e9040a4f15b}.tar.gz:0
> > Index: files/config
> > ===================================================================
> > RCS file: /cvs/ports/sysutils/firmware/vmm/files/config,v
> > retrieving revision 1.6
> > diff -u -p -r1.6 config
> > --- files/config    11 Jul 2018 09:09:46 -0000    1.6
> > +++ files/config    7 Dec 2018 20:34:05 -0000
> > @@ -15,7 +15,7 @@ CONFIG_QEMU_HARDWARE=y
> > # CONFIG_THREADS is not set
> > # CONFIG_RELOCATE_INIT is not set
> > # CONFIG_BOOTMENU is not set
> > -# CONFIG_BOOTORDER is not set
> > +CONFIG_BOOTORDER=y
> > # CONFIG_ENTRY_EXTRASTACK is not set
> > CONFIG_MALLOC_UPPERMEMORY=y
> > CONFIG_ROM_SIZE=0
> > @@ -92,7 +92,7 @@ CONFIG_VGA_EXTRA_STACK_SIZE=512
> > #
> > # Debugging
> > #
> > -CONFIG_DEBUG_LEVEL=-1
> > +CONFIG_DEBUG_LEVEL=1
> > CONFIG_DEBUG_SERIAL=y
> > CONFIG_DEBUG_SERIAL_PORT=0x3f8
> > CONFIG_DEBUG_IO=n
> > Index: patches/patch-src_boot_c
> > ===================================================================
> > RCS file: patches/patch-src_boot_c
> > diff -N patches/patch-src_boot_c
> > --- patches/patch-src_boot_c    11 Jul 2018 09:09:46 -0000    1.1
> > +++ /dev/null    1 Jan 1970 00:00:00 -0000
> > @@ -1,43 +0,0 @@
> > ---- src/boot.c.orig    Tue Jul 10 14:52:11 2018
> > -+++ src/boot.c    Tue Jul 10 14:53:18 2018
> > -@@ -659,7 +659,7 @@ boot_cdrom(struct drive_s *drive)
> > - {
> > -     if (! CONFIG_CDROM_BOOT)
> > -         return;
> > --    printf("Booting from DVD/CD...\n");
> > -+    dprintf(1, "Booting from DVD/CD...\n");
> > - 
> > -     int status = cdrom_boot(drive);
> > -     if (status) {
> > -@@ -685,7 +685,7 @@ boot_cbfs(struct cbfs_file *file)
> > - {
> > -     if (!CONFIG_COREBOOT_FLASH)
> > -         return;
> > --    printf("Booting from CBFS...\n");
> > -+    dprintf(1, "Booting from CBFS...\n");
> > -     cbfs_run_payload(file);
> > - }
> > - 
> > -@@ -693,7 +693,7 @@ boot_cbfs(struct cbfs_file *file)
> > - static void
> > - boot_rom(u32 vector)
> > - {
> > --    printf("Booting from ROM...\n");
> > -+    dprintf(1, "Booting from ROM...\n");
> > -     struct segoff_s so;
> > -     so.segoff = vector;
> > -     call_boot_entry(so, 0);
> > -@@ -733,11 +733,11 @@ do_boot(int seq_nr)
> > -     struct bev_s *ie = &BEV[seq_nr];
> > -     switch (ie->type) {
> > -     case IPL_TYPE_FLOPPY:
> > --        printf("Booting from Floppy...\n");
> > -+        dprintf(1, "Booting from Floppy...\n");
> > -         boot_disk(0x00, CheckFloppySig);
> > -         break;
> > -     case IPL_TYPE_HARDDISK:
> > --        printf("Booting from Hard Disk...\n");
> > -+        dprintf(1, "Booting from Hard Disk...\n");
> > -         boot_disk(0x80, 1);
> > -         break;
> > -     case IPL_TYPE_CDROM:
> > Index: patches/patch-src_fw_paravirt_c
> > ===================================================================
> > RCS file: /cvs/ports/sysutils/firmware/vmm/patches/patch-src_fw_paravirt_c,v
> > retrieving revision 1.2
> > diff -u -p -r1.2 patch-src_fw_paravirt_c
> > --- patches/patch-src_fw_paravirt_c    26 Apr 2018 12:23:32 -0000    1.2
> > +++ patches/patch-src_fw_paravirt_c    9 Dec 2018 10:55:37 -0000
> > @@ -1,18 +1,27 @@
> > $OpenBSD: patch-src_fw_paravirt_c,v 1.2 2018/04/26 12:23:32 sthen Exp $
> > 
> > +Don't use 'rep insb' to read IO ports, vmm does not support that yet.
> > Allow detection of >4GB RAM. Normally seabios only allows this with the
> > qemu config device which VMM doesn't have.
> > 
> > Index: src/fw/paravirt.c
> > --- src/fw/paravirt.c.orig
> > +++ src/fw/paravirt.c
> > -@@ -500,6 +500,18 @@ qemu_cfg_e820(void)
> > -     dprintf(1, "RamSizeOver4G: 0x%016llx [cmos]\n", RamSizeOver4G);
> > +@@ -257,7 +257,9 @@ qemu_cfg_read(void *buf, int len)
> > +     if (qemu_cfg_dma_enabled()) {
> > +         qemu_cfg_dma_transfer(buf, len, QEMU_CFG_DMA_CTL_READ);
> > +     } else {
> > +-        insb(PORT_QEMU_CFG_DATA, buf, len);
> > ++    u8 *d = buf;
> > ++    while (len-- > 0)
> > ++        *d++ = inb(PORT_QEMU_CFG_DATA);
> > +     }
> >  }
> > 
> > -+void
> > -+vmm_check_high_mem(void)
> > -+{
> > +@@ -491,6 +493,18 @@ qemu_cfg_e820(void)
> > +         e820_add(0xfffbc000, 4*4096, E820_RESERVED);
> > +     }
> > + 
> > +    // Check for memory over 4Gig in cmos
> > +    u64 high = ((rtc_read(CMOS_MEM_HIGHMEM_LOW) << 16)
> > +                | ((u32)rtc_read(CMOS_MEM_HIGHMEM_MID) << 24)
> > @@ -22,6 +31,9 @@ Index: src/fw/paravirt.c
> > +    dprintf(1, "RamSizeOver4G: 0x%016llx [cmos]\n", RamSizeOver4G);
> > +}
> > +
> > - // Populate romfile entries for legacy fw_cfg ports (that predate the
> > - // "file" interface).
> > - static void
> > ++void
> > ++vmm_check_high_mem(void)
> > ++{
> > +     // Check for memory over 4Gig in cmos
> > +     u64 high = ((rtc_read(CMOS_MEM_HIGHMEM_LOW) << 16)
> > +                 | ((u32)rtc_read(CMOS_MEM_HIGHMEM_MID) << 24)
> > Index: patches/patch-src_optionroms_c
> > ===================================================================
> > RCS file: /cvs/ports/sysutils/firmware/vmm/patches/patch-src_optionroms_c,v
> > retrieving revision 1.2
> > diff -u -p -r1.2 patch-src_optionroms_c
> > --- patches/patch-src_optionroms_c    19 Jul 2017 19:33:51 -0000    1.2
> > +++ patches/patch-src_optionroms_c    9 Dec 2018 10:45:01 -0000
> > @@ -2,9 +2,11 @@ $OpenBSD: patch-src_optionroms_c,v 1.2 2
> > 
> > Needed for SGABIOS option ROM for VMM. Normally these are setup based on
> > the qemu fw_cfg interface (or coreboot CBFS on hardware).
> > +Turn of screen-and-debug to prevent double printing of chars.
> > 
> > ---- src/optionroms.c.orig    Fri Mar 31 09:34:40 2017
> > -+++ src/optionroms.c    Fri Mar 31 09:35:35 2017
> > +Index: src/optionroms.c
> > +--- src/optionroms.c.orig
> > ++++ src/optionroms.c
> > @@ -361,7 +361,7 @@ optionrom_setup(void)
> > 
> >      // All option roms found and deployed - now build BEV/BCV vectors.
> > @@ -14,3 +16,12 @@ the qemu fw_cfg interface (or coreboot C
> >      while (pos < rom_get_last()) {
> >          struct rom_header *rom = (void*)pos;
> >          if (! is_valid_rom(rom)) {
> > +@@ -413,7 +413,7 @@ vgarom_setup(void)
> > +     EnforceChecksum = romfile_loadint("etc/optionroms-checksum", 1);
> > +     S3ResumeVga = romfile_loadint("etc/s3-resume-vga-init", CONFIG_QEMU);
> > +     RunPCIroms = romfile_loadint("etc/pci-optionrom-exec", 2);
> > +-    ScreenAndDebug = romfile_loadint("etc/screen-and-debug", 1);
> > ++    ScreenAndDebug = romfile_loadint("etc/screen-and-debug", 0);
> > + 
> > +     // Clear option rom memory
> > +     memset((void*)BUILD_ROM_START, 0, rom_get_max() - BUILD_ROM_START);
> > 
> 

-- 
:wq Claudio

Reply via email to