mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #9408 from evva-sfw/feature/SPIF_ULBPR
SPIF - Fix command to unlock Global Block-Protection registerpull/9483/head
commit
0c85d441d2
|
|
@ -95,6 +95,7 @@ enum qspif_default_instructions {
|
|||
QSPIF_RSTEN = 0x66, // Reset Enable
|
||||
QSPIF_RST = 0x99, // Reset
|
||||
QSPIF_RDID = 0x9f, // Read Manufacturer and JDEC Device ID
|
||||
QSPIF_ULBPR = 0x98, // Clears all write-protection bits in the Block-Protection register
|
||||
};
|
||||
|
||||
// Local Function
|
||||
|
|
@ -204,9 +205,9 @@ int QSPIFBlockDevice::init()
|
|||
switch (vendor_device_ids[0]) {
|
||||
case 0xbf:
|
||||
// SST devices come preset with block protection
|
||||
// enabled for some regions, issue write disable instruction to clear
|
||||
// enabled for some regions, issue global protection unlock to clear
|
||||
_set_write_enable();
|
||||
_qspi_send_general_command(QSPIF_WRDI, QSPI_NO_ADDRESS_COMMAND, NULL, 0, NULL, 0);
|
||||
_qspi_send_general_command(QSPIF_ULBPR, QSPI_NO_ADDRESS_COMMAND, NULL, 0, NULL, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -40,6 +40,7 @@ enum ops {
|
|||
SPIF_WRDI = 0x04, // Write Disable
|
||||
SPIF_RDSR = 0x05, // Read Status Register
|
||||
SPIF_RDID = 0x9f, // Read Manufacturer and JDEC Device ID
|
||||
SPIF_ULBPR = 0x98, // Clears all write-protection bits in the Block-Protection register
|
||||
};
|
||||
|
||||
// Status register from RDSR
|
||||
|
|
@ -66,9 +67,9 @@ int SPIFReducedBlockDevice::init()
|
|||
switch (id[0]) {
|
||||
case 0xbf:
|
||||
// SST devices come preset with block protection
|
||||
// enabled for some regions, issue gbpu instruction to clear
|
||||
// enabled for some regions, issue global protection unlock to clear
|
||||
_wren();
|
||||
_cmdwrite(0x98, 0, 0, 0x0, NULL);
|
||||
_cmdwrite(SPIF_ULBPR, 0, 0, 0x0, NULL);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -88,6 +88,7 @@ enum spif_default_instructions {
|
|||
SPIF_RSTEN = 0x66, // Reset Enable
|
||||
SPIF_RST = 0x99, // Reset
|
||||
SPIF_RDID = 0x9f, // Read Manufacturer and JDEC Device ID
|
||||
SPIF_ULBPR = 0x98, // Clears all write-protection bits in the Block-Protection register
|
||||
};
|
||||
|
||||
// Mutex is used for some SPI Driver commands that must be done sequentially with no other commands in between
|
||||
|
|
@ -167,9 +168,9 @@ int SPIFBlockDevice::init()
|
|||
switch (vendor_device_ids[0]) {
|
||||
case 0xbf:
|
||||
// SST devices come preset with block protection
|
||||
// enabled for some regions, issue write disable instruction to clear
|
||||
// enabled for some regions, issue global protection unlock to clear
|
||||
_set_write_enable();
|
||||
_spi_send_general_command(SPIF_WRDI, SPI_NO_ADDRESS_COMMAND, NULL, 0, NULL, 0);
|
||||
_spi_send_general_command(SPIF_ULBPR, SPI_NO_ADDRESS_COMMAND, NULL, 0, NULL, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue