目录
一、简介
本文主要是针对ARM A55集成了AHSATA controller模块开发sata驱动,通过Platform的形式在linux识别到SSD,本文详细讲述整个开发过程,同时对SATA Platform驱动进行讲解。
二、驱动开发
2.1 整体开发过程总结
1、配置SATA Phy的初始化;
2、打开SATA Platform相关编译开关;
3、配置设备树;
4、linux启动识盘。
2.2 详细过程
1、Phy的配置
因为该芯片集成的是Synopsys的SATA IP,要通过SPCS的方式写入Phy的配置,同时设置OOB和CLOCK,因为代码不具有通用性就只粘贴一部分。
2、内核config配置
CONFIG_DAPU_AHCI_HOST=y
CONFIG_ATA=y
CONFIG_SATA_HOST=y
CONFIG_ATA_VERBOSE_ERROR=y
CONFIG_ATA_FORCE=y
CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI_PLATFORM=y
CONFIG_ATA_SFF=y
CONFIG_PATA_PLATFORM=y
CONFIG_PATA_OF_PLATFORM=y
#CONFIG_CHR_DEV_SG=y
注意CONFIG_CHR_DEV_SG=y要注释掉,该模块会影响CPU多核启动。
3、配置设备树
sata: ahci@25000000 {
compa