diff --git a/CHANGELOG.md b/CHANGELOG.md
index bb7bbaa..347cbc2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -29,6 +29,10 @@
 
    Migrate to pldm_bios_table_attr_entry_integer_encode_check()
 
+2. bios_table: Deprecate pldm_bios_table_attr_value_entry_encode_enum()
+
+   Migrate to pldm_bios_table_attr_value_entry_encode_enum_check()
+
 ### Removed
 
 1. bios_table: Remove deprecated APIs sanitized by assert():
diff --git a/include/libpldm/bios_table.h b/include/libpldm/bios_table.h
index 1b61178..bf4bd46 100644
--- a/include/libpldm/bios_table.h
+++ b/include/libpldm/bios_table.h
@@ -504,11 +504,13 @@
  *  @param[in] count - Total number of current values for this enum attribute
  *  @param[in] handle_indexes - Index into the array(provided in the BIOS
  * Attribute Table) of the possible values of string handles for this attribute.
- *  @return pldm_completion_codes
+ *  @return PLDM_SUCCESS on success. PLDM_ERROR_INVALID_DATA if entry or handles are NULL, or if
+ *          attr_type is not a PLDM_BIOS_ENUMERATION. PLDM_ERROR_INVALID_LENGTH if entry_length
+ *          lacks capacity to encode handles into entry.
  */
 int pldm_bios_table_attr_value_entry_encode_enum_check(
 	void *entry, size_t entry_length, uint16_t attr_handle,
-	uint8_t attr_type, uint8_t count, uint8_t *handles);
+	uint8_t attr_type, uint8_t count, const uint8_t *handles);
 
 /** @brief Get length that an attribute value entry(type: string) will take
  *  @param[in] string_length - Length of the current string in byte, 0 indicates
diff --git a/src/bios_table.c b/src/bios_table.c
index 3a91e3d..5b19b1a 100644
--- a/src/bios_table.c
+++ b/src/bios_table.c
@@ -648,22 +648,15 @@
 	       sizeof(count) + count;
 }
 
-LIBPLDM_ABI_STABLE
+LIBPLDM_ABI_DEPRECATED
 void pldm_bios_table_attr_value_entry_encode_enum(
 	void *entry, size_t entry_length, uint16_t attr_handle,
 	uint8_t attr_type, uint8_t count, const uint8_t *handles)
 {
-	size_t length =
-		pldm_bios_table_attr_value_entry_encode_enum_length(count);
-	assert(length <= entry_length);
-
-	struct pldm_bios_attr_val_table_entry *table_entry = entry;
-	table_entry->attr_handle = htole16(attr_handle);
-	table_entry->attr_type = attr_type;
-	table_entry->value[0] = count;
-	if (count != 0) {
-		memcpy(&table_entry->value[1], handles, count);
-	}
+	int rc = pldm_bios_table_attr_value_entry_encode_enum_check(
+		entry, entry_length, attr_handle, attr_type, count, handles);
+	(void)rc;
+	assert(rc == PLDM_SUCCESS);
 }
 
 LIBPLDM_ABI_STABLE
@@ -689,9 +682,10 @@
 LIBPLDM_ABI_STABLE
 int pldm_bios_table_attr_value_entry_encode_enum_check(
 	void *entry, size_t entry_length, uint16_t attr_handle,
-	uint8_t attr_type, uint8_t count, uint8_t *handles)
+	uint8_t attr_type, uint8_t count, const uint8_t *handles)
 {
 	POINTER_CHECK(entry);
+	POINTER_CHECK(handles);
 	if (count != 0 && handles == NULL) {
 		return PLDM_ERROR_INVALID_DATA;
 	}
@@ -699,8 +693,13 @@
 	size_t length =
 		pldm_bios_table_attr_value_entry_encode_enum_length(count);
 	BUFFER_SIZE_EXPECT(entry_length, length);
-	pldm_bios_table_attr_value_entry_encode_enum(
-		entry, entry_length, attr_handle, attr_type, count, handles);
+	struct pldm_bios_attr_val_table_entry *table_entry = entry;
+	table_entry->attr_handle = htole16(attr_handle);
+	table_entry->attr_type = attr_type;
+	table_entry->value[0] = count;
+	if (count != 0) {
+		memcpy(&table_entry->value[1], handles, count);
+	}
 	return PLDM_SUCCESS;
 }
 
diff --git a/tests/libpldm_bios_table_test.cpp b/tests/libpldm_bios_table_test.cpp
index cdcefce..6bf60a7 100644
--- a/tests/libpldm_bios_table_test.cpp
+++ b/tests/libpldm_bios_table_test.cpp
@@ -590,7 +590,7 @@
     EXPECT_DEATH(
         pldm_bios_table_attr_value_entry_encode_enum(
             encodeEntry.data(), encodeEntry.size() - 1, 0, 0, 2, handles),
-        "length <= entry_length");
+        "rc == PLDM_SUCCESS");
 
     auto rc = pldm_bios_table_attr_value_entry_encode_enum_check(
         encodeEntry.data(), encodeEntry.size(), 0, PLDM_BIOS_ENUMERATION, 2,
