diff --git a/CMakeLists.txt b/CMakeLists.txt
index 267c4e0..6bfb3c1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,7 +22,7 @@
 add_definitions (-DMCTP_HAVE_STDIO)
 add_definitions (-DMCTP_DEFAULT_ALLOC)
 
-add_library (mctp STATIC alloc.c astlpc.c crc32.c core.c log.c libmctp.h serial.c)
+add_library (mctp STATIC alloc.c astlpc.c crc32.c core.c log.c libmctp.h serial.c crc-16-ccitt.c)
 
 target_include_directories (mctp PUBLIC
                             $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
diff --git a/Makefile.am b/Makefile.am
index c48a277..984a5d4 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -7,7 +7,7 @@
 include_HEADERS = libmctp.h
 
 if LIBMCTP_BINDING_serial
-libmctp_la_SOURCES += serial.c
+libmctp_la_SOURCES += serial.c crc-16-ccitt.c
 include_HEADERS += libmctp-serial.h
 endif
 
diff --git a/crc-16-ccitt.c b/crc-16-ccitt.c
new file mode 100644
index 0000000..1c56bc9
--- /dev/null
+++ b/crc-16-ccitt.c
@@ -0,0 +1,57 @@
+/* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
+
+#include "crc-16-ccitt.h"
+
+/*
+ * Implementation detail and FCS lookup table is based
+ * on https://www.ietf.org/rfc/rfc1662.txt Appendix C.
+ *
+ * FCS lookup table as calculated by the table generator.
+ */
+static const uint16_t crc_16_ccitt_table[256] = {
+	0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf, 0x8c48,
+	0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7, 0x1081, 0x0108,
+	0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e, 0x9cc9, 0x8d40, 0xbfdb,
+	0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876, 0x2102, 0x308b, 0x0210, 0x1399,
+	0x6726, 0x76af, 0x4434, 0x55bd, 0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e,
+	0xfae7, 0xc87c, 0xd9f5, 0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e,
+	0x54b5, 0x453c, 0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd,
+	0xc974, 0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
+	0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3, 0x5285,
+	0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a, 0xdecd, 0xcf44,
+	0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72, 0x6306, 0x728f, 0x4014,
+	0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9, 0xef4e, 0xfec7, 0xcc5c, 0xddd5,
+	0xa96a, 0xb8e3, 0x8a78, 0x9bf1, 0x7387, 0x620e, 0x5095, 0x411c, 0x35a3,
+	0x242a, 0x16b1, 0x0738, 0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862,
+	0x9af9, 0x8b70, 0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e,
+	0xf0b7, 0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
+	0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036, 0x18c1,
+	0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e, 0xa50a, 0xb483,
+	0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5, 0x2942, 0x38cb, 0x0a50,
+	0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd, 0xb58b, 0xa402, 0x9699, 0x8710,
+	0xf3af, 0xe226, 0xd0bd, 0xc134, 0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7,
+	0x6e6e, 0x5cf5, 0x4d7c, 0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1,
+	0xa33a, 0xb2b3, 0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72,
+	0x3efb, 0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
+	0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a, 0xe70e,
+	0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1, 0x6b46, 0x7acf,
+	0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9, 0xf78f, 0xe606, 0xd49d,
+	0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330, 0x7bc7, 0x6a4e, 0x58d5, 0x495c,
+	0x3de3, 0x2c6a, 0x1ef1, 0x0f78
+};
+
+/*
+ * Calculate a new fcs given the current fcs and the new data.
+ */
+uint16_t crc_16_ccitt(uint16_t fcs, const uint8_t *cp, uint32_t len)
+{
+	while (len--)
+		fcs = crc_16_ccitt_byte(fcs, *cp++);
+
+	return fcs;
+}
+
+uint16_t crc_16_ccitt_byte(uint16_t fcs, const uint8_t c)
+{
+	return (fcs >> 8) ^ crc_16_ccitt_table[(fcs ^ c) & 0xff];
+}
diff --git a/crc-16-ccitt.h b/crc-16-ccitt.h
new file mode 100644
index 0000000..c01c370
--- /dev/null
+++ b/crc-16-ccitt.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */
+
+#ifndef _CRC_16_CCITT_H
+#define _CRC_16_CCITT_H
+
+#include <stdint.h>
+
+#define FCS_INIT_16 0xFFFF /* Initial FCS value */
+
+uint16_t crc_16_ccitt(uint16_t fcs, const uint8_t *cp, uint32_t len);
+
+uint16_t crc_16_ccitt_byte(uint16_t fcs, const uint8_t c);
+
+#endif
diff --git a/serial.c b/serial.c
index 8ac4468..47d250e 100644
--- a/serial.c
+++ b/serial.c
@@ -6,6 +6,8 @@
 #include <stdlib.h>
 #include <string.h>
 
+#include "crc-16-ccitt.h"
+
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
@@ -73,6 +75,7 @@
 	struct mctp_pktbuf *rx_pkt;
 	uint8_t rx_exp_len;
 	uint16_t rx_fcs;
+	uint16_t rx_fcs_calc;
 	enum {
 		STATE_WAIT_SYNC_START,
 		STATE_WAIT_REVISION,
@@ -140,6 +143,7 @@
 	struct mctp_serial_trailer *tlr;
 	uint8_t *buf;
 	size_t len;
+	uint16_t fcs;
 
 	/* the length field in the header excludes serial framing
 	 * and escape sequences */
@@ -150,6 +154,10 @@
 	hdr->revision = MCTP_SERIAL_REVISION;
 	hdr->len = len;
 
+	// Calculate fcs
+	fcs = crc_16_ccitt(FCS_INIT_16, (const uint8_t *)hdr + 1, 2);
+	fcs = crc_16_ccitt(fcs, (const uint8_t *)mctp_pktbuf_hdr(pkt), len);
+
 	buf = (void *)(hdr + 1);
 
 	len = mctp_serial_pkt_escape(pkt, NULL);
@@ -162,9 +170,8 @@
 
 	tlr = (void *)buf;
 	tlr->flag = MCTP_SERIAL_FRAMING_FLAG;
-	/* todo: trailer FCS */
-	tlr->fcs_msb = 0;
-	tlr->fcs_lsb = 0;
+	tlr->fcs_msb = fcs >> 8;
+	tlr->fcs_lsb = fcs & 0xff;
 
 	len += sizeof(*hdr) + sizeof(*tlr);
 
@@ -197,6 +204,7 @@
 static void mctp_rx_consume_one(struct mctp_binding_serial *serial, uint8_t c)
 {
 	struct mctp_pktbuf *pkt = serial->rx_pkt;
+	bool valid = false;
 
 	mctp_prdebug("state: %d, char 0x%02x", serial->rx_state, c);
 
@@ -218,6 +226,7 @@
 	case STATE_WAIT_REVISION:
 		if (c == MCTP_SERIAL_REVISION) {
 			serial->rx_state = STATE_WAIT_LEN;
+			serial->rx_fcs_calc = crc_16_ccitt_byte(FCS_INIT_16, c);
 		} else if (c == MCTP_SERIAL_FRAMING_FLAG) {
 			/* Handle the case where there are bytes dropped in request,
 			 * and the state machine is out of sync. The failed request's
@@ -245,6 +254,8 @@
 			pkt = serial->rx_pkt;
 			serial->rx_exp_len = c;
 			serial->rx_state = STATE_DATA;
+			serial->rx_fcs_calc =
+				crc_16_ccitt_byte(serial->rx_fcs_calc, c);
 		}
 		break;
 
@@ -253,6 +264,8 @@
 			serial->rx_state = STATE_DATA_ESCAPED;
 		} else {
 			mctp_pktbuf_push(pkt, &c, 1);
+			serial->rx_fcs_calc =
+				crc_16_ccitt_byte(serial->rx_fcs_calc, c);
 			if (pkt->end - pkt->mctp_hdr_off == serial->rx_exp_len)
 				serial->rx_state = STATE_WAIT_FCS1;
 		}
@@ -261,6 +274,7 @@
 	case STATE_DATA_ESCAPED:
 		c ^= 0x20;
 		mctp_pktbuf_push(pkt, &c, 1);
+		serial->rx_fcs_calc = crc_16_ccitt_byte(serial->rx_fcs_calc, c);
 		if (pkt->end - pkt->mctp_hdr_off == serial->rx_exp_len)
 			serial->rx_state = STATE_WAIT_FCS1;
 		else
@@ -273,17 +287,24 @@
 		break;
 	case STATE_WAIT_FCS2:
 		serial->rx_fcs |= c;
-		/* todo: check fcs */
 		serial->rx_state = STATE_WAIT_SYNC_END;
 		break;
 
 	case STATE_WAIT_SYNC_END:
-		if (c == MCTP_SERIAL_FRAMING_FLAG) {
-			mctp_serial_finish_packet(serial, true);
+		if (serial->rx_fcs == serial->rx_fcs_calc) {
+			if (c == MCTP_SERIAL_FRAMING_FLAG) {
+				valid = true;
+			} else {
+				valid = false;
+				mctp_prdebug("missing end frame marker");
+			}
 		} else {
-			mctp_prdebug("missing end frame marker");
-			mctp_serial_finish_packet(serial, false);
+			valid = false;
+			mctp_prdebug("invalid fcs : 0x%04x, expect 0x%04x",
+				     serial->rx_fcs, serial->rx_fcs_calc);
 		}
+
+		mctp_serial_finish_packet(serial, valid);
 		serial->rx_state = STATE_WAIT_SYNC_START;
 		break;
 	}
diff --git a/tests/test_serial.c b/tests/test_serial.c
index e3a53a6..ac81f62 100644
--- a/tests/test_serial.c
+++ b/tests/test_serial.c
@@ -83,7 +83,23 @@
 
 	mctp_set_log_stdio(MCTP_LOG_DEBUG);
 
-	memset(&mctp_msg_src[0], 0x5a, MCTP_BTU);
+	/*
+	 * Adding data bytes (0x7e & 0x7d) for testing FCS calculation while the
+	 * escaped data is presented.
+	 *
+	 * Refer to DSP0253 chapter 7, data byte 0x7e / 0x7d should be replaced
+	 * to escape sequence 0x7d 0x5e / 0x7d 0x5d.
+	 *
+	 * For sender, FCS calculation should count data byte (0x7e / 0x7d) only,
+	 * not the escape sequece. For receiver, the escape sequence should be
+	 * translated back to data byte and put it in FCS calculation.
+	 *
+	 * If FCS calculation is not expected, similiar error msg
+	 * `serial: invalid fcs : 0xf5c1, expect 0x1d3e` will be observed.
+	 */
+	memset(&mctp_msg_src[0], 0x7e, 1);
+	memset(&mctp_msg_src[1], 0x7d, 1);
+	memset(&mctp_msg_src[2], 0x5a, MCTP_BTU - 2);
 	memset(&mctp_msg_src[MCTP_BTU], 0xa5, MCTP_BTU);
 
 	rc = pipe(p[0]);
