@@ -2020,12 +2020,12 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
20202020 else
20212021 {
20222022 /* Unsupported DDR type */
2023- return HAL_ERROR ;
2023+ return HAL_ERROR | 0x180 ;
20242024 }
20252025
20262026 if (iret != 0 )
20272027 {
2028- return HAL_ERROR ;
2028+ return HAL_ERROR | 0x170 ;
20292029 }
20302030
20312031 /* Check DDR PHY pads retention */
@@ -2064,7 +2064,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
20642064 /* 1.2. start CLOCK */
20652065 if (ddr_clk_enable (static_ddr_config .info .speed ) != 0 )
20662066 {
2067- return HAL_ERROR ;
2067+ return HAL_ERROR | 0x160 ;
20682068 }
20692069
20702070 /* 1.3. deassert reset */
@@ -2088,7 +2088,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
20882088 ret = set_reg (REG_REG , (uint32_t )& static_ddr_config .c_reg );
20892089 if (ret != HAL_OK )
20902090 {
2091- return ret ;
2091+ return ret | 0x150 ;
20922092 }
20932093
20942094 /* DDR3 = don't set DLLOFF for init mode */
@@ -2102,12 +2102,12 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
21022102 ret = set_reg (REG_TIMING , (uint32_t )& static_ddr_config .c_timing );
21032103 if (ret != HAL_OK )
21042104 {
2105- return ret ;
2105+ return ret | 0x140 ;
21062106 }
21072107 ret = set_reg (REG_MAP , (uint32_t )& static_ddr_config .c_map );
21082108 if (ret != HAL_OK )
21092109 {
2110- return ret ;
2110+ return ret | 0x130 ;
21112111 }
21122112
21132113 /* Keep the controller in self-refresh mode */
@@ -2123,7 +2123,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
21232123 ret = set_reg (REG_PERF , (uint32_t )& static_ddr_config .c_perf );
21242124 if (ret != HAL_OK )
21252125 {
2126- return ret ;
2126+ return ret | 0x120 ;
21272127 }
21282128
21292129 /* 2. deassert reset signal core_ddrc_rstn, aresetn and presetn */
@@ -2138,12 +2138,12 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
21382138 ret = set_reg (REGPHY_REG , (uint32_t )& static_ddr_config .p_reg );
21392139 if (ret != HAL_OK )
21402140 {
2141- return ret ;
2141+ return ret | 0x110 ;
21422142 }
21432143 ret = set_reg (REGPHY_TIMING , (uint32_t )& static_ddr_config .p_timing );
21442144 if (ret != HAL_OK )
21452145 {
2146- return ret ;
2146+ return ret | 0x100 ;
21472147 }
21482148
21492149 /* DDR3 = don't set DLLOFF for init mode */
@@ -2161,7 +2161,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
21612161 ret = ddrphy_idone_wait ();
21622162 if (ret != HAL_OK )
21632163 {
2164- return ret ;
2164+ return ret | 0xF0 ;
21652165 }
21662166
21672167 /*
@@ -2191,15 +2191,15 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
21912191 ret = HAL_DDR_PHY_Init (pir );
21922192 if (ret != HAL_OK )
21932193 {
2194- return ret ;
2194+ return ret | 0xE0 ;
21952195 }
21962196
21972197 if (iddr -> self_refresh )
21982198 {
21992199 ret = self_refresh_zcal (iddr -> zdata );
22002200 if (ret != HAL_OK )
22012201 {
2202- return ret ;
2202+ return ret | 0xD0 ;
22032203 }
22042204 }
22052205
@@ -2214,7 +2214,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
22142214 ret = wait_sw_done_ack ();
22152215 if (ret != HAL_OK )
22162216 {
2217- return ret ;
2217+ return ret | 0xC0 ;
22182218 }
22192219
22202220 /*
@@ -2233,7 +2233,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
22332233 ret = wait_operating_mode (DDRCTRL_STAT_OPERATING_MODE_NORMAL );
22342234 if (ret != HAL_OK )
22352235 {
2236- return ret ;
2236+ return ret | 0xB0 ;
22372237 }
22382238
22392239 /* Switch to DLL OFF mode */
@@ -2242,7 +2242,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
22422242 ret = ddr3_dll_off ();
22432243 if (ret != HAL_OK )
22442244 {
2245- return ret ;
2245+ return ret | 0xA0 ;
22462246 }
22472247 }
22482248
@@ -2260,7 +2260,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
22602260 ret = HAL_DDR_Refresh_Disable ();
22612261 if (ret != HAL_OK )
22622262 {
2263- return ret ;
2263+ return ret | 0x90 ;
22642264 }
22652265
22662266 /*
@@ -2283,7 +2283,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
22832283 ret = HAL_DDR_PHY_Init (pir );
22842284 if (ret != HAL_OK )
22852285 {
2286- return ret ;
2286+ return ret | 0x80 ;
22872287 }
22882288
22892289 /* 11. monitor PUB PGSR.IDONE to poll cpmpletion of training
@@ -2292,7 +2292,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
22922292 ret = ddrphy_idone_wait ();
22932293 if (ret != HAL_OK )
22942294 {
2295- return ret ;
2295+ return ret | 0x70 ;
22962296 }
22972297
22982298 /* Refresh compensation: forcing refresh command */
@@ -2301,7 +2301,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
23012301 ret = refresh_compensation (time );
23022302 if (ret != HAL_OK )
23032303 {
2304- return ret ;
2304+ return ret | 0x60 ;
23052305 }
23062306 }
23072307
@@ -2313,7 +2313,7 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
23132313 static_ddr_config .c_reg .PWRCTL );
23142314 if (ret != HAL_OK )
23152315 {
2316- return ret ;
2316+ return ret | 0x50 ;
23172317 }
23182318
23192319
@@ -2337,21 +2337,21 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
23372337 uret = ddr_test_rw_access ();
23382338 if (uret != 0U )
23392339 {
2340- return HAL_ERROR ;
2340+ return HAL_ERROR | 0x200 ;
23412341 }
23422342
23432343 /* Restore area overwritten by training */
23442344 if (!restore_ddr_training_area ())
23452345 {
2346- return HAL_ERROR ;
2346+ return HAL_ERROR | 0x210 ;
23472347 }
23482348 }
23492349 else
23502350 {
23512351 uret = ddr_test_data_bus ();
23522352 if (uret != 0U )
23532353 {
2354- return HAL_ERROR ;
2354+ return HAL_ERROR | 0x30 ;
23552355 }
23562356
23572357 uret = ddr_test_addr_bus ();
@@ -2363,22 +2363,22 @@ uint32_t HAL_DDR_Init(DDR_InitTypeDef *iddr)
23632363 uret = ddr_check_size ();
23642364 if (uret < static_ddr_config .info .size )
23652365 {
2366- return HAL_ERROR ;
2366+ return HAL_ERROR | 0x10 ;
23672367 }
23682368 }
23692369
23702370 /* Switch to Self-Refresh mode defined by the settings */
23712371 if (HAL_DDR_SR_SetMode (ddr_sr_read_mode ()) != HAL_OK )
23722372 {
23732373 /* Unable to switch to the predefined self-refresh mode */
2374- return HAL_ERROR ;
2374+ return HAL_ERROR | 0x20 ;
23752375 }
23762376
23772377#ifndef DCACHE_OFF
23782378 __set_SCTLR (__get_SCTLR () | SCTLR_C_BIT );
23792379#endif /* DCACHE_OFF */
23802380
2381- return ret ;
2381+ return 0 ; // ret;
23822382}
23832383
23842384/**
0 commit comments