From: dylanlhdu <dylanl...@tencent.com> Signed-off-by: Lingheng Du <dylanl...@tencent.com> Reviewed-by: Song Huang <vicshu...@tencent.com> Reviewed-by: Bing Fan <tombin...@tencent.com> --- .../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/MdePkg/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 -- 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/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-