| 895 | } |
| 896 | |
| 897 | VOID findCPU(UINT8* dsdt, UINT32 length) |
| 898 | { |
| 899 | UINT32 i, k, size; |
| 900 | UINT32 SBSIZE = 0, SBADR = 0; |
| 901 | BOOLEAN SBFound = FALSE; |
| 902 | UINT32 off2, j1; |
| 903 | |
| 904 | if (acpi_cpu_score) { |
| 905 | FreePool(acpi_cpu_score); |
| 906 | } |
| 907 | acpi_cpu_score = (__typeof__(acpi_cpu_score))AllocateZeroPool(128); |
| 908 | acpi_cpu_count = 0; |
| 909 | // 5B 83 41 0C 5C 2E 5F 50 52 5F 43 50 55 30 01 10 |
| 910 | // 10 00 00 06 |
| 911 | |
| 912 | //one another kind |
| 913 | /* |
| 914 | 5B 82 4D 95 53 43 4B 30 08 5F 48 49 44 0D 41 43 |
| 915 | 50 49 30 30 30 34 00 08 5F 55 49 44 0D 43 50 55 |
| 916 | 53 43 4B 30 00 08 53 43 4B 4E 00 08 4C 53 54 41 |
| 917 | 0A FF 14 28 5F 53 54 41 00 70 0D 43 50 55 53 43 |
| 918 | 4B 30 00 43 55 55 30 70 50 53 54 41 00 60 7B 60 |
| 919 | 0A 03 61 70 61 4C 53 54 41 A4 60 |
| 920 | 5B 83 4A 04 43 30 30 30 00 10 04 00 00 06 08 5F 48 49 44 0D 41 |
| 921 | 43 50 49 30 30 30 37 00 08 5F 55 49 44 0D 50 43 |
| 922 | 49 30 2D 43 50 30 30 30 00 08 5F 50 58 4D 00 |
| 923 | // |
| 924 | |
| 925 | Device (SCK0) |
| 926 | { |
| 927 | Name (_HID, "ACPI0004") // _HID: Hardware ID |
| 928 | Name (_UID, "CPUSCK0") // _UID: Unique ID |
| 929 | Name (SCKN, Zero) |
| 930 | Name (LSTA, 0xFF) |
| 931 | Method (_STA, 0, NotSerialized) // _STA: Status |
| 932 | { |
| 933 | Store ("CPUSCK0", CUU0) |
| 934 | Store (PSTA (Zero), Local0) |
| 935 | And (Local0, 0x03, Local1) |
| 936 | Store (Local1, LSTA) |
| 937 | Return (Local0) |
| 938 | } |
| 939 | |
| 940 | Processor (C000, 0x00, 0x00000410, 0x06) |
| 941 | { |
| 942 | Name (_HID, "ACPI0007") // _HID: Hardware ID |
| 943 | Name (_UID, "PCI0-CP000") // _UID: Unique ID |
| 944 | Name (_PXM, Zero) // _PXM: Device Proximity |
| 945 | */ |
| 946 | |
| 947 | for (i = 0; i < length - 20; i++) { |
| 948 | if (dsdt[i] == 0x5B && dsdt[i + 1] == 0x83) { // ProcessorOP |
| 949 | UINT32 j; |
| 950 | UINT32 offset = i + 3 + (dsdt[i + 2] >> 6); // name |
| 951 | BOOLEAN add_name = TRUE; |
| 952 | if (acpi_cpu_count == 0) { //only first time in the cycle |
| 953 | CHAR8 c1 = dsdt[offset + 1]; |
| 954 | // I want to determine a scope of PR |
no test coverage detected