summaryrefslogtreecommitdiff
path: root/src/arch/i386/boot
diff options
context:
space:
mode:
authorPatrick Georgi <patrick.georgi@coresystems.de>2009-04-21 20:34:36 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2009-04-21 20:34:36 +0000
commitdf444bf68abe840ad05d689996110e9354a2fa6e (patch)
treeb7daa0e607e991080f391986a2b634311367f3d1 /src/arch/i386/boot
parent2d3e712d5698b75270acfafaf7cf1c15aeb0be8a (diff)
Add a helper function to acpigen to create _PSD tables.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Stefan Reinauer <stepan@coresystems.de> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4154 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/arch/i386/boot')
-rw-r--r--src/arch/i386/boot/acpigen.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/arch/i386/boot/acpigen.c b/src/arch/i386/boot/acpigen.c
index f1132f610b..5c8bd56548 100644
--- a/src/arch/i386/boot/acpigen.c
+++ b/src/arch/i386/boot/acpigen.c
@@ -260,3 +260,21 @@ int acpigen_write_PSS_package(u32 coreFreq, u32 power, u32 transLat, u32 busmLat
acpigen_patch_len(len - 1);
return len;
}
+
+int acpigen_write_PSD_package(u32 domain, u32 numprocs, PSD_coord coordtype)
+{
+ int len, lenh, lenp;
+ lenh = acpigen_write_name("_PSD");
+ lenp = acpigen_write_package(1);
+ len = acpigen_write_package(5);
+ len += acpigen_write_byte(5); // 5 values
+ len += acpigen_write_byte(0); // revision 0
+ len += acpigen_write_dword(domain);
+ len += acpigen_write_dword(coordtype);
+ len += acpigen_write_dword(numprocs);
+ acpigen_patch_len(len-1);
+ len += lenp;
+ acpigen_patch_len(len-1);
+ return len + lenh;
+}
+