Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add ondie and software ECC code to SPI NAND block device driver #15242

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

rogeryou
Copy link
Contributor

@rogeryou rogeryou commented Mar 10, 2022

Summary of changes

Add ondie and software ECC code to SPI NAND block device driver for using ondie ECC function of SPI NAND Flash like Macronix Flash MX31LF4GE4BC or external ECC.

Impact of changes

Migration actions required

Documentation


Pull request type

[] Patch update (Bug fix / Target update / Docs update / Test update / Refactor)
[X] Feature update (New feature / Functionality change / New API)
[] Major update (Breaking change E.g. Return code change / API behaviour change)

Test results

[] No Tests required for this change (E.g docs only update)
[] Covered by existing mbed-os tests (Greentea or Unittest)
[X] Tests / results supplied as part of this PR

his driver is tested on DISCO_L4R9I. The flash on this board is MX31LF4GE4BC. You need to replace it with MX31LF4GE4BC.

mbedgt: test case summary: 19 passes, 0 failures
mbedgt: all tests finished!
mbedgt: shuffle seed: 0.2715403632
mbedgt: test suite report:

target platform_name test suite result elapsed_time (sec) copy_method
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device OK 39.01 default
mbedgt: test suite results: 1 OK
mbedgt: test case report:
target platform_name test suite test case passed failed
--------------------- --------------- ------------------------------------------------------------------ --------------------------------------------------- -------- --------
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device DEFAULT Testing get type functionality 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing BlockDevice erase functionality 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing Deinit block device 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing Init block device 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing contiguous erase, write and read 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing multi threads erase program read 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing program read small data sizes 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing read write random blocks 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing unaligned erase blocks 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device FLASHIAP Testing write -> deinit -> init -> read 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing BlockDevice erase functionality 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing Deinit block device 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing Init block device 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing contiguous erase, write and read 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing multi threads erase program read 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing program read small data sizes 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing read write random blocks 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing unaligned erase blocks 1 0
DISCO_L4R9I-GCC_ARM DISCO_L4R9I storage-blockdevice-tests-tests-blockdevice-general_block_device SPINAND Testing write -> deinit -> init -> read 1 0
mbedgt: test case results: 19 OK
mbedgt: completed in 41.02 sec

Reviewers


@rogeryou rogeryou changed the title add ondie and software ECC code add ondie and software ECC code to SPI NAND block device driver Mar 10, 2022
@rogeryou rogeryou marked this pull request as ready for review March 10, 2022 01:55
@ciarmcom ciarmcom requested a review from a team March 10, 2022 02:00
@ciarmcom
Copy link
Member

@rogeryou, thank you for your changes.
@ARMmbed/mbed-os-maintainers please review.

@@ -4423,7 +4423,7 @@
"MX25LM51245G"
],
"components_add": [
"OSPIF"
"SPINAND"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi
Maybe you have worked with DISCO_L4R9I, but I think this is not supported with default HW ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, default DISCO_L4R9I is not supported SPI NAND Flash. I replace MX25LM51245G with MX31LF4GE4BC.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @jeromecoutant , since Mbed has ended its life, then which RTOS or platforms will new STM32 MCUs be promoted and supported to?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi
Zephyr is fully supported for all STM32

https://github.com/zephyrproject-rtos/hal_stm32

@rogeryou rogeryou force-pushed the macronix_spi_nand_add_ecc branch from 8b49682 to 0d1d09b Compare March 10, 2022 10:36
@mergify mergify bot dismissed 0xc0170’s stale review September 28, 2022 07:34

Pull request has been modified.

@rogeryou rogeryou force-pushed the macronix_spi_nand_add_ecc branch from 0c5050c to 57cf5cf Compare September 28, 2022 08:24
#include <stdlib.h>
#include <string.h>
#include "bch.h"

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not a single comment in the whole file?

@0xc0170
Copy link
Contributor

0xc0170 commented Jun 8, 2024

What shall we do with this PR??

As I commented earlier today in another PR, we have been merging bug fixes rather than feature/major updates.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants