This patch series make seabios linkable with lld.
This is beneficial for FreeBSD ports as well
https://svnweb.freebsd.org/ports/head/misc/seabios/Makefile
as they can drop an LLD_UNSAFE
As a maintainer of lld ELF, I have triaged numerous pieces of software.
seabios is the only one making use of
This drops the only instance https://sourceware.org/bugzilla/show_bug.cgi?id=12726
1, 2, 3 and 4 are really independent and can be applied in arbitrary order.
5 depends on 4. I originally combined 4 and 5 and that was why I don't think a patch series made sense.
Fangrui Song (5):
romlayout.S: Add missing SHF_ALLOC flag to .fixedaddr.\addr
Make rom16.o linkable with lld
Makefile: Change ET_EXEC to ET_REL so that lld can link bios.bin.elf
romlayout32flag.lds: Use `. +=` instead of `. =`
test-build.sh: Delete unneeded LD capability test
Makefile | 4 ++++
scripts/layoutrom.py | 13 ++++++++++---
scripts/test-build.sh | 42 +-----------------------------------------
src/romlayout.S | 2 +-
4 files changed, 16 insertions(+), 45 deletions(-)
--
2.26.0.292.g33ef6b2f38-goog
Hi,
qemu 5.1 is coming closer, with freeze in a week and release in August.
See https://wiki.qemu.org/Planning/5.1
We'll need a new seabios release for qemu 5.1, and the options we have
are:
(1) cherry-pick bugfixes (at least the cirrus vga fix, probably more)
into 1.13-stable, tag a 1.13.1 stable release.
(2) tag a 1.14 release from master branch.
Given we have several useful changes in the master branch which I would
not consider being bugfixes a 1.14 released would be nice. Freeze in a
week and release in three weeks should work fine with the qemu release
schedule.
What do you think?
take care,
Gerd
Commits
d6bdb85eb0 virtio-scsi: skip initializing non-bootable devices
f82e82a5ab2 virtio-mmio: add support for scsi devices.
both use the lun value from tmpl_drv, which is always 0, instead of the
correct one passed as a separate parameter. This causes systems where
LUNs other than 0 are set as bootable, but 0 is not, to not boot.
Reviewed-by: Paul Menzel <pmenzel(a)molgen.mpg.de>
Signed-off-by: Stefan Reiter <s.reiter(a)proxmox.com>
---
v2:
* sep*a*rate :)
* collect Paul's R-b
src/hw/virtio-scsi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/hw/virtio-scsi.c b/src/hw/virtio-scsi.c
index 59f1c65..369c981 100644
--- a/src/hw/virtio-scsi.c
+++ b/src/hw/virtio-scsi.c
@@ -126,14 +126,14 @@ virtio_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv)
int prio = -1;
if (tmpl_vlun->pci)
- prio = bootprio_find_scsi_device(tmpl_vlun->pci, tmpl_vlun->target, tmpl_vlun->lun);
+ prio = bootprio_find_scsi_device(tmpl_vlun->pci, tmpl_vlun->target, lun);
if (tmpl_vlun->mmio)
- prio = bootprio_find_scsi_mmio_device(tmpl_vlun->mmio, tmpl_vlun->target, tmpl_vlun->lun);
+ prio = bootprio_find_scsi_mmio_device(tmpl_vlun->mmio, tmpl_vlun->target, lun);
if (skip_nonbootable && prio < 0) {
dprintf(1, "skipping init of a non-bootable virtio-scsi dev at %s,"
" target %d, lun %d\n",
- tmpl_vlun->name, tmpl_vlun->target, tmpl_vlun->lun);
+ tmpl_vlun->name, tmpl_vlun->target, lun);
return -1;
}
--
2.20.1
Commits
d6bdb85eb0 virtio-scsi: skip initializing non-bootable devices
f82e82a5ab2 virtio-mmio: add support for scsi devices.
both use the lun value from tmpl_drv, which is always 0, instead of the
correct one passed as a seperate parameter. This causes systems where
LUNs other than 0 are set as bootable, but 0 is not, to not boot.
Signed-off-by: Stefan Reiter <s.reiter(a)proxmox.com>
---
src/hw/virtio-scsi.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/hw/virtio-scsi.c b/src/hw/virtio-scsi.c
index 59f1c65..369c981 100644
--- a/src/hw/virtio-scsi.c
+++ b/src/hw/virtio-scsi.c
@@ -126,14 +126,14 @@ virtio_scsi_add_lun(u32 lun, struct drive_s *tmpl_drv)
int prio = -1;
if (tmpl_vlun->pci)
- prio = bootprio_find_scsi_device(tmpl_vlun->pci, tmpl_vlun->target, tmpl_vlun->lun);
+ prio = bootprio_find_scsi_device(tmpl_vlun->pci, tmpl_vlun->target, lun);
if (tmpl_vlun->mmio)
- prio = bootprio_find_scsi_mmio_device(tmpl_vlun->mmio, tmpl_vlun->target, tmpl_vlun->lun);
+ prio = bootprio_find_scsi_mmio_device(tmpl_vlun->mmio, tmpl_vlun->target, lun);
if (skip_nonbootable && prio < 0) {
dprintf(1, "skipping init of a non-bootable virtio-scsi dev at %s,"
" target %d, lun %d\n",
- tmpl_vlun->name, tmpl_vlun->target, tmpl_vlun->lun);
+ tmpl_vlun->name, tmpl_vlun->target, lun);
return -1;
}
--
2.20.1
Dear SeaBIOS folks,
On the laptop TUXEDO Book BU1406 (Clevo N240BU) with coreboot [1] and
SeaBIOS master, the internal PS/2 keyboard often does not work.
SeaBIOS (version rel-1.13.0-45-g6ada228)
[…]
/7aa38000\ Start thread
|7aa38000| Discarding ps2 data 41 (status=13)
Searching bootorder for: HALT
/7aa35000\ Start thread
Found 0 lpt ports
Found 0 serial ports
|7aa38000| keyboard self test failed (got ab not 0xaa)
\7aa38000/ End thread
[…]
Kind regards,
Paul
[1]: https://review.coreboot.org/c/coreboot/+/43760/
"mb/clevo/kbl-u: Add Clevo N240BU as variant"
Hello!
To clarify from the very beginning, I don't know how this part of the
larger picture actually works. The end result is that seabios project,
with the current source tarball available for download from
https://www.seabios.org/downloads/seabios-1.13.0.tar.gz ,
can't be built using GNU ld as of version 2.34.90.20200706.
Here's the relevant output:
seabios-1.13.0 $ make silentoldconfig
seabios-1.13.0 $ make V=1 PYTHON=python3
...
Linking out/rom16.o
ld -T out/romlayout16.lds out/code16.o -o out/rom16.o
Stripping out/rom16.strip.o
strip out/rom16.o -o out/rom16.strip.o
Linking out/rom.o
ld -N -T out/romlayout32flat.lds out/rom16.strip.o out/rom32seg.strip.o out/code32flat.o -o out/rom.o
ld: cannot use executable file 'out/rom16.strip.o' as input to a link
make: *** [Makefile:187: out/rom.o] Error 1
seabios-1.13.0 $ _
Previous versions of ld accepted this file just fine
and produced valid out/bios.bin in the end.
I dunno if this is a problem is seabios (which has actually
been already reported to seabios by Paul Menzel today), or
an issue in ld. These ROMs/firmwares are a bit tricky to build..
Thanks!
/mjt