_LPI Object Examples

Device (C000) {              // HART0
    Name (_HID, “ACPI0007”)
    Name (_LPI,
        Package () {
            0,               // Revision
            0,               // LevelID
            3,               // Count

            // LPI1
            Package () {
                1,           // Min Residency (us)
                1,           // Worst case wakeup latency (us)
                1,           // Flags
                0,           // Arch. Context Lost Flags
                100,         // Residency Counter Frequency
                0,           // Enabled Parent State
                ResourceTemplate () {
                             // Entry Method
                    Register(FFixedHW, 64, 0,
                             0x0000_0000_0000_0000,
                             QWord)
                },
                ResourceTemplate () {
                             // Residency Counter Register
                    Register(SystemMemory, 0, 0, 0, 0)  // NULL
                },
                ResourceTemplate () {
                             // Usage Counter Register
                    Register(SystemMemory, 0, 0, 0, 0)  // NULL
                },
                             // State Name
                “RISC-V WFI”
            },

            // LPI2
            Package () {
                10,          // Min Residency (us)
                10,          // Worst case wakeup latency (us)
                1,           // Flags
                0,           // Arch. Context Lost Flags
                100,         // Residency Counter Frequency
                1,           // Enabled Parent State
                ResourceTemplate () {
                             // Entry Method
                    Register(FFixedHW, 64, 0,
                             0x1000_0000_0000_0000,
                             QWord)
                },
                ResourceTemplate () {
                             // Residency Counter Register
                    Register(SystemMemory, 0, 0, 0, 0)  // NULL
                },
                ResourceTemplate () {
                             // Usage Counter Register
                    Register(SystemMemory, 0, 0, 0, 0)  // NULL
                },
                             // State Name
                “RISC-V RET_DEFAULT”
            },

            // LPI3
            Package () {
                3500,        // Min Residency (us)
                100,         // Worst case wakeup latency (us)
                1,           // Flags
                0,           // Arch. Context Lost Flags
                100,         // Residency Counter Frequency
                1,           // Enabled Parent State
                ResourceTemplate () {
                             // Entry Method
                    Register(FFixedHW, 64, 0,
                             0x1000_0000_8000_0000,
                             QWord)
                },
                ResourceTemplate () {
                             // Residency Counter Register
                    Register(SystemMemory, 0, 0, 0, 0)  // NULL
                },
                ResourceTemplate () {
                             // Usage Counter Register
                    Register(SystemMemory, 0, 0, 0, 0)  // NULL
                },
                             // State Name
                “RISC-V NONRET_DEFAULT”
            }
        }
    )
}