@@ -21,7 +21,7 @@ static const char *ddr_type_list[7] = {
21
21
"DDR4" , "DDR5" , "DDR5_RDIMM" , "LPDDR4" , "LPDDR5" , "QDRIV" , "UNKNOWN"
22
22
};
23
23
24
- static int is_ddr_csr_clkgen_locked (u32 clkgen_mask )
24
+ static int is_ddr_csr_clkgen_locked (u32 clkgen_mask , u8 num_port )
25
25
{
26
26
int ret ;
27
27
@@ -33,12 +33,14 @@ static int is_ddr_csr_clkgen_locked(u32 clkgen_mask)
33
33
return ret ;
34
34
}
35
35
36
- ret = wait_for_bit_le32 ((const void * )(ECC_INISTATUS_DERR )
37
- , clkgen_mask , true, TIMEOUT , false);
36
+ if (num_port == 3 ) {
37
+ ret = wait_for_bit_le32 ((const void * )(ECC_INISTATUS_DERR )
38
+ , clkgen_mask , true, TIMEOUT , false);
38
39
39
- if (ret ) {
40
- debug ("%s: ddr csr clkgenb locked is timeout\n" , __func__ );
41
- return ret ;
40
+ if (ret ) {
41
+ debug ("%s: ddr csr clkgenb locked is timeout\n" , __func__ );
42
+ return ret ;
43
+ }
42
44
}
43
45
44
46
return 0 ;
@@ -308,10 +310,12 @@ void init_mem_cal(struct io96b_info *io96b_ctrl)
308
310
for (i = 0 ; i < io96b_ctrl -> num_instance ; i ++ ) {
309
311
switch (i ) {
310
312
case 0 :
311
- ret = is_ddr_csr_clkgen_locked (DDR_CSR_CLKGEN_LOCKED_IO96B0_MASK );
312
- if (ret ) {
313
- printf ("%s: ckgena_lock iossm IO96B_0 is not locked\n" , __func__ );
314
- hang ();
313
+ if (io96b_ctrl -> ckgen_lock ) {
314
+ ret = is_ddr_csr_clkgen_locked (DDR_CSR_CLKGEN_LOCKED_IO96B0_MASK , io96b_ctrl -> num_port );
315
+ if (ret ) {
316
+ printf ("%s: ckgena_lock iossm IO96B_0 is not locked\n" , __func__ );
317
+ hang ();
318
+ }
315
319
}
316
320
ret = io96b_cal_status (io96b_ctrl -> io96b_0 .io96b_csr_addr );
317
321
if (ret ) {
@@ -325,10 +329,12 @@ void init_mem_cal(struct io96b_info *io96b_ctrl)
325
329
count ++ ;
326
330
break ;
327
331
case 1 :
328
- ret = is_ddr_csr_clkgen_locked (DDR_CSR_CLKGEN_LOCKED_IO96B1_MASK );
329
- if (ret ) {
330
- printf ("%s: ckgena_lock iossm IO96B_1 is not locked\n" , __func__ );
331
- hang ();
332
+ if (io96b_ctrl -> ckgen_lock ) {
333
+ ret = is_ddr_csr_clkgen_locked (DDR_CSR_CLKGEN_LOCKED_IO96B1_MASK , io96b_ctrl -> num_port );
334
+ if (ret ) {
335
+ printf ("%s: ckgena_lock iossm IO96B_1 is not locked\n" , __func__ );
336
+ hang ();
337
+ }
332
338
}
333
339
ret = io96b_cal_status (io96b_ctrl -> io96b_1 .io96b_csr_addr );
334
340
if (ret ) {
0 commit comments