aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2009-07-29 20:41:39 -0400
committerKevin O'Connor <kevin@koconnor.net>2009-07-29 20:41:39 -0400
commitc95d2cee36db79c88253d43a90230ceadf0c26cf (patch)
tree22ba1fd5527278ca9dc5f69370f9c9907c26aeca
parent8c8a880b584ccf8958d67e99a6750ba32d0b6454 (diff)
downloadseabios-c95d2cee36db79c88253d43a90230ceadf0c26cf.tar.gz
Add auto-generated version info to each build.
Add versioning info to initial debug and screen banner output.
-rw-r--r--Makefile9
-rw-r--r--src/optionroms.c8
-rw-r--r--src/post.c2
-rw-r--r--src/rombios.lds.S1
-rw-r--r--src/util.h3
5 files changed, 16 insertions, 7 deletions
diff --git a/Makefile b/Makefile
index 2e2ba1db..37589097 100644
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,9 @@
#
# This file may be distributed under the terms of the GNU LGPLv3 license.
+# Program version
+VERSION=pre-0.4.2-$(shell date +"%Y%m%d_%H%M%S")-$(shell hostname)
+
# Output directory
OUT=out/
@@ -134,11 +137,13 @@ $(OUT)rom32.o: $(OUT)code32.o $(OUT)rombios32.lds
$(Q)$(LD) -r -T $(OUT)rombios32.lds $< -o $@
$(OUT)rom.o: $(OUT)rom16.o $(OUT)rom32.o $(OUT)rombios16.lds $(OUT)rombios.lds
- @echo " Linking $@"
+ @echo " Linking $@ (version \"$(VERSION)\")"
+ $(Q)echo 'const char VERSION[] __attribute__((section(".data32.version"))) = "$(VERSION)";' > $(OUT)version.c
+ $(Q)$(CC) $(CFLAGS) -c $(OUT)version.c -o $(OUT)version.o
$(Q)$(LD) -T $(OUT)rombios16.lds $(OUT)rom16.o -R $(OUT)rom32.o -o $(OUT)rom16.reloc.o
$(Q)$(STRIP) $(OUT)rom16.reloc.o -o $(OUT)rom16.final.o
$(Q)$(OBJCOPY) --adjust-vma 0xf0000 $(OUT)rom16.o $(OUT)rom16.moved.o
- $(Q)$(LD) -T $(OUT)rombios.lds $(OUT)rom16.final.o $(OUT)rom32.o -R $(OUT)rom16.moved.o -o $@
+ $(Q)$(LD) -T $(OUT)rombios.lds $(OUT)rom16.final.o $(OUT)rom32.o $(OUT)version.o -R $(OUT)rom16.moved.o -o $@
$(OUT)bios.bin.elf: $(OUT)rom.o
@echo " Prepping $@"
diff --git a/src/optionroms.c b/src/optionroms.c
index 00fa85dc..819b318c 100644
--- a/src/optionroms.c
+++ b/src/optionroms.c
@@ -274,7 +274,7 @@ map_pcirom(u16 bdf, u32 vendev)
struct rom_header *rom = (void*)orig;
for (;;) {
- dprintf(5, "Inspecting possible rom at %p (dv=%x bdf=%x)\n"
+ dprintf(5, "Inspecting possible rom at %p (dv=%08x bdf=%x)\n"
, rom, vendev, bdf);
if (rom->signature != OPTION_ROM_SIGNATURE) {
dprintf(6, "No option rom signature (got %x)\n", rom->signature);
@@ -290,7 +290,7 @@ map_pcirom(u16 bdf, u32 vendev)
if (vd == vendev && pci->type == PCIROM_CODETYPE_X86)
// A match
break;
- dprintf(6, "Didn't match dev/ven (got %x) or type (got %d)\n"
+ dprintf(6, "Didn't match dev/ven (got %08x) or type (got %d)\n"
, vd, pci->type);
if (pci->indicator & 0x80) {
dprintf(6, "No more images left\n");
@@ -313,7 +313,7 @@ static int
init_pcirom(u16 bdf, int isvga)
{
u32 vendev = pci_config_readl(bdf, PCI_VENDOR_ID);
- dprintf(4, "Attempting to init PCI bdf %02x:%02x.%x (dev/ven %x)\n"
+ dprintf(4, "Attempting to init PCI bdf %02x:%02x.%x (dev/ven %08x)\n"
, pci_bdf_to_bus(bdf), pci_bdf_to_dev(bdf), pci_bdf_to_fn(bdf)
, vendev);
struct rom_header *rom = lookup_hardcode(vendev);
@@ -437,7 +437,7 @@ vga_setup()
call16_int(0x10, &br);
// Write to screen.
- printf("Starting SeaBIOS\n\n");
+ printf("Starting SeaBIOS (version %s)\n\n", VERSION);
}
void
diff --git a/src/post.c b/src/post.c
index abbd2dd6..e80146f6 100644
--- a/src/post.c
+++ b/src/post.c
@@ -202,7 +202,7 @@ _start()
init_dma();
debug_serial_setup();
- dprintf(1, "Start bios\n");
+ dprintf(1, "Start bios (version %s)\n", VERSION);
// Allow writes to modify bios area (0xf0000)
make_bios_writable();
diff --git a/src/rombios.lds.S b/src/rombios.lds.S
index 0f6e388b..3d59fad4 100644
--- a/src/rombios.lds.S
+++ b/src/rombios.lds.S
@@ -11,6 +11,7 @@ SECTIONS
{
.text code32_start : {
*(.text32)
+ *(.data32.version)
. = code16_start ;
*(.text16)
diff --git a/src/util.h b/src/util.h
index 6cdcffef..d369a49c 100644
--- a/src/util.h
+++ b/src/util.h
@@ -247,4 +247,7 @@ extern u8 BiosChecksum;
// mptable.c
extern int irq0override;
+// version (auto generated file out/version.c)
+extern const char VERSION[];
+
#endif // util.h