@@ -349,127 +349,6 @@ uint32_t nand_read_spare_data(uint8_t *buf, uint32_t page, uint32_t offset,
349
349
return nand_get_status ();
350
350
}
351
351
352
- #if 0
353
- /**
354
- * @brief This routine write the spare area information for the specified
355
- * pages addresses.
356
- * @param buf: pointer on the Buffer containing data to be written
357
- * @param addr: First page address
358
- * @param num_spare_area_to_write: Number of Spare Area to write
359
- * @retval New status of the NAND operation. This parameter can be:
360
- * - NAND_TIMEOUT_ERROR: when the previous operation generate
361
- * a Timeout error
362
- * - NAND_READY: when memory is ready for the next operation
363
- * And the new status of the increment address operation. It can be:
364
- * - NAND_VALID_ADDRESS: When the new address is valid address
365
- * - NAND_INVALID_ADDRESS: When the new address is invalid address
366
- */
367
- uint32_t nand_write_spare_area (uint8_t * buf , nand_addr_t addr ,
368
- uint32_t num_spare_area_to_write )
369
- {
370
- uint32_t index = 0x00 , num_spare_area_written = 0x00 ,
371
- address_status = NAND_VALID_ADDRESS ;
372
- uint32_t status = NAND_READY , size = 0x00 ;
373
-
374
- while ((num_spare_area_to_write != 0x00 ) &&
375
- (address_status == NAND_VALID_ADDRESS ) && (status == NAND_READY ))
376
- {
377
- /* Page write Spare area command and address */
378
- * (__IO uint8_t * )(Bank_NAND_ADDR | CMD_AREA ) = NAND_CMD_AREA_C ;
379
- * (__IO uint8_t * )(Bank_NAND_ADDR | CMD_AREA ) = NAND_CMD_WRITE0 ;
380
-
381
- * (__IO uint8_t * )(Bank_NAND_ADDR | ADDR_AREA ) = 0x00 ;
382
- * (__IO uint8_t * )(Bank_NAND_ADDR | ADDR_AREA ) =
383
- ADDR_1st_CYCLE (ROW_ADDRESS );
384
- * (__IO uint8_t * )(Bank_NAND_ADDR | ADDR_AREA ) =
385
- ADDR_2nd_CYCLE (ROW_ADDRESS );
386
- * (__IO uint8_t * )(Bank_NAND_ADDR | ADDR_AREA ) =
387
- ADDR_3rd_CYCLE (ROW_ADDRESS );
388
-
389
- /* Calculate the size */
390
- size = NAND_SPARE_AREA_SIZE + (NAND_SPARE_AREA_SIZE *
391
- num_spare_area_written );
392
-
393
- /* Write the data */
394
- for (; index < size ; index ++ )
395
- * (__IO uint8_t * )(Bank_NAND_ADDR | DATA_AREA ) = buf [index ];
396
-
397
- * (__IO uint8_t * )(Bank_NAND_ADDR | CMD_AREA ) = NAND_CMD_WRITE_TRUE1 ;
398
-
399
- /* Check status for successful operation */
400
- status = nand_get_status ();
401
-
402
- if (status == NAND_READY )
403
- {
404
- num_spare_area_written ++ ;
405
-
406
- num_spare_area_to_write -- ;
407
-
408
- /* Calculate Next page Address */
409
- address_status = nand_addr_inc (& addr );
410
- }
411
- }
412
-
413
- return status | address_status ;
414
- }
415
-
416
- /**
417
- * @brief This routine read the spare area information from the specified
418
- * pages addresses.
419
- * @param buf: pointer on the Buffer to fill
420
- * @param addr: First page address
421
- * @param num_spare_area_to_read: Number of Spare Area to read
422
- * @retval New status of the NAND operation. This parameter can be:
423
- * - NAND_TIMEOUT_ERROR: when the previous operation generate
424
- * a Timeout error
425
- * - NAND_READY: when memory is ready for the next operation
426
- * And the new status of the increment address operation. It can be:
427
- * - NAND_VALID_ADDRESS: When the new address is valid address
428
- * - NAND_INVALID_ADDRESS: When the new address is invalid address
429
- */
430
- uint32_t nand_read_spare_area (uint8_t * buf , nand_addr_t addr ,
431
- uint32_t num_spare_area_to_read )
432
- {
433
- uint32_t num_spare_area_read = 0x00 , index = 0x00 ,
434
- address_status = NAND_VALID_ADDRESS ;
435
- uint32_t status = NAND_READY , size = 0x00 ;
436
-
437
- while ((num_spare_area_to_read != 0x0 ) &&
438
- (address_status == NAND_VALID_ADDRESS ))
439
- {
440
- /* Page Read command and page address */
441
- * (__IO uint8_t * )(Bank_NAND_ADDR | CMD_AREA ) = NAND_CMD_AREA_C ;
442
-
443
- * (__IO uint8_t * )(Bank_NAND_ADDR | ADDR_AREA ) = 0x00 ;
444
- * (__IO uint8_t * )(Bank_NAND_ADDR | ADDR_AREA ) =
445
- ADDR_1st_CYCLE (ROW_ADDRESS );
446
- * (__IO uint8_t * )(Bank_NAND_ADDR | ADDR_AREA ) =
447
- ADDR_2nd_CYCLE (ROW_ADDRESS );
448
- * (__IO uint8_t * )(Bank_NAND_ADDR | ADDR_AREA ) =
449
- ADDR_3rd_CYCLE (ROW_ADDRESS );
450
-
451
- /* Data Read */
452
- size = NAND_SPARE_AREA_SIZE + (NAND_SPARE_AREA_SIZE *
453
- num_spare_area_read );
454
-
455
- /* Get Data into Buffer */
456
- for ( ;index < size ; index ++ )
457
- buf [index ] = * (__IO uint8_t * )(Bank_NAND_ADDR | DATA_AREA );
458
-
459
- num_spare_area_read ++ ;
460
-
461
- num_spare_area_to_read -- ;
462
-
463
- /* Calculate page address */
464
- address_status = nand_addr_inc (& addr );
465
- }
466
-
467
- status = nand_get_status ();
468
-
469
- return status | address_status ;
470
- }
471
- #endif
472
-
473
352
uint32_t nand_erase_block (uint32_t page )
474
353
{
475
354
* (__IO uint8_t * )(Bank_NAND_ADDR | CMD_AREA ) = fsmc_cmd .erase1_cmd ;
@@ -569,55 +448,3 @@ uint32_t nand_read_status(void)
569
448
570
449
return status ;
571
450
}
572
-
573
- #if 0
574
- /**
575
- * @brief Increment the NAND memory address.
576
- * @param addr: address to be incremented.
577
- * @retval The new status of the increment address operation. It can be:
578
- * - NAND_VALID_ADDRESS: When the new address is valid address
579
- * - NAND_INVALID_ADDRESS: When the new address is invalid address
580
- */
581
- uint32_t nand_addr_inc (nand_addr_t * addr )
582
- {
583
- uint32_t status = NAND_VALID_ADDRESS ;
584
-
585
- addr -> page ++ ;
586
-
587
- if (addr -> page == NAND_BLOCK_SIZE )
588
- {
589
- addr -> page = 0 ;
590
- addr -> block ++ ;
591
-
592
- if (addr -> block == NAND_ZONE_SIZE )
593
- {
594
- addr -> block = 0 ;
595
- addr -> zone ++ ;
596
-
597
- if (addr -> zone == NAND_MAX_ZONE )
598
- status = NAND_INVALID_ADDRESS ;
599
- }
600
- }
601
-
602
- return status ;
603
- }
604
-
605
- uint32_t nand_raw_addr_to_nand_addr (uint32_t raw_addr , nand_addr_t * addr )
606
- {
607
- uint32_t blocks_in_zones , block_size ;
608
- uint32_t status = NAND_VALID_ADDRESS ;
609
-
610
- block_size = NAND_BLOCK_SIZE * NAND_PAGE_SIZE ;
611
- addr -> zone = raw_addr / (NAND_ZONE_SIZE * block_size );
612
- blocks_in_zones = addr -> zone * NAND_ZONE_SIZE ;
613
- addr -> block = raw_addr / block_size - blocks_in_zones ;
614
- addr -> page = raw_addr / NAND_PAGE_SIZE - (blocks_in_zones +
615
- addr -> block ) * NAND_BLOCK_SIZE ;
616
-
617
- if (addr -> zone == NAND_MAX_ZONE )
618
- status = NAND_INVALID_ADDRESS ;
619
-
620
- return status ;
621
- }
622
-
623
- #endif
0 commit comments