import seabios-1.11.1-3.module+el8+2529+a9686a4d

This commit is contained in:
CentOS Sources 2019-05-07 08:10:08 -04:00 committed by Andrew Lukoshko
commit a13bdba3b1
14 changed files with 748 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/seabios-1.11.1.tar.gz

1
.seabios.metadata Normal file
View File

@ -0,0 +1 @@
b0ead7ce2bd4b267a48e713ae3888a21ee287bf1 SOURCES/seabios-1.11.1.tar.gz

View File

@ -0,0 +1,68 @@
From d5d95a6501682b870a8981f0ad129fa345bbda74 Mon Sep 17 00:00:00 2001
From: Andrea Arcangeli <aarcange@redhat.com>
Date: Tue, 8 Oct 2013 17:07:23 +0200
Subject: allow >1TB of RAM
RH-Author: Andrea Arcangeli <aarcange@redhat.com>
Message-id: <1381252043-13480-2-git-send-email-aarcange@redhat.com>
Patchwork-id: 54785
O-Subject: [RHEL-7.0 seabios PATCH] allow >1TB of RAM
Bugzilla: 1016974
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
RH-Acked-by: Gleb Natapov <gleb@redhat.com>
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
Receive bits 40-48 from qemu to setup e820 maps with more than 1TB of ram.
Signed-off-by: Andrea Arcangeli <aarcange@redhat.com>
---
src/cmos.h | 7 ++++---
src/post.c | 7 ++++---
2 files changed, 8 insertions(+), 6 deletions(-)
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
(cherry picked from commit 4fee214c41b11b72b3427fda18e9eac1ee647746)
---
src/fw/paravirt.c | 7 ++++---
src/hw/rtc.h | 7 ++++---
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/fw/paravirt.c b/src/fw/paravirt.c
index 0770c47..0804d57 100644
--- a/src/fw/paravirt.c
+++ b/src/fw/paravirt.c
@@ -492,9 +492,10 @@ qemu_cfg_e820(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)
- | ((u64)rtc_read(CMOS_MEM_HIGHMEM_HIGH) << 32));
+ u64 high = ((rtc_read(CMOS_MEM_HIGHMEM_16) << 16)
+ | ((u32)rtc_read(CMOS_MEM_HIGHMEM_24) << 24)
+ | ((u64)rtc_read(CMOS_MEM_HIGHMEM_32) << 32)
+ | ((u64)rtc_read(CMOS_MEM_HIGHMEM_40) << 40));
RamSizeOver4G = high;
e820_add(0x100000000ull, high, E820_RAM);
dprintf(1, "RamSizeOver4G: 0x%016llx [cmos]\n", RamSizeOver4G);
diff --git a/src/hw/rtc.h b/src/hw/rtc.h
index 252e73a..c4369f8 100644
--- a/src/hw/rtc.h
+++ b/src/hw/rtc.h
@@ -41,9 +41,10 @@
#define CMOS_BIOS_BOOTFLAG1 0x38
#define CMOS_BIOS_DISKTRANSFLAG 0x39
#define CMOS_BIOS_BOOTFLAG2 0x3d
-#define CMOS_MEM_HIGHMEM_LOW 0x5b
-#define CMOS_MEM_HIGHMEM_MID 0x5c
-#define CMOS_MEM_HIGHMEM_HIGH 0x5d
+#define CMOS_MEM_HIGHMEM_16 0x5b
+#define CMOS_MEM_HIGHMEM_24 0x5c
+#define CMOS_MEM_HIGHMEM_32 0x5d
+#define CMOS_MEM_HIGHMEM_40 0x5e
#define CMOS_BIOS_SMP_COUNT 0x5f
// RTC register flags
--
1.8.3.1

View File

@ -0,0 +1,46 @@
From 60858d89551b29bcfe595f60f9cb518e55a915fe Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Mon, 28 Jul 2014 12:14:11 +0200
Subject: smbios: set bios vendor/version fields to Seabios/0.5.1
Message-id: <1406549651-26021-2-git-send-email-kraxel@redhat.com>
Patchwork-id: 60264
O-Subject: [RHEL-7.1 seabios PATCH 1/1] smbios: set bios vendor/version fields to Seabios/0.5.1
Bugzilla: 1123299
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
Mimic rhel6/seabios commit 1389643dad35a63362cd7d8357693f01175ef473.
Affects all 6.x and 7.0 machine types.
Note: 7.1+ machine types will switch over to the new-style smbios
handling in qemu 2.1 + seabios 1.7.5 (and ovmf), where seabios will
fill in the actual version information instead of the bogous 0.5.1
which we are using here for backward compatibility reasons.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
(cherry picked from commit bf361def4623ac1942512f255e5c1450970b5092)
---
src/fw/smbios.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/fw/smbios.c b/src/fw/smbios.c
index f3b5ad9..2770ff7 100644
--- a/src/fw/smbios.c
+++ b/src/fw/smbios.c
@@ -174,8 +174,8 @@ smbios_init_type_0(void *start)
p->header.length = sizeof(struct smbios_type_0);
p->header.handle = 0;
- load_str_field_with_default(0, vendor_str, BUILD_APPNAME);
- load_str_field_with_default(0, bios_version_str, BUILD_APPNAME);
+ load_str_field_with_default(0, vendor_str, "Seabios");
+ load_str_field_with_default(0, bios_version_str, "0.5.1");
p->bios_starting_address_segment = 0xe800;
--
1.8.3.1

View File

@ -0,0 +1,64 @@
From 1dfb44fecec3070163d66047815f3cbebabfceb6 Mon Sep 17 00:00:00 2001
From: Radim Krcmar <rkrcmar@redhat.com>
Date: Mon, 10 Mar 2014 15:14:27 +0100
Subject: Workaround for a win8.1-32 S4 resume bug
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
RH-Author: Radim Krcmar <rkrcmar@redhat.com>
Message-id: <1394464467-23560-1-git-send-email-rkrcmar@redhat.com>
Patchwork-id: 58069
O-Subject: [RHEL7.0 seabios PATCH] Workaround for a win8.1-32 S4 resume bug
Bugzilla: 1050775
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
bug: https://bugzilla.redhat.com/show_bug.cgi?id=1050775
brew: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=7176174
This patch has no upstream equivalent.
When a 32 bit version of windows 8.1 resumes from suspend, it writes 1
into 0x72 in the early boot because it didn't expect a NULL pointer.
0x72 is lower offset byte of 0x1c interrupt entry, so we jump into a
middle of other function if this interrupt is triggered.
Because 0x1c is only triggered from our handle_08, we detect if our
default value (function that does only iret) has its lower offset byte
overwritten and skip it in that case.
(Windows never sets own callback there, so we always detect this bug
correctly, as seabios doesn't use it either
Other sources shouldn't incorrectly overwrite it or use seabios code,
but it is quite ok even if the guest did this on purpose.)
The reason Windows uses NULL pointer is still unknown, but this bug is
blocking WHQL certification, so we have to work around it in 7.0.
Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
---
src/clock.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/clock.c b/src/clock.c
index e44e112..298a722 100644
--- a/src/clock.c
+++ b/src/clock.c
@@ -309,7 +309,13 @@ handle_08(void)
struct bregs br;
memset(&br, 0, sizeof(br));
br.flags = F_IF;
- call16_int(0x1c, &br);
+ struct segoff_s isr1c = GET_IVT(0x1c);
+ // hardcoded address of entry_iret_official with lower segment byte
+ // overwritten by 1
+ if (isr1c.seg == ((SEG_BIOS & ~0xff) | 0x1) && isr1c.offset == 0xff53)
+ dprintf(1, "Worked around win8.1-32 S4 resume bug\n");
+ else
+ call16_int(0x1c, &br);
pic_eoi1();
}
--
1.8.3.1

View File

@ -0,0 +1,44 @@
From 0a9f331cc723d5dfefb16022366d40db9491d555 Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Tue, 19 Apr 2016 11:27:50 +0200
Subject: redhat: reserve more memory on fseg
RH-Author: Gerd Hoffmann <kraxel@redhat.com>
Message-id: <1461065271-22039-2-git-send-email-kraxel@redhat.com>
Patchwork-id: 70213
O-Subject: [RHEL-7.1 seabios PATCH 1/2] redhat: reserve more memory on fseg
Bugzilla: 1327060
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Acked-by: Marcel Apfelbaum <marcel@redhat.com>
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
seabios 1.7.5 has about 8k free space in fseg.
configure 1.9.1 to keep the same amout space in fseg, so the amout of
disks we are able to handle stays roughly the same. ahci + scsi are
slightly below the 1.7.5 numbers but stay above the documented limits.
virtio-block numbers are higher than the 1.7.5 numbers.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
(cherry picked from commit 0561b82b0470679505d62f49eec83adb01eec0ab)
---
scripts/layoutrom.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/layoutrom.py b/scripts/layoutrom.py
index 6616721..71841aa 100755
--- a/scripts/layoutrom.py
+++ b/scripts/layoutrom.py
@@ -66,7 +66,7 @@ BUILD_BIOS_SIZE = 0x10000
BUILD_ROM_START = 0xc0000
BUILD_LOWRAM_END = 0xa0000
# Space to reserve in f-segment for dynamic allocations
-BUILD_MIN_BIOSTABLE = 2048
+BUILD_MIN_BIOSTABLE = 8192
# Layout the 16bit code. This ensures sections with fixed offset
# requirements are placed in the correct location. It also places the
--
1.8.3.1

View File

@ -0,0 +1,124 @@
From 53b64698cdcba24ebcea482523196eb1e64c65aa Mon Sep 17 00:00:00 2001
From: Ladi Prosek <lprosek@redhat.com>
Date: Mon, 31 Oct 2016 19:33:05 +0100
Subject: vgabios: Reorder video modes to work around a Windows bug
RH-Author: Ladi Prosek <lprosek@redhat.com>
Message-id: <1477924385-6169-1-git-send-email-lprosek@redhat.com>
Patchwork-id: 72677
O-Subject: [RHEL-7.4/7.3.z seabios PATCH] vgabios: Reorder video modes to work around a Windows bug
Bugzilla: 1392028
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
RH-Acked-by: Gerd Hoffmann <kraxel@redhat.com>
RH-Acked-by: vrozenfe <vrozenfe@redhat.com>
Windows Server 2016 and Windows 10 RS1 come with a bug in its blue screen
of death rendering logic which prevents it from generating crash dumps.
The bug does not manifest if Windows sees a suitable 32 bpp video mode
before a suitable 24 bpp video mode in the list of modes returned from
vgabios. This commit moves all 32 bpp modes to the front of the list to
make sure that this is always the case.
Upstream patch:
https://www.coreboot.org/pipermail/seabios/2016-October/010963.html
There are valid concerns upstream about the breaking nature of the fix
but for the limited set of operating systems supported by RHEL/RHEV we
can easily verify that they are unaffected. So as things stand now, this
is a downstream-only patch which will be reverted in the near future;
the exact time will depend on Windows 10 RS2 schedule and other factors.
The goal is to make sure that our customers running Windows 10 VMs can
generate crash dumps.
Signed-off-by: Ladi Prosek <lprosek@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
vgasrc/bochsvga.c | 39 ++++++++++++++++++++-------------------
1 file changed, 20 insertions(+), 19 deletions(-)
diff --git a/vgasrc/bochsvga.c b/vgasrc/bochsvga.c
index ec5d101..c5d1511 100644
--- a/vgasrc/bochsvga.c
+++ b/vgasrc/bochsvga.c
@@ -28,6 +28,25 @@ static struct bochsvga_mode
u16 mode;
struct vgamode_s info;
} bochsvga_modes[] VAR16 = {
+ /* 32 bpp BOCHS modes */
+ { 0x140, { MM_DIRECT, 320, 200, 32, 8, 16, SEG_GRAPH } },
+ { 0x141, { MM_DIRECT, 640, 400, 32, 8, 16, SEG_GRAPH } },
+ { 0x142, { MM_DIRECT, 640, 480, 32, 8, 16, SEG_GRAPH } },
+ { 0x143, { MM_DIRECT, 800, 600, 32, 8, 16, SEG_GRAPH } },
+ { 0x144, { MM_DIRECT, 1024, 768, 32, 8, 16, SEG_GRAPH } },
+ { 0x145, { MM_DIRECT, 1280, 1024, 32, 8, 16, SEG_GRAPH } },
+ { 0x147, { MM_DIRECT, 1600, 1200, 32, 8, 16, SEG_GRAPH } },
+ { 0x14c, { MM_DIRECT, 1152, 864, 32, 8, 16, SEG_GRAPH } },
+ { 0x177, { MM_DIRECT, 1280, 768, 32, 8, 16, SEG_GRAPH } },
+ { 0x17a, { MM_DIRECT, 1280, 800, 32, 8, 16, SEG_GRAPH } },
+ { 0x17d, { MM_DIRECT, 1280, 960, 32, 8, 16, SEG_GRAPH } },
+ { 0x180, { MM_DIRECT, 1440, 900, 32, 8, 16, SEG_GRAPH } },
+ { 0x183, { MM_DIRECT, 1400, 1050, 32, 8, 16, SEG_GRAPH } },
+ { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } },
+ { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } },
+ { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
+ { 0x18f, { MM_DIRECT, 1280, 720, 32, 8, 16, SEG_GRAPH } },
+ { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } },
/* standard modes */
{ 0x100, { MM_PACKED, 640, 400, 8, 8, 16, SEG_GRAPH } },
{ 0x101, { MM_PACKED, 640, 480, 8, 8, 16, SEG_GRAPH } },
@@ -56,50 +75,32 @@ static struct bochsvga_mode
{ 0x11D, { MM_DIRECT, 1600, 1200, 15, 8, 16, SEG_GRAPH } },
{ 0x11E, { MM_DIRECT, 1600, 1200, 16, 8, 16, SEG_GRAPH } },
{ 0x11F, { MM_DIRECT, 1600, 1200, 24, 8, 16, SEG_GRAPH } },
- /* BOCHS modes */
- { 0x140, { MM_DIRECT, 320, 200, 32, 8, 16, SEG_GRAPH } },
- { 0x141, { MM_DIRECT, 640, 400, 32, 8, 16, SEG_GRAPH } },
- { 0x142, { MM_DIRECT, 640, 480, 32, 8, 16, SEG_GRAPH } },
- { 0x143, { MM_DIRECT, 800, 600, 32, 8, 16, SEG_GRAPH } },
- { 0x144, { MM_DIRECT, 1024, 768, 32, 8, 16, SEG_GRAPH } },
- { 0x145, { MM_DIRECT, 1280, 1024, 32, 8, 16, SEG_GRAPH } },
+ /* 8, 15, 16, and 24 bpp BOCHS modes */
{ 0x146, { MM_PACKED, 320, 200, 8, 8, 16, SEG_GRAPH } },
- { 0x147, { MM_DIRECT, 1600, 1200, 32, 8, 16, SEG_GRAPH } },
{ 0x148, { MM_PACKED, 1152, 864, 8, 8, 16, SEG_GRAPH } },
{ 0x149, { MM_DIRECT, 1152, 864, 15, 8, 16, SEG_GRAPH } },
{ 0x14a, { MM_DIRECT, 1152, 864, 16, 8, 16, SEG_GRAPH } },
{ 0x14b, { MM_DIRECT, 1152, 864, 24, 8, 16, SEG_GRAPH } },
- { 0x14c, { MM_DIRECT, 1152, 864, 32, 8, 16, SEG_GRAPH } },
{ 0x175, { MM_DIRECT, 1280, 768, 16, 8, 16, SEG_GRAPH } },
{ 0x176, { MM_DIRECT, 1280, 768, 24, 8, 16, SEG_GRAPH } },
- { 0x177, { MM_DIRECT, 1280, 768, 32, 8, 16, SEG_GRAPH } },
{ 0x178, { MM_DIRECT, 1280, 800, 16, 8, 16, SEG_GRAPH } },
{ 0x179, { MM_DIRECT, 1280, 800, 24, 8, 16, SEG_GRAPH } },
- { 0x17a, { MM_DIRECT, 1280, 800, 32, 8, 16, SEG_GRAPH } },
{ 0x17b, { MM_DIRECT, 1280, 960, 16, 8, 16, SEG_GRAPH } },
{ 0x17c, { MM_DIRECT, 1280, 960, 24, 8, 16, SEG_GRAPH } },
- { 0x17d, { MM_DIRECT, 1280, 960, 32, 8, 16, SEG_GRAPH } },
{ 0x17e, { MM_DIRECT, 1440, 900, 16, 8, 16, SEG_GRAPH } },
{ 0x17f, { MM_DIRECT, 1440, 900, 24, 8, 16, SEG_GRAPH } },
- { 0x180, { MM_DIRECT, 1440, 900, 32, 8, 16, SEG_GRAPH } },
{ 0x181, { MM_DIRECT, 1400, 1050, 16, 8, 16, SEG_GRAPH } },
{ 0x182, { MM_DIRECT, 1400, 1050, 24, 8, 16, SEG_GRAPH } },
- { 0x183, { MM_DIRECT, 1400, 1050, 32, 8, 16, SEG_GRAPH } },
{ 0x184, { MM_DIRECT, 1680, 1050, 16, 8, 16, SEG_GRAPH } },
{ 0x185, { MM_DIRECT, 1680, 1050, 24, 8, 16, SEG_GRAPH } },
- { 0x186, { MM_DIRECT, 1680, 1050, 32, 8, 16, SEG_GRAPH } },
{ 0x187, { MM_DIRECT, 1920, 1200, 16, 8, 16, SEG_GRAPH } },
{ 0x188, { MM_DIRECT, 1920, 1200, 24, 8, 16, SEG_GRAPH } },
- { 0x189, { MM_DIRECT, 1920, 1200, 32, 8, 16, SEG_GRAPH } },
{ 0x18a, { MM_DIRECT, 2560, 1600, 16, 8, 16, SEG_GRAPH } },
{ 0x18b, { MM_DIRECT, 2560, 1600, 24, 8, 16, SEG_GRAPH } },
- { 0x18c, { MM_DIRECT, 2560, 1600, 32, 8, 16, SEG_GRAPH } },
{ 0x18d, { MM_DIRECT, 1280, 720, 16, 8, 16, SEG_GRAPH } },
{ 0x18e, { MM_DIRECT, 1280, 720, 24, 8, 16, SEG_GRAPH } },
- { 0x18f, { MM_DIRECT, 1280, 720, 32, 8, 16, SEG_GRAPH } },
{ 0x190, { MM_DIRECT, 1920, 1080, 16, 8, 16, SEG_GRAPH } },
{ 0x191, { MM_DIRECT, 1920, 1080, 24, 8, 16, SEG_GRAPH } },
- { 0x192, { MM_DIRECT, 1920, 1080, 32, 8, 16, SEG_GRAPH } },
};
static int dispi_found VAR16 = 0;
--
1.8.3.1

View File

@ -0,0 +1,20 @@
CONFIG_XEN=n
CONFIG_ESP_SCSI=n
CONFIG_LSI_SCSI=n
CONFIG_USB_OHCI=n
CONFIG_BOOTSPLASH=n
CONFIG_MEGASAS=n
CONFIG_PVSCSI=n
CONFIG_ROM_SIZE=128
CONFIG_USB_OHCI=n
CONFIG_USB_XHCI=n
CONFIG_USB_UAS=n
CONFIG_TCGBIOS=n
CONFIG_USE_SMM=n
CONFIG_NVME=n
CONFIG_VGAHOOKS=n
CONFIG_NVME=n
CONFIG_VGAHOOKS=n
CONFIG_SERCON=n
CONFIG_SDCARD=n
CONFIG_MPT_SCSI=n

View File

@ -0,0 +1,3 @@
# for qemu machine types 2.0 + newer
CONFIG_QEMU=y
CONFIG_ROM_SIZE=256

View File

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_CIRRUS=y
CONFIG_VGA_PCI=y

6
SOURCES/config.vga.qxl Normal file
View File

@ -0,0 +1,6 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y
CONFIG_OVERRIDE_PCI_ID=y
CONFIG_VGA_VID=0x1b36
CONFIG_VGA_DID=0x0100

View File

@ -0,0 +1,3 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y

View File

@ -0,0 +1,6 @@
CONFIG_BUILD_VGABIOS=y
CONFIG_VGA_BOCHS=y
CONFIG_VGA_PCI=y
CONFIG_OVERRIDE_PCI_ID=y
CONFIG_VGA_VID=0x1af4
CONFIG_VGA_DID=0x1050

359
SPECS/seabios.spec Normal file
View File

@ -0,0 +1,359 @@
Name: seabios
Version: 1.11.1
Release: 3%{?dist}
Summary: Open-source legacy BIOS implementation
Group: Applications/Emulators
License: LGPLv3
URL: https://www.coreboot.org/SeaBIOS
Source0: https://code.coreboot.org/p/seabios/downloads/get/seabios-1.11.1.tar.gz
Source10: config.vga.cirrus
Source11: config.vga.qxl
Source12: config.vga.stdvga
Source13: config.vga.virtio
Source20: config.seabios-128k
Source21: config.seabios-256k
Patch0002: 0002-allow-1TB-of-RAM.patch
Patch0003: 0003-smbios-set-bios-vendor-version-fields-to-Seabios-0.5.patch
Patch0004: 0004-Workaround-for-a-win8.1-32-S4-resume-bug.patch
Patch0005: 0005-redhat-reserve-more-memory-on-fseg.patch
Patch0006: 0006-vgabios-Reorder-video-modes-to-work-around-a-Windows.patch
BuildRequires: python3 iasl
ExclusiveArch: x86_64 %{power64}
Requires: %{name}-bin = %{version}-%{release}
Requires: seavgabios-bin = %{version}-%{release}
# Seabios is noarch, but required on architectures which cannot build it.
# Disable debuginfo because it is of no use to us.
%global debug_package %{nil}
# Similarly, tell RPM to not complain about x86 roms being shipped noarch
%global _binaries_in_noarch_packages_terminate_build 0
# You can build a debugging version of the BIOS by setting this to a
# value > 1. See src/config.h for possible values, but setting it to
# a number like 99 will enable all possible debugging. Note that
# debugging goes to a special qemu port that you have to enable. See
# the SeaBIOS top-level README file for the magic qemu invocation to
# enable this.
%global debug_level 1
%description
SeaBIOS is an open-source legacy BIOS implementation which can be used as
a coreboot payload. It implements the standard BIOS calling interfaces
that a typical x86 proprietary BIOS implements.
%package bin
Summary: Seabios for x86
Buildarch: noarch
%description bin
SeaBIOS is an open-source legacy BIOS implementation which can be used as
a coreboot payload. It implements the standard BIOS calling interfaces
that a typical x86 proprietary BIOS implements.
%package -n seavgabios-bin
Summary: Seavgabios for x86
Buildarch: noarch
Obsoletes: vgabios < 0.6c-10
%description -n seavgabios-bin
SeaVGABIOS is an open-source VGABIOS implementation.
%prep
%setup -q
%patch0002 -p1
%patch0003 -p1
%patch0004 -p1
%patch0005 -p1
%patch0006 -p1
%build
%ifarch x86_64
export CFLAGS="$RPM_OPT_FLAGS"
mkdir binaries
build_bios() {
make PYTHON=%{__python3} clean distclean
cp $1 .config
echo "CONFIG_DEBUG_LEVEL=%{debug_level}" >> .config
make PYTHON=%{__python3} oldnoconfig V=1 EXTRAVERSION="-%release"
make PYTHON=%{__python3} \
V=1 \
$4 \
EXTRAVERSION="-%{release}" \
cp out/$2 binaries/$3
}
# seabios
build_bios %{_sourcedir}/config.seabios-128k bios.bin bios.bin
build_bios %{_sourcedir}/config.seabios-256k bios.bin bios-256k.bin
# seavgabios
%global vgaconfigs cirrus qxl stdvga virtio
for config in %{vgaconfigs}; do
build_bios %{_sourcedir}/config.vga.${config} \
vgabios.bin vgabios-${config}.bin out/vgabios.bin
done
%install
mkdir -p $RPM_BUILD_ROOT%{_datadir}/seabios
mkdir -p $RPM_BUILD_ROOT%{_datadir}/seavgabios
install -m 0644 binaries/bios.bin $RPM_BUILD_ROOT%{_datadir}/seabios/bios.bin
install -m 0644 binaries/bios-256k.bin $RPM_BUILD_ROOT%{_datadir}/seabios/bios-256k.bin
install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios
%files
%doc COPYING COPYING.LESSER README
%files bin
%dir %{_datadir}/seabios/
%{_datadir}/seabios/bios*.bin
%files -n seavgabios-bin
%dir %{_datadir}/seavgabios/
%{_datadir}/seavgabios/vgabios*.bin
# endif for %ifarch x86_64 {power64}
%endif
%changelog
* Fri Dec 07 2018 Danilo C. L. de Paula <ddepaula@redhat.com> - 1.11.1-3.el8
- Resolves: bz#1613465
(Fix seabios package)
* Fri Aug 24 2018 Danilo C. L. de Paula <ddepaula@redhat.com> - 1.11.1-2.el8
- Resolves: bz#1607349
(Serial Graphics Adapter show error seabios version)
* Thu Jul 12 2018 Danilo C. L. de Paula <ddepaula@redhat.com> - 1.11.1-1.el8
- Rebasing seabios 1.11.1
* Mon May 21 2018 Danilo C. L. de Paula <ddepaula@redhat.com> - 1.11.0-2.el8
- Syncronizing exploded tree with dist-git
* Mon Nov 20 2017 Danilo C. L. de Paula <ddepaula@redhat.com> - 1.11.0-1.el8
- Creating RHEL-8.0 initial branch based on 1.11.0
- Resolves: bz#1515300
- (Prepare seabios for RHEL-8.0)
* Fri Nov 17 2017 Paolo Bonzini <pbonzini@redhat.com> - 1.11.0-1
- Rebased to version 1.11.0
- Add three patches from RHEL
* Fri Nov 17 2017 Paolo Bonzini <pbonzini@redhat.com> - 1.10.2-3
- Disable cross-compilation on RHEL
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.10.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Wed Mar 15 2017 Cole Robinson <crobinso@redhat.com> - 1.10.2-1
- Rebased to version 1.10.2
* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.10.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sun Dec 04 2016 Cole Robinson <crobinso@redhat.com> - 1.10.1-1
- Rebased to version 1.10.1
* Wed Aug 03 2016 Cole Robinson <crobinso@redhat.com> - 1.9.3-1
- Rebased to version 1.9.3
* Thu Mar 24 2016 Paolo Bonzini <pbonzini@redhat.com> - 1.9.1-3
- Include MPT Fusion driver, in preparation for QEMU 2.6
- Include XHCI and SD in 128k ROM, sacrifice bootsplash instead
* Thu Mar 17 2016 Cole Robinson <crobinso@redhat.com> - 1.9.1-1
- Rebased to version 1.9.1
- Fix incorrect UUID format in boot output (bz #1284259)
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1.9.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Tue Nov 17 2015 Cole Robinson <crobinso@redhat.com> 1.9.0-1
- Rebased to version 1.9.0
* Tue Jul 14 2015 Cole Robinson <crobinso@redhat.com> 1.8.2-1
- Rebased to version 1.8.2
* Fri Jun 19 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.8.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Wed Mar 18 2015 Cole Robinson <crobinso@redhat.com> - 1.8.1-1
- Rebased to version 1.8.1
* Sat Feb 21 2015 Cole Robinson <crobinso@redhat.com> - 1.8.0-1
- Rebased to version 1.8.0
- Initial support for USB3 hubs
- Initial support for SD cards (on QEMU only)
- Initial support for transitioning to 32bit mode using SMIs (on QEMU TCG
only)
- SeaVGABIOS improvements
* Sat Nov 15 2014 Cole Robinson <crobinso@redhat.com> - 1.7.5.1-1
- Update to seabios-1.7.5.1
* Wed Jul 09 2014 Cole Robinson <crobinso@redhat.com> - 1.7.5-3
- Fix PCI-e hotplug (bz #1115598)
* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.5-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
* Sat May 31 2014 Cole Robinson <crobinso@redhat.com> - 1.7.5-1
- Rebased to version 1.7.5
- Support for obtaining SMBIOS tables directly from QEMU.
- XHCI USB controller fixes for real hardware
- seavgabios: New driver for "coreboot native vga" support
- seavgabios: Improved detection of x86emu versions with incorrect
emulation.
- Several bug fixes and code cleanups
* Wed Mar 26 2014 Matthias Clasen <mclasen@redhat.com> 1.7.4-5
- Fix booting FreeBSD VMs in virt-manager
* Mon Mar 17 2014 Cole Robinson <crobinso@redhat.com> 1.7.4-3
- Build 256k bios images for qemu 2.0
* Thu Mar 13 2014 Cole Robinson <crobinso@redhat.com> - 1.7.4-2
- Fix kvm migration with empty virtio-scsi controller (bz #1032208)
* Mon Jan 06 2014 Cole Robinson <crobinso@redhat.com> - 1.7.4-1
- Rebased to version 1.7.4
- Support for obtaining ACPI tables directly from QEMU.
- Initial support for XHCI USB controllers (initially for QEMU only).
- Support for booting from "pvscsi" devices on QEMU.
- Enhanced floppy driver - improved support for real hardware.
- coreboot cbmem console support.
* Tue Nov 19 2013 Cole Robinson <crobinso@redhat.com> - 1.7.3.2-1
- Update to 1.7.3.2 for qemu 1.7
* Thu Nov 14 2013 Paolo Bonzini <pbonzini@redhat.com> - 1.7.3.1-3
- Fix pasto in CONFIG_DEBUG_LEVEL.
* Thu Nov 14 2013 Paolo Bonzini <pbonzini@redhat.com> - 1.7.3.1-2
- Compile as all three of BIOS, CSM and CoreBoot payload.
* Wed Aug 14 2013 Cole Robinson <crobinso@redhat.com> - 1.7.3.1-1
- Rebased to version 1.7.3.1
- Fix USB EHCI detection that was broken in hlist conversion of
PCIDevices.
- Fix bug in CBFS file walking with compressed files.
- acpi: sync FADT flags from PIIX4 to Q35
* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
* Tue Jul 09 2013 Cole Robinson <crobinso@redhat.com> - 1.7.3-2
- Install aml files for use by qemu
* Mon Jul 08 2013 Cole Robinson <crobinso@redhat.com> - 1.7.3-1
- Rebased to version 1.7.3
- Initial support for using SeaBIOS as a UEFI CSM
- Support for detecting and using ACPI reboot ports.
- Non-standard floppy sizes now work again with recent QEMU versions.
- Several bug fixes and code cleanups
- Again fix vgabios obsoletes (bz #981147)
* Mon May 27 2013 Cole Robinson <crobinso@redhat.com> - 1.7.2.2-1
- Update to seabios stable 1.7.2.2
- Obsolete vgabios (bz #967315)
* Thu Jan 24 2013 Cole Robinson <crobinso@redhat.com> - 1.7.2-1
- Rebased to version 1.7.2
- Support for ICH9 host chipset ("q35") on emulators
- Support for booting from LSI MegaRAID SAS controllers
- Support for using the ACPI PM timer on emulators
- Improved Geode VGA BIOS support.
- Several bug fixes
* Thu Dec 6 2012 Peter Robinson <pbrobinson@fedoraproject.org> 1.7.1-4
- Root seabios package is noarch too because it only contains docs
* Fri Oct 19 2012 Cole Robinson <crobinso@redhat.com> - 1.7.1-3
- Add seavgabios subpackage
* Wed Oct 17 2012 Paolo Bonzini <pbonzini@redhat.com> - 1.7.1-2
- Build with cross compiler. Resolves: #866664.
* Wed Sep 05 2012 Cole Robinson <crobinso@redhat.com> - 1.7.1-1
- Rebased to version 1.7.1
- Initial support for booting from USB attached scsi (USB UAS) drives
- USB EHCI 64bit controller support
- USB MSC multi-LUN device support
- Support for booting from LSI SCSI controllers on emulators
- Support for booting from AMD PCscsi controllers on emulators
* Mon Aug 13 2012 Richard W.M. Jones <rjones@redhat.com> - 1.7.0-4
- Modernise and tidy up the RPM.
- Allow debug versions of SeaBIOS to be built easily.
* Mon Aug 06 2012 Cole Robinson <crobinso@redhat.com> - 1.7.0-3
- Enable S3/S4 support for guests (it's an F18 feature after all)
* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
* Mon May 28 2012 Cole Robinson <crobinso@redhat.com> - 1.7.0-1
- Rebased to version 1.7.0
- Support for virtio-scsi
- Improved USB drive support
- Several USB controller bug fixes and improvements
* Wed Mar 28 2012 Paolo Bonzini <pbonzini@redhat.com> - 1.6.3-2
- Fix bugs in booting from host (or redirected) USB pen drives
* Wed Feb 08 2012 Justin M. Forbes <jforbes@redhat.com> - 1.6.3-1
- Update to 1.6.3 upstream
- Add virtio-scsi
* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
* Wed Oct 05 2011 Justin M. Forbes <jforbes@redhat.com> - 0.6.2-3
- Stop advertising S3 and S4 in DSDT (bz#741375)
- incdule iasl buildreq
* Wed Jul 13 2011 Justin M. Forbes <jforbes@redhat.com> - 0.6.2-2
- Fix QXL bug in 0.6.2
* Wed Jul 13 2011 Justin M. forbes <jforbes@redhat.com> - 0.6.2-1
- Update to 0.6.2 upstream for a number of bugfixes
* Mon Feb 14 2011 Justin M. forbes <jforbes@redhat.com> - 0.6.1-1
- Update to 0.6.1 upstream for a number of bugfixes
* Wed Feb 09 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.6.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
* Tue Aug 10 2010 Justin M. Forbes <jforbes@redhat.com> 0.6.0-1
- Update seabios to latest stable so we can drop patches.
* Tue Apr 20 2010 Justin M. Forbes <jforbes@redhat.com> 0.5.1-2
- Ugly hacks to make package noarch and available for arch that cannot build it.
- Disable useless debuginfo
* Wed Mar 03 2010 Justin M. Forbes <jforbes@redhat.com> 0.5.1-1
- Update to 0.5.1 stable release
- Pick up patches required for current qemu
* Thu Jan 07 2010 Justin M. Forbes <jforbes@redhat.com> 0.5.1-0.1.20100108git669c991
- Created initial package