[acpi] Support the "_RTXMAC_" format for ACPI-based MAC addresses

Some newer HP products expose the host-based MAC (HBMAC) address using
an ACPI method named "RTMA" returning a part-binary string of the form
"_RTXMAC_#<mac>#", where "<mac>" comprises the raw MAC address bytes.

Extend the existing support to handle this format alongside the older
"_AUXMAC_" format (which uses a base16-encoded MAC address).

Reported-by: Andreas Hammarskjöld <junior@2PintSoftware.com>
Tested-by: Andreas Hammarskjöld <junior@2PintSoftware.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2022-03-23 15:02:17 +00:00
parent 614c3f43a1
commit f58b5109f4
2 changed files with 144 additions and 28 deletions

View File

@@ -159,6 +159,24 @@ ACPI_TABLES ( maca_tables, &maca_ssdt1, &maca_ssdt2 );
ACPI_MAC ( maca, &maca_tables,
DATA ( 0x52, 0x54, 0x00, 0x11, 0x22, 0x33 ) );
/** "RTMA" SSDT */
ACPI_TABLE ( rtma_ssdt, "SSDT",
DATA ( 0x53, 0x53, 0x44, 0x54, 0x44, 0x00, 0x00, 0x00, 0x02,
0x6d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x49, 0x4e, 0x54, 0x4c, 0x04, 0x06, 0x21, 0x20,
0x10, 0x1f, 0x5c, 0x5f, 0x53, 0x42, 0x5f, 0x14, 0x18,
0x52, 0x54, 0x4d, 0x41, 0x08, 0x0d, 0x5f, 0x52, 0x54,
0x58, 0x4d, 0x41, 0x43, 0x5f, 0x23, 0x52, 0x54, 0x30,
0x30, 0x30, 0x31, 0x23, 0x00 ) );
/** "RTMA" test tables */
ACPI_TABLES ( rtma_tables, &rtma_ssdt );
/** "RTMA" test */
ACPI_MAC ( rtma, &rtma_tables,
DATA ( 0x52, 0x54, 0x30, 0x30, 0x30, 0x31 ) );
/** Current ACPI test table set */
static struct acpi_test_tables *acpi_test_tables;
@@ -229,6 +247,7 @@ static void acpi_test_exec ( void ) {
/* MAC extraction tests */
acpi_mac_ok ( &amac );
acpi_mac_ok ( &maca );
acpi_mac_ok ( &rtma );
}
/** ACPI self-test */