aboutsummaryrefslogtreecommitdiffstats
path: root/build.sh
diff options
context:
space:
mode:
authorBrijesh Singh <brijesh.singh@amd.com>2017-08-07 16:35:51 -0400
committerBrijesh Singh <brijesh.singh@amd.com>2017-08-07 16:35:51 -0400
commitab10f43176b9dcc59c905dbe4d2b587b7ec4555b (patch)
treea419e4485161778bb13548f00717496113ff3b8d /build.sh
downloadcachepc-amdsev-ab10f43176b9dcc59c905dbe4d2b587b7ec4555b.tar.gz
cachepc-amdsev-ab10f43176b9dcc59c905dbe4d2b587b7ec4555b.zip
Initial commit
Diffstat (limited to 'build.sh')
-rwxr-xr-xbuild.sh113
1 files changed, 113 insertions, 0 deletions
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..6e6ea34
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,113 @@
+#!/bin/bash
+
+. ./stable-commits
+
+BUILD_DIR=`pwd`/src
+OUTPUT_DIR=`pwd`/output
+NUM_OF_CORES=`grep -c ^processor /proc/cpuinfo`
+
+run_cmd()
+{
+ echo "$*"
+
+ $*
+ if [ $? -ne 0 ]; then
+ echo "ERROR: $*"
+ exit 1
+ fi
+}
+
+fetch_kernel()
+{
+ run_cmd "mkdir -p ${BUILD_DIR}/kernel"
+ run_cmd "git clone ${KERNEL_GIT_URL} ${BUILD_DIR}/kernel"
+ cd ${BUILD_DIR}/kernel
+ run_cmd "git branch build ${KERNEL_COMMIT}"
+ run_cmd "git checkout build"
+}
+
+build_kernel()
+{
+ if [ ! -d $BUILD_DIR/kernel ]; then
+ fetch_kernel
+ fi
+ cd $BUILD_DIR/kernel
+ cp /boot/config-$(uname -r) .config
+ sed -ie s/CONFIG_LOCALVERSION.*/CONFIG_LOCALVERSION=\"\"/g .config
+ ./scripts/config --enable CONFIG_AMD_MEM_ENCRYPT
+ ./scripts/config --enable CONFIG_CRYPTO_DEV_CCP
+ ./scripts/config --enable CONFIG_CRYPTO_DEV_SP_PSP
+ ./scripts/config --enable CONFIG_CRYPTO_DEV_PSP_SEV
+ ./scripts/config --disable CONFIG_DEBUG_INFO
+ ./scripts/config --module CRYPTO_DEV_CCP_DD
+ ./scripts/config --disable CONFIG_LOCALVERSION_AUTO
+ yes "" | make olddefconfig
+ run_cmd "make -j `getconf _NPROCESSORS_ONLN` deb-pkg LOCALVERSION=-sev"
+}
+
+fetch_ovmf()
+{
+ run_cmd "mkdir -p ${BUILD_DIR}/edk2"
+ run_cmd "git clone ${EDK2_GIT_URL} ${BUILD_DIR}/edk2"
+ cd ${BUILD_DIR}/edk2
+}
+
+build_ovmf()
+{
+ if [ ! -d $BUILD_DIR/edk2 ]; then
+ fetch_ovmf
+ fi
+ cd $BUILD_DIR/edk2
+ run_cmd "make -C BaseTools"
+ . ./edksetup.sh
+ run_cmd "nice build --cmd-len=64436 \
+ -DDEBUG_ON_SERIAL_PORT=TRUE \
+ -n $(getconf _NPROCESSORS_ONLN) \
+ -a X64 \
+ -a IA32 \
+ -t GCC5 \
+ -p OvmfPkg/OvmfPkgIa32X64.dsc"
+ run_cmd "mkdir -p $OUTPUT_DIR/qemu-output/share/qemu"
+ run_cmd "cp Build/Ovmf3264/DEBUG_GCC5/FV/OVMF_CODE.fd $OUTPUT_DIR/qemu-output/share/qemu"
+ run_cmd "cp Build/Ovmf3264/DEBUG_GCC5/FV/OVMF_VARS.fd $OUTPUT_DIR/qemu-output/"
+}
+
+fetch_qemu()
+{
+ run_cmd "mkdir -p ${BUILD_DIR}/qemu"
+ run_cmd "git clone ${QEMU_GIT_URL} ${BUILD_DIR}/qemu"
+ cd ${BUILD_DIR}/qemu
+ run_cmd "git branch build ${QEMU_COMMIT}"
+ run_cmd "git checkout build"
+}
+
+build_qemu()
+{
+ if [ ! -d $BUILD_DIR/qemu ]; then
+ fetch_qemu
+ fi
+ cd $BUILD_DIR/qemu
+ run_cmd "./configure --target-list=x86_64-softmmu \
+ --prefix=$OUTPUT_DIR/qemu-output"
+ run_cmd "make -j$(getconf _NPROCESSORS_ONLN)"
+ run_cmd "make -j$(getconf _NPROCESSORS_ONLN) install"
+}
+
+finalize_output()
+{
+ run_cmd "mkdir -p $OUTPUT_DIR/kernel"
+ run_cmd "mv $BUILD_DIR/linux-* $OUTPUT_DIR/kernel"
+ run_cmd "cp $BUILD_DIR/../launch-qemu.sh $OUTPUT_DIR/qemu-output"
+}
+
+dep_install ()
+{
+ # install the build dependencies
+ run_cmd "sudo apt-get -y install git build-essential zlib1g-dev libglib2.0-dev libpixman-1-dev uuid-dev nasm bison acpica-tools libncurses5-dev libssl-dev fakeroot dpkg-dev"
+}
+
+dep_install
+build_kernel
+build_qemu
+build_ovmf
+finalize_output