#
# 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/
$(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 $@"
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);
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");
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);
call16_int(0x10, &br);
// Write to screen.
- printf("Starting SeaBIOS\n\n");
+ printf("Starting SeaBIOS (version %s)\n\n", VERSION);
}
void
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();