5 Replies Latest reply on May 26, 2019 10:44 PM by AmyW_86

    MB91F526LSB 1828 801 erase process

    krishnaiah.bommu_4116076

      I am from Intel.

       

      In my project I am using two IO controllers same version but different manufacturing dates

      1. Old(MB91F526LSB 1551 Z01)
      2. New(MB91F526LSB 1828 801)

       

      I am able to erase Old(MB91F526LSB 1551 Z01) IO controller memory with my bootloader code, I used same bootloader code to erase New(MB91F526LSB 1828 801) IO controllers but  last sector was not erased on New(MB91F526LSB 1828 801) IO controllers device.

       

      Erase process:

      Doing erase process for every sector from 0x7C000UL to 0x17FFFF and excepting 0xFF in the erased memory.

      uart_print_debug_string("Erasing main application flash area ... \n");

      flash_routines_erase_sector( 0x7C000UL);                

      flash_routines_erase_sector( 0x80000UL);

      flash_routines_erase_sector( 0xA0000UL);

      flash_routines_erase_sector( 0xC0000UL);

      flash_routines_erase_sector( 0xE0000UL);

      flash_routines_erase_sector(0x100000UL);

      flash_routines_erase_sector(0x120000UL);

      flash_routines_erase_sector(0x140000UL);

      flash_routines_erase_sector(0x160000UL);

      blank_check_result = flash_routines_blank_check(0x7C000, 0x17FFFF);       ==>blank check(checking for 0xFF) failed for last sector(from0x160000UL to  0x17FFFF) of New(MB91F526LSB 1828 801) device.

       

      Erase sequence(here x is sector address)

      #define MAINFLASH_SECTOR_ERASE_SEQUENCE(X) *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00001554 ) = 0x00AA; \

                  *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00000AA8 ) = 0x0055; \

                  *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00001554 ) = 0x0080; \

                  *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00001554 ) = 0x00AA; \

                  *(volatile unsigned short *)( ( X & 0x001F0000 ) | 0x00000AA8 ) = 0x0055; \

                  *(volatile unsigned short *)( X ) = 0x0030;

       

       

      Is there any deference to erase new(MB91F526LSB 1828 801)IO controller memory apart from old(MB91F526LSB 1551 Z01) IO controller memory ?.

      If it’s possible can you please provide sample code to erase New(MB91F526LSB 1828 801) IO controller memory.