Skip to content

Commit 8d00a6f

Browse files
committed
modify config file
1 parent 93b6d55 commit 8d00a6f

File tree

3 files changed

+56
-9
lines changed

3 files changed

+56
-9
lines changed

storage/blockdevice/COMPONENT_OSPIF/include/OSPIF/MX25LM51245G_config.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,13 @@
2525
// The code below can be removed when users test with the new flash.
2626
#define NEED_DEFINE_SFDP_PARA
2727

28-
#define MX25LM51245G_FLASH_SIZE 0x4000000 /* 512 MBits => 64 MBytes */
29-
#define MX25LM51245G_BLOCK_SIZE 0x10000 /* 1024 blocks of 64 KBytes */
30-
#define MX25LM51245G_SECTOR_SIZE 0x1000 /* 16384 sectors of 4 kBytes */
31-
#define MX25LM51245G_PAGE_SIZE 0x100 /* 262144 pages of 256 bytes */
32-
#define MX25LM51245G_CHUNK_SIZE 0x10 /* fred: 16 bytes */
28+
#define OSPIF_CR2_OPI_EN_ADDR 0x00000000
29+
30+
#define MX_FLASH_BLOCK_SIZE 0x10000 /* 1024 blocks of 64 KBytes */
31+
#define MX_FLASH_SECTOR_SIZE 0x1000 /* 16384 sectors of 4 kBytes */
32+
#define MX_FLASH_PAGE_SIZE 0x100 /* 262144 pages of 256 bytes */
33+
#define MX_FLASH_CHUNK_SIZE 0x10 /* 16 bytes */
34+
#define MX_FLASH_BANK_SIZE 0x01000000 /* 16 MBytes */
35+
#define MX_FLASH_BANK_SIZE_MASK ~(MX_FLASH_BANK_SIZE - 1) /* 0xFF000000 */
3336

3437
#endif // MBED_OSPI_FLASH_MX25LM51245G_H
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/* mbed Microcontroller Library
2+
* Copyright (c) 2020 ARM Limited
3+
* SPDX-License-Identifier: Apache-2.0
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
#ifndef MBED_OSPI_FLASH_MX25LW51245G_H
18+
#define MBED_OSPI_FLASH_MX25LW51245G_H
19+
20+
#define OSPI_FLASH_CHIP_STRING "macronix MX25LW51245G"
21+
22+
// This is a workaround,
23+
// The sfdp parameter values in Macronix old octaflash(include the MX25LW51245G on L4R9I_DISCO) are all 0xFF,
24+
// so we need to define the parameter values by software to support SFDP parsing.
25+
// The code below can be removed when users test with the new flash.
26+
#define NEED_DEFINE_SFDP_PARA
27+
28+
#define MX_FLASH_SUPPORT_RWW 1
29+
30+
// Configuration Register2 address
31+
#define OSPIF_CR2_OPI_EN_ADDR 0x00000000
32+
#define OSPIF_CR2_BANK_STATUS_ADDR 0xc0000000
33+
#define OSPIF_CR2_RWWDI ((uint8_t)0x00) /*!< No active program or erase operation */
34+
#define OSPIF_CR2_RWWDS ((uint8_t)0x01) /*!< Program/erase in other bank */
35+
#define OSPIF_CR2_RWWBS ((uint8_t)0x03) /*!< program/erase operation in addressed bank */
36+
37+
#define MX_FLASH_BLOCK_SIZE 0x10000 /* 1024 blocks of 64 KBytes */
38+
#define MX_FLASH_SECTOR_SIZE 0x1000 /* 16384 sectors of 4 kBytes */
39+
#define MX_FLASH_PAGE_SIZE 0x100 /* 262144 pages of 256 bytes */
40+
#define MX_FLASH_CHUNK_SIZE 0x10 /* 16 bytes */
41+
#define MX_FLASH_BANK_SIZE 0x01000000 /* 16 MBytes */
42+
#define MX_FLASH_BANK_SIZE_MASK ~(MX_FLASH_BANK_SIZE - 1) /* 0xFF000000 */
43+
44+
#endif // MBED_OSPI_FLASH_MX25LW51245G_H

storage/blockdevice/COMPONENT_OSPIF/source/OSPIFBlockDevice.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -407,7 +407,7 @@ int OSPIFBlockDevice::read(void *buffer, bd_addr_t addr, bd_size_t size)
407407

408408
#ifdef MX_FLASH_SUPPORT_RWW
409409
bool need_wait;
410-
need_wait = (_wait_flag != NOT_STARTED) && ((addr & MX25LW51245G_BANK_SIZE_MASK) == _busy_bank);
410+
need_wait = (_wait_flag != NOT_STARTED) && ((addr & MX_FLASH_BANK_SIZE_MASK) == _busy_bank);
411411

412412
// Wait for ready
413413
if (need_wait) {
@@ -499,7 +499,7 @@ int OSPIFBlockDevice::program(const void *buffer, bd_addr_t addr, bd_size_t size
499499

500500
#ifdef MX_FLASH_SUPPORT_RWW
501501
_wait_flag = WRITE_WAIT_STARTED;
502-
_busy_bank = addr & MX25LW51245G_BANK_SIZE_MASK;
502+
_busy_bank = addr & MX_FLASH_BANK_SIZE_MASK;
503503

504504
_mutex.unlock();
505505

@@ -606,7 +606,7 @@ int OSPIFBlockDevice::erase(bd_addr_t addr, bd_size_t size)
606606

607607
#ifdef MX_FLASH_SUPPORT_RWW
608608
_wait_flag = ERASE_WAIT_STARTED;
609-
_busy_bank = addr & MX25LW51245G_BANK_SIZE_MASK;
609+
_busy_bank = addr & MX_FLASH_BANK_SIZE_MASK;
610610

611611
_mutex.unlock();
612612

@@ -1631,7 +1631,7 @@ bool OSPIFBlockDevice::_is_mem_ready_rww(bd_addr_t addr, uint8_t rw)
16311631
static uint32_t rww_cnt = 0; // For testing
16321632
static uint32_t rwe_cnt = 0; // For testing
16331633

1634-
bd_addr_t bank_addr = addr & MX25LW51245G_BANK_SIZE_MASK;
1634+
bd_addr_t bank_addr = addr & MX_FLASH_BANK_SIZE_MASK;
16351635

16361636
if ((_wait_flag == NOT_STARTED) || (!rw && bank_addr != _busy_bank)) {
16371637
return mem_ready;

0 commit comments

Comments
 (0)