Skip to content

Commit 5c975a2

Browse files
committed
HAL DDR driver returns more errors
1 parent 03b8437 commit 5c975a2

File tree

1 file changed

+26
-26
lines changed

1 file changed

+26
-26
lines changed

third-party/STM32MP13x_HAL_Driver/Src/stm32mp13xx_hal_ddr.c

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)