Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ACPICA: ACPI 6.4: PMTT: add new fields/structures

ACPICA commit 036290735ad8020f762c4d94bcbc0e84b2e307b6

Link: https://github.com/acpica/acpica/commit/03629073
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>

authored by

Bob Moore and committed by
Rafael J. Wysocki
cca97d42 7c5eab72

+35 -18
+35 -18
include/acpi/actbl2.h
··· 1410 1410 1411 1411 struct acpi_table_pmtt { 1412 1412 struct acpi_table_header header; /* Common ACPI table header */ 1413 - u32 reserved; 1413 + u32 memory_device_count; 1414 + /* 1415 + * Immediately followed by: 1416 + * MEMORY_DEVICE memory_device_struct[memory_device_count]; 1417 + */ 1414 1418 }; 1415 1419 1416 1420 /* Common header for PMTT subtables that follow main table */ ··· 1425 1421 u16 length; 1426 1422 u16 flags; 1427 1423 u16 reserved2; 1424 + u32 memory_device_count; /* Zero means no memory device structs follow */ 1425 + /* 1426 + * Immediately followed by: 1427 + * u8 type_specific_data[] 1428 + * MEMORY_DEVICE memory_device_struct[memory_device_count]; 1429 + */ 1428 1430 }; 1429 1431 1430 1432 /* Values for Type field above */ ··· 1438 1428 #define ACPI_PMTT_TYPE_SOCKET 0 1439 1429 #define ACPI_PMTT_TYPE_CONTROLLER 1 1440 1430 #define ACPI_PMTT_TYPE_DIMM 2 1441 - #define ACPI_PMTT_TYPE_RESERVED 3 /* 0x03-0xFF are reserved */ 1431 + #define ACPI_PMTT_TYPE_RESERVED 3 /* 0x03-0xFE are reserved */ 1432 + #define ACPI_PMTT_TYPE_VENDOR 0xFF 1442 1433 1443 1434 /* Values for Flags field above */ 1444 1435 ··· 1458 1447 u16 socket_id; 1459 1448 u16 reserved; 1460 1449 }; 1450 + /* 1451 + * Immediately followed by: 1452 + * MEMORY_DEVICE memory_device_struct[memory_device_count]; 1453 + */ 1461 1454 1462 1455 /* 1: Memory Controller subtable */ 1463 1456 1464 1457 struct acpi_pmtt_controller { 1465 1458 struct acpi_pmtt_header header; 1466 - u32 read_latency; 1467 - u32 write_latency; 1468 - u32 read_bandwidth; 1469 - u32 write_bandwidth; 1470 - u16 access_width; 1471 - u16 alignment; 1459 + u16 controller_id; 1472 1460 u16 reserved; 1473 - u16 domain_count; 1474 1461 }; 1475 - 1476 - /* 1a: Proximity Domain substructure */ 1477 - 1478 - struct acpi_pmtt_domain { 1479 - u32 proximity_domain; 1480 - }; 1462 + /* 1463 + * Immediately followed by: 1464 + * MEMORY_DEVICE memory_device_struct[memory_device_count]; 1465 + */ 1481 1466 1482 1467 /* 2: Physical Component Identifier (DIMM) */ 1483 1468 1484 1469 struct acpi_pmtt_physical_component { 1485 1470 struct acpi_pmtt_header header; 1486 - u16 component_id; 1487 - u16 reserved; 1488 - u32 memory_size; 1489 1471 u32 bios_handle; 1472 + }; 1473 + 1474 + /* 0xFF: Vendor Specific Data */ 1475 + 1476 + struct acpi_pmtt_vendor_specific { 1477 + struct acpi_pmtt_header header; 1478 + u8 type_uuid[16]; 1479 + u8 specific[]; 1480 + /* 1481 + * Immediately followed by: 1482 + * u8 vendor_specific_data[]; 1483 + * MEMORY_DEVICE memory_device_struct[memory_device_count]; 1484 + */ 1490 1485 }; 1491 1486 1492 1487 /*******************************************************************************