The 1.7.0 version of SeaBIOS has now been released. For more information on the release, please see:
New in this release:
* Many enhancements to VGA BIOS code - it should now be feature complete with LGPL vgabios. * Support for virtio-scsi. * Improved USB drive (usb-msc) support. * Several USB controller bug fixes and improvements. * Runtime ACPI AML PCI hotplug construction. * Support for running on i386 and i486 CPUs. * Enhancements to PCI init when running on emulators. * Several bug fixes
For information on obtaining SeaBIOS, please see:
-Kevin
Great! :) Nice to see a new release out. Please make a notice about the release on the front page of the seabios website.
On Sun, Apr 15, 2012 at 4:48 AM, Kevin O'Connor kevin@koconnor.net wrote:
The 1.7.0 version of SeaBIOS has now been released. For more information on the release, please see:
New in this release:
- Many enhancements to VGA BIOS code - it should now be feature complete with LGPL vgabios.
- Support for virtio-scsi.
- Improved USB drive (usb-msc) support.
- Several USB controller bug fixes and improvements.
- Runtime ACPI AML PCI hotplug construction.
- Support for running on i386 and i486 CPUs.
- Enhancements to PCI init when running on emulators.
- Several bug fixes
For information on obtaining SeaBIOS, please see:
-Kevin
SeaBIOS mailing list SeaBIOS@seabios.org http://www.seabios.org/mailman/listinfo/seabios
On 15.04.2012 06:48, Kevin O'Connor wrote:
The 1.7.0 version of SeaBIOS has now been released. For more information on the release, please see:
Um. I can't compile it here, due to an error in ./tools/buildversion.sh.
$ sh -x ./tools/buildversion.sh out/vgaversion.c VAR16 + OUTFILE=out/vgaversion.c + VAR16MODE=VAR16 + [ -d .git ] + git describe --tags --long --dirty + VERSION=rel-1.7.0-0-ga026308 + date +%Y%m%d_%H%M%S + hostname + VERSION=rel-1.7.0-0-ga026308-20120415_235702-gandalf + echo Version: rel-1.7.0-0-ga026308-20120415_235702-gandalf Version: rel-1.7.0-0-ga026308-20120415_235702-gandalf + [ VAR16 == VAR16 ] [: 1: VAR16: unexpected operator + cat
AFIAK, "==" operator is a bash(?) extension, standard POSIX shell only mentions "=" operator. Changing this "==" to "=" makes it buildable.
Thanks,
/mjt
On 04/15/2012 01:59 PM, Michael Tokarev wrote:
On 15.04.2012 06:48, Kevin O'Connor wrote:
The 1.7.0 version of SeaBIOS has now been released. For more information on the release, please see:
Um. I can't compile it here, due to an error in ./tools/buildversion.sh.
$ sh -x ./tools/buildversion.sh out/vgaversion.c VAR16
- OUTFILE=out/vgaversion.c
- VAR16MODE=VAR16
- [ -d .git ]
- git describe --tags --long --dirty
- VERSION=rel-1.7.0-0-ga026308
- date +%Y%m%d_%H%M%S
- hostname
- VERSION=rel-1.7.0-0-ga026308-20120415_235702-gandalf
- echo Version: rel-1.7.0-0-ga026308-20120415_235702-gandalf
Version: rel-1.7.0-0-ga026308-20120415_235702-gandalf
- [ VAR16 == VAR16 ]
[: 1: VAR16: unexpected operator
- cat
AFIAK, "==" operator is a bash(?) extension, standard POSIX shell only mentions "=" operator.
Not just a bash extension, as ksh and zsh have it too, but you are right that dash doesn't implement it because POSIX 2008 (Issue 7) doesn't require '==', just '='. [There is a good chance that the next POSIX revision (Issue 8) will require '==' as a synonym for '=', but as that version of POSIX is still several years away, you're still better off sticking to '=' for now.]
On Mon, Apr 16, 2012 at 02:28:20PM -0600, Eric Blake wrote:
On 04/15/2012 01:59 PM, Michael Tokarev wrote:
On 15.04.2012 06:48, Kevin O'Connor wrote:
The 1.7.0 version of SeaBIOS has now been released. For more information on the release, please see:
Um. I can't compile it here, due to an error in ./tools/buildversion.sh.
[...]
AFIAK, "==" operator is a bash(?) extension, standard POSIX shell only mentions "=" operator.
Not just a bash extension, as ksh and zsh have it too, but you are right that dash doesn't implement it because POSIX 2008 (Issue 7) doesn't require '==', just '='. [There is a good chance that the next POSIX revision (Issue 8) will require '==' as a synonym for '=', but as that version of POSIX is still several years away, you're still better off sticking to '=' for now.]
It's easy enough to fix in SeaBIOS (for the next release).
-Kevin
From 385a7d0dec28841a05531cba96c62138c3959fef Mon Sep 17 00:00:00 2001
From: Kevin O'Connor kevin@koconnor.net Date: Sun, 15 Apr 2012 22:02:15 -0400 Subject: [PATCH] buildversion: Don't rely on bash syntax. To: seabios@seabios.org
Use '=' instead of '=='.
Signed-off-by: Kevin O'Connor kevin@koconnor.net --- tools/buildversion.sh | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/tools/buildversion.sh b/tools/buildversion.sh index 9b301e6..c8c1725 100755 --- a/tools/buildversion.sh +++ b/tools/buildversion.sh @@ -15,7 +15,7 @@ VERSION="${VERSION}-`date +"%Y%m%d_%H%M%S"`-`hostname`" echo "Version: ${VERSION}"
# Build header file -if [ "$VAR16MODE" == "VAR16" ]; then +if [ "$VAR16MODE" = "VAR16" ]; then cat > ${OUTFILE} <<EOF #include "types.h" char VERSION[] VAR16 = "${VERSION}";
On 15.04.2012 06:48, Kevin O'Connor wrote:
The 1.7.0 version of SeaBIOS has now been released. For more information on the release, please see:
New in this release:
- Many enhancements to VGA BIOS code - it should now be feature complete with LGPL vgabios.
This is something which prompted me to test the new release, but it gives... interesting results.
WinXP guest is unable to find drivers for the video adaptor with -vga std and this vgabios.bin, not even its "standard VGA" fallback driver. The device in question is detected as "Other devices / Video controller (VGA compat.)", and its identification looks like:
PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
This appears to be bogus somehow, no?
Thanks!
/mjt
On Mon, Apr 16, 2012 at 12:17:09AM +0400, Michael Tokarev wrote:
On 15.04.2012 06:48, Kevin O'Connor wrote:
- Many enhancements to VGA BIOS code - it should now be feature complete with LGPL vgabios.
This is something which prompted me to test the new release, but it gives... interesting results.
WinXP guest is unable to find drivers for the video adaptor with -vga std and this vgabios.bin, not even its "standard VGA" fallback driver. The device in question is detected as "Other devices / Video controller (VGA compat.)", and its identification looks like:
PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
This appears to be bogus somehow, no?
It seems to work okay for me. What did you select in Kconfig, where did you put the resulting out/vgabios.bin file, and what emulator are you using?
Also, if using qemu/kvm add "-chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios" to the command line and post the resulting debug log.
-Kevin
On 16.04.2012 01:07, Kevin O'Connor wrote:
On Mon, Apr 16, 2012 at 12:17:09AM +0400, Michael Tokarev wrote:
On 15.04.2012 06:48, Kevin O'Connor wrote:
- Many enhancements to VGA BIOS code - it should now be feature complete with LGPL vgabios.
This is something which prompted me to test the new release, but it gives... interesting results.
WinXP guest is unable to find drivers for the video adaptor with -vga std and this vgabios.bin, not even its "standard VGA" fallback driver. The device in question is detected as "Other devices / Video controller (VGA compat.)", and its identification looks like:
PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
This appears to be bogus somehow, no?
It seems to work okay for me. What did you select in Kconfig, where did you put the resulting out/vgabios.bin file, and what emulator are you using?
Kconfig was all defaults except VGA ROM pieces (which are off by default). I selected VGA_STANDARD_VGA, VGA_VBE, VGA_PCI and left OVERRIDE_PCI_ID UNselected, since I didn't know what to put there. Maybe the last item was my mistake.
The binaries were put into right place where qemu-kvm picked them -- -bios /path/to/seabios/git/out/bios.bin, and vgabios.bin into the standard qemu-kvm directory, as vgabios-stdvga.bin. I think I learned where to put this stuff by now, after maintaining Debian package of qemu-kvm for over 2 years... ;)
This is qemu-kvm 1.0, I haven't tried with current qemu git version.
Also, if using qemu/kvm add "-chardev stdio,id=seabios -device isa-debugcon,iobase=0x402,chardev=seabios" to the command line and post the resulting debug log.
Here it is:
Start bios (version rel-1.7.0-0-ga026308-dirty-20120416_000009-gandalf) Ram Size=0x40000000 (0x0000000000000000 high) Relocating init from 0x000e4360 to 0x3ffe1bb0 (size 58148) CPU Mhz=3217 === PCI bus & bridge init === PCI: pci_bios_init_bus_rec bus = 0x0 === PCI device probing === Found 6 PCI devices (max PCI bus is 00) === PCI new allocation pass #1 === PCI: check devices === PCI new allocation pass #2 === PCI: init bases bus 0 (primary) type io max 40 sum 50 base c000 size 40: 1 bar(s), c000 -> c03f size 10: 1 bar(s), c040 -> c04f type mem max 10000 sum 11000 base febe0000 size 10000: 1 bar(s), febe0000 -> febeffff size 1000: 1 bar(s), febf0000 -> febf0fff type prefmem max 1000000 sum 1000000 base fd000000 size 1000000: 1 bar(s), fd000000 -> fdffffff PCI: map device bdf=00:00.0 PCI: map device bdf=00:01.0 PCI: map device bdf=00:01.1 bar 4, addr c040, size 10 [io] PCI: map device bdf=00:01.3 PCI: map device bdf=00:02.0 bar 0, addr fd000000, size 1000000 [prefmem] bar 6, addr febe0000, size 10000 [mem] PCI: map device bdf=00:03.0 bar 0, addr c000, size 40 [io] bar 1, addr febf0000, size 1000 [mem] PCI: init bdf=00:00.0 id=8086:1237 PCI: init bdf=00:01.0 id=8086:7000 PCI: init bdf=00:01.1 id=8086:7010 PCI: init bdf=00:01.3 id=8086:7113 PCI: init bdf=00:02.0 id=1234:1111 PCI: init bdf=00:03.0 id=1af4:1001 PIIX3/PIIX4 init: elcr=00 0c Found 1 cpu(s) max supported 1 cpu(s) MP table addr=0x000fdb00 MPC table addr=0x000fdb10 size=224 SMBIOS ptr=0x000fdae0 table=0x000fd9d0 size=263 ACPI DSDT=0x3fffe470 ACPI tables: RSDP=0x000fd9a0 RSDT=0x3fffe430 Scan for VGA option rom Running option rom at c000:0003 Start SeaVGABIOS (version rel-1.7.0-0-ga026308-dirty-20120416_000011-gandalf) enter vga_post: a=00000010 b=0000ffff c=00000000 d=0000ffff ds=0000 es=f000 ss=0000 si=00000000 di=0000d0a0 bp=00000000 sp=00006e6a cs=f000 ip=c60c f=6e9a Turning on vga text mode console set VGA mode 3 SeaBIOS (version rel-1.7.0-0-ga026308-dirty-20120416_000009-gandalf)
Found 1 lpt ports Found 1 serial ports ATA controller 1 at 1f0/3f4/0 (irq 14 dev 9) ATA controller 2 at 170/374/0 (irq 15 dev 9) found virtio-blk at 0:3 ebda moved from 9fc00 to 9dc00 Searching bootorder for: /pci@i0cf8/*@3 DVD/CD [ata1-0: QEMU DVD-ROM ATAPI-4 DVD/CD] Searching bootorder for: /pci@i0cf8/*@1,1/drive@1/disk@0 PS2 keyboard initialized All threads complete. Scan for option roms Searching bootorder for: /rom@genroms/vapic.bin drive 0x000fd950: PCHS=8322/16/63 translation=lba LCHS=522/255/63 s=8388608 Running option rom at c880:0003 Returned 57344 bytes of ZoneHigh e820 map has 7 items: 0: 0000000000000000 - 000000000009dc00 = 1 RAM 1: 000000000009dc00 - 00000000000a0000 = 2 RESERVED 2: 00000000000f0000 - 0000000000100000 = 2 RESERVED 3: 0000000000100000 - 000000003fffe000 = 1 RAM 4: 000000003fffe000 - 0000000040000000 = 2 RESERVED 5: 00000000feffc000 - 00000000ff000000 = 2 RESERVED 6: 00000000fffc0000 - 0000000100000000 = 2 RESERVED enter handle_19: NULL Booting from Hard Disk... Booting from 0000:7c00 set VGA mode 12 pnp call arg1=0 set VGA mode 3 set VGA mode 12 VBE mode set: 102 set VGA mode 102 VBE mode set: 102 set VGA mode 102 set VGA mode 12 set VGA mode 12 [win displays login prompt]
Thank you!
/mjt
On 16.04.2012 01:58, Michael Tokarev wrote:
On 16.04.2012 01:07, Kevin O'Connor wrote:
On Mon, Apr 16, 2012 at 12:17:09AM +0400, Michael Tokarev wrote:
On 15.04.2012 06:48, Kevin O'Connor wrote:
- Many enhancements to VGA BIOS code - it should now be feature complete with LGPL vgabios.
This is something which prompted me to test the new release, but it gives... interesting results.
WinXP guest is unable to find drivers for the video adaptor with -vga std and this vgabios.bin, not even its "standard VGA" fallback driver. The device in question is detected as "Other devices / Video controller (VGA compat.)", and its identification looks like:
PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
The identification is the same as with seabios-1.6.2 and vgabios-0.6<someting> - the "other vgabios" from bochs project.
I just tried to re-install the video driver in 1.6.2 & 0.6, by deleting the device in device manager and rebooting the virtual machine - and it is unable to find any drivers too, saying this is some "Other device - vga compatible", -- i.e. exactly as with 1.7 and vgarom from it.
The only difference is that with 1.6.2 & vgabios, even if the device is listed as "other device", there are a ton of various video modes available, while with 1.7 & vga rom from it, only one mode -- 640x480, 16 colors -- is available.
This appears to be bogus somehow, no?
Bogus or not, but it was the same with bochs vgabios.. :)
Thank you!
/mjt
On Mon, Apr 16, 2012 at 01:58:47AM +0400, Michael Tokarev wrote:
On 16.04.2012 01:07, Kevin O'Connor wrote:
On Mon, Apr 16, 2012 at 12:17:09AM +0400, Michael Tokarev wrote:
On 15.04.2012 06:48, Kevin O'Connor wrote:
- Many enhancements to VGA BIOS code - it should now be feature complete with LGPL vgabios.
This is something which prompted me to test the new release, but it gives... interesting results.
WinXP guest is unable to find drivers for the video adaptor with -vga std and this vgabios.bin, not even its "standard VGA" fallback driver. The device in question is detected as "Other devices / Video controller (VGA compat.)", and its identification looks like:
PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
This appears to be bogus somehow, no?
It seems to work okay for me. What did you select in Kconfig, where did you put the resulting out/vgabios.bin file, and what emulator are you using?
Kconfig was all defaults except VGA ROM pieces (which are off by default). I selected VGA_STANDARD_VGA, VGA_VBE, VGA_PCI and left OVERRIDE_PCI_ID UNselected, since I didn't know what to put there. Maybe the last item was my mistake.
Select VGA_BOCHS in Kconfig for the qemu "standard" vga. The "standard vga" option in seabios kconfig is for emulating old IBM 128K vga cards (ie, not super vga) - I suppose this is a bit misleading.
-Kevin
On 16.04.2012 02:22, Kevin O'Connor wrote:
Select VGA_BOCHS in Kconfig for the qemu "standard" vga. The "standard vga" option in seabios kconfig is for emulating old IBM 128K vga cards (ie, not super vga) - I suppose this is a bit misleading.
Oh. Indeed, VGA_BOCHS works, and it is _very_ similar to how vgabios from bochs project works.
And indeed, this is quite a bit confusing. The menut text is also a bit interesting, -- "Bochs DISPI interface VGA BIOS" (what is "DISPI" ?).
Maybe this Standard VGA should be named something like Old VGA?
Testing further....
Thanks!
/mjt
On Mon, Apr 16, 2012 at 02:44:28AM +0400, Michael Tokarev wrote:
On 16.04.2012 02:22, Kevin O'Connor wrote:
Select VGA_BOCHS in Kconfig for the qemu "standard" vga. The "standard vga" option in seabios kconfig is for emulating old IBM 128K vga cards (ie, not super vga) - I suppose this is a bit misleading.
Oh. Indeed, VGA_BOCHS works, and it is _very_ similar to how vgabios from bochs project works.
And indeed, this is quite a bit confusing. The menut text is also a bit interesting, -- "Bochs DISPI interface VGA BIOS" (what is "DISPI" ?).
The "DISPI" refers to the custom protocol that is used to transmit VBE requests between the vga bios and bochs (and is also implemented in qemu). Unfortunately, there aren't well recognized names for these interfaces. I'm open to changing the Kconfig descriptions if there are better names.
-Kevin
Michael Tokarev wrote:
Maybe this Standard VGA should be named something like Old VGA?
IBM PC/XT/AT 128K VGA ?
//Peter
Il 16/04/2012 02:44, Peter Stuge ha scritto:
Michael Tokarev wrote:
Maybe this Standard VGA should be named something like Old VGA?
IBM PC/XT/AT 128K VGA ?
FWIW, the first VGA was for the PS/2 and had 256K of VRAM. "IBM VGA" is probably good enough...
Paolo
Hi,
WinXP guest is unable to find drivers for the video adaptor with -vga std and this vgabios.bin, not even its "standard VGA" fallback driver. The device in question is detected as "Other devices / Video controller (VGA compat.)", and its identification looks like:
PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
You'll need to build multiple times with different configurations to get the pci ids right for the various vga variants emulated by qemu. I'll have some build scripts to do that here, just need to rebase and polish them, I'll post the bits ASAP.
cheers, Gerd
On 04/16/2012 06:35 AM, Gerd Hoffmann wrote:
Hi,
WinXP guest is unable to find drivers for the video adaptor with -vga std and this vgabios.bin, not even its "standard VGA" fallback driver. The device in question is detected as "Other devices / Video controller (VGA compat.)", and its identification looks like:
PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
You'll need to build multiple times with different configurations to get the pci ids right for the various vga variants emulated by qemu. I'll have some build scripts to do that here, just need to rebase and polish them, I'll post the bits ASAP.
Do you think you'll get this out in the next couple days? I'd like to move to 1.7.0 and SeaVGABIOS for the 1.1 release if at all possible.
Regards,
Anthony LIguori
cheers, Gerd
On 04/16/12 22:11, Anthony Liguori wrote:
On 04/16/2012 06:35 AM, Gerd Hoffmann wrote:
Hi,
WinXP guest is unable to find drivers for the video adaptor with -vga std and this vgabios.bin, not even its "standard VGA" fallback driver. The device in question is detected as "Other devices / Video controller (VGA compat.)", and its identification looks like:
PCI\VEN_1234&DEV_1111&SUBSYS_11001AF4&REV_00\3&13C0B0C5&0&10
You'll need to build multiple times with different configurations to get the pci ids right for the various vga variants emulated by qemu. I'll have some build scripts to do that here, just need to rebase and polish them, I'll post the bits ASAP.
Do you think you'll get this out in the next couple days?
This is my plan.
I'd like to move to 1.7.0 and SeaVGABIOS for the 1.1 release if at all possible.
/me too.
cheers, Gerd
On 17.04.2012 11:37, Gerd Hoffmann wrote: []
You'll need to build multiple times with different configurations to get the pci ids right for the various vga variants emulated by qemu. I'll have some build scripts to do that here, just need to rebase and polish them, I'll post the bits ASAP.
Do you think you'll get this out in the next couple days?
This is my plan.
Um, this should be done by replacing a "choice" in the config with multiple booleans, so it builds several vgabios binaries.
I thought about implementing this the very moment I tried to build my first seabios with vgabios enabled, but was distracted by something else and now you say you already have something almost ready... ;)
Anyway, I can confirm that seaVGAbios works quite well so far, except the usual issue with Linux VESA driver (which present with bochs vgabios too). So using seabios for all this stuff appears to be a good idea.
Thank you all for the great work!
/mjt