Agilex™ 7 F-Series and I-Series FPGA Memory Subsystem IP User Guide

ID 789389
Date 7/15/2024
Public
Document Table of Contents

7.5.6. Mbl_mgmt_ctrl

Byteoffset: 0x0020

Word offset: 0x0008

Management control register.

Bits Access Type Default Description
31 R 0

Busy

Indicates whether the MBL management is busy executing a command (1) or ready to accept the next command (0).
30:27 R 0

err_code

Error code, valid when command execution has completed and was unsuccessful. <table> shows possible values and their description.
26   0 Reserved.
25:24 R 0

info_code

Info/warning code, valid when command execution has completed. <table> shows possible values and their description.
23:20   0 Reserved.
19:16 R/W 0

tab

logical table for which the command is destined. “Don’t care” for MBL_FLUSH command.

Note: if the value is greater than the number of logical tables supported in the current hardware configuration, then the value entered to the ‘tab’ field will be truncated in hardware e.g. entering 8 in the ‘tab’ field when the hardware is configured to support 4 logical tables will result in value 0 being actually used by the hardware.
15:9   0 Reserved.
8 R 0

Success

indicates whether a command has completed successfully (1). In MBL_SEARCH and MBL_SEARCH_HANDLE this bit indicates a match on the key that was looked up.
7:4   0 Reserved.
3:0 R/W 0

reg_type

management request type, <table> shows possible values and their description.
Table 35.  Req Type Codes
Code Name Description
0 MBL_FLUSH Flush the table, removing all entries from all logical tables.
1 MBL_INSERT Insert an entry into the table.
2 MBL_DELETE_KEY Delete an entry from the table, using a key to find the entry.
3 MBL_SEARCH_KEY Search for an entry in the table, using a key to find the entry.
4 MBL_MODIFY_KEY Modify result field of an entry, using a key to find the entry.
5 MBL_MODIFY_HANDLE Modify result field of an entry, using a handle to find the entry.
6 MBL_DELETE_HAND Delete an entry from the table, using a handle to find the entry.
7 MBL_SEARCH_HANDLE Search for an entry in the table, using a handle to find the entry.
8 MBL_INSERT_MODIFY Modify the result of an existing entry or insert a new entry.
9 MBL_GET_HANDLE Get next free handle.
Note: MBL_GET_HANDLE is valid only when MBL_GEN_CTRL->ptr_mode = 1. In other modes calling this command will return MGMT_ERR_INVALID_OPCODE.
Table 36.  Possible Values of the error_code Field
Code Name Description
0 MGMT_ERR_NONE No error.
1 MGMT_ERR_INSERT_ROW_FULL Insert failed due to no free bins in a row.
2 MGMT_ERR_INSERT_REHASH_FAIL Insert failed due to a signature clash, unresolved by re-hashing.
3 MGMT_ERR_INSERT_KEY_EXISTS Key already present in the selected logical table.
4 MGMT_ERR_PTR_MGMT Pointer management error (fatal).
5 MGMT_ERR_INSERT_TABLE_FULL Insert failed - selected logical table full.
6 MGMT_ERR_KEY_NOT_EXIST Delete/modify failed - key does not exist. Note: does not apply to MBL_SEARCH_KEY and MBL_SEARCH_HANDLE.
7 MGMT_ERR_INVALID_OPCODE Invalid opcode used in req_type.
8 MGMT_ERR_HASH_CHECKSUM Checksum error in Hash Table entry.
9 MGMT_ERR_KEY_CHECKSUM Checksum error in Key Table entry.
A MGMT_ERR_NO_FREE_PTR No free pointers available.
Table 37.  Possible Values of the info_code Field
Code Name Description
0 MGMT_INFO_NONE No additional information.
1 MGMT_INFO_INSERT_KEY_EXISTS MBL_INSERT_MODIFY command only: key exists, result has been modified.