Software APIs
Data Structures | Functions
flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc} Namespace Reference

Data Structures

struct  InfoPage
 A struct that holds bank, page, and config register information for an information page. More...
 
class  FlashCtrlTest
 
class  InfoPagesTest
 
struct  InitCase
 
class  InitTest
 
class  StatusCheckTest
 
class  ErrorCodeCheckTest
 
class  TransferTest
 
class  ExecTest
 
struct  PermsSetCase
 
class  FlashCtrlPermsSetTest
 
struct  CfgSetCase
 
class  FlashCtrlCfgSetTest
 
struct  EraseVerifyCase
 
class  EraseVerifyTest
 
class  DataRegionProtectTestSuite
 

Functions

const std::map< const flash_ctrl_info_page_t *, InfoPage > & InfoPages ()
 Returns a map from flash_ctrl_info_page_t to InfoPage to be used in tests.
 
 TEST_F (InfoPagesTest, NumberOfPages)
 
 TEST_F (InfoPagesTest, PagesPerBank)
 
 TEST_F (InfoPagesTest, PageIndices)
 
uint32_t CfgToOtp (flash_ctrl_cfg_t cfg)
 
 TEST_P (InitTest, Initialize)
 
 INSTANTIATE_TEST_SUITE_P (AllCases, InitTest, testing::Values(InitCase{ .cfg={.scrambling=kMultiBitBool4True,.ecc=kMultiBitBool4False,.he=kMultiBitBool4False},.info_write_val=0x9969996,.data_write_val=0x996999, }, InitCase{ .cfg={.scrambling=kMultiBitBool4False,.ecc=kMultiBitBool4True,.he=kMultiBitBool4False},.info_write_val=0x9699996,.data_write_val=0x969999, }, InitCase{ .cfg={.scrambling=kMultiBitBool4False,.ecc=kMultiBitBool4False,.he=kMultiBitBool4True},.info_write_val=0x6999996,.data_write_val=0x699999, }, InitCase{ .cfg={.scrambling=kMultiBitBool4True,.ecc=kMultiBitBool4True,.he=kMultiBitBool4False},.info_write_val=0x9669996,.data_write_val=0x966999, }))
 
 TEST_F (StatusCheckTest, DefaultStatus)
 
 TEST_F (StatusCheckTest, AllSetStatus)
 
 TEST_F (ErrorCodeCheckTest, DefaultErrorCodes)
 
 TEST_F (ErrorCodeCheckTest, AllSetErrorCodes)
 
 TEST_F (TransferTest, ReadDataOk)
 
 TEST_F (TransferTest, ReadInfoOk)
 
 TEST_F (TransferTest, ProgDataOk)
 
 TEST_F (TransferTest, ProgInfoOk)
 
 TEST_F (TransferTest, EraseDataPageOk)
 
 TEST_F (TransferTest, EraseInfoPageOk)
 
 TEST_F (TransferTest, ProgAcrossWindows)
 
 TEST_F (TransferTest, TransferInternalError)
 
 TEST_F (ExecTest, Set)
 
 TEST_P (FlashCtrlPermsSetTest, InfoPermsSet)
 
 TEST_P (FlashCtrlPermsSetTest, DataDefaultPermsSet)
 
 INSTANTIATE_TEST_SUITE_P (AllCases, FlashCtrlPermsSetTest, testing::Values(PermsSetCase{ .perms={.read=kMultiBitBool4True,.write=kMultiBitBool4False,.erase=kMultiBitBool4False},.info_read_val=0x9999999,.info_write_val=0x9999966,.data_read_val=0x999999,.data_write_val=0x999996, }, PermsSetCase{ .perms={.read=kMultiBitBool4True,.write=kMultiBitBool4False,.erase=kMultiBitBool4False},.info_read_val=0x6666666,.info_write_val=0x6669966,.data_read_val=0x666666,.data_write_val=0x666996, }, PermsSetCase{ .perms={.read=kMultiBitBool4False,.write=kMultiBitBool4True,.erase=kMultiBitBool4False},.info_read_val=0x9999999,.info_write_val=0x9999696,.data_read_val=0x999999,.data_write_val=0x999969, }, PermsSetCase{ .perms={.read=kMultiBitBool4False,.write=kMultiBitBool4True,.erase=kMultiBitBool4False},.info_read_val=0x6666666,.info_write_val=0x6669696,.data_read_val=0x666666,.data_write_val=0x666969, }, PermsSetCase{ .perms={.read=kMultiBitBool4False,.write=kMultiBitBool4False,.erase=kMultiBitBool4True},.info_read_val=0x9999999,.info_write_val=0x9996996,.data_read_val=0x999999,.data_write_val=0x999699, }, PermsSetCase{ .perms={.read=kMultiBitBool4False,.write=kMultiBitBool4False,.erase=kMultiBitBool4True},.info_read_val=0x6666666,.info_write_val=0x6666996,.data_read_val=0x666666,.data_write_val=0x666699, }, PermsSetCase{ .perms={.read=kMultiBitBool4False,.write=kMultiBitBool4True,.erase=kMultiBitBool4True},.info_read_val=0x9999999,.info_write_val=0x9996696,.data_read_val=0x999999,.data_write_val=0x999669}, PermsSetCase{ .perms={.read=kMultiBitBool4False,.write=kMultiBitBool4True,.erase=kMultiBitBool4True},.info_read_val=0x6666666,.info_write_val=0x6666696,.data_read_val=0x666666,.data_write_val=0x666669, }))
 
 TEST_P (FlashCtrlCfgSetTest, InfoCfgSet)
 
 TEST_P (FlashCtrlCfgSetTest, DataDefaultCfgSet)
 
 INSTANTIATE_TEST_SUITE_P (AllCases, FlashCtrlCfgSetTest, testing::Values(CfgSetCase{ .cfg={.scrambling=kMultiBitBool4True,.ecc=kMultiBitBool4False,.he=kMultiBitBool4False},.info_read_val=0x9999999,.info_write_val=0x9969996,.data_read_val=0x999999,.data_write_val=0x996999, }, CfgSetCase{ .cfg={.scrambling=kMultiBitBool4True,.ecc=kMultiBitBool4False,.he=kMultiBitBool4False},.info_read_val=0x6666666,.info_write_val=0x9966666,.data_read_val=0x666666,.data_write_val=0x996666, }, CfgSetCase{ .cfg={.scrambling=kMultiBitBool4False,.ecc=kMultiBitBool4True,.he=kMultiBitBool4False},.info_read_val=0x9999999,.info_write_val=0x9699996,.data_read_val=0x999999,.data_write_val=0x969999, }, CfgSetCase{ .cfg={.scrambling=kMultiBitBool4False,.ecc=kMultiBitBool4True,.he=kMultiBitBool4False},.info_read_val=0x6666666,.info_write_val=0x9696666,.data_read_val=0x666666,.data_write_val=0x969666, }, CfgSetCase{ .cfg={.scrambling=kMultiBitBool4False,.ecc=kMultiBitBool4False,.he=kMultiBitBool4True},.info_read_val=0x9999999,.info_write_val=0x6999996,.data_read_val=0x999999,.data_write_val=0x699999, }, CfgSetCase{ .cfg={.scrambling=kMultiBitBool4False,.ecc=kMultiBitBool4False,.he=kMultiBitBool4True},.info_read_val=0x6666666,.info_write_val=0x6996666,.data_read_val=0x666666,.data_write_val=0x699666, }, CfgSetCase{ .cfg={.scrambling=kMultiBitBool4True,.ecc=kMultiBitBool4True,.he=kMultiBitBool4False},.info_read_val=0x9999999,.info_write_val=0x9669996,.data_read_val=0x999999,.data_write_val=0x966999, }, CfgSetCase{ .cfg={.scrambling=kMultiBitBool4True,.ecc=kMultiBitBool4True,.he=kMultiBitBool4False},.info_read_val=0x6666666,.info_write_val=0x9666666,.data_read_val=0x666666,.data_write_val=0x966666, }))
 
 TEST_F (FlashCtrlTest, CreatorInfoLockdown)
 
 TEST_F (FlashCtrlTest, BankErasePermsSet)
 
 TEST_F (FlashCtrlTest, CertInfoCreatorCfg)
 
 TEST_F (FlashCtrlTest, CertInfoOwnerRestrict)
 
 TEST_P (EraseVerifyTest, DataEraseVerify)
 
 INSTANTIATE_TEST_SUITE_P (AllCases, EraseVerifyTest, testing::Values(EraseVerifyCase{ .addr=0,.aligned_addr=0,.erase_type=kFlashCtrlEraseTypePage,.last_word_val=kFlashCtrlErasedWord,.error=kErrorOk, }, EraseVerifyCase{ .addr=10 *FLASH_CTRL_PARAM_BYTES_PER_PAGE+128,.aligned_addr=10 *FLASH_CTRL_PARAM_BYTES_PER_PAGE,.erase_type=kFlashCtrlEraseTypePage,.last_word_val=kFlashCtrlErasedWord,.error=kErrorOk, }, EraseVerifyCase{ .addr=10 *FLASH_CTRL_PARAM_BYTES_PER_PAGE+128,.aligned_addr=10 *FLASH_CTRL_PARAM_BYTES_PER_PAGE,.erase_type=kFlashCtrlEraseTypePage,.last_word_val=0xfffffff0,.error=kErrorFlashCtrlDataEraseVerify, }))
 
 INSTANTIATE_TEST_SUITE_P (DataRegionProtectTestInstance, DataRegionProtectTestSuite, testing::Combine(testing::Values(0, 1, 2, 3, 4, 5, 6, 7), testing::Values(0, 1, 2, 42, 256), testing::Values(0, 1, 64, 256), testing::Bool(), testing::Bool(), testing::Bool()), DataRegionProtectTestSuite::HumanReadableTestNameSuffix)
 
 TEST_P (DataRegionProtectTestSuite, ProtectRegionReadWriteEraseEnabled)
 

Data Structure Documentation

◆ flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::InfoPage

struct flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::InfoPage

A struct that holds bank, page, and config register information for an information page.

Definition at line 33 of file flash_ctrl_unittest.cc.

Data Fields
uint32_t bank
uint32_t cfg_offset
uint32_t cfg_wen_offset
uint32_t page

◆ flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::InitCase

struct flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::InitCase

Definition at line 91 of file flash_ctrl_unittest.cc.

Data Fields
flash_ctrl_cfg_t cfg Configuration settings to be read from OTP.
uint32_t data_write_val Expected value to be written to the data config register.
uint32_t info_write_val Expected value to be written to the info config register.

◆ flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::PermsSetCase

struct flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::PermsSetCase

Definition at line 438 of file flash_ctrl_unittest.cc.

Data Fields
uint32_t data_read_val Expected value to be read from the data config register.
uint32_t data_write_val Expected value to be written to the data config register.
uint32_t info_read_val Expected value to be read from the info config register.
uint32_t info_write_val Expected value to be written to the info config register.
flash_ctrl_perms_t perms Access permissions to set.

◆ flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::CfgSetCase

struct flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::CfgSetCase

Definition at line 561 of file flash_ctrl_unittest.cc.

Data Fields
flash_ctrl_cfg_t cfg Configuration settings to set.
uint32_t data_read_val Expected value to be read from the data config register.
uint32_t data_write_val Expected value to be written to the data config register.
uint32_t info_read_val Expected value to be read from the info config register.
uint32_t info_write_val Expected value to be written to the info config register.

◆ flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::EraseVerifyCase

struct flash_ctrl_unittest::anonymous_namespace{flash_ctrl_unittest.cc}::EraseVerifyCase

Definition at line 747 of file flash_ctrl_unittest.cc.

Data Fields
uint32_t addr Address.
uint32_t aligned_addr Truncated address aligned to closest lower page/bank.
flash_ctrl_erase_type_t erase_type Erase type.
rom_error_t error Expected return value.
uint32_t last_word_val Value of the last word read from flash (for testing failure cases).