@@ -17,6 +17,11 @@ RUN wget -q -O gcc-riscv.tar.gz https://github.com/riscv-collab/riscv-gnu-toolch
17
17
RUN echo "c3b849d25a43d74e7eb1cf739a8a9fadba5f997c4814732650f36ae250a8ab00 gcc-riscv.tar.gz" | sha256sum --check
18
18
RUN tar -C /opt -xzf gcc-riscv.tar.gz
19
19
20
+ # Use the LoongArch64 cross toolchain for building LoongArch64 code.
21
+ RUN wget https://github.com/loongson/build-tools/releases/download/2023.08.08/x86_64-cross-tools-loongarch64-binutils_2.41-gcc_13.2.0.tar.xz
22
+ RUN mkdir /opt/loongarch64_cross-toolchain/
23
+ RUN tar -vxf x86_64-cross-tools-loongarch64-binutils_2.41-gcc_13.2.0.tar.xz -C /opt/loongarch64_cross-toolchain/
24
+
20
25
# Use git rather than a release tarball, since the tarball is missing
21
26
# submodules.
22
27
ARG git_tag
@@ -54,13 +59,20 @@ RUN . venv/bin/activate && stuart_setup ${stuart_opts} && stuart_update ${stuart
54
59
ENV stuart_opts="-c OvmfPkg/PlatformCI/PlatformBuild.py -a X64 Target=${build_target} TOOL_CHAIN_TAG=${toolchain} ${common_build_opt} ${tpm_build_opt}"
55
60
RUN . venv/bin/activate && stuart_setup ${stuart_opts} && stuart_update ${stuart_opts} && stuart_build ${stuart_opts}
56
61
62
+ # Build LoongArch64.
63
+ ENV GCC5_LOONGARCH64_PREFIX="/opt/loongarch64_cross-toolchain/cross-tools/bin/loongarch64-unknown-linux-gnu-"
64
+ ENV build_target=RELEASE
65
+ ENV stuart_opts="-c OvmfPkg/PlatformCI/QemuBuild.py -a LOONGARCH64 Target=${build_target} TOOL_CHAIN_TAG=${toolchain} ${common_build_opt}"
66
+ RUN . venv/bin/activate && stuart_setup ${stuart_opts} && stuart_update ${stuart_opts} && stuart_build ${stuart_opts}
67
+
57
68
# Create the output bin dir.
58
69
ARG bin_dir
59
70
RUN mkdir "${bin_dir}"
60
71
RUN mkdir "${bin_dir}" /aarch64
61
72
RUN mkdir "${bin_dir}" /riscv64
62
73
RUN mkdir "${bin_dir}" /ia32
63
74
RUN mkdir "${bin_dir}" /x64
75
+ RUN mkdir "${bin_dir}" /loongarch64
64
76
65
77
# Copy AARCH64 files to bin dir.
66
78
ENV aarch64_build="Build/ArmVirtQemu-AARCH64/${build_target}_${toolchain}"
@@ -92,6 +104,12 @@ RUN cp "${x64_build}/FV/OVMF_CODE.fd" "${bin_dir}"/x64/code.fd
92
104
RUN cp "${x64_build}/FV/OVMF_VARS.fd" "${bin_dir}" /x64/vars.fd
93
105
RUN cp "${x64_build}/X64/Shell.efi" "${bin_dir}" /x64/shell.efi
94
106
107
+ # Copy LoongArch64 files to bin dir.
108
+ ENV loongarch64_build="Build/LoongArchVirtQemu/${build_target}_${toolchain}"
109
+ RUN cp "${loongarch64_build}/FV/QEMU_EFI.fd" "${bin_dir}" /loongarch64/code.fd
110
+ RUN cp "${loongarch64_build}/FV/QEMU_VARS.fd" "${bin_dir}" /loongarch64/vars.fd
111
+ RUN cp "${loongarch64_build}/LOONGARCH64/Shell.efi" "${bin_dir}" /loongarch64/shell.efi
112
+
95
113
# Create the compressed tarball of the bin dir.
96
114
RUN tar cf "${bin_dir}.tar" "${bin_dir}"
97
115
RUN xz "${bin_dir}.tar"
0 commit comments