@@ -483,7 +483,9 @@ static uint32_t dosfs_sflash_nor_identify(dosfs_sflash_t *sflash)
483
483
QSPI_COMMAND_DATA_SINGLE | QSPI_COMMAND_ADDRESS_SINGLE | QSPI_COMMAND_INSTRUCTION_SINGLE | 0x0b );
484
484
#endif
485
485
486
- return data_size ;
486
+ stm32l4_qspi_unselect (& sflash -> qspi );
487
+
488
+ return data_size ;
487
489
}
488
490
489
491
static bool dosfs_sflash_nor_erase (dosfs_sflash_t * sflash , uint32_t address )
@@ -2447,9 +2449,11 @@ static int dosfs_sflash_format(void *context)
2447
2449
int status = F_NO_ERROR ;
2448
2450
2449
2451
#if (DOSFS_CONFIG_SFLASH_SIMULATE_TRACE == 1 )
2450
- printf ("SFLASH_INFO \n" );
2452
+ printf ("SFLASH_FORMAT \n" );
2451
2453
#endif /* (DOSFS_CONFIG_SFLASH_SIMULATE_TRACE == 1) */
2452
2454
2455
+ stm32l4_qspi_select (& sflash -> qspi );
2456
+
2453
2457
dosfs_sflash_ftl_format (sflash );
2454
2458
2455
2459
if (!dosfs_sflash_ftl_mount (sflash ))
@@ -2463,6 +2467,8 @@ static int dosfs_sflash_format(void *context)
2463
2467
sflash -> state = DOSFS_SFLASH_STATE_READY ;
2464
2468
}
2465
2469
2470
+ stm32l4_qspi_unselect (& sflash -> qspi );
2471
+
2466
2472
return status ;
2467
2473
}
2468
2474
@@ -2482,6 +2488,8 @@ static int dosfs_sflash_reclaim(void *context, uint32_t size)
2482
2488
}
2483
2489
else
2484
2490
{
2491
+ stm32l4_qspi_select (& sflash -> qspi );
2492
+
2485
2493
if (size < sflash -> xlate_count )
2486
2494
{
2487
2495
size = size * 3 ;
@@ -2499,6 +2507,8 @@ static int dosfs_sflash_reclaim(void *context, uint32_t size)
2499
2507
2500
2508
dosfs_sflash_ftl_reclaim (sflash , victim_offset );
2501
2509
}
2510
+
2511
+ stm32l4_qspi_unselect (& sflash -> qspi );
2502
2512
}
2503
2513
2504
2514
return status ;
@@ -2519,12 +2529,16 @@ static int dosfs_sflash_discard(void *context, uint32_t address, uint32_t length
2519
2529
}
2520
2530
else
2521
2531
{
2532
+ stm32l4_qspi_select (& sflash -> qspi );
2533
+
2522
2534
while (length -- )
2523
2535
{
2524
2536
dosfs_sflash_ftl_discard (sflash , address );
2525
2537
2526
2538
address ++ ;
2527
2539
}
2540
+
2541
+ stm32l4_qspi_unselect (& sflash -> qspi );
2528
2542
}
2529
2543
2530
2544
return status ;
@@ -2545,7 +2559,11 @@ static int dosfs_sflash_read(void *context, uint32_t address, uint8_t *data)
2545
2559
}
2546
2560
else
2547
2561
{
2562
+ stm32l4_qspi_select (& sflash -> qspi );
2563
+
2548
2564
dosfs_sflash_ftl_read (sflash , address , data );
2565
+
2566
+ stm32l4_qspi_unselect (& sflash -> qspi );
2549
2567
}
2550
2568
2551
2569
return status ;
@@ -2566,12 +2584,16 @@ static int dosfs_sflash_read_sequential(void *context, uint32_t address, uint32_
2566
2584
}
2567
2585
else
2568
2586
{
2587
+ stm32l4_qspi_select (& sflash -> qspi );
2588
+
2569
2589
while (length -- )
2570
2590
{
2571
2591
dosfs_sflash_ftl_read (sflash , address , data );
2572
2592
2573
2593
address ++ ;
2574
2594
}
2595
+
2596
+ stm32l4_qspi_unselect (& sflash -> qspi );
2575
2597
}
2576
2598
2577
2599
return status ;
@@ -2592,7 +2614,11 @@ static int dosfs_sflash_write(void *context, uint32_t address, const uint8_t *da
2592
2614
}
2593
2615
else
2594
2616
{
2617
+ stm32l4_qspi_select (& sflash -> qspi );
2618
+
2595
2619
dosfs_sflash_ftl_write (sflash , address , data );
2620
+
2621
+ stm32l4_qspi_unselect (& sflash -> qspi );
2596
2622
}
2597
2623
2598
2624
return status ;
@@ -2613,14 +2639,17 @@ static int dosfs_sflash_write_sequential(void *context, uint32_t address, uint32
2613
2639
}
2614
2640
else
2615
2641
{
2642
+ stm32l4_qspi_select (& sflash -> qspi );
2643
+
2616
2644
while (length -- )
2617
2645
{
2618
2646
dosfs_sflash_ftl_write (sflash , address , data );
2619
2647
2620
2648
address ++ ;
2621
2649
}
2622
- }
2623
2650
2651
+ stm32l4_qspi_unselect (& sflash -> qspi );
2652
+ }
2624
2653
2625
2654
return status ;
2626
2655
}
@@ -2666,6 +2695,8 @@ int dosfs_sflash_init(uint32_t param, const F_INTERFACE **p_interface, void **p_
2666
2695
}
2667
2696
else
2668
2697
{
2698
+ stm32l4_qspi_select (& sflash -> qspi );
2699
+
2669
2700
sflash -> xlate_count = ((((sflash -> data_size / DOSFS_SFLASH_ERASE_SIZE ) * ((DOSFS_SFLASH_ERASE_SIZE / DOSFS_SFLASH_BLOCK_SIZE ) - 1 )) - 2 ) + (DOSFS_SFLASH_XLATE_ENTRIES - 1 )) / DOSFS_SFLASH_XLATE_ENTRIES ;
2670
2701
2671
2702
sflash -> cache [0 ] = & dosfs_sflash_cache [0 ];
@@ -2681,6 +2712,8 @@ int dosfs_sflash_init(uint32_t param, const F_INTERFACE **p_interface, void **p_
2681
2712
{
2682
2713
sflash -> state = DOSFS_SFLASH_STATE_READY ;
2683
2714
}
2715
+
2716
+ stm32l4_qspi_unselect (& sflash -> qspi );
2684
2717
}
2685
2718
}
2686
2719
0 commit comments