
Hi Jagan,
On Tue, 3 Aug 2021 at 09:01, Jagan Teki jagan@amarulasolutions.com wrote:
Yes, this is the old discussion and triggered again now since we had a discussion on the last U-Boot contributor call.
I will brief the main points here, as most of the details are mentioned in previous threads.
Here are the couple of old and new implementations on the SPI-NOR side.
http://u-boot.10912.n7.nabble.com/PATCH-v10-00-27-dm-Generic-MTD-Subsystem-w... http://u-boot.10912.n7.nabble.com/PATCH-0-5-mtd-Implement-MTD-UCLASS-use-SPI... https://patchwork.ozlabs.org/project/uboot/cover/20200709111709.68904-1-jaga...
Idea is to
- Create MTD_UCLASS, already present
- Create DM MTD Operations, above patchset does.
- Create Flash specific MTD UClass's like UCLASS_NAND UCLASS_SPI_NAND UCLASS_SPI_NOR UCLASS_NOR UCLASS_UBI
and register to UCLASS_MTD as interface slaves like how MMC, SCSI are registered to UCLASS_BLK 4. Sync only respective flash specific code, and drop __UBOOT__ 5. Interface mtd, sf, and nand commands to UCLASS_MTD.
This all seems good to me.
Hard points:
- Hard to arrange Linux specific code and drop unneeded _UBOOT_ code,
but possible. 2. Requires a lot of testing.
Let's add simple emulators for NAND, SPI_NAND and UBI. We already have one for SPI_NOR I believe. That will be a good long-term investment.
Regards, Simon