Compare commits

..

3 Commits

Author SHA1 Message Date
Miroslav Rezanina ce7362c19e * Wed Jan 10 2024 Miroslav Rezanina <mrezanin@redhat.com> - 1.16.3-2 2024-01-17 06:32:47 +00:00
Miroslav Rezanina 58ec14382a * Wed Dec 13 2023 Miroslav Rezanina <mrezanin@redhat.com> - 1.16.3-1
- Rebase to 1.16.3 [RHEL-19239]
- Removed vgabios-qxl.bin [RHEL-383]
- Resolves: RHEL-19239
  (Rebase seabios to 1.16.3)
- Resolves: RHEL-383
  (remove vgabios-qxl.bin from seavgabios in rhel9)
2023-12-13 02:42:37 -05:00
Miroslav Rezanina 115fc88a65 * Wed Dec 07 2022 Miroslav Rezanina <mrezanin@redhat.com> - 1.16.1-1
- Rebase to 1.16.1 [bz#2149280]
- Resolves: bz#2149280
  (rebase seabios to 1.16.1)
2022-12-07 04:08:21 -05:00
8 changed files with 182 additions and 13 deletions

1
.gitignore vendored
View File

@ -31,3 +31,4 @@ seabios-0.6.0.tar.gz
/seabios-1.15.0.tar.gz
/seabios-1.16.0.tar.gz
/seabios-1.16.1.tar.gz
/seabios-1.16.3.tar.gz

View File

@ -1 +1 @@
867440b1737356f636da206229d347e98a3dc3c2 seabios-1.16.1.tar.gz
391d3e99a670bff295c4b4e8ccc02c87ce908018 seabios-1.16.3.tar.gz

18
README.rst Normal file
View File

@ -0,0 +1,18 @@
===================
seabios development
===================
seabios is maintained in a `source tree`_ rather than directly in dist-git
using packit service that provides way to develope using regular source code
structure and provides way to generate SRPM and build using koji service.
Developers deliver all changes to source-git using merge request. Only maintainers
will be pushing changes sent to source-git to dist-git.
Each release in dist-git is tagged in the source repository so you can easily
check out the source tree for a build. The tags are in the format
name-version-release, but note release doesn't contain the dist tag since the
source can be built in different build roots (Fedora, CentOS, etc.)
.. _source tree: https://gitlab.com/redhat/centos-stream/src/seabios

View File

@ -1,6 +0,0 @@
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,87 @@
From cc55079665ad515d663da022317e649679a7621f Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Wed, 3 May 2023 10:31:23 +0200
Subject: [PATCH 1/2] add hwerr_printf function for threads
RH-Author: Gerd Hoffmann <None>
RH-MergeRequest: 6: log error message to screen when booting with (unsupported) 4k sectors
RH-Jira: RHEL-7110
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [1/2] 37f3d1b45b289e4efb18817c265be2bff2606ebb (kraxel.rh/centos-src-seabios)
Printing to the screen from threads doesn't work, because that involves
a switch to real mode for using int10h services.
Add a string buffer and hwerr_printf() helper functions to store error
messages. Print the buffer later, after device initialization, from main
thread in case it is not empty.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
src/output.c | 17 +++++++++++++++++
src/output.h | 5 +++++
src/post.c | 4 ++++
3 files changed, 26 insertions(+)
diff --git a/src/output.c b/src/output.c
index 0184444c..8c9d6b8f 100644
--- a/src/output.c
+++ b/src/output.c
@@ -419,6 +419,23 @@ snprintf(char *str, size_t size, const char *fmt, ...)
return end - str;
}
+char hwerror_str[512];
+struct snprintfinfo hwerror_info = {
+ .info = { putc_str },
+ .str = hwerror_str,
+ .end = hwerror_str + sizeof(hwerror_str) - 1,
+};
+
+void
+hwerr_printf(const char *fmt, ...)
+{
+ ASSERT32FLAT();
+ va_list args;
+ va_start(args, fmt);
+ bvprintf(&hwerror_info.info, fmt, args);
+ va_end(args);
+}
+
// Build a formatted string - malloc'ing the memory.
char *
znprintf(size_t size, const char *fmt, ...)
diff --git a/src/output.h b/src/output.h
index 14288cf5..4548d2d4 100644
--- a/src/output.h
+++ b/src/output.h
@@ -16,6 +16,11 @@ char * znprintf(size_t size, const char *fmt, ...)
__attribute__ ((format (printf, 2, 3)));
void __dprintf(const char *fmt, ...)
__attribute__ ((format (printf, 1, 2)));
+
+extern char hwerror_str[512];
+void hwerr_printf(const char *fmt, ...)
+ __attribute__ ((format (printf, 1, 2)));
+
struct bregs;
void __debug_enter(struct bregs *regs, const char *fname);
void __debug_isr(const char *fname);
diff --git a/src/post.c b/src/post.c
index f93106a1..3e85da43 100644
--- a/src/post.c
+++ b/src/post.c
@@ -216,6 +216,10 @@ maininit(void)
device_hardware_setup();
wait_threads();
}
+ if (hwerror_str[0])
+ printf("\n"
+ "hardware setup errors:\n"
+ "%s", hwerror_str);
// Run option roms
optionrom_setup();
--
2.39.3

View File

@ -0,0 +1,52 @@
From 93138b258a2c77ec1df8768bac0853595cc869ca Mon Sep 17 00:00:00 2001
From: Gerd Hoffmann <kraxel@redhat.com>
Date: Wed, 3 May 2023 10:36:32 +0200
Subject: [PATCH 2/2] display error message for blocksizes != 512
RH-Author: Gerd Hoffmann <None>
RH-MergeRequest: 6: log error message to screen when booting with (unsupported) 4k sectors
RH-Jira: RHEL-7110
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [2/2] f4cdc59a968ed2cb795d0b7c357522423a16f4a2 (kraxel.rh/centos-src-seabios)
This actually happens in case users try to use 4k sectors with seabios.
Printing the error to the screen instead of only the debug log helps
users to figure why their guest doesn't boot.
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
src/hw/blockcmd.c | 2 +-
src/hw/virtio-blk.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/hw/blockcmd.c b/src/hw/blockcmd.c
index 6b6fea97..ff88680b 100644
--- a/src/hw/blockcmd.c
+++ b/src/hw/blockcmd.c
@@ -336,7 +336,7 @@ scsi_drive_setup(struct drive_s *drive, const char *s, int prio)
// 64-bit LBA anyway.
drive->blksize = be32_to_cpu(capdata.blksize);
if (drive->blksize != DISK_SECTOR_SIZE) {
- dprintf(1, "%s: unsupported block size %d\n", s, drive->blksize);
+ hwerr_printf("%s: unsupported block size %d\n", s, drive->blksize);
return -1;
}
drive->sectors = (u64)be32_to_cpu(capdata.sectors) + 1;
diff --git a/src/hw/virtio-blk.c b/src/hw/virtio-blk.c
index 137a2c3c..1d6f7d4b 100644
--- a/src/hw/virtio-blk.c
+++ b/src/hw/virtio-blk.c
@@ -193,8 +193,8 @@ init_virtio_blk(void *data)
vdrive->drive.blksize = DISK_SECTOR_SIZE;
}
if (vdrive->drive.blksize != DISK_SECTOR_SIZE) {
- dprintf(1, "virtio-blk %pP block size %d is unsupported\n",
- pci, vdrive->drive.blksize);
+ hwerr_printf("virtio-blk %pP block size %d is unsupported\n",
+ pci, vdrive->drive.blksize);
goto fail;
}
dprintf(3, "virtio-blk %pP blksize=%d sectors=%u size_max=%u "
--
2.39.3

View File

@ -1,21 +1,24 @@
Name: seabios
Version: 1.16.1
Release: 1%{?dist}
Version: 1.16.3
Release: 2%{?dist}
Summary: Open-source legacy BIOS implementation
License: LGPLv3
URL: https://www.coreboot.org/SeaBIOS
Source0: https://code.coreboot.org/p/seabios/downloads/get/seabios-1.16.1.tar.gz
Source0: https://code.coreboot.org/p/seabios/downloads/get/seabios-1.16.3.tar.gz
Source10: config.vga-cirrus
Source12: config.vga-qxl
Source13: config.vga-stdvga
Source18: config.seabios-256k
Source19: config.vga-virtio
Source20: config.vga-ramfb
Source21: config.vga-bochs-display
# For RHEL-7110 - [seabios] Can't boot from a disk with 4K sector size
Patch1: seabios-add-hwerr_printf-function-for-threads.patch
# For RHEL-7110 - [seabios] Can't boot from a disk with 4K sector size
Patch2: seabios-display-error-message-for-blocksizes-512.patch
BuildRequires: make
BuildRequires: gcc
@ -105,7 +108,7 @@ build_bios %{_sourcedir}/config.seabios-256k bios.bin bios-256k.bin
# seavgabios
%global vgaconfigs cirrus qxl stdvga virtio ramfb bochs-display
%global vgaconfigs cirrus stdvga virtio ramfb bochs-display
for config in %{vgaconfigs}; do
build_bios %{_sourcedir}/config.vga-${config} \
vgabios.bin vgabios-${config}.bin out/vgabios.bin
@ -132,6 +135,20 @@ install -m 0644 binaries/vgabios*.bin $RPM_BUILD_ROOT%{_datadir}/seavgabios
%{_datadir}/seavgabios/vgabios*.bin
%changelog
* Wed Jan 10 2024 Miroslav Rezanina <mrezanin@redhat.com> - 1.16.3-2
- seabios-add-hwerr_printf-function-for-threads.patch [RHEL-7110]
- seabios-display-error-message-for-blocksizes-512.patch [RHEL-7110]
- Resolves: RHEL-7110
([seabios] Can't boot from a disk with 4K sector size)
* Wed Dec 13 2023 Miroslav Rezanina <mrezanin@redhat.com> - 1.16.3-1
- Rebase to 1.16.3 [RHEL-19239]
- Removed vgabios-qxl.bin [RHEL-383]
- Resolves: RHEL-19239
(Rebase seabios to 1.16.3)
- Resolves: RHEL-383
(remove vgabios-qxl.bin from seavgabios in rhel9)
* Wed Dec 07 2022 Miroslav Rezanina <mrezanin@redhat.com> - 1.16.1-1
- Rebase to 1.16.1 [bz#2149280]
- Resolves: bz#2149280

View File

@ -1 +1 @@
SHA512 (seabios-1.16.1.tar.gz) = 3e994742469a60bcc4f915a2be32db9011df21366a096f4da4616b77e5d1886a1888d377864e7cd92c924f02ddabb4dc9ebf6a860183ca6a10d52cb87964447e
SHA512 (seabios-1.16.3.tar.gz) = 103aac0a7a890a681edb8950fee72d419899e20e8b06e2dd382987f98d3faf362789fca5aa4efabe27c4720e53ee19e0ae246d7aca2482b6661fa119efac648c