diff mbox

[V15,3/5] aml: implement a 32-bit fixed memory range descriptor

Message ID 1430133591-6197-4-git-send-email-ghammer@redhat.com
State New
Headers show

Commit Message

Gal Hammer April 27, 2015, 11:19 a.m. UTC
Signed-off-by: Gal Hammer <ghammer@redhat.com>
---
 hw/acpi/aml-build.c         | 18 ++++++++++++++++++
 include/hw/acpi/aml-build.h |  3 +++
 2 files changed, 21 insertions(+)
diff mbox

Patch

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);