@@ -136,12 +136,24 @@ void mock_set_hsiom(GPIO_PRT_Type *base, uint32_t pinNum, en_hsiom_sel_t value)
136136cy_en_gpio_status_t Cy_GPIO_Pin_Init (GPIO_PRT_Type * base , uint32_t pinNum ,
137137 const cy_stc_gpio_pin_config_t * config )
138138{ (void )base ; (void )pinNum ; (void )config ; INIT_ONLY (); return CY_GPIO_SUCCESS ; }
139+ static uint32_t smif_clk_src ;
140+ static uint32_t smif_clk_div ;
139141cy_en_sysclk_status_t Cy_SysClk_ClkHfSetSource (uint32_t clkHf ,
140142 cy_en_clkhf_in_sources_t source )
141- { (void )clkHf ; (void )source ; INIT_ONLY (); return CY_SYSCLK_SUCCESS ; }
143+ {
144+ INIT_ONLY ();
145+ if (clkHf == 2U )
146+ smif_clk_src = (uint32_t )source ;
147+ return CY_SYSCLK_SUCCESS ;
148+ }
142149cy_en_sysclk_status_t Cy_SysClk_ClkHfSetDivider (uint32_t clkHf ,
143150 cy_en_clkhf_dividers_t divider )
144- { (void )clkHf ; (void )divider ; INIT_ONLY (); return CY_SYSCLK_SUCCESS ; }
151+ {
152+ INIT_ONLY ();
153+ if (clkHf == 2U )
154+ smif_clk_div = (uint32_t )divider ;
155+ return CY_SYSCLK_SUCCESS ;
156+ }
145157cy_en_sysclk_status_t Cy_SysClk_ClkHfEnable (uint32_t clkHf )
146158{ (void )clkHf ; INIT_ONLY (); return CY_SYSCLK_SUCCESS ; }
147159cy_en_smif_status_t Cy_SMIF_Init (SMIF_Type * base ,
@@ -186,6 +198,8 @@ static void setup(void)
186198 dev_sfdp_0 .memSize = QSPI_SIZE ;
187199 smif_blk_config = & smifBlockConfig_sfdp ;
188200 in_init = 0 ;
201+ smif_clk_src = 0xFFU ;
202+ smif_clk_div = 0xFFU ;
189203}
190204
191205START_TEST (test_write_maps_offset )
@@ -278,6 +292,16 @@ START_TEST(test_init_checks_geometry)
278292}
279293END_TEST
280294
295+ /* The SMIF clock comes from the PLL that wolfBoot sets up, never the FLL */
296+ START_TEST (test_init_clocks_smif_from_pll )
297+ {
298+ in_init = 1 ;
299+ ck_assert_int_eq (hal_ext_flash_init (), CY_SMIF_SUCCESS );
300+ ck_assert_uint_eq (smif_clk_src , (uint32_t )CY_SYSCLK_CLKHF_IN_CLKPATH1 );
301+ ck_assert_uint_eq (smif_clk_div , (uint32_t )CY_SYSCLK_CLKHF_DIVIDE_BY_8 );
302+ }
303+ END_TEST
304+
281305START_TEST (test_geometry )
282306{
283307 ck_assert_int_eq (psoc6_qspi_geometry_ok (0x40000U ), 1 );
@@ -301,6 +325,7 @@ Suite *psoc6_qspi_suite(void)
301325 tcase_add_test (tc , test_erase_whole_sectors );
302326 tcase_add_test (tc , test_erase_rejects_partial_sectors );
303327 tcase_add_test (tc , test_init_checks_geometry );
328+ tcase_add_test (tc , test_init_clocks_smif_from_pll );
304329 tcase_add_test (tc , test_geometry );
305330 suite_add_tcase (s , tc );
306331 return s ;
0 commit comments