diff options
Diffstat (limited to 'buildrom-withgrub.mk')
-rw-r--r-- | buildrom-withgrub.mk | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/buildrom-withgrub.mk b/buildrom-withgrub.mk new file mode 100644 index 0000000..42970f8 --- /dev/null +++ b/buildrom-withgrub.mk @@ -0,0 +1,30 @@ +define rule_rom_nokeyboard +tmp/$(board)_nokeyboard_$(romtype).rom: \ + tmp/grub_$(romtype).elf \ + resources/libreboot/config/$(board)_$(romtype)_config + $(MAKE) -C src/coreboot clean + ln resources/libreboot/config/$(board)_$(romtype)_config src/coreboot/.config + ln tmp/grub_$(romtype).elf src/coreboot/grub.elf + $(MAKE) -C src/coreboot + rm -f src/coreboot/.config src/coreboot/grub.elf + mv src/coreboot/build/coreboot.rom $@ +endef +$(eval $(call loop_rule,rom_nokeyboard,board romtype)) + +define rule_rom +bin/$(board)_$(keymap)_$(romtype).rom: \ + tmp/$(board)_nokeyboard_$(romtype).rom \ + tmp/grub_$(keymap)_$(romtype).cfg \ + $(firstword $(CBFSTOOL)) + cp $< $@.tmp + $(CBFSTOOL) $@.tmp add -f tmp/grub_$(keymap)_$(romtype).cfg -n grub.cfg -t raw + $(CBFSTOOL) $@.tmp add -f tmp/grub_$(keymap)_$(romtype)_test.cfg -n grubtest.cfg -t raw + $(if $(filter $(board),$(i945boards)),\ + # Needed on i945 systems for the bucts/dd trick (documented) + # This enables the ROM to be flashed over the lenovo bios firmware + dd if='$@.tmp' of='$@.tmp.top64k' bs=1 skip=$$[$$(stat -c %s '$@.tmp') - 0x10000] count=64k && \ + dd if='$@.tmp.top64k' of='$@.tmp' bs=1 seek=$$[$$(stat -c %s '$@.tmp') - 0x20000] count=64k conv=notrunc && \ + rm -f '$@.tmp.top64k') + mv $@.tmp $@ +endef +$(eval $(call loop_rule,rom,board keymap romtype)) |