diff options
author | Gurjant Kalsi <me@gurjantkalsi.com> | 2015-11-02 11:44:50 -0800 |
---|---|---|
committer | Gurjant Kalsi <me@gurjantkalsi.com> | 2015-11-02 11:44:50 -0800 |
commit | 2b1cd1069357ca1b5ee291cce10efd1e26ef6158 (patch) | |
tree | 4cdfea3bd35e021f8196132a4fbfacc3c409475f /platform | |
parent | 587c3f93b2a9be8ed64968522cd0f2f62798317b (diff) | |
download | common-2b1cd1069357ca1b5ee291cce10efd1e26ef6158.tar.gz |
[spiflash][bio][stm32f7] Fixed (sub)sector erase on spiflash device.
R=travisg@google.com, cpu@google.com
BUG=
Review URL: https://codereview.chromium.org/1410223011 .
Diffstat (limited to 'platform')
-rw-r--r-- | platform/stm32f7xx/qspi.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/platform/stm32f7xx/qspi.c b/platform/stm32f7xx/qspi.c index a67a3da5..482be26e 100644 --- a/platform/stm32f7xx/qspi.c +++ b/platform/stm32f7xx/qspi.c @@ -562,14 +562,20 @@ static ssize_t qspi_erase(bdev_t *device, uint32_t block_addr, uint32_t instruct switch (instruction) { case SUBSECTOR_ERASE_CMD: { num_erased_bytes = N25QXXA_SUBSECTOR_SIZE; - erase_cmd.AddressMode = get_address_size(block_addr); + erase_cmd.AddressSize = get_address_size(block_addr); erase_cmd.Instruction = get_specialized_instruction(instruction, block_addr); + erase_cmd.AddressMode = QSPI_ADDRESS_1_LINE; + erase_cmd.Address = block_addr; + break; } case SECTOR_ERASE_CMD: { num_erased_bytes = N25QXXA_SECTOR_SIZE; - erase_cmd.AddressMode = get_address_size(block_addr); + erase_cmd.AddressSize = get_address_size(block_addr); erase_cmd.Instruction = get_specialized_instruction(instruction, block_addr); + erase_cmd.AddressMode = QSPI_ADDRESS_1_LINE; + erase_cmd.Address = block_addr; + break; } case BULK_ERASE_CMD: { @@ -585,8 +591,6 @@ static ssize_t qspi_erase(bdev_t *device, uint32_t block_addr, uint32_t instruct } erase_cmd.InstructionMode = QSPI_INSTRUCTION_1_LINE; - erase_cmd.AddressSize = QSPI_ADDRESS_24_BITS; - erase_cmd.Address = block_addr; erase_cmd.AlternateByteMode = QSPI_ALTERNATE_BYTES_NONE; erase_cmd.DataMode = QSPI_DATA_NONE; erase_cmd.DummyCycles = 0; |