diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2014-12-28 13:47:45 -0500 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2014-12-28 13:47:45 -0500 |
commit | a45f20c0266103ed948d4a644e6d6d1c33a90b38 (patch) | |
tree | 4ad5d5e02ccded7feeac0a9b7f9e39490949a39f /buildrom-withgrub.mk | |
parent | 63508d43f3c2f558c04065041919706cf2a86ef4 (diff) |
refactor
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)) |