- //\r
- // Some other vliadation like file content checksum might be done here.\r
- // For performance issue, Tiano only do FileState check.\r
- //\r
- return TRUE;\r
+ DataCheckSum = FFS_FIXED_CHECKSUM;\r
+ if ((FfsHeader->Attributes & FFS_ATTRIB_CHECKSUM) == FFS_ATTRIB_CHECKSUM) {\r
+ if (IS_FFS_FILE2 (FfsHeader)) {\r
+ DataCheckSum = CalculateCheckSum8 ((CONST UINT8 *) FfsHeader + sizeof (EFI_FFS_FILE_HEADER2), FFS_FILE2_SIZE (FfsHeader) - sizeof(EFI_FFS_FILE_HEADER2));\r
+ } else {\r
+ DataCheckSum = CalculateCheckSum8 ((CONST UINT8 *) FfsHeader + sizeof (EFI_FFS_FILE_HEADER), FFS_FILE_SIZE (FfsHeader) - sizeof(EFI_FFS_FILE_HEADER));\r
+ }\r
+ }\r
+ if (FfsHeader->IntegrityCheck.Checksum.File == DataCheckSum) {\r
+ return TRUE;\r
+ }\r