8 #include "sw/device/lib/base/status.h" 
   10 #include "sw/device/lib/testing/test_framework/check.h" 
   12 #include "sw/device/silicon_creator/lib/chip_info.h" 
   13 #include "sw/device/silicon_creator/lib/drivers/hmac.h" 
   18 OTTF_DEFINE_TEST_CONFIG(.silence_console_prints = 
true);
 
   22   kSha256HashSizeInBits = 256,
 
   23   kSha256HashSizeInBytes = kSha256HashSizeInBits / 8,
 
   24   kSha256HashSizeIn32BitWords = kSha256HashSizeInBytes / 4,
 
   41 const size_t kGoldenRomSizeBytes = 32652 - 
sizeof(
chip_info_t);
 
   42 const uint32_t kSimDvGoldenRomHash[kSha256HashSizeIn32BitWords] = {
 
   43     0xc16e04d6, 0x2e94b881, 0x0759b405, 0xd0a28cde,
 
   44     0xa8c900f3, 0x57b8c7f6, 0xacc910b0, 0x43000c0a,
 
   46 const uint32_t kFpgaCw310GoldenRomHash[kSha256HashSizeIn32BitWords] = {
 
   47     0xf3508c51, 0xef65a542, 0xc20e55d9, 0xada4c934,
 
   48     0x8015bbca, 0xa863db5a, 0xd1ead827, 0x968d94cb,
 
   50 const uint32_t kSiliconGoldenRomHash[kSha256HashSizeIn32BitWords] = {
 
   51     0x43b60e89, 0xbfa80347, 0xeeceb60a, 0x356bc7f1,
 
   52     0xbd023b8a, 0xe5a4ddfc, 0xf66b45b5, 0x5b2ba0ba,
 
   55 extern const char _rom_chip_info_start[];
 
   66   base_printf(
"ROM Hash: 0x%08x%08x%08x%08x%08x%08x%08x%08x\r\n",
 
   67               rom_hash.digest[7], rom_hash.digest[6], rom_hash.digest[5],
 
   68               rom_hash.digest[4], rom_hash.digest[3], rom_hash.digest[2],
 
   69               rom_hash.digest[1], rom_hash.digest[0]);
 
   71   LOG_INFO(
"rom_chip_info @ %p:", rom_chip_info);
 
   81     TRY_CHECK_ARRAYS_EQ(rom_hash.digest, kSimDvGoldenRomHash,
 
   84     TRY_CHECK_ARRAYS_EQ(rom_hash.digest, kFpgaCw310GoldenRomHash,
 
   87     TRY_CHECK_ARRAYS_EQ(rom_hash.digest, kSiliconGoldenRomHash,
 
   90     LOG_ERROR(
"ROM hash not self-checked for this device type: 0x%x",
 
   98 bool test_main(
void) { 
return status_ok(hash_rom()); }