|
1 | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2 | 2 | /* |
3 | | - * Copyright 2017-2023 Broadcom Inc. All rights reserved. |
| 3 | + * Copyright 2017-2026 Broadcom Inc. All rights reserved. |
4 | 4 | */ |
5 | 5 | #ifndef MPI30_CNFG_H |
6 | 6 | #define MPI30_CNFG_H 1 |
@@ -1037,6 +1037,7 @@ struct mpi3_io_unit_page5 { |
1037 | 1037 | #define MPI3_IOUNIT5_DEVICE_SHUTDOWN_SATA_SSD_SHIFT (2) |
1038 | 1038 | #define MPI3_IOUNIT5_DEVICE_SHUTDOWN_SAS_SSD_MASK (0x0003) |
1039 | 1039 | #define MPI3_IOUNIT5_DEVICE_SHUTDOWN_SAS_SSD_SHIFT (0) |
| 1040 | +#define MPI3_IOUNIT5_DEVICE_SHUTDOWN_HDD_SPINDOWN_ENABLE (0x8000) |
1040 | 1041 | #define MPI3_IOUNIT5_FLAGS_SATAPUIS_MASK (0x0c) |
1041 | 1042 | #define MPI3_IOUNIT5_FLAGS_SATAPUIS_NOT_SUPPORTED (0x00) |
1042 | 1043 | #define MPI3_IOUNIT5_FLAGS_SATAPUIS_OS_CONTROLLED (0x04) |
@@ -1074,7 +1075,8 @@ struct mpi3_io_unit_page8 { |
1074 | 1075 | u8 current_key_encryption_algo; |
1075 | 1076 | u8 key_digest_hash_algo; |
1076 | 1077 | union mpi3_version_union current_svn; |
1077 | | - __le32 reserved14; |
| 1078 | + __le16 pending_svn_time; |
| 1079 | + __le16 reserved16; |
1078 | 1080 | __le32 current_key[128]; |
1079 | 1081 | union mpi3_iounit8_digest digest[MPI3_IOUNIT8_DIGEST_MAX]; |
1080 | 1082 | }; |
@@ -1406,6 +1408,7 @@ struct mpi3_driver_page1 { |
1406 | 1408 | }; |
1407 | 1409 |
|
1408 | 1410 | #define MPI3_DRIVER1_PAGEVERSION (0x00) |
| 1411 | +#define MPI3_DRIVER1_FLAGS_DEVICE_SHUTDOWN_ON_UNLOAD_DISABLE (0x0001) |
1409 | 1412 | #ifndef MPI3_DRIVER2_TRIGGER_MAX |
1410 | 1413 | #define MPI3_DRIVER2_TRIGGER_MAX (1) |
1411 | 1414 | #endif |
@@ -1561,7 +1564,9 @@ struct mpi3_security1_key_record { |
1561 | 1564 | u8 consumer; |
1562 | 1565 | __le16 key_data_size; |
1563 | 1566 | __le32 additional_key_data; |
1564 | | - __le32 reserved08[2]; |
| 1567 | + u8 library_version; |
| 1568 | + u8 reserved09[3]; |
| 1569 | + __le32 reserved0c; |
1565 | 1570 | union mpi3_security1_key_data key_data; |
1566 | 1571 | }; |
1567 | 1572 |
|
@@ -1614,6 +1619,85 @@ struct mpi3_security_page2 { |
1614 | 1619 | u8 reserved9d[3]; |
1615 | 1620 | struct mpi3_security2_trusted_root trusted_root[MPI3_SECURITY2_TRUSTED_ROOT_MAX]; |
1616 | 1621 | }; |
| 1622 | + |
| 1623 | +struct mpi3_security_page3 { |
| 1624 | + struct mpi3_config_page_header header; |
| 1625 | + __le16 key_data_length; |
| 1626 | + __le16 reserved0a; |
| 1627 | + u8 key_number; |
| 1628 | + u8 reserved0d[3]; |
| 1629 | + union mpi3_security_mac mac; |
| 1630 | + union mpi3_security_nonce nonce; |
| 1631 | + __le32 reserved90[12]; |
| 1632 | + u8 flags; |
| 1633 | + u8 consumer; |
| 1634 | + __le16 key_data_size; |
| 1635 | + __le32 additional_key_data; |
| 1636 | + u8 library_version; |
| 1637 | + u8 reserved_c9[3]; |
| 1638 | + __le32 reserved_cc; |
| 1639 | + u8 key_data[]; |
| 1640 | +}; |
| 1641 | + |
| 1642 | +#define MPI3_SECURITY3_PAGEVERSION (0x00) |
| 1643 | +#define MPI3_SECURITY3_FLAGS_TYPE_MASK (0x0f) |
| 1644 | +#define MPI3_SECURITY3_FLAGS_TYPE_SHIFT (0) |
| 1645 | +#define MPI3_SECURITY3_FLAGS_TYPE_NOT_VALID (0) |
| 1646 | +#define MPI3_SECURITY3_FLAGS_TYPE_MLDSA_PRIVATE (1) |
| 1647 | +#define MPI3_SECURITY3_FLAGS_TYPE_MLDSA_PUBLIC (2) |
| 1648 | +struct mpi3_security_page10 { |
| 1649 | + struct mpi3_config_page_header header; |
| 1650 | + __le32 reserved08[2]; |
| 1651 | + union mpi3_security_mac mac; |
| 1652 | + union mpi3_security_nonce nonce; |
| 1653 | + __le64 current_token_nonce; |
| 1654 | + __le64 previous_token_nonce; |
| 1655 | + __le32 reserved_a0[8]; |
| 1656 | + u8 diagnostic_auth_id[64]; |
| 1657 | +}; |
| 1658 | +#define MPI3_SECURITY10_PAGEVERSION (0x00) |
| 1659 | + |
| 1660 | +struct mpi3_security_page11 { |
| 1661 | + struct mpi3_config_page_header header; |
| 1662 | + u8 flags; |
| 1663 | + u8 reserved09[3]; |
| 1664 | + __le32 reserved0c; |
| 1665 | + __le32 diagnostic_token_length; |
| 1666 | + __le32 reserved14[3]; |
| 1667 | + u8 diagnostic_token[]; |
| 1668 | +}; |
| 1669 | +#define MPI3_SECURITY11_PAGEVERSION (0x00) |
| 1670 | +#define MPI3_SECURITY11_FLAGS_TOKEN_ENABLED (0x01) |
| 1671 | + |
| 1672 | +struct mpi3_security12_diag_feature { |
| 1673 | + __le32 feature_identifier; |
| 1674 | + u8 feature_size; |
| 1675 | + u8 feature_type; |
| 1676 | + __le16 reserved06; |
| 1677 | + u8 status; |
| 1678 | + u8 section; |
| 1679 | + __le16 reserved0a; |
| 1680 | + __le32 reserved0c; |
| 1681 | + u8 feature_data[64]; |
| 1682 | +}; |
| 1683 | +#define MPI3_SECURITY12_DIAG_FEATURE_STATUS_MASK (0x03) |
| 1684 | +#define MPI3_SECURITY12_DIAG_FEATURE_STATUS_SHIFT (0) |
| 1685 | +#define MPI3_SECURITY12_DIAG_FEATURE_STATUS_UNKNOWN (0x00) |
| 1686 | +#define MPI3_SECURITY12_DIAG_FEATURE_STATUS_DISABLED (0x01) |
| 1687 | +#define MPI3_SECURITY12_DIAG_FEATURE_STATUS_ENABLED (0x02) |
| 1688 | +#define MPI3_SECURITY12_DIAG_FEATURE_SECTION_PROTECTED (0x00) |
| 1689 | +#define MPI3_SECURITY12_DIAG_FEATURE_SECTION_UNPROTECTED (0x01) |
| 1690 | +#define MPI3_SECURITY12_DIAG_FEATURE_SECTION_PAYLOAD (0x02) |
| 1691 | +#define MPI3_SECURITY12_DIAG_FEATURE_SECTION_SIGNATURE (0x03) |
| 1692 | +struct mpi3_security_page12 { |
| 1693 | + struct mpi3_config_page_header header; |
| 1694 | + __le32 reserved08[2]; |
| 1695 | + u8 num_diag_features; |
| 1696 | + u8 reserved11[3]; |
| 1697 | + __le32 reserved14[3]; |
| 1698 | + struct mpi3_security12_diag_feature diag_feature[]; |
| 1699 | +}; |
| 1700 | + |
1617 | 1701 | #define MPI3_SECURITY2_PAGEVERSION (0x00) |
1618 | 1702 | struct mpi3_sas_io_unit0_phy_data { |
1619 | 1703 | u8 io_unit_port; |
@@ -2314,6 +2398,8 @@ struct mpi3_device0_sas_sata_format { |
2314 | 2398 | u8 attached_phy_identifier; |
2315 | 2399 | u8 max_port_connections; |
2316 | 2400 | u8 zone_group; |
| 2401 | + u8 reserved10[3]; |
| 2402 | + u8 negotiated_link_rate; |
2317 | 2403 | }; |
2318 | 2404 |
|
2319 | 2405 | #define MPI3_DEVICE0_SASSATA_FLAGS_WRITE_SAME_UNMAP_NCQ (0x0400) |
|
0 commit comments