[coreboot-gerrit] Patch set updated for coreboot: 25db36a acpigen: Add acpigen_write_irq.

Vladimir Serbinenko (phcoder@gmail.com) gerrit at coreboot.org
Tue Feb 25 20:13:32 CET 2014


Vladimir Serbinenko (phcoder at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/5241

-gerrit

commit 25db36a5f88f0e8b05a9c7b19adb7a0e01aef4af
Author: Vladimir Serbinenko <phcoder at gmail.com>
Date:   Sat Feb 15 18:57:17 2014 +0100

    acpigen: Add acpigen_write_irq.
    
    Change-Id: Iba52dc2d52b7ac9a65d1d17b43e7204f5ede373e
    Signed-off-by: Vladimir Serbinenko <phcoder at gmail.com>
---
 src/arch/x86/boot/acpigen.c         | 15 +++++++++++++++
 src/arch/x86/include/arch/acpigen.h |  1 +
 2 files changed, 16 insertions(+)

diff --git a/src/arch/x86/boot/acpigen.c b/src/arch/x86/boot/acpigen.c
index d149129..b2a17cb 100644
--- a/src/arch/x86/boot/acpigen.c
+++ b/src/arch/x86/boot/acpigen.c
@@ -623,6 +623,21 @@ int acpigen_write_register(acpi_addr_t *addr)
 	return 15;
 }
 
+int acpigen_write_irq(u16 mask)
+{
+	/*
+	 * acpi 3.0b section 6.4.2.1: IRQ Descriptor
+	 * Byte 0:
+	 *   Bit7  : 0 => small item
+	 *   Bit6-3: 0100 (0x4) => IRQ port descriptor
+	 *   Bit2-0: 010 (0x2) => 2 Bytes long
+	 */
+	acpigen_emit_byte(0x22);
+	acpigen_emit_byte(mask & 0xff);
+	acpigen_emit_byte((mask >> 8) & 0xff);
+	return 3;
+}
+
 int acpigen_write_io16(u16 min, u16 max, u8 align, u8 len, u8 decode16)
 {
 	/*
diff --git a/src/arch/x86/include/arch/acpigen.h b/src/arch/x86/include/arch/acpigen.h
index eaa29a5..3217dbe 100644
--- a/src/arch/x86/include/arch/acpigen.h
+++ b/src/arch/x86/include/arch/acpigen.h
@@ -63,6 +63,7 @@ int acpigen_write_resourcetemplate_header(void);
 int acpigen_write_resourcetemplate_footer(int len);
 int acpigen_write_mainboard_resource_template(void);
 int acpigen_write_mainboard_resources(const char *scope, const char *name);
+int acpigen_write_irq(u16 mask);
 
 int get_cst_entries(acpi_cstate_t **);
 



More information about the coreboot-gerrit mailing list