8. SATA 使用¶
8.1. 简介¶
iCore-3576Q 开发板上有 1 个 M.2 接口。
可以软件配置成 M.2 SATA3.1 接口,支持 SATA 协议的 SSD 使用,也可以软件配置成 M.2 PCIe2.1 接口,支持 NVMe 协议的 SSD 使用。
默认软件配置成 M.2 SATA3.1 接口, 支持 SATA 协议的 SSD 使用。
8.2. 软件配置¶
一般根据原理图在 DTS 中选择正确的控制器节点和 PHY 节点使能,并关闭与其复用的控制器节点就可以。
在 kernel/arch/arm64/boot/dts/rockchip/rk3576-firefly-aio-3576q.dts
以及 kernel/arch/arm64/boot/dts/rockchip/rk3576-firefly-aio-3576q.dtsi
中有如下配置:
#define SATA 1
#define PCIE 0
#if SATA && ( PCIE == 0 )
&sata0 {
status = "okay";
pinctrl-0 = <&sata_reset>;
pinctrl-names = "default";
};
#endif
#if PCIE && ( SATA == 0 )
&pcie0 {
status = "okay";
reset-gpios = <&gpio4 RK_PA7 GPIO_ACTIVE_HIGH>;
};
#endif
sata0
:sata0 控制器节点
pcie0
:pcie0 控制器节点
默认配置成SATA3.1,如果需要配置成 PCIe2.1,需做如下修改,二者只能使能其一
#define SATA 0
#define PCIE 1
8.3. 挂载¶
8.3.1. 自动挂载¶
在 Android 系统界面中将硬盘格式化为可用格式就可以开机自动挂载
8.3.2. 命令手动挂载¶
查找设备节点
ls /dev/block/sd*
/dev/block/sda
格式化为EXT4文件格式
mkfs.ext4 /dev/block/sda
挂载
mount /dev/block/sda /mnt/media_rw/
查看挂载路径
df -h
/dev/block/sda 916G 24K 916G 1% /mnt/media_rw
或者
cat /proc/mounts | grep sda
/dev/block/sda /mnt/media_rw ext4 rw,seclabel,relatime 0 0
8.4. 读写测速¶
SATA3.0 的传输速率理论上达到 6.0 Gbps,可以参考如下命令进行读写速度测试:
dd
# 路径根据实际挂载路径修改
# 写1G文件
echo 3 > /proc/sys/vm/drop_caches
busybox dd if=/dev/zero of=/mnt/media_rw/41AD-09EA/test1 bs=1M count=1024 conv=sync
# 读1G文件
echo 3 > /proc/sys/vm/drop_caches
busybox dd if=/mnt/media_rw/41AD-09EA/test1 of=/dev/null conv=sync
fio
# 使用 fio 会格式化硬盘
# 写
fio -filename=/dev/block/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=1M -size=200G -numjobs=30 -runtime=60 -group_reporting -name=mytes
# 读
fio -filename=/dev/block/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=1M -size=200G -numjobs=30 -runtime=60 -group_reporting -name=mytes