From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail05.groups.io (mail05.groups.io [45.79.224.7]) by spool.mail.gandi.net (Postfix) with ESMTPS id B1AE1941328 for ; Mon, 29 Apr 2024 09:54:31 +0000 (UTC) DKIM-Signature: a=rsa-sha256; bh=MHmTOh2pqLZVw54II2DVfs3QEV0qEDbaBOvL/sgrH8I=; c=relaxed/simple; d=groups.io; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Precedence:List-Subscribe:List-Help:Sender:List-Id:Mailing-List:Delivered-To:Resent-Date:Resent-From:Reply-To:List-Unsubscribe-Post:List-Unsubscribe:Content-Transfer-Encoding; s=20240206; t=1714384470; v=1; b=h42oUQcQYV7Sdb1OSwsxFeV9cRYVkgP7uZKFzbh/IMX393CtMqVfppt38mVLheiGvRALBak9 4h7v5DRdFrsl+k02/e9CiJ+0eb5slirwAQgbjtc2JIg2jpCNvwNP6lzSRlLCaS2qAry0/mGs2zU GC+zrUJ+5ZKhRj8fES4sip0sTDY3ZgXp+lyy1oS4GQGB0/P6vGzo1El0hpA15Gt8kf70tluVDnh vrzjE7qLelzLbQqdTm3XR9icoLrUqxVyXIqGWI9Xok/fKvqJ09jGwkA00DX4O8GrCGpQZtS4YnE PuBF2t1EsjraPPK4sGbHhe7yjOCmGyBl1BkpncCnwq3sw== X-Received: by 127.0.0.2 with SMTP id s8fqYY7687511xQW4krlp55h; Mon, 29 Apr 2024 02:54:30 -0700 X-Received: from cxsh.intel-email.com (cxsh.intel-email.com [121.46.250.151]) by mx.groups.io with SMTP id smtpd.web10.16844.1714384468643694614 for ; Mon, 29 Apr 2024 02:54:29 -0700 X-Received: from cxsh.intel-email.com (localhost [127.0.0.1]) by cxsh.intel-email.com (Postfix) with ESMTP id A22C6DDA798 for ; Mon, 29 Apr 2024 17:54:26 +0800 (CST) X-Received: from localhost (localhost [127.0.0.1]) by cxsh.intel-email.com (Postfix) with ESMTP id 9D90BDDA792 for ; Mon, 29 Apr 2024 17:54:26 +0800 (CST) X-Received: from mail.byosoft.com.cn (mail.byosoft.com.cn [58.240.74.242]) by cxsh.intel-email.com (Postfix) with SMTP id 8144EDDA7CA for ; Mon, 29 Apr 2024 17:54:21 +0800 (CST) X-Received: from localhost.localdomain ([58.246.60.130]) (envelope-sender ) by 192.168.6.13 with ESMTP for ; Mon, 29 Apr 2024 17:54:19 +0800 X-WM-Sender: gaoliming@byosoft.com.cn X-Originating-IP: 58.246.60.130 X-WM-AuthFlag: YES X-WM-AuthUser: gaoliming@byosoft.com.cn From: "gaoliming via groups.io" To: devel@edk2.groups.io Cc: dylanlhdu Subject: [edk2-devel] [PATCH] Added support for ACPI related data structures for RISC_V64 platform Date: Mon, 29 Apr 2024 17:53:55 +0800 Message-Id: <20240429095355.1009-1-gaoliming@byosoft.com.cn> MIME-Version: 1.0 Precedence: Bulk List-Subscribe: List-Help: Sender: devel@edk2.groups.io List-Id: Mailing-List: list devel@edk2.groups.io; contact devel+owner@edk2.groups.io Resent-Date: Mon, 29 Apr 2024 02:54:29 -0700 Resent-From: gaoliming@byosoft.com.cn Reply-To: devel@edk2.groups.io,gaoliming@byosoft.com.cn List-Unsubscribe-Post: List-Unsubscribe=One-Click List-Unsubscribe: X-Gm-Message-State: S0u8DfygxvnaMoD57qehMdpJx7686176AA= Content-Transfer-Encoding: quoted-printable X-GND-Status: LEGIT Authentication-Results: spool.mail.gandi.net; dkim=pass header.d=groups.io header.s=20240206 header.b=h42oUQcQ; dmarc=pass (policy=none) header.from=groups.io; spf=pass (spool.mail.gandi.net: domain of bounce@groups.io designates 45.79.224.7 as permitted sender) smtp.mailfrom=bounce@groups.io From: dylanlhdu Signed-off-by: Lingheng Du Reviewed-by: Song Huang Reviewed-by: Bing Fan --- .../Include/IndustryStandard/AcpiRiscv64.h | 176 ++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 edk2/MdePkg/Include/IndustryStandard/AcpiRiscv64.h diff --git a/edk2/MdePkg/Include/IndustryStandard/AcpiRiscv64.h b/edk2/Md= ePkg/Include/IndustryStandard/AcpiRiscv64.h new file mode 100644 index 00000000..4111b3ea --- /dev/null +++ b/edk2/MdePkg/Include/IndustryStandard/AcpiRiscv64.h @@ -0,0 +1,176 @@ +/** @file + RISCV64 platform ACPI related support April, 2022. + + SPDX-License-Identifier: BSD-2-Clause-Patent +**/ + +#ifndef ACPI_RISCV64_H_ +#define ACPI_RISCV64_H_ + +// +// Ensure proper structure formats +// +#pragma pack(1) + +/// +/// RISC-V Interrupt Type +/// +#define EFI_ACPI_6_5_INC_RINTC_TYPE 0x18 +#define EFI_ACPI_6_5_INC_IMSIC_TYPE 0x19 +#define EFI_ACPI_6_5_INC_APLIC_TYPE 0x1A +#define EFI_ACPI_6_5_INC_PLIC_TYPE 0x1B + +/// +/// RISC-V Interrupt Controller (RINTC) +/// +typedef struct { + UINT8 Type; + UINT8 Length; + UINT8 Version; + UINT8 Reserved; + UINT32 Flags; + UINT64 HartId; + UINT32 Uid; + UINT32 ExtIntcId; + UINT64 ImsicAddr; + UINT32 ImsicSize; +} EFI_ACPI_6_5_INC_RINTC_STRUCTURE; + +/// +/// Incoming MSI Controller (IMSIC) +/// +typedef struct { + UINT8 Type; + UINT8 Length; + UINT8 Version; + UINT8 Reserved; + UINT32 Flags; + UINT16 NumIds; + UINT16 NumGuestIds; + UINT8 GuestIndexBits; + UINT8 HartIndexBits; + UINT8 GroupIndexBits; + UINT8 GroupIndexShift; +} EFI_ACPI_6_5_INC_IMSIC_STRUCTURE; + +/// +/// RISC-V Advanced Platform Level Interrupt Controller (APLIC) +/// +typedef struct { + UINT8 Type; + UINT8 Length; + UINT8 Version; + UINT8 AplicId; + UINT32 Flags; + UINT8 HW_ID[8]; + UINT16 NumIdc; + UINT16 ExternSoureceSupport; + UINT32 GSysInterruptBase; + UINT64 AplicAddress; + UINT32 AplicSize; +} EFI_ACPI_6_5_INC_APLIC_STRUCTURE; + +/// +/// RISC-V Platform Level Interrupt Controller (PLIC) +/// +typedef struct { + UINT8 Type; + UINT8 Length; + UINT8 Version; + UINT8 PlicId; + UINT8 HwId[8]; + UINT16 NumIrqs; + UINT16 MaxPrio; + UINT32 Flags; + UINT32 PlicSize; + UINT64 PlicAddress; + UINT32 GsiBase; +} EFI_ACPI_6_5_INC_PLIC_STRUCTURE; + +/// +/// RISC-V Hart Capabilities Table (RHCT) +/// +typedef struct { + EFI_ACPI_DESCRIPTION_HEADER Header; +} EFI_ACPI_6_5_PROCESSOR_PROPERTIES_TOPOLOGY_TABLE_HEADER; + +/// +/// RHCT Revision +/// +#define EFI_ACPI_6_5_RHCT_APIC_DESCRIPTION_TABLE_REVISION 0x05 + +/// +/// RHCT types +/// +#define EFI_ACPI_6_5_NODE_ISA_TYPE 0x0 +#define EFI_ACPI_6_5_NODE_CM0_TYPE 0x1 +#define EFI_ACPI_6_5_NODE_MMU_TYPE 0x2 +#define EFI_ACPI_6_5_NODE_RESERVED_TYPE 0x3 +#define EFI_ACPI_6_5_NODE_HART_TYPE 0xFFFF + +/// +/// RHCT Flags +/// +#define ACPI_RHCT_TIMER_CANNOT_WAKEUP_CPU (1) + +/// +/// ISA string node +/// +typedef struct { + UINT16 Type; + UINT16 Length; + UINT16 Revision; + UINT16 IsaLength; + UINT8 IsaString[]; +} EFI_ACPI_6_5_NODE_ISA_STRING_STRUCTURE; + +/// +/// CM0 node +/// +typedef struct { + UINT16 Type; + UINT16 Length; + UINT16 Revision; + UINT8 Reserved; + UINT8 CbomSize; + UINT8 CbopSize; + UINT8 CbozSize; +} EFI_ACPI_6_5_NODE_CM0_STRUCTURE; + +/// +/// MMU node +/// +typedef struct { + UINT16 Type; + UINT16 Length; + UINT16 Revision; + UINT8 Reserved; + UINT8 MmuType; +} EFI_ACPI_6_5_NODE_MMU_STRUCTURE; + +/// +/// MMU type +/// +#define EFI_ACPI_6_5_MMU_SV39_TYPE 0x0 +#define EFI_ACPI_6_5_MMU_SV48_TYPE 0x1 +#define EFI_ACPI_6_5_MMU_SV57_TYPE 0x2 + +/// +/// Hart Info Node +/// +typedef struct { + UINT16 Type; + UINT16 Length; + UINT16 Revision; + UINT16 NumOffsets; + UINT32 Uid; +} EFI_ACPI_6_5_NODE_HARTINFO_STRUCTURE; + +/// +/// "RHCT" RISC-V Hart Capabilities Table +/// +#define EFI_ACPI_6_5_RHCT_HART_DESCRIPTION_TABLE_SIGNATURE SIGNATURE_32= ('R', 'H', 'C', 'T') + +#pragma pack() + +#endif \ No newline at end of file --=20 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#118386): https://edk2.groups.io/g/devel/message/118386 Mute This Topic: https://groups.io/mt/105797514/7686176 Group Owner: devel+owner@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io] -=-=-=-=-=-=-=-=-=-=-=-