mirror of
https://github.com/ventoy/Ventoy.git
synced 2025-12-04 23:02:36 -05:00
Ventoy: EDK2: adapt for loogarch in edk2-edk2-stable202408
INSTALL/ventoy/ventoy_${postfix}.efi
INSTALL/ventoy/vtoyutil_${postfix}.efi
VDiskChain/Tool/vdiskchain_${postfix}.efi
Signed-off-by: Wentao Guan <guanwentao@uniontech.com>
This commit is contained in:
@@ -65,6 +65,11 @@ CONST CHAR16 *gEfiBootFileName[] =
|
||||
L"\\EFI\\BOOT\\BOOTaa64.EFI",
|
||||
L"\\EFI\\BOOT\\bootaa64.efi",
|
||||
L"\\efi\\boot\\bootaa64.efi",
|
||||
#elif defined (MDE_CPU_LOONGARCH64)
|
||||
L"\\EFI\\BOOT\\GRUBLOONGARCH64.EFI",
|
||||
L"\\EFI\\BOOT\\BOOTLOONGARCH64.EFI",
|
||||
L"\\EFI\\BOOT\\bootloongarch64.efi",
|
||||
L"\\efi\\boot\\bootloongarch64.efi",
|
||||
#endif
|
||||
|
||||
};
|
||||
@@ -109,10 +114,15 @@ STATIC EFI_STATUS EFIAPI vdisk_load_image
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status = EFI_SUCCESS;
|
||||
CHAR16 TmpBuf[256] = {0};
|
||||
CHAR16 TmpBuf[256];
|
||||
UINT8 i;
|
||||
FILEPATH_DEVICE_PATH *pFilePath = NULL;
|
||||
EFI_DEVICE_PATH_PROTOCOL *pImgPath = NULL;
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
TmpBuf[i] = 0;
|
||||
}
|
||||
pFilePath = (FILEPATH_DEVICE_PATH *)TmpBuf;
|
||||
pFilePath->Header.Type = MEDIA_DEVICE_PATH;
|
||||
pFilePath->Header.SubType = MEDIA_FILEPATH_DP;
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
#define VENTOY_UEFI_DESC L"ARM UEFI"
|
||||
#elif defined (MDE_CPU_AARCH64)
|
||||
#define VENTOY_UEFI_DESC L"ARM64 UEFI"
|
||||
#elif defined (MDE_CPU_LOONGARCH64)
|
||||
#define VENTOY_UEFI_DESC L"LOONGARCH64 UEFI"
|
||||
#else
|
||||
#error Unknown Processor Type
|
||||
#endif
|
||||
|
||||
@@ -94,9 +94,14 @@ EFI_STATUS EFIAPI vdisk_block_io_write
|
||||
EFI_STATUS EFIAPI vdisk_fill_device_path(VOID)
|
||||
{
|
||||
UINTN NameLen = 0;
|
||||
UINT8 TmpBuf[128] = {0};
|
||||
UINT8 TmpBuf[128];
|
||||
UINT8 i;
|
||||
VENDOR_DEVICE_PATH *venPath = NULL;
|
||||
|
||||
for (i = 0; i < 128; i++)
|
||||
{
|
||||
TmpBuf[i] = 0;
|
||||
}
|
||||
venPath = (VENDOR_DEVICE_PATH *)TmpBuf;
|
||||
NameLen = StrSize(VDISK_BLOCK_DEVICE_PATH_NAME);
|
||||
venPath->Header.Type = HARDWARE_DEVICE_PATH;
|
||||
|
||||
@@ -100,6 +100,11 @@ CONST CHAR16 *gEfiBootFileName[] =
|
||||
L"\\EFI\\BOOT\\BOOTaa64.EFI",
|
||||
L"\\EFI\\BOOT\\bootaa64.efi",
|
||||
L"\\efi\\boot\\bootaa64.efi",
|
||||
#elif defined (MDE_CPU_LOONGARCH64)
|
||||
L"\\EFI\\BOOT\\GRUBLOONGARCH64.EFI",
|
||||
L"\\EFI\\BOOT\\BOOTLOONGARCH64.EFI",
|
||||
L"\\EFI\\BOOT\\bootloongarch64.efi",
|
||||
L"\\efi\\boot\\bootloongarch64.efi",
|
||||
#endif
|
||||
|
||||
};
|
||||
@@ -503,10 +508,15 @@ STATIC EFI_STATUS EFIAPI ventoy_load_image
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status = EFI_SUCCESS;
|
||||
CHAR16 TmpBuf[256] = {0};
|
||||
CHAR16 TmpBuf[256];
|
||||
UINT8 i;
|
||||
FILEPATH_DEVICE_PATH *pFilePath = NULL;
|
||||
EFI_DEVICE_PATH_PROTOCOL *pImgPath = NULL;
|
||||
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
TmpBuf[i] = 0;
|
||||
}
|
||||
pFilePath = (FILEPATH_DEVICE_PATH *)TmpBuf;
|
||||
pFilePath->Header.Type = MEDIA_DEVICE_PATH;
|
||||
pFilePath->Header.SubType = MEDIA_FILEPATH_DP;
|
||||
|
||||
@@ -189,6 +189,10 @@ typedef struct ventoy_virt_chunk
|
||||
#define VENTOY_UEFI_DESC L"ARM64 UEFI"
|
||||
#define ISO9660_EFI_DRIVER_PATH L"\\ventoy\\iso9660_aa64.efi"
|
||||
#define UDF_EFI_DRIVER_PATH L"\\ventoy\\udf_aa64.efi"
|
||||
#elif defined (MDE_CPU_LOONGARCH64)
|
||||
#define VENTOY_UEFI_DESC L"LOONGARCH64 UEFI"
|
||||
#define ISO9660_EFI_DRIVER_PATH L"\\ventoy\\iso9660_la64.efi"
|
||||
#define UDF_EFI_DRIVER_PATH L"\\ventoy\\udf_la64.efi"
|
||||
#else
|
||||
#error Unknown Processor Type
|
||||
#endif
|
||||
|
||||
@@ -271,17 +271,12 @@ STATIC EFI_STATUS EFIAPI ventoy_write_iso_sector
|
||||
UINT32 i = 0;
|
||||
UINTN secLeft = 0;
|
||||
UINTN secRead = 0;
|
||||
UINT64 ReadStart = 0;
|
||||
UINT64 ReadEnd = 0;
|
||||
UINT8 *pCurBuf = (UINT8 *)Buffer;
|
||||
ventoy_img_chunk *pchunk = g_chunk;
|
||||
EFI_BLOCK_IO_PROTOCOL *pRawBlockIo = gBlockData.pRawBlockIo;
|
||||
|
||||
debug("write iso sector %lu count %u", Sector, Count);
|
||||
|
||||
ReadStart = Sector * 2048;
|
||||
ReadEnd = (Sector + Count) * 2048;
|
||||
|
||||
for (i = 0; Count > 0 && i < g_img_chunk_num; i++, pchunk++)
|
||||
{
|
||||
if (Sector >= pchunk->img_start_sector && Sector <= pchunk->img_end_sector)
|
||||
@@ -603,7 +598,6 @@ EFI_STATUS EFIAPI ventoy_block_io_write
|
||||
)
|
||||
{
|
||||
UINT32 secNum = 0;
|
||||
UINT64 offset = 0;
|
||||
|
||||
(VOID)This;
|
||||
(VOID)MediaId;
|
||||
@@ -614,7 +608,6 @@ EFI_STATUS EFIAPI ventoy_block_io_write
|
||||
}
|
||||
|
||||
secNum = BufferSize / 2048;
|
||||
offset = Lba * 2048;
|
||||
|
||||
return ventoy_write_iso_sector(Lba, secNum, Buffer);
|
||||
}
|
||||
@@ -673,13 +666,18 @@ EFI_STATUS EFIAPI ventoy_fill_device_path(VOID)
|
||||
{
|
||||
UINTN CurVtoyDpId = 0;
|
||||
UINTN NameLen = 0;
|
||||
UINT8 TmpBuf[128] = {0};
|
||||
UINT8 TmpBuf[128];
|
||||
UINT8 i;
|
||||
VENDOR_DEVICE_PATH *venPath = NULL;
|
||||
CHAR16 VtoyDpName[32];
|
||||
|
||||
CurVtoyDpId = ventoy_get_current_device_path_id();
|
||||
UnicodeSPrintAsciiFormat(VtoyDpName, sizeof(VtoyDpName), "ventoy_%03lu", CurVtoyDpId);
|
||||
|
||||
for (i = 0; i < 128; i++)
|
||||
{
|
||||
TmpBuf[i] = 0;
|
||||
}
|
||||
venPath = (VENDOR_DEVICE_PATH *)TmpBuf;
|
||||
NameLen = StrSize(VtoyDpName);
|
||||
venPath->Header.Type = HARDWARE_DEVICE_PATH;
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
PLATFORM_VERSION = 0.98
|
||||
DSC_SPECIFICATION = 0x00010005
|
||||
OUTPUT_DIRECTORY = Build/MdeModule
|
||||
SUPPORTED_ARCHITECTURES = IA32|X64|EBC|ARM|AARCH64
|
||||
SUPPORTED_ARCHITECTURES = IA32|X64|EBC|ARM|AARCH64|LOONGARCH64
|
||||
BUILD_TARGETS = DEBUG|RELEASE|NOOPT
|
||||
SKUID_IDENTIFIER = DEFAULT
|
||||
|
||||
|
||||
Reference in New Issue
Block a user