Method, system and device for implementing ACPI on RISC-V platform and storage medium
By adopting UEFI firmware boot mode on the RISC-V platform, setting the root system description pointer, and loading and dynamically adjusting the ACPI table one by one, the lack of ACPI support on the RISC-V platform is solved, achieving efficient energy management and hardware configuration, and improving system performance and compatibility.
Patent Information
- Application Number
- CN202411210461.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-30
- Publication Date
- 2025-11-11
- Estimated Expiration
- 2044-08-30
AI Technical Summary
The lack of effective ACPI support on the RISC-V platform leads to complexity and difficulty in energy management and hardware configuration, making it difficult to achieve flexible and efficient energy management and hardware configuration.
The UEFI firmware boot method is adopted. By setting the root system description pointer in memory, the ACPI table is read and loaded one by one, and static and dynamic modifications are made. Dynamic adjustments are made according to the differences in hardware platforms to ensure that the ACPI table meets the requirements of the RISC-V platform and is installed into the UEFI configuration table.
It achieves efficient energy management and hardware configuration on the RISC-V platform, improves system performance and compatibility, and provides flexible and universal hardware configuration support.
Smart Images

Figure CN119292677B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer technology, and in particular to a method, system, device and storage medium for implementing ACPI on a RISC-V platform. Background Technology
[0002] In computer systems, efficient energy management and hardware configuration are key factors in ensuring a balance between system performance and power consumption. ACPI (Advanced Configuration and Power Interface) is a standard interface for implementing energy management and configuration information in computer systems. The ACPI specification defines a set of data structures that describe the hierarchy, capabilities, and responses to various events in the system hardware. However, with the widespread adoption of the RISC-V architecture in computing platforms, the demand for ACPI support on RISC-V platforms is gradually increasing.
[0003] Traditional ACPI implementations are primarily designed for x86 and ARM architectures. While UEFI already supports ACPI for x86 and ARM platforms, it does not yet support ACPI on the RISC-V platform. The unique characteristics of the RISC-V platform necessitate a tailored ACPI solution. Porting to the RISC-V platform can involve hardware differences, memory management, and interrupt handling issues, all of which contribute to the complexity and difficulty of ACPI porting on RISC-V. Therefore, it is necessary to propose an ACPI implementation method for the RISC-V platform within UEFI, thereby providing more flexible, efficient, and universal energy management and hardware configuration support on the RISC-V computing platform. Summary of the Invention
[0004] To address the requirements of the RISC-V platform for efficient energy management and hardware configuration, this invention provides a method, system, device, and storage medium for implementing ACPI on the RISC-V platform, thereby providing scalable, efficient, and universal energy management and hardware configuration support.
[0005] Terminology Explanation:
[0006] 1. RISC-V: RISC-V is an open-source instruction set architecture that employs a reduced instruction set architecture, modular design, and scalability. This makes RISC-V processors simple to design, low in cost, and flexibly expandable as needed. This design flexibility makes RISC-V suitable for a variety of application scenarios, including embedded systems, servers, high-performance computing, and IoT devices.
[0007] 2. UEFI (Unified Extensible Firmware Interface): UEFI is a firmware interface specification designed to replace the traditional BIOS (Basic Input / Output System). It provides a more flexible and standardized boot solution, can load operating systems and applications, and offers more powerful hardware initialization and configuration functions.
[0008] 3. UEFI / PI Services: UEFI and PI (Platform Initialization) services are key firmware architectures and feature sets in the boot and operation of modern computer systems. UEFI replaces the traditional BIOS, providing a more flexible and scalable boot environment and rich interfaces to support interaction between the operating system and firmware. PI services define a modular framework for hardware initialization and system booting, including processor, chipset, and device initialization, ensuring the standardization and compatibility of the system boot process. Together, these two constitute the foundational firmware framework of modern computing platforms, providing functions such as secure boot, device driver management, and system configuration.
[0009] 4. Firmware File System (FFS): FFS is a special file system used in embedded systems, typically stored in non-volatile memory (such as flash memory or EEPROM). It is primarily used to store device firmware, configuration data, and other static information, aiming to provide efficient read and update operations while protecting data from power failures and other issues. FFS enables reliable firmware upgrades, configuration management, and boot processes, and is widely used in embedded devices (such as routers, smart home appliances, and IoT devices).
[0010] 5. UEFI Configuration Table: The UEFI configuration table is a set of data structures created by the firmware during system startup. These structures provide hardware information and platform configuration for the operating system and bootloader. The configuration table includes various types of information, such as system memory maps, ACPI tables, SMBIOS (System Management BIOS) tables, and EFI system partition information. These tables are accessed through the EFI System Table and are used to support operating system booting and hardware initialization.
[0011] 6. Advanced Configuration and Power Interface (ACPI): ACPI is a standard interface for implementing advanced configuration and power management. It aims to provide a unified interface between the operating system and computer hardware for energy management and hardware configuration.
[0012] 7. OSPM (Open Source Power Management): OSPM is an open-source energy management framework designed to provide effective energy management and optimization solutions for computer systems. OSPM focuses on developing portable, flexible, and scalable software tools to support various operating systems and hardware platforms.
[0013] 8. Root System Description Pointer (RSDP): The RSDP is a pointer in a computer system to a data structure used to identify the Advanced Configuration and Power Interface (ACPI). Typically, the BIOS or UEFI firmware specifies an RSDP in the system's memory, which points to a data structure containing ACPI information.
[0014] 9. Extended System Description Table (XSDT): XSDT is a data table whose main function is to provide a list of pointers to other ACPI data tables in the system, allowing for quick access to the location and content of other ACPI data tables.
[0015] 10. Firmware ACPI Description Table (FADT): The FADT is an important table in the ACPI specification, used to provide fixed information about the computer system, including parameters related to system hardware power management and configuration. The FADT contains key information such as the system clock, the location of the power button, and the address of the interrupt controller, so that the operating system can effectively manage and control the system's power state and hardware configuration.
[0016] 11. Differentiated System Description Table (DSDT): The DSDT contains information related to system-specific hardware. By defining devices, resources, methods, and events in the ACPI namespace, it provides the operating system and firmware with key information for dynamically configuring hardware and managing power at runtime.
[0017] 12. Processor Properties Topology Table (PPTT): Commonly used to describe the topology of a processor, including the processor's cache hierarchy, core attributes, and other information related to the processor topology.
[0018] 13. Memory-Mapped Configuration Space BaseAddress Table (MCFG): Provides the starting address and range of the PCIe configuration space, enabling the operating system to directly read and write the configuration registers of PCIe devices through memory mapping, simplifying the configuration and management process of PCIe devices.
[0019] 14. Serial Port Console Redirection Table (SPCR): Defines the method by which the system firmware redirects the output of the system console to the serial port.
[0020] 15. System Resource Affinity Table (SRAT): Used to describe the topology of CPU, memory, and I / O devices in the system and their association with NUMA (Non-Uniform Memory Access) nodes.
[0021] 16. System Locality Information Table (SLIT): Defines the relative access latency between different processors and memory nodes within the system. It provides a matrix table showing the latency values between each pair of nodes.
[0022] 17. Advanced Programmable Interrupt Controller (APIC): An APIC is an advanced programmable interrupt controller used to manage and distribute interrupts in a computer system. APIC allows multiple processors in the system to work together to efficiently process and respond to interrupt requests.
[0023] 18. Multiple APIC Description Table (MADT): The MADT describes the configuration information of the Local APIC and I / O APIC in the system, as well as other interrupt-related hardware information.
[0024] 19. RISC-V Hart Function Table (RHCT): A new ACPI table used to communicate certain functions of RISC-V Hart (hardware thread) to the operating system.
[0025] 20. RINTC (RISC-V Hart Local Interrupt Controller): A simple interrupt controller for each Hart (hardware thread) on the RISC-V platform that can be used in supervisory mode.
[0026] 21. PLIC (Platform Level Interrupt Controller): PLIC is the platform-level interrupt controller in the RISC-V architecture. It is responsible for managing and distributing various interrupt signals to ensure effective and reliable handling of interrupt events in the system.
[0027] 22. AIA (Advanced Interrupt Architecture): AIA is a new interrupt controller specification proposed by the RISC-V community to address the shortcomings of PLIC. AIA defines two components: IMSIC (Incoming MSI Controller) and APLIC (Advanced platform level interrupt controller). IMSIC's task is to collect and process MSI interrupts. APLIC's task is to collect and process line interrupts, and then pass these interrupts to Hart via line connections or MSI.
[0028] 23. PCIe (Peripheral Component Interconnect Express): PCIe is a high-speed serial computer expansion bus standard used to connect computer motherboards to high-speed components such as graphics cards, solid-state drives, and network adapters. Compared to traditional parallel PCI, PCIe offers higher data transfer rates and better scalability by using point-to-point serial connections and multiple data channels (called "lanes") to improve bandwidth and efficiency. The PCIe standard supports hot-swapping, and its versions are constantly being upgraded, providing progressively increasing bandwidth and performance improvements, and it is widely used in modern computer and server systems.
[0029] The technical solution adopted in this invention is as follows:
[0030] A method for implementing ACPI on a RISC-V platform, based on a UEFI firmware boot method, includes:
[0031] UEFI sets a root system description pointer in the computer system's memory address space and points it to the extended system description table;
[0032] Based on the requirements of the RISC-V platform, a static ACPI table was written according to the ACPI specification, and the ACPI table was stored as a separate firmware file.
[0033] The static loading process is completed by reading the ACPI table one by one through the firmware file system and loading the ACPI table into memory.
[0034] After the static loading process is completed, the ACPI table is dynamically modified according to the differences in hardware platforms;
[0035] Add the ACPI table to the list of entries in the extended system description table and install it into the UEFI configuration table.
[0036] According to a preferred embodiment of the present invention, UEFI sets a root system description pointer in the system memory address space, pointing to an extended system description table, specifically including:
[0037] The UEFI firmware creates a root system description pointer structure and initializes the fields of the root system description pointer structure, including signature, OEM identifier, version, length, and extended system description table address;
[0038] Create an extended system description table, initialize the system description table header information of the extended system description table, and reserve the first entry of the extended system description table for use in the firmware ACPI description table.
[0039] According to a preferred embodiment of the present invention, a static ACPI table is written according to the ACPI specification based on the requirements of the RISC-V platform, and the ACPI table is stored as an independent firmware file; including:
[0040] The ACPI table includes a root system description pointer, an extended system description table, a firmware ACPI description table, a differential system description table, a composite APIC description table, a processor attribute topology table, a RISC-V Hart function table, a memory-mapped configuration space base address description table, a serial terminal redirection table, a system resource association table, and a system location information table.
[0041] According to a preferred embodiment of the present invention, the ACPI table is dynamically modified based on differences in hardware platforms, including configuration information for CPU, memory, and PCIe.
[0042] According to a preferred embodiment of the present invention, adding the ACPI table to the entry list of the extended system description table and installing it into the UEFI configuration table specifically includes:
[0043] According to the ACPI specification, the differentiated system description table is pointed to by the firmware ACPI description table, and other ACPI tables are pointed to by the extended system description table. Based on the hierarchical relationship between the ACPI tables, the ACPI tables are added to the list of entries of the extended system description table.
[0044] Install a pointer to the root system description pointer structure into the UEFI configuration table, and calculate and update the checksum of the ACPI table.
[0045] More preferably, based on the hierarchical relationship between ACPI tables, the ACPI tables are added to the list of entries in the extended system description table; including:
[0046] The firmware loads the firmware ACPI description table, which includes pointers to differentiated system description tables. For other ACPI tables, pointers to those tables are added to the entry list of the extended system description table. The extended system description table has a fixed header and a variable-length list of entries, each entry being a 64-bit address pointing to another ACPI table. At startup, the system finds and loads the ACPI table by resolving the extended system description table, thereby completing the ACPI configuration and initialization of the system.
[0047] An apparatus for implementing ACPI on a RISC-V platform includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the steps of the method for implementing ACPI on a RISC-V platform described above.
[0048] A computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of the method for implementing ACPI on the RISC-V platform described above.
[0049] A system implementing ACPI on a RISC-V platform, based on UEFI firmware booting, includes:
[0050] The management module is configured to: create and initialize the root system description pointer and extended system description table, and generate UEFI / PI services to install, uninstall, or manage the ACPI table;
[0051] The module is configured to: write a static ACPI table according to the ACPI specification based on the requirements of the RISC-V platform, and store the ACPI table as a separate firmware file;
[0052] The loading module is configured to read the ACPI table one by one through the firmware file system and load the ACPI table into memory to complete the static loading process;
[0053] The dynamic modification module is configured to dynamically modify the ACPI table based on hardware platform differences after the static loading process is completed.
[0054] The installation module is configured to add the ACPI table to the list of entries in the extended system description table and install it into the UEFI configuration table.
[0055] The beneficial effects of this invention are as follows:
[0056] 1. This invention fully considers the uniqueness of the RISC-V architecture and improves the versatility of ACPI on the RISC-V platform by optimizing the design and implementation of ACPI for the specific needs of RISC-V.
[0057] 2. This invention can provide efficient energy management and improve system performance. ACPI not only enables efficient power management but also provides a detailed description of the hierarchical structure and capabilities of the system hardware, allowing the operating system to configure the hardware more precisely, thereby optimizing system performance.
[0058] 3. This invention improves the scalability of hardware configuration. By using static loading and dynamic modification, the hardware structure on the RISC-V platform can be described and managed more accurately, making it more scalable and adaptable.
[0059] 4. Taking into account the special characteristics of the RISC-V platform, this invention helps to improve compatibility with different operating systems by following specifications and standards in the ACPI implementation. Attached Figure Description
[0060] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on the structures shown in these drawings without creative effort.
[0061] Figure 1 This is a flowchart illustrating the method for implementing ACPI on the RISC-V platform of this invention.
[0062] Figure 2 This is a schematic diagram of the ACPI architecture in memory according to the present invention. Detailed Implementation
[0063] It should be understood that the specific embodiments described herein are for illustrative purposes only and are not intended to limit the scope of the invention.
[0064] Example 1
[0065] A method for implementing ACPI on a RISC-V platform, based on the UEFI firmware boot method, such as... Figure 1 As shown, it includes:
[0066] UEFI sets a root system description pointer in the computer system's memory address space and points it to the extended system description table;
[0067] Based on the requirements of the RISC-V platform, a static ACPI table was written according to the ACPI specification, and the ACPI table was stored as a separate firmware file.
[0068] The static loading process is completed by reading the ACPI table one by one through the firmware file system and loading the ACPI table into memory.
[0069] After the static loading process is completed, the ACPI table is dynamically modified according to the differences in hardware platforms;
[0070] Add the ACPI table to the list of entries in the extended system description table and install it into the UEFI configuration table.
[0071] Example 2
[0072] The method for implementing ACPI on a RISC-V platform as described in Example 1 differs in that:
[0073] UEFI sets a root system description pointer in the system memory address space, pointing to the extended system description table, specifically including:
[0074] The UEFI firmware creates a root system description pointer structure and initializes the fields of the root system description pointer structure, including signature, OEM identifier, version, length, and extended system description table address;
[0075] Create an extended system description table, initialize the system description table header information of the extended system description table, and reserve the first entry of the extended system description table for use in the firmware ACPI description table.
[0076] In UEFI-enabled systems, the EFI system table is used throughout the entire development phase of UEFI applications and drivers. The pointer to the EFI configuration table is contained within the EFI system table, which in turn contains a pointer to an RSDP structure. The operating system loader provides a pointer to the EFI configuration table during invocation. The operating system loader must retrieve the pointer to the RSDP structure from the EFI configuration table and pass it to the OSPM using an operating system-related data structure, as part of the operating system loader's transfer of control to the operating system. EFI configuration table entries consist of GUID (global unique identifier) / table pointer pairs. The EFI GUID pointing to an RSDP structure of ACPI 2.0 and above is: 8868e871-e4f1-11d3-bc22-0080c73c8881.
[0077] Based on the requirements of the RISC-V platform, a static ACPI table was written according to the ACPI specification, and the ACPI table was stored as a separate firmware file; including:
[0078] The ACPI table includes a root system description pointer, an extended system description table, a firmware ACPI description table, a differential system description table, a composite APIC description table, a processor attribute topology table, a RISC-V Hart function table, a memory-mapped configuration space base address description table, a serial terminal redirection table, a system resource association table, and a system location information table. Considering the unique characteristics of the RISC-V platform, including differences in hardware architecture, varying memory management requirements, and unique interrupt handling mechanisms, an ACPI table conforming to the RISC-V architecture needs to be implemented. The ACPI interrupt model uses a unified interrupt model implementation to describe all interrupts in the entire system. The composite APIC description table, for RISC-V processor-based systems, provides OSPM with the information required for operation on systems implementing RINTC, AIA, and PLIC. Each Hart in the system requires a RINTC record in the composite APIC description table and a processor device object in the differential system description table. Depending on the interrupt controller implemented in the system, the composite APIC description table will also contain a PLIC or AIA structure. The RISC-V Hart function table is a new table created specifically for RISC-V. It is mainly used to describe certain characteristics of the RISC-V processor (Harts), including ISA string information, cache management operation extension related information, memory management unit related information, and Harts information.
[0079] The firmware volume containing the ACPI table is located, and the ACPI table is read one by one through the firmware file system and loaded into memory. The ACPI architecture in memory is as follows: Figure 2As shown, the static loading process is then completed. The ACPI table architecture in memory includes several key components. The ACPI table starts with the root system description pointer (RSDP) and points to the root system description table (RSDT) or the extended system description table (XSDT). These tables further point to various other description tables, including the firmware ACPI description table (FADT), the differential system description table (DSDT), and the secondary system description table (SSDT). The processor attribute topology table (PPTT) describes the processor's topology; the PCI Express memory-mapped configuration space base address description table (MCFG) defines the configuration space of PCIe devices; the serial terminal redirection table (SPCR) configures the serial console; the system resource association table (SRAT) describes NUMA node information; the system location information table (SLIT) provides system locality information; the composite APIC description table (MADT) describes the interrupt controller in the system; and the RISC-V Hart function table (RHCT) describes the specific attributes of the RISC-V processor. These tables together provide the interface and configuration information between the hardware and software of the system.
[0080] The ACPI table is dynamically modified based on differences in hardware platforms, including configuration information for CPU, memory, and PCIe.
[0081] By detecting the specific configuration and characteristics of the hardware platform, the ACPI table is dynamically modified to adapt to different hardware environments. Different hardware platforms typically have different physical components and architectures of computer systems, including CPU, memory, storage, I / O devices, network components, and their interconnection methods. Specifically, this dynamic modification includes adjusting CPU core and thread information, memory distribution and size, and the number and address mapping of PCIe devices. By reading the hardware configuration during startup and modifying the ACPI table according to predefined policies and templates, it is ensured that the operating system can correctly identify and utilize hardware resources, thereby improving system compatibility and performance.
[0082] Add the ACPI table to the list of entries in the extended system description table and install it into the UEFI configuration table, specifically including:
[0083] According to the ACPI specification, the differentiated system description table is pointed to by the firmware ACPI description table, and other ACPI tables are pointed to by the extended system description table. Based on the hierarchical relationship between the ACPI tables, the ACPI tables are added to the list of entries of the extended system description table.
[0084] A pointer to the root system description pointer structure is installed into the UEFI configuration table, and the checksum of the ACPI table is calculated and updated. The pointer to the root system description pointer structure is also installed into the UEFI configuration table to provide it to the operating system. Furthermore, when updating the ACPI table, the checksum needs to be recalculated and updated to ensure data integrity and correctness. The checksum is calculated by iterating through each byte of the ACPI table, and the negative value of the result is modulo 256 and filled into the checksum field to ensure that the checksum of the entire table is zero.
[0085] Based on the hierarchical relationship between the ACPI tables, add the ACPI tables to the list of entries in the extended system description table; including:
[0086] The firmware loads the firmware ACPI description table, which includes pointers to differentiated system description tables. For other ACPI tables, pointers to those tables are added to the entry list of the extended system description table. The extended system description table has a fixed header and a variable-length list of entries, each entry being a 64-bit address pointing to another ACPI table. At startup, the system finds and loads the ACPI table by resolving the extended system description table, thereby completing the ACPI configuration and initialization of the system.
[0087] Example 3
[0088] An apparatus for implementing ACPI on a RISC-V platform includes a memory, a processor, and a computer program stored in the memory and executable on the processor. When the processor executes the computer program, it implements the steps of the method for implementing ACPI on a RISC-V platform as described in Embodiment 1 or 2.
[0089] Example 4
[0090] A computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps of the method for implementing ACPI on the RISC-V platform as described in Embodiment 1 or 2.
[0091] Example 5
[0092] A system implementing ACPI on a RISC-V platform, based on UEFI firmware booting, includes:
[0093] The management module is configured to: create and initialize the root system description pointer and extended system description table, and generate UEFI / PI services to install, uninstall, or manage the ACPI table;
[0094] The module is configured to: write a static ACPI table according to the ACPI specification based on the requirements of the RISC-V platform, and store the ACPI table as a separate firmware file;
[0095] The loading module is configured to read the ACPI table one by one through the firmware file system and load the ACPI table into memory to complete the static loading process;
[0096] The dynamic modification module is configured to dynamically modify the ACPI table based on hardware platform differences after the static loading process is completed.
[0097] The installation module is configured to add the ACPI table to the list of entries in the extended system description table and install it into the UEFI configuration table.
[0098] The above embodiments of the present invention, including the method, apparatus, device, and storage medium for implementing ACPI on the RISC-V platform, employ a static loading and dynamic modification approach, conforming to the requirements of the ACPI specification. The ACPI table is transferred to memory as a segment of memory data. This method implements RISC-V platform ACPI support in UEFI, improving the system's versatility and scalability. The present invention provides more efficient and flexible ACPI support for RISC-V architecture computing platforms.
[0099] The sequence numbers of the above embodiments of the present invention are for descriptive purposes only and do not represent the superiority or inferiority of the embodiments.
[0100] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product. The computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods of the various embodiments of the present invention.
[0101] The embodiments of the present invention have been described above with reference to the accompanying drawings. However, the present invention is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of the present invention without departing from the spirit and scope of the claims. All of these forms are within the protection scope of the present invention.
Claims
1. A method for implementing ACPI on a RISC-V platform, characterized in that, Boot methods based on UEFI firmware include: UEFI sets a root system description pointer in the computer system's memory address space and points it to the extended system description table; Based on the requirements of the RISC-V platform, a static ACPI table was written according to the ACPI specification, and the ACPI table was stored as a separate firmware file. The static loading process is completed by reading the ACPI table one by one through the firmware file system and loading the ACPI table into memory. After the static loading process is completed, the ACPI table is dynamically modified according to the differences in hardware platforms; Add the ACPI table to the list of entries in the extended system description table and install it into the UEFI configuration table; Add the ACPI table to the list of entries in the extended system description table and install it into the UEFI configuration table, specifically including: According to the ACPI specification, the differentiated system description table is pointed to by the firmware ACPI description table, and other ACPI tables are pointed to by the extended system description table. Based on the hierarchical relationship between the ACPI tables, the ACPI tables are added to the list of entries of the extended system description table. Install the pointer to the root system description pointer structure into the UEFI configuration table, calculate and update the checksum of the ACPI table; Based on the hierarchical relationship between the ACPI tables, add the ACPI tables to the list of entries in the extended system description table; including: The firmware loads the firmware ACPI description table, which includes pointers to differentiated system description tables. For other ACPI tables, pointers to those tables are added to the entry list of the extended system description table. The extended system description table has a fixed header and a variable-length list of entries, each entry being a 64-bit address pointing to another ACPI table. At startup, the system finds and loads the ACPI table by resolving the extended system description table, thereby completing the ACPI configuration and initialization of the system.
2. The method for implementing ACPI on a RISC-V platform according to claim 1, characterized in that, UEFI sets a root system description pointer in the system memory address space, pointing to the extended system description table, specifically including: The UEFI firmware creates a root system description pointer structure and initializes the fields of the root system description pointer structure, including signature, OEM identifier, version, length, and extended system description table address; Create an extended system description table, initialize the system description table header information of the extended system description table, and reserve the first entry of the extended system description table for use in the firmware ACPI description table.
3. The method for implementing ACPI on a RISC-V platform according to claim 1, characterized in that, The ACPI table includes a root system description pointer, an extended system description table, a firmware ACPI description table, a differential system description table, a composite APIC description table, a processor attribute topology table, a RISC-V Hart function table, a memory-mapped configuration space base address description table, a serial terminal redirection table, a system resource association table, and a system location information table.
4. The method for implementing ACPI on a RISC-V platform according to claim 1, characterized in that, The ACPI table is dynamically modified based on differences in hardware platforms.
5. A device for implementing ACPI on a RISC-V platform, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, it implements the steps of the method for implementing ACPI on the RISC-V platform according to any one of claims 1-4.
6. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by the processor, it implements the steps of the method for implementing ACPI on the RISC-V platform according to any one of claims 1-4.
7. A system for implementing ACPI on a RISC-V platform, characterized in that, Based on the UEFI firmware boot method, the system is used to implement the ACPI method on the RISC-V platform according to any one of claims 1-4, the system comprising: The management module is configured to: create and initialize the root system description pointer and extended system description table, and generate UEFI / PI services to install, uninstall, or manage the ACPI table; The module is configured to: write a static ACPI table according to the ACPI specification based on the requirements of the RISC-V platform, and store the ACPI table as a separate firmware file; The loading module is configured to read the ACPI table one by one through the firmware file system and load the ACPI table into memory to complete the static loading process; The dynamic modification module is configured to dynamically modify the ACPI table based on hardware platform differences after the static loading process is completed. The installation module is configured to add the ACPI table to the list of entries in the extended system description table and install it into the UEFI configuration table.
Citation Information
Patent Citations
Method, device and equipment for achieving ACPI on ARM platform, and storage medium
CN111198719A
UEFI firmware starting method and system based on RISCV server CPU
CN118312226A