From nobody Tue Apr 22 18:20:33 2025 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4ZhrBq01cSz5t19C; Tue, 22 Apr 2025 18:20:35 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4ZhrBp1BrJz3nj9; Tue, 22 Apr 2025 18:20:34 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745346034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UqcRkviwRStFDZyBl6pG4IO10lN0XscnwvVWUz1oyCg=; b=l/m7+MTs+J1dvpYa2RHJzgj+Uqvum2bN6MNWVAKmhSubJT8fr13fYHwhfXllOb1OwWkqjy MmKyg4c5cGJ0vRKN1uPx7+pjC2kzTPnnZwMK5gW2aXP0HSgZf//0+raefzOZhAlufNq2zt q8lwolszgTNWaByVxLAypH/H0wecLGjMA2goo/j8Ai5JwTq260hoycoXz/46zM20m06ElQ spSljuQyRhBIBscNpbEzfchM1G9GTUBXP/tZu53BK6yqbsjp/tEiMmxMTJ2GTnrjPUXGQ/ i1QpRHrbo3hf8WMUFTmCZgX3EI3bCQtmJTemCUQXePLQ4E/hDcINdDolZFFr0w== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1745346034; a=rsa-sha256; cv=none; b=Di2uPolTGEFw/kjVV/h7ewq52jEqlI9PEBdRPJjIOTha9MIzFKYfpUgbyRtPFmB13Sr8Bq CjxgxeWs+1mIQibQniAnxZIH31d2wt1NjFOhmS7yX1Cs8lZV+/dCbH3+i5T1qN9riF6fj9 liABsoMkPBITUdqddItOVd4w3AaEmh7V1cPMbuwtBDdbim6mz0gJWFhTbVeZHUSiqkdekf JpnjaK+MZtbGdU9nNlTfpxp/06yfWSnJ2f2Iyd0MdNewmsIIEE/gq90gdbcmn1fWBqkxt9 AeSdEA3dTef8wkfu6ckiXS7947AUnmI1kWnhv+KpwrNk1qR5rc7s7T23H0RO1A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1745346034; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=UqcRkviwRStFDZyBl6pG4IO10lN0XscnwvVWUz1oyCg=; b=Ef/si12tkEDOxGtiK/0uP67nt43wubllX4NFMJrcCaJ8gEuAj+KXmI/RJFsaBs03v/ereT R/tcyga8DKQGEGSlYKsmA3Ll7dVy+ELaGIgRW/HGpza/Q7DjYIrmG87LHbtBWkPrdzJ0od T2ATSbBOGm6uIxhqV15RcbL6xex+oUe2oUap1lVam9ECYX8FwadjHXMpcIOydeMof5kIXF Up9WtcNdU2tv0HU26lRDaEWDaY5Rnwvxuv4ISPFKQqaijEDrjTuN0hQLvky9tk/woYiKFa T/QC3dG0o2b+/RZtsF10vO/5g+1orCU0EcYGh0ESdbdI+3Mq1ve1HIR5jmuekw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4ZhrBn63Y5zVDf; Tue, 22 Apr 2025 18:20:33 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 53MIKXBU004130; Tue, 22 Apr 2025 18:20:33 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 53MIKXKm004127; Tue, 22 Apr 2025 18:20:33 GMT (envelope-from git) Date: Tue, 22 Apr 2025 18:20:33 GMT Message-Id: <202504221820.53MIKXKm004127@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Warner Losh Subject: git: 95f4e7f5e283 - main - LoongArch: sys/contrib/edk2: add support List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: imp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 95f4e7f5e2833bf9e48ad8134258abb9a349157c Auto-Submitted: auto-generated The branch main has been updated by imp: URL: https://cgit.FreeBSD.org/src/commit/?id=95f4e7f5e2833bf9e48ad8134258abb9a349157c commit 95f4e7f5e2833bf9e48ad8134258abb9a349157c Author: yu shan wei AuthorDate: 2025-03-30 23:55:47 +0000 Commit: Warner Losh CommitDate: 2025-04-22 18:19:39 +0000 LoongArch: sys/contrib/edk2: add support copy from upstream: https://github.com/tianocore/edk2/tree/edk2-stable202408 commit: https://github.com/tianocore/edk2/commit/cd24eb578bb77e6a55d37c2e9afef4a6814a82ac Reviewed by: imp Pull Request: https://github.com/freebsd/freebsd-src/pull/1624 --- sys/contrib/edk2/Include/Library/BaseLib.h | 23 +++++++++++++++++++++++ sys/contrib/edk2/Include/Uefi/UefiBaseType.h | 14 ++++++++++++++ sys/contrib/edk2/Include/Uefi/UefiSpec.h | 5 ++++- 3 files changed, 41 insertions(+), 1 deletion(-) diff --git a/sys/contrib/edk2/Include/Library/BaseLib.h b/sys/contrib/edk2/Include/Library/BaseLib.h index 762cb9ac3abb..ac347f0adc2d 100644 --- a/sys/contrib/edk2/Include/Library/BaseLib.h +++ b/sys/contrib/edk2/Include/Library/BaseLib.h @@ -152,6 +152,29 @@ typedef struct { #endif // defined (MDE_CPU_RISCV64) +#if defined (MDE_CPU_LOONGARCH64) +/// +/// The LoongArch architecture context buffer used by SetJump() and LongJump() +/// +typedef struct { + UINT64 S0; + UINT64 S1; + UINT64 S2; + UINT64 S3; + UINT64 S4; + UINT64 S5; + UINT64 S6; + UINT64 S7; + UINT64 S8; + UINT64 SP; + UINT64 FP; + UINT64 RA; +} BASE_LIBRARY_JUMP_BUFFER; + +#define BASE_LIBRARY_JUMP_BUFFER_ALIGNMENT 8 + +#endif // defined (MDE_CPU_LOONGARCH64) + // // String Services // diff --git a/sys/contrib/edk2/Include/Uefi/UefiBaseType.h b/sys/contrib/edk2/Include/Uefi/UefiBaseType.h index 6a2f33039377..6637a28ea6d9 100644 --- a/sys/contrib/edk2/Include/Uefi/UefiBaseType.h +++ b/sys/contrib/edk2/Include/Uefi/UefiBaseType.h @@ -248,6 +248,13 @@ typedef union { #define EFI_IMAGE_MACHINE_RISCV64 0x5064 #define EFI_IMAGE_MACHINE_RISCV128 0x5128 +/// +/// PE32+ Machine type for LoongArch 32/64 images. +/// +#define EFI_IMAGE_MACHINE_LOONGARCH32 0x6232 +#define EFI_IMAGE_MACHINE_LOONGARCH64 0x6264 + + #if defined (MDE_CPU_IA32) #define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \ @@ -281,6 +288,13 @@ typedef union { #define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE) + #elif defined (MDE_CPU_LOONGARCH64) + +#define EFI_IMAGE_MACHINE_TYPE_SUPPORTED(Machine) \ + ((Machine) == EFI_IMAGE_MACHINE_LOONGARCH64) + +#define EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED(Machine) (FALSE) + #elif defined (MDE_CPU_EBC) /// diff --git a/sys/contrib/edk2/Include/Uefi/UefiSpec.h b/sys/contrib/edk2/Include/Uefi/UefiSpec.h index 0e165478d6c3..051834460512 100644 --- a/sys/contrib/edk2/Include/Uefi/UefiSpec.h +++ b/sys/contrib/edk2/Include/Uefi/UefiSpec.h @@ -2203,6 +2203,7 @@ typedef struct { #define EFI_REMOVABLE_MEDIA_FILE_NAME_ARM L"\\EFI\\BOOT\\BOOTARM.EFI" #define EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 L"\\EFI\\BOOT\\BOOTAA64.EFI" #define EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 L"\\EFI\\BOOT\\BOOTRISCV64.EFI" +#define EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64 L"\\EFI\\BOOT\\BOOTLOONGARCH64.EFI" #if defined (MDE_CPU_IA32) #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_IA32 @@ -2215,7 +2216,9 @@ typedef struct { #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_AARCH64 #elif defined (MDE_CPU_RISCV64) #define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_RISCV64 -#else + #elif defined (MDE_CPU_LOONGARCH64) +#define EFI_REMOVABLE_MEDIA_FILE_NAME EFI_REMOVABLE_MEDIA_FILE_NAME_LOONGARCH64 + #else #error Unknown Processor Type #endif