Skip to content

Commit

Permalink
[spinor]add spinor_global_unlock for spi nor flash
Browse files Browse the repository at this point in the history
  • Loading branch information
jianjunjiang committed Apr 25, 2023
1 parent 0b1ca5d commit b49c489
Showing 1 changed file with 78 additions and 1 deletion.
79 changes: 78 additions & 1 deletion spinor.c
Expand Up @@ -322,7 +322,32 @@ static int spinor_helper_init(struct xfel_ctx_t * ctx, struct spinor_pdata_t * p

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* write status */
/* global block/sector unlock */
cbuf[clen++] = SPI_CMD_FAST;
cbuf[clen++] = 1;
cbuf[clen++] = 0x98;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* wait busy */
cbuf[clen++] = SPI_CMD_SPINOR_WAIT;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* write enable */
cbuf[clen++] = SPI_CMD_FAST;
cbuf[clen++] = 1;
cbuf[clen++] = pdat->info.opcode_write_enable;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* write status 1 */
cbuf[clen++] = SPI_CMD_FAST;
cbuf[clen++] = 2;
cbuf[clen++] = OPCODE_WRSR;
Expand All @@ -337,6 +362,58 @@ static int spinor_helper_init(struct xfel_ctx_t * ctx, struct spinor_pdata_t * p
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* write enable */
cbuf[clen++] = SPI_CMD_FAST;
cbuf[clen++] = 1;
cbuf[clen++] = pdat->info.opcode_write_enable;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* write status 2 */
cbuf[clen++] = SPI_CMD_FAST;
cbuf[clen++] = 2;
cbuf[clen++] = 0x31;
cbuf[clen++] = 0;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* wait busy */
cbuf[clen++] = SPI_CMD_SPINOR_WAIT;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* write enable */
cbuf[clen++] = SPI_CMD_FAST;
cbuf[clen++] = 1;
cbuf[clen++] = pdat->info.opcode_write_enable;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* write status 3 */
cbuf[clen++] = SPI_CMD_FAST;
cbuf[clen++] = 2;
cbuf[clen++] = 0x11;
cbuf[clen++] = 0;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

/* spi select */
cbuf[clen++] = SPI_CMD_SELECT;
/* wait busy */
cbuf[clen++] = SPI_CMD_SPINOR_WAIT;
/* spi deselect */
cbuf[clen++] = SPI_CMD_DESELECT;

if(pdat->info.address_length == 4)
{
/* spi select */
Expand Down

0 comments on commit b49c489

Please sign in to comment.