Linux下基于AHCI controller模块实现SATA Platform驱动附代码详细流程

本文详述了基于ARM A55平台的SATA驱动开发,涵盖Phy配置、内核配置、设备树设置和Linux启动识盘过程。通过对Platform驱动的讲解,阐述了SATA驱动的寄存器配置、控制器复位、FIS管理和数据传输的层次结构。链接提供了SATA HBA卡、FIS结构、PCIe专题知识等进一步阅读资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介

本文主要是针对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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值