diff options
author | Magnus Christensson <mch@virtutech.com> | 2009-11-25 16:26:58 +0100 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2010-02-08 19:27:48 -0500 |
commit | 9fb3f4d950744e97cc655b7d7b523d8bf101e4a0 (patch) | |
tree | 6af33eefc4371fd8d3719bd07d9d5983ac56a805 | |
parent | 6d75be2d038aa97a1ce52088c6f09d9829e5a39a (diff) | |
download | seabios-0.5.1-stable.zip seabios-0.5.1-stable.tar.gz seabios-0.5.1-stable.tar.bz2 |
Fix PkgLength calculation for the SSDT.0.5.1-stable
Signed-off-by: Magnus Christensson <mch@virtutech.com>
-rw-r--r-- | src/acpi.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -429,10 +429,12 @@ build_ssdt(void) // build processor scope header *(ssdt_ptr++) = 0x10; // ScopeOp if (cpu_length <= 0x3e) { + /* Handle 1-4 CPUs with one byte encoding */ *(ssdt_ptr++) = cpu_length + 1; } else { - *(ssdt_ptr++) = 0x7F; - *(ssdt_ptr++) = (cpu_length + 2) >> 6; + /* Handle 5-314 CPUs with two byte encoding */ + *(ssdt_ptr++) = 0x40 | ((cpu_length + 2) & 0xf); + *(ssdt_ptr++) = (cpu_length + 2) >> 4; } *(ssdt_ptr++) = '_'; // Name *(ssdt_ptr++) = 'P'; |