Add QWord support to acpigen.
Add TOM2 to the K8 DSDT. Thanks to Rudolf Marek for testing and fixing this patch. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Acked-by: Peter Stuge <peter@stuge.se> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@3953 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
parent
142cad1503
commit
d58671c4bf
|
@ -97,6 +97,21 @@ int acpigen_write_dword(unsigned int data)
|
|||
return 5;
|
||||
}
|
||||
|
||||
int acpigen_write_qword(uint64_t data)
|
||||
{
|
||||
/* qword op */
|
||||
acpigen_emit_byte(0xe);
|
||||
acpigen_emit_byte(data & 0xff);
|
||||
acpigen_emit_byte((data >> 8) & 0xff);
|
||||
acpigen_emit_byte((data >> 16) & 0xff);
|
||||
acpigen_emit_byte((data >> 24) & 0xff);
|
||||
acpigen_emit_byte((data >> 32) & 0xff);
|
||||
acpigen_emit_byte((data >> 40) & 0xff);
|
||||
acpigen_emit_byte((data >> 48) & 0xff);
|
||||
acpigen_emit_byte((data >> 56) & 0xff);
|
||||
return 9;
|
||||
}
|
||||
|
||||
int acpigen_write_name_byte(char *name, uint8_t val) {
|
||||
int len;
|
||||
len = acpigen_write_name(name);
|
||||
|
@ -111,6 +126,13 @@ int acpigen_write_name_dword(char *name, uint32_t val) {
|
|||
return len;
|
||||
}
|
||||
|
||||
int acpigen_write_name_qword(char *name, uint64_t val) {
|
||||
int len;
|
||||
len = acpigen_write_name(name);
|
||||
len += acpigen_write_qword(val);
|
||||
return len;
|
||||
}
|
||||
|
||||
int acpigen_emit_stream(char *data, int size) {
|
||||
int i;
|
||||
for (i = 0; i < size; i++) {
|
||||
|
|
|
@ -30,8 +30,10 @@ int acpigen_write_byte(unsigned int data);
|
|||
int acpigen_emit_byte(unsigned char data);
|
||||
int acpigen_emit_stream(char *data, int size);
|
||||
int acpigen_write_dword(unsigned int data);
|
||||
int acpigen_write_qword(uint64_t data);
|
||||
int acpigen_write_name(char *name);
|
||||
int acpigen_write_name_dword(char *name, uint32_t val);
|
||||
int acpigen_write_name_qword(char *name, uint64_t val);
|
||||
int acpigen_write_name_byte(char *name, uint8_t val);
|
||||
int acpigen_write_scope(char *name);
|
||||
int acpigen_write_PPC(u8 nr);
|
||||
|
|
|
@ -302,6 +302,8 @@ int k8acpi_write_vars(void)
|
|||
lens += acpigen_write_name_dword("SBDN", sysconf.sbdn);
|
||||
msr = rdmsr(TOP_MEM);
|
||||
lens += acpigen_write_name_dword("TOM1", msr.lo);
|
||||
msr = rdmsr(TOP_MEM2);
|
||||
lens += acpigen_write_name_qword("TOM2", (((uint64_t) msr.hi) << 32) | msr.lo);
|
||||
|
||||
lens += k8acpi_write_HT();
|
||||
//minus opcode
|
||||
|
|
Loading…
Reference in New Issue