summaryrefslogtreecommitdiffstats
path: root/src/acpi/acpigen.c
diff options
context:
space:
mode:
authorCliff Huang <cliff.huang@intel.com>2023-01-19 21:18:23 -0800
committerFelix Held <felix-coreboot@felixheld.de>2023-01-27 14:47:10 +0000
commite608308adebc058f47eb7c51721ae0f077018691 (patch)
treee5a7db7dfea09207fbb7029913685dcf623e3a20 /src/acpi/acpigen.c
parent5f4f1b8558948feae88320bae9101e99d21608e2 (diff)
downloadcoreboot-e608308adebc058f47eb7c51721ae0f077018691.tar.gz
coreboot-e608308adebc058f47eb7c51721ae0f077018691.tar.bz2
coreboot-e608308adebc058f47eb7c51721ae0f077018691.zip
src/acpi: add debug message with concatenated string
add functions for concatenate OP add debug message containing concatenated string with string, value, or OPs Ex1: to print string with another string provided from C side: acpigen_write_debug_concatenate_string_string("Wait loop Timeout! var=", name, LOCAL6_OP); will generate: Concatenate ("Wait loop Timeout! var=", "L23E", Local6) Debug = Local6 Ex2: to print string with a value: acpigen_write_debug_concatenate_string_int("ModPHY enabling for RP:", pcie_rp, LOCAL0_OP); will generate: Concatenate ("ModPHY enabling for RP:", 0x05, Local0) Debug = Local0 Ex3: to print string with an ACPI OP: acpigen_write_debug_concatenate_string_op("while Loop count: ", LOCAL7_OP, LOCAL6_OP) will generate: Concatenate ("while Loop count: ", Local7, Local6) Debug = Local6 TEST=Add above functions in the acpigen code and check the generated SSDT table after OS boot Signed-off-by: Cliff Huang <cliff.huang@intel.com> Change-Id: I370745efe3d6b513ec2c5376248362a3eb4b3d21 Reviewed-on: https://review.coreboot.org/c/coreboot/+/72126 Reviewed-by: Jérémy Compostella <jeremy.compostella@intel.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Bora Guvendik <bora.guvendik@intel.com>
Diffstat (limited to 'src/acpi/acpigen.c')
-rw-r--r--src/acpi/acpigen.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/acpi/acpigen.c b/src/acpi/acpigen.c
index 7afb839e5d04..08915a9ea780 100644
--- a/src/acpi/acpigen.c
+++ b/src/acpi/acpigen.c
@@ -1402,6 +1402,33 @@ void acpigen_write_not(uint8_t arg, uint8_t res)
acpigen_emit_byte(res);
}
+/* Concatenate (str1, str2, res) */
+void acpigen_concatenate_string_string(const char *str1, const char *str2, uint8_t res)
+{
+ acpigen_emit_byte(CONCATENATE_OP);
+ acpigen_write_string(str1);
+ acpigen_write_string(str2);
+ acpigen_emit_byte(res);
+}
+
+/* Concatenate (str, val, tmp_res) */
+void acpigen_concatenate_string_int(const char *str, uint64_t val, uint8_t res)
+{
+ acpigen_emit_byte(CONCATENATE_OP);
+ acpigen_write_string(str);
+ acpigen_write_integer(val);
+ acpigen_emit_byte(res);
+}
+
+/* Concatenate (str, src_res, dest_res) */
+void acpigen_concatenate_string_op(const char *str, uint8_t src_res, uint8_t dest_res)
+{
+ acpigen_emit_byte(CONCATENATE_OP);
+ acpigen_write_string(str);
+ acpigen_emit_byte(src_res);
+ acpigen_emit_byte(dest_res);
+}
+
/* Store (str, DEBUG) */
void acpigen_write_debug_string(const char *str)
{
@@ -1434,6 +1461,33 @@ void acpigen_write_debug_namestr(const char *str)
acpigen_emit_ext_op(DEBUG_OP);
}
+/* Concatenate (str1, str2, tmp_res)
+ Store(tmp_res, DEBUG) */
+void acpigen_write_debug_concatenate_string_string(const char *str1, const char *str2,
+ uint8_t tmp_res)
+{
+ acpigen_concatenate_string_string(str1, str2, tmp_res);
+ acpigen_write_debug_op(tmp_res);
+}
+
+/* Concatenate (str1, val, tmp_res)
+ Store(tmp_res, DEBUG) */
+void acpigen_write_debug_concatenate_string_int(const char *str, uint64_t val,
+ uint8_t tmp_res)
+{
+ acpigen_concatenate_string_int(str, val, tmp_res);
+ acpigen_write_debug_op(tmp_res);
+}
+
+/* Concatenate (str1, res, tmp_res)
+ Store(tmp_res, DEBUG) */
+void acpigen_write_debug_concatenate_string_op(const char *str, uint8_t res,
+ uint8_t tmp_res)
+{
+ acpigen_concatenate_string_op(str, res, tmp_res);
+ acpigen_write_debug_op(tmp_res);
+}
+
void acpigen_write_if(void)
{
acpigen_emit_byte(IF_OP);