[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH V15 3/5] aml: implement a 32-bit fixed memory range
From: |
Gal Hammer |
Subject: |
[Qemu-devel] [PATCH V15 3/5] aml: implement a 32-bit fixed memory range descriptor |
Date: |
Mon, 27 Apr 2015 14:19:49 +0300 |
Signed-off-by: Gal Hammer <address@hidden>
---
hw/acpi/aml-build.c | 18 ++++++++++++++++++
include/hw/acpi/aml-build.h | 3 +++
2 files changed, 21 insertions(+)
diff --git a/hw/acpi/aml-build.c b/hw/acpi/aml-build.c
index d7945f6..038384f 100644
--- a/hw/acpi/aml-build.c
+++ b/hw/acpi/aml-build.c
@@ -891,3 +891,21 @@ Aml *aml_qword_memory(AmlDecode dec, AmlMinFixed min_fixed,
dec, addr_gran, addr_min, addr_max,
addr_trans, len, flags);
}
+
+Aml *aml_memory32_fixed(AmlReadAndWrite read_and_write,
+ uint32_t addr_base, uint32_t addr_len)
+{
+ Aml *var = aml_alloc();
+
+ /* 32-bit Fixed Memory Range Descriptor */
+ build_append_byte(var->buf, 0x86);
+ /* minimum length since we do not encode optional fields */
+ build_append_byte(var->buf, 0x9);
+ build_append_byte(var->buf, 0x0);
+
+ build_append_byte(var->buf, !!read_and_write & 1);
+ build_append_int_noprefix(var->buf, addr_base, sizeof(addr_base));
+ build_append_int_noprefix(var->buf, addr_len, sizeof(addr_len));
+
+ return var;
+}
diff --git a/include/hw/acpi/aml-build.h b/include/hw/acpi/aml-build.h
index 17d3beb..e3cdd70 100644
--- a/include/hw/acpi/aml-build.h
+++ b/include/hw/acpi/aml-build.h
@@ -177,6 +177,9 @@ Aml *aml_qword_memory(AmlDecode dec, AmlMinFixed min_fixed,
uint64_t addr_max, uint64_t addr_trans,
uint64_t len);
+Aml *aml_memory32_fixed(AmlReadAndWrite read_and_write,
+ uint32_t addr_base, uint32_t addr_len);
+
/* Block AML object primitives */
Aml *aml_scope(const char *name_format, ...) GCC_FMT_ATTR(1, 2);
Aml *aml_device(const char *name_format, ...) GCC_FMT_ATTR(1, 2);
--
2.1.0