Skip to content

Commit d773513

Browse files
committed
feat: add microcode support
1 parent 3fb2430 commit d773513

File tree

5 files changed

+31
-1
lines changed

5 files changed

+31
-1
lines changed

hack/build-container/Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ RUN apt-get update && apt-get upgrade -y && apt-get install -y \
99
libprotobuf-dev \
1010
sbsigntool python3-pefile systemd-boot \
1111
musl-tools \
12-
ca-certificates
12+
ca-certificates \
13+
iucode-tool \
14+
libarchive-tools
1315

1416
RUN cargo new xyz; cd xyz; cargo fetch; cd ..; rm -rf xyz
1517
RUN rustup component add clippy

hack/hack.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ SHELL := /bin/bash
33
include hack/build-container/make.mk
44
include hack/kernel/make.mk
55
include hack/initramfs/make.mk
6+
include hack/ucode/make.mk
67
include hack/cloud-hypervisor/make.mk
78
include hack/cloud-hypervisor-firmware/make.mk
89
include hack/uki/make.mk

hack/ucode/make.mk

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
ucode:
2+
docker run --rm -u $${UID} -v "`pwd`:/feos" feos-builder ./hack/ucode/mk-ucode

hack/ucode/mk-ucode

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
#!/usr/bin/env bash
2+
3+
set -exuo pipefail
4+
5+
target_dir="$(realpath target)"
6+
7+
on_exit() {
8+
cd /
9+
[ -z "${tmp_dir-}" ] || rm -rf "$tmp_dir"
10+
}
11+
12+
trap on_exit EXIT
13+
14+
tmp_dir="$(mktemp -d)"
15+
cd "$tmp_dir"
16+
17+
git clone --depth 1 https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files.git intel-microcode
18+
git clone --depth 1 https://gitlab.com/kernel-firmware/linux-firmware.git linux-firmware
19+
20+
mkdir -p kernel/x86/microcode
21+
iucode_tool --write-to=kernel/x86/microcode/GenuineIntel.bin intel-microcode/intel-ucode
22+
cat linux-firmware/amd-ucode/microcode_amd*.bin > kernel/x86/microcode/AuthenticAMD.bin
23+
24+
bsdtar --uid 0 --gid 0 -cf - kernel | bsdtar -cf - --format=newc @- > "$target_dir/ucode.cpio"

hack/uki/make.mk

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ uki: keys
1111
--os-release @/feos/hack/uki/os-release.txt \
1212
--linux /feos/target/kernel/vmlinuz \
1313
--initrd /feos/target/initramfs.zst \
14+
--microcode /feos/target/ucode.cpio \
1415
--cmdline @/feos/target/cmdline \
1516
--secureboot-private-key /feos/keys/secureboot.key \
1617
--secureboot-certificate /feos/keys/secureboot.pem \

0 commit comments

Comments
 (0)