Add support for building as a coreboot payload

This commit is contained in:
Jeremy Soller 2019-02-25 12:10:16 -07:00
parent f482e41008
commit 0c56ae16e8
8 changed files with 363 additions and 0 deletions

View file

@ -24,6 +24,12 @@ build/livedisk.iso: build/livedisk.bin.gz
build/iso/
isohybrid $@
bootloader-coreboot/build/bootloader: build/kernel_coreboot
$(MAKE) -C bootloader-coreboot clean build/bootloader KERNEL="$(ROOT)/$<"
build/coreboot.elf: bootloader-coreboot/build/bootloader
cp $< $@
bootloader-efi/build/redox_bootloader/boot.efi:
$(MAKE) -C bootloader-efi build/redox_bootloader/boot.efi

View file

@ -6,6 +6,14 @@ build/initfs.tag: initfs.toml prefix
cargo run --manifest-path installer/Cargo.toml -- $(INSTALLER_FLAGS) -c $< build/initfs/
touch $@
build/initfs_coreboot.tag: initfs_coreboot.toml prefix
rm -f build/libkernel_coreboot.a
rm -rf build/initfs_coreboot
mkdir -p build/initfs_coreboot
export PATH="$(PREFIX_PATH):$$PATH" && \
cargo run --manifest-path installer/Cargo.toml -- $(INSTALLER_FLAGS) -c $< build/initfs_coreboot/
touch $@
build/initfs_live.tag: initfs_live.toml prefix
rm -f build/libkernel_live.a
rm -rf build/initfs_live

View file

@ -4,6 +4,12 @@ build/libkernel.a: kernel/Cargo.lock kernel/Cargo.toml kernel/src/* kernel/src/*
cd kernel && \
xargo rustc --lib --target $(KTARGET) --release -- -C soft-float -C debuginfo=2 --emit link=../$@
build/libkernel_coreboot.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_coreboot.tag
export PATH="$(PREFIX_PATH):$$PATH" && \
export INITFS_FOLDER=$(ROOT)/build/initfs_coreboot && \
cd kernel && \
xargo rustc --lib --target $(KTARGET) --release --features live -- -C soft-float -C debuginfo=2 --emit link=../$@
build/libkernel_live.a: kernel/Cargo.toml kernel/src/* kernel/src/*/* kernel/src/*/*/* kernel/src/*/*/*/* build/initfs_live.tag
export PATH="$(PREFIX_PATH):$$PATH" && \
export INITFS_FOLDER=$(ROOT)/build/initfs_live && \
@ -16,6 +22,12 @@ build/kernel: kernel/linkers/$(ARCH).ld build/libkernel.a
$(OBJCOPY) --only-keep-debug $@ $@.sym && \
$(OBJCOPY) --strip-debug $@
build/kernel_coreboot: kernel/linkers/$(ARCH).ld build/libkernel_coreboot.a build/live.o
export PATH="$(PREFIX_PATH):$$PATH" && \
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel_coreboot.a build/live.o && \
$(OBJCOPY) --only-keep-debug $@ $@.sym && \
$(OBJCOPY) --strip-debug $@
build/kernel_live: kernel/linkers/$(ARCH).ld build/libkernel_live.a build/live.o
export PATH="$(PREFIX_PATH):$$PATH" && \
$(LD) --gc-sections -z max-page-size=0x1000 -T $< -o $@ build/libkernel_live.a build/live.o && \