diff --git a/CHANGELOG.md b/CHANGELOG.md
index fcbe424..172f604 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -46,6 +46,7 @@
    The deprecated functions:
 
    - `get_fru_record_by_option_check()`
+   - `pldm_bios_table_append_pad_checksum_check()`
    - `pldm_bios_table_attr_entry_enum_decode_def_num_check()`
    - `pldm_bios_table_attr_entry_enum_decode_pv_hdls_check()`
    - `pldm_bios_table_attr_entry_enum_decode_pv_num_check()`
diff --git a/abi/x86_64/gcc.dump b/abi/x86_64/gcc.dump
index bdb14c6..5c650c0 100644
--- a/abi/x86_64/gcc.dump
+++ b/abi/x86_64/gcc.dump
@@ -1598,7 +1598,7 @@
     },
     '17275' => {
       'Header' => 'bios_table.h',
-      'Line' => '668',
+      'Line' => '670',
       'Param' => {
         '0' => {
           'name' => 'table',
@@ -1618,7 +1618,7 @@
     },
     '17420' => {
       'Header' => 'bios_table.h',
-      'Line' => '659',
+      'Line' => '661',
       'Param' => {
         '0' => {
           'name' => 'src_table',
@@ -1868,7 +1868,7 @@
         '2' => 'rbx'
       },
       'Return' => '100',
-      'ShortName' => 'pldm_bios_table_append_pad_checksum_check'
+      'ShortName' => 'pldm_bios_table_append_pad_checksum'
     },
     '20898' => {
       'Header' => 'bios_table.h',
@@ -9453,6 +9453,7 @@
       'is_time_legal' => 1,
       'is_transfer_flag_valid' => 1,
       'pack_pldm_header' => 1,
+      'pldm_bios_table_append_pad_checksum' => 1,
       'pldm_bios_table_append_pad_checksum_check' => 1,
       'pldm_bios_table_attr_entry_decode_attribute_handle' => 1,
       'pldm_bios_table_attr_entry_decode_attribute_type' => 1,
diff --git a/evolutions/current/pldm_bios_table_append_pad_checksum_check.yaml b/evolutions/current/pldm_bios_table_append_pad_checksum_check.yaml
new file mode 100644
index 0000000..950b212
--- /dev/null
+++ b/evolutions/current/pldm_bios_table_append_pad_checksum_check.yaml
@@ -0,0 +1,2 @@
+- QualifiedName: pldm_bios_table_append_pad_checksum_check
+  NewName: pldm_bios_table_append_pad_checksum
diff --git a/include/libpldm/bios_table.h b/include/libpldm/bios_table.h
index e11e0e6..07e3846 100644
--- a/include/libpldm/bios_table.h
+++ b/include/libpldm/bios_table.h
@@ -641,6 +641,8 @@
  *  	    buffer provided by table. The appropriate buffer capacity can be determined with the
  *  	    help of @ref pldm_bios_table_pad_checksum_size
  */
+int pldm_bios_table_append_pad_checksum(void *table, size_t capacity,
+					size_t *size);
 int pldm_bios_table_append_pad_checksum_check(void *table, size_t capacity,
 					      size_t *size);
 
diff --git a/meson.build b/meson.build
index 76c1262..f11799e 100644
--- a/meson.build
+++ b/meson.build
@@ -34,6 +34,7 @@
   add_project_arguments('-DLIBPLDM_API_DEPRECATED', language: ['c', 'cpp'])
   libpldm_deprecated_aliases += [
     ['get_fru_record_by_option_check', 'get_fru_record_by_option'],
+    ['pldm_bios_table_append_pad_checksum_check', 'pldm_bios_table_append_pad_checksum'],
     ['pldm_bios_table_attr_entry_enum_decode_def_num_check', 'pldm_bios_table_attr_entry_enum_decode_def_num'],
     ['pldm_bios_table_attr_entry_enum_decode_pv_hdls_check', 'pldm_bios_table_attr_entry_enum_decode_pv_hdls'],
     ['pldm_bios_table_attr_entry_enum_decode_pv_num_check', 'pldm_bios_table_attr_entry_enum_decode_pv_num'],
diff --git a/src/dsp/bios_table.c b/src/dsp/bios_table.c
index 844753e..34258af 100644
--- a/src/dsp/bios_table.c
+++ b/src/dsp/bios_table.c
@@ -916,8 +916,8 @@
 }
 
 LIBPLDM_ABI_STABLE
-int pldm_bios_table_append_pad_checksum_check(void *table, size_t capacity,
-					      size_t *size)
+int pldm_bios_table_append_pad_checksum(void *table, size_t capacity,
+					size_t *size)
 {
 	if (!table || !size) {
 		return PLDM_ERROR_INVALID_DATA;
@@ -1197,8 +1197,8 @@
 		goto out;
 	}
 
-	rc = pldm_bios_table_append_pad_checksum_check(
-		dest_table, buffer_length, &copied_length);
+	rc = pldm_bios_table_append_pad_checksum(dest_table, buffer_length,
+						 &copied_length);
 	if (rc == PLDM_SUCCESS) {
 		*dest_length = copied_length;
 	}
diff --git a/tests/dsp/bios_table.cpp b/tests/dsp/bios_table.cpp
index 8314f40..c2b73ea 100644
--- a/tests/dsp/bios_table.cpp
+++ b/tests/dsp/bios_table.cpp
@@ -1151,7 +1151,7 @@
     auto sizeWithoutPad = attrValTable.size();
     attrValTable.resize(sizeWithoutPad +
                         pldm_bios_table_pad_checksum_size(sizeWithoutPad));
-    ASSERT_EQ(pldm_bios_table_append_pad_checksum_check(
+    ASSERT_EQ(pldm_bios_table_append_pad_checksum(
                   attrValTable.data(), attrValTable.size(), &sizeWithoutPad),
               PLDM_SUCCESS);
     Table expectedTable = {0x09, 0x00, 0x01, 0x02, 0x00, 0x65,
