Linux kernel中QSPI nor flash相关驱动文件:
1. drivers/spi/spi.c: 是linux spi通用框架代码, 向下适配ti mcspi以及ti qspi控制器驱动.
2. drivers/spi/spi-ti-qspi.c: TI qspi主控器驱动, 不同平台使用不同的主控驱动
3. drivers/mtd/devices/m25p80.c: m25p80.c和spi-nor.c都是linux spi nor驱动框架的一部分
4. drivers/mtd/spi/spi-nor/spi-nor.c: m25p80.c和spi-nor.c都是linux spi nor驱动框架的一部分
从架构图可以看出spi-nor是简单的粘合层, 把mtd调用转换为m25p80接口. spi-nor还包含了qspi芯片检测, 通过芯片ID, 确定spi nor的参数:sector size, nsectors, pagesize, flags.
1. drivers/spi/spi.c: 是linux spi通用框架代码, 向下适配ti mcspi以及ti qspi控制器驱动.
2. drivers/spi/spi-ti-qspi.c: TI qspi主控器驱动, 不同平台使用不同的主控驱动
3. drivers/mtd/devices/m25p80.c: m25p80.c和spi-nor.c都是linux spi nor驱动框架的一部分
4. drivers/mtd/spi/spi-nor/spi-nor.c: m25p80.c和spi-nor.c都是linux spi nor驱动框架的一部分
系统架构
从架构图可以看出spi-nor是简单的粘合层, 把mtd调用转换为m25p80接口. spi-nor还包含了qspi芯片检测, 通过芯片ID, 确定spi nor的参数:sector size, nsectors, pagesize, flags.
spi-nor驱动适配多种spi nor flash, 这些flash的驱动层代码差异, 由flash_info的几个参数表示.
spi-nor.c为mtd子系统服务, 为mtd层提供如下几个接口:
- spi_nor_write
- spi_nor_erase
- spi_nor_read
spi_