OVMF: support RISC-V

Built according to https://github.com/tianocore/edk2/tree/master/OvmfPkg/RiscVVirt
and 884f2fa7ed.
This commit is contained in:
Raito Bezarius 2023-11-25 13:12:30 +01:00
parent 770194fac1
commit db9b8f36df

View File

@ -22,6 +22,8 @@ let
"OvmfPkg/OvmfPkgX64.dsc"
else if stdenv.hostPlatform.isAarch then
"ArmVirtPkg/ArmVirtQemu.dsc"
else if stdenv.hostPlatform.isRiscV then
"OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc"
else
throw "Unsupported architecture";
@ -69,7 +71,8 @@ edk2.mkDerivation projectDscPath (finalAttrs: {
cp ${seabios}/Csm16.bin OvmfPkg/Csm/Csm16/Csm16.bin
'';
postFixup = if stdenv.hostPlatform.isAarch then ''
postFixup = (
if stdenv.hostPlatform.isAarch then ''
mkdir -vp $fd/FV
mkdir -vp $fd/AAVMF
mv -v $out/FV/QEMU_{EFI,VARS}.fd $fd/FV
@ -82,10 +85,18 @@ edk2.mkDerivation projectDscPath (finalAttrs: {
# Also add symlinks for Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
ln -s $fd/FV/AAVMF_CODE.fd $fd/AAVMF/QEMU_EFI-pflash.raw
ln -s $fd/FV/AAVMF_VARS.fd $fd/AAVMF/vars-template-pflash.raw
'' else ''
''
else if stdenv.hostPlatform.isRiscV then ''
mkdir -vp $fd/FV
mv -v $out/FV/RISCV_VIRT_{CODE,VARS}.fd $fd/FV/
truncate -s 32M $fd/FV/RISCV_VIRT_CODE.fd
truncate -s 32M $fd/FV/RISCV_VIRT_VARS.fd
''
else ''
mkdir -vp $fd/FV
mv -v $out/FV/OVMF{,_CODE,_VARS}.fd $fd/FV
'';
'');
dontPatchELF = true;