[PATCH v2] acpi: dbg2: Allow 16550 compatible serial port in DBG2

Grzegorz Bernacki gjb at semihalf.com
Wed Jun 30 05:45:44 UTC 2021


BSA 1.0 specification allow the serial port to be either
Arm SBSA Generic UART, PL011, or 16550. This patch adds
checking for 16550 port type.

BugLink: https://bugs.launchpad.net/fwts/+bug/1932567

Signed-off-by: Grzegorz Bernacki <gjb at semihalf.com>
---
 src/acpi/dbg2/dbg2.c | 23 ++++++++++++++------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/acpi/dbg2/dbg2.c b/src/acpi/dbg2/dbg2.c
index 6004dc61..88936d72 100644
--- a/src/acpi/dbg2/dbg2.c
+++ b/src/acpi/dbg2/dbg2.c
@@ -28,9 +28,12 @@
 
 #include "fwts_acpi_object_eval.h"
 
-#define SBBR_DBG2_PORT_SERIAL     0x8000
-#define SBBR_DBG2_ARM_SBSA_UART   0x000E
-#define SBBR_DBG2_ARM_PL011_UART  0x0003
+#define SBBR_DBG2_PORT_SERIAL          0x8000
+#define SBBR_DBG2_FULLY_16550_COMPAT   0x0000
+#define SBBR_DBG2_16550_SUBSET_COMPAT  0x0001
+#define SBBR_DBG2_ARM_PL011_UART       0x0003
+#define SBBR_DBG2_ARM_SBSA_UART        0x000E
+#define SBBR_DBG2_16550_COMPAT_GAS     0x0012
 
 static fwts_acpi_table_info *table;
 acpi_table_init(DBG2, &table)
@@ -53,11 +56,14 @@ static int dbg2_test2(fwts_framework *fw)
 		if (((uint8_t*)info + info->length) >= ((uint8_t*)table + table->length))
 			break;
 		if (info->port_type == SBBR_DBG2_PORT_SERIAL &&
-		   (info->port_subtype == SBBR_DBG2_ARM_SBSA_UART ||
-		    info->port_subtype == SBBR_DBG2_ARM_PL011_UART)) {
+		   (info->port_subtype == SBBR_DBG2_FULLY_16550_COMPAT ||
+		    info->port_subtype == SBBR_DBG2_16550_SUBSET_COMPAT ||
+		    info->port_subtype == SBBR_DBG2_ARM_PL011_UART ||
+		    info->port_subtype == SBBR_DBG2_ARM_SBSA_UART ||
+		    info->port_subtype == SBBR_DBG2_16550_COMPAT_GAS)) {
 			fwts_passed(fw,
 				"DBG2 provides a standard serial debug "
-				"port and describes ARM SBSA Generic UART");
+				"port and describes ARM BSA compliant UART");
 			return FWTS_OK;
 		}
 
@@ -188,6 +194,9 @@ static int dbg2_test1(fwts_framework *fw)
 			case 0x0010:
 				subport = "BCM2835";
 				break;
+			case 0x0012:
+				subport = "16550-compatible with parameters in GAS";
+				break;
 			default:
 				break;
 			}
@@ -359,7 +368,7 @@ done:
 
 static fwts_framework_minor_test dbg2_tests[] = {
 	{ dbg2_test1, "DBG2 (Debug Port Table 2) test." },
-	{ dbg2_test2, "DBG2 ARM SBSA Generic UART test," },
+	{ dbg2_test2, "DBG2 ARM BSA compliant UART test," },
 	{ NULL, NULL }
 };
 
-- 
2.25.1




More information about the fwts-devel mailing list