问题标签 [sata]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - DOS 引导使用 USB 看到长文件名,使用 Modular Bay 看到 8.3 FN
我为操作系统 (C:) 和软件开发项目 (D:) 使用不同的 Windows 驱动器分区,因此我可以轻松地备份项目和数据,与操作系统恢复分开。
我有一个外部 FAT32 SATA 磁盘,它设置为引导到 DOS 级别,所以我可以使用 Ghost 备份操作系统映像,并在以后恢复它们。
Ghost 图像是在“拆分”模式下创建的,因此有多个图像,文件名很长,如下所示:
- 戴尔工作-01.001
- 戴尔工作-01.002
- 戴尔工作-01.003
- DellWork-01.GHO
当我使用带有 USB 适配器的外部驱动器时,DOS/Ghost 可以很好地创建和读取长文件名。
但是,当我使用相同的外部 FAT32 SATA 驱动器并将“模块化托架”盒插入 CD 插槽时,DOS/Ghost 会看到短文件名,像这样......
- 戴尔~1.001
- 戴尔~1.002
- DELLWO~2.003(简称有时有不同的数字)
- DELLWO~1.GHO
...使所有 Ghost 快照不可用。当然,除非我使用 DOS 8.3 文件命名约定重命名它们。例子:
- DELLWO01.001
- DELLWO01.002
- DELLWO01.003
- DELLWO01.GHO
所以问题是:
- 为什么在模块化托架中使用 FAT32 SATA 驱动器时 DOS 会看到 8.3 文件名,而在 USB 适配器上使用相同的 FAT32 SATA 驱动器时 DOS 会看到长文件名?
其他信息... 在 DOS 级别:
Ghost 会看到具有长文件名的内部目标 NTFS 驱动器。
如果我将外部源 FAT32 驱动器放在内部 HD 插槽中,DOS 也会看到短文件名。
谢谢大家!
-乔
电脑规格:
戴尔 Latitude E6500
BIOS:A24
- CPU:英特尔酷睿 2 双核 2.66 GHz
- 操作系统:XP Pro 2002,SP3
内存:3.48 GB
幽灵版:11
目标还原驱动器格式:NTFS
- 外接SATA驱动器格式:FAT32
额外的信息:
谢谢,我发了这篇文章后也在想同样的事情。不确定 DOS 是否真的被调用,我不知道是什么让它支持长文件名。
Grub 加载一个启动菜单,它似乎直接调用 Ghost(?不确定),或者通过我不知道的 DOS 版本。
无论如何,我后来发现在不同的 E6500 上,Ghost 看到一个“1.1”驱动器(没有驱动器号),它显示了长文件名。而且,Ghost 会看到 C:,它显示短文件名(两个引用都指向同一个驱动器分区)。这个 1.1 驱动器在原电脑上是看不到的,只有 C: 带有短名称。
于是我对比了两台电脑的BIOS,发现如果我把原电脑的SATA操作设置为“AHCI”模式,Ghost就会看到1.1(长)和C:(短)。
我还在引导盘上找到了一个名为“DOSLFN.com”的程序,它加载了一个 TSR 并打开了 LFN 支持。
linux - AHCI specification
I have a question regarding the AHCI spec:
Is the variable pDmaXferCnt
in the port used when the transfer is a DMA write or read?
The description in the spec seems to indicate that it isn't, but the PRDs are used instead.
But how does the HBA know how much data is to be sent or received to/from a SATA device?
This information will be available in the sector count of a H2D FIS, but unless I have overlooked it there doesn't seem to be a register of variable that holds this value.
The DX:transmit
state also seems to indicate that pDmaXferCnt
will have a set value, yet I can’t see where it would be set for a DMA read/write operation.
Thanks
linux - Linux AHCI PRD 分配
我是一名硬件开发人员,正在为嵌入式系统创建 AHCI 接口。我想知道 PRD DMA 数据是在哪里创建并分配给 PRD 的。由于 SATA 使用 DWORDS,我假设数据将对齐为 4 个字节的倍数。我对Linux没有太多经验,所以如果有人能指出我正确的方向,我将不胜感激。
谢谢
hardware - 三星 Exynos 中的 SATA
请看下面的图片。
您可以看到三星将 SATA 3 集成到 Exynos 5 Dual 中。那么这是否意味着使用 Exynos 5 的智能手机将能够通过 SATA 接口连接到硬盘或光驱?我有什么误解吗?
另外,图中的 DMA(“32x DMA”)是指“直接内存访问”吗?
driver - Access SATA drive via AHCI directly in efi shell?
If we want to access(read/write) SATA drive via AHCI in EFI shell, is there any read/write interface used for this purpose ?
That is, does EFI shell application need to implement the AHCI spec to access drive ? (build command, issue command and process the command completion...)
Or application just calls specific "read/write" interfaces(like SCSI_PATH_THROUGH in Windows) and the "EFI ahci driver" converts these to low-level access routines ?
c - 如何识别硬盘使用的协议?
我有一个应用程序需要从硬盘读取信息,比如串行模型等。
现在当然重要的是驱动器是 SAS、SATA 还是 FC 驱动器。
有没有一种可靠的方法可以识别连接的驱动器使用的协议?通过操作系统命令或检查一些日志或查询设备?
我不想使用 sysfs 结构。我想知道操作系统如何知道它是 ATA、SCSI 还是任何类型的磁盘。
fpga - 为 Serial-ATA (Gen1/2/3) 配置 7 系列 GTXE2 收发器
您好,这将是一个专家问题:) 您应该熟悉以下主题
- Xilinx 多千兆位收发器 (MGT),尤其是 7 系列 GTX/GTH 收发器 (GTXE2_CHANNEL)
- 串行 ATA Gen1、Gen2 和 Gen3,尤其是带外 (OOB) 通信
问题:
应该如何为 Serial-ATA 配置 GTXE2?
OOB 信号在 RX_ElectricalIdle 和 ComInit 中都不起作用。
介绍:
我为我的最后一个本科项目实现了一个 SATA 控制器,它支持多个供应商/设备平台(Xilinx Virtex-5、Altera Stratix II、Altera Stratix IV)。现在是时候将该控制器移植到下一个器件系列:Xilinx 7 系列器件,即 KC705 板上的 Kintex-7。
SATA 控制器在物理层中有一个额外的抽象层,它基于 SAPIS 和 PIPE 3.0。因此,要将 SATA 控制器移植到新的设备系列,我只需为 GTXE2 MGT 编写一个新的收发器包装器。
由于 Xilinx 的 CoreGenerator 不支持 CoreGen 向导中的 SATA 协议,我从头开始了一个收发器项目,并根据向导的要求应用了所有必要的设置。之后,我将 GTXE2_COMMON 实例复制到我的包装模块中,将泛型和端口排序为一个有意义的完整模式。
作为第三步,我将所有未连接的端口(向导不会分配所有值!!)连接到它们的默认值(来自 UG476 的默认值,如果未定义,则为零)。
在第 4 步中,如果它们与 SATA 设置兼容,我会再次对照 UG476 检查所有泛型和端口。之后,我将包装器端口连接到 MGT 并在必要时插入交叉时钟模块。
由于 KC705 板没有 150 MHz 参考时钟,我对 Si570 进行编程以在每个板“启动”后将此时钟作为“ProgUser_Clock”提供。在重新配置时,MGT 处于断电模式 (P2)。当 Si570 稳定时,MGT 上电,使用的通道 PLL (CPLL) 在 ca 后锁定。6180 个时钟周期。此 CPLL_Locked 事件释放 GTX_TX|RX_Reset 线,这会在额外的 270|1760 个周期(所有周期 @ 150 MHz -> 6.6 ns)后导致 GTX_TX|RX_ResetDone 事件。
这种行为可以在chipscope中看到,使用稳定、不间断的辅助时钟(200 MHz,略微过采样)捕获。
所以 GXTE2 接缝上电、运行和所有时钟都稳定。
GTXE2 端口控制 OOB 信令:
MGT 有几个用于 OOB 信令的端口。在 TX,这些是:
- TX_ElectricalIdle - 强制 TX 进入电气空闲状态
- TX_ComInit - 发送一个 ComInit 序列
- TX_ComWake - 发送 ComWake 序列
- TX_ComFinish - 序列已发送 -> 准备好下一个命令
在 RX 上:
- RX_ElectricalIdle - RX_n/TX_p 处于电气空闲状态(低级接口)
- RX_ComInit_Detected - 发送了完整的 ComInit 序列
- RX_ComWake_Detected - 发送了完整的 ComWake 序列
详细错误说明:
- 如果 TX_ComInit 在一个周期内为高电平,则 TX 不发送 OOB 序列。
- RX_ElectricalIdle 始终为高电平
测试:
- SATA 环回电缆:剪断 SATA 电缆并焊接适当的电线;)——我正在使用特殊的 SFP 到 SATA 适配器,它通过 SATA 连接器扩展 KC705 - http://shop.trioflex.ee/product.php ?id_product=73
- SMA 环回电缆:我移动了 MGT 并将 LVDS 线连接到 SMA 插孔,并安装了 2 条 SMA 电缆作为交叉线。
- 我用板载 SATA 连接器对旧的 ML505 (Virtex-5) 进行了编程,以发送 ComInit 序列。2 块板通过特殊的 SATA 交叉电缆连接。
- 我将带有部分剥离 SATA 电缆的 HDD 连接到 KC705(SFP2SATA 适配器)并连接了 2.5 GSps 示波器(是的,信号采样不足,但很高兴看到突发和空闲时间......)。
经验:
- 测试 3 显示从 Virtex-5 传输到 Kintex-7 的 OOB 序列,但未发生 ChipScope 触发事件 - Rx_ElectricalIdle 仍然为高电平。
- 测试 4 显示电缆上没有传输的 OOB 序列。
我应该发布零件还是完整的收发器实例化?
只有实例有 ca。650行:(
请询问您是否需要更多信息,图像,代码,... :)
附录:
电气空闲意味着 MGT 以 0..2000 mV 范围内的共模电压 (V_cm) 驱动两条 LVDS 线 (TX_n/TX_p)。如果满足此条件,则共模增量电压小于 100 mV,称为 ElectricalIdle 条件。
OOB 信令意味着 MGT 在 LVDS 线上传输电空闲和正常数据符号(8b/10b 表示法中的 D10.2)突发。SATA/SAS 定义了 3 个 OOB 序列,称为 ComInit、ComWake、ComSAS,它们具有不同的突发/空闲持续时间。主机控制器和设备使用这些“莫尔斯信号”来建立链接。
assembly - 如何知道bios驱动号。用于第三个主 SATA 硬盘?
到目前为止,我使用的是 IDE 硬盘,并且能够使用 BIOS 调用甚至 LBA 28 直接硬件访问使用 PIO 模式进行访问,而无需任何操作系统调用。现在我购买了新的 SATA 500 GB 硬盘,它是我唯一连接到 SATA 1 端口的硬盘。我的 BIOS 将其显示为 3rd Master Hard Disk 并且主要和次要主机不存在。现在我已经在第一个运行正常的分区上安装了 MS DOS 5.0。但是现在我只能使用 DOS INT 25h 来读取从逻辑扇区 0 开始的硬盘扇区。这意味着我无法读取任何隐藏扇区,包括主引导记录。当我使用 BIOS int 13H 调用使用驱动器 80H 读取硬盘时,它不会返回任何错误,但什么也不读取。如果我使用驱动器 83H,它会给出驱动器不存在错误。如果我使用 DOS 功能,我可以将我的硬盘作为驱动器 c(驱动器 2)访问,但不能用于读取 MBR。如果我要为 int 13H 使用 MS 扩展,我必须知道 BIOS 驱动器号。谁能告诉我如何找到驱动器号。第三主硬盘?或者我必须使用哪个端口在兼容模式下使用 LBA 40(01f0 不起作用)访问硬盘?
windows - SATA控制器有多少物理通道?
想象一个带有一个 SATA 控制器的系统。如果控制器在 IDE 模式下运行,它将显示在设备管理器中,如下所示:
视窗XP:
Windows >= Vista:
如果控制器在 AHCI 模式下运行,它将在 XP 和 >= Vista 上显示为“SATA AHCI 控制器”。
AHCI 模式下的 SATA 控制器最多支持 32 个设备(32 位掩码表示设备连接)。我认为这只是软件限制,鉴于每个设备都需要单独的通道,因此不太可能存在这样的系统,其中 SATA 控制器与所有 32 个通道“连接”。但我认为 32 是一个数字,意味着控制器可以处理两个以上的设备,因此具有两个以上的通道。所以,我想问一下SATA控制器在实践中通常有多少通道。ATA控制器有两个通道,那么是不是说SATA控制器在IDE模式下为了软件兼容性有相同的通道数呢?或者它有两个以上的通道,但在 IDE 模式下只有前两个通道可用?(至少在 XP 上,因为“主要”渠道和“次要”渠道
c++ - 外置硬盘和内置硬盘有什么区别?
我想知道设备是通过 USB(意味着它是可移动硬盘驱动器)还是 SATA(意味着它是内部硬盘驱动器)连接的。这就是我获取设备列表的方式
在这样的操作之后,我为每个连接的卷得到以下结果:
如何检测连接考虑设备的接口(USB、SATA)?或者有没有其他方法可以使用 WinAPI 区分外部和内部 HDD?