fuchsia.hardware.sdio

添加时间:HEAD

PROTOCOLS

设备

fuchsia.hardware.sdio/sdio.fidl 中定义

AckInBandIntr

参见上文。客户端应在开始等待中断后调用 AckInBandIntr() 对象,以防已经有一个待处理此函数的带内中断。

请求

<空>

DisableFn

请求

<空>

响应

名称类型
payload Device_DisableFn_Result

DisableFnIntr

请求

<空>

响应

名称类型
payload Device_DisableFnIntr_Result

DoRwByte

请求

名称类型
write bool
addr uint32
write_byte uint8

响应

名称类型
payload Device_DoRwByte_Result

DoRwTxn

客户端负责执行以下缓存操作:

收到读取请求后:

  • 使用 ZX_CACHE_FLUSH_DATA 调用 zx_cache_flush |ZX_CACHE_FLUSH_INVALIDATE 都已由客户端映射
  • 在所有其他缓冲区上使用 ZX_VMO_OP_CACHE_CLEAN_INVALIDATE 调用 zx_vmo_op_range。

请注意,在 DoRwTxn 返回之前写入缓冲区的任何部分都可能会破坏 收到的数据。

在发出写入请求之前:

  • 对由 客户端。
  • 在所有其他缓冲区上使用 ZX_VMO_OP_CACHE_CLEAN 调用 zx_vmo_op_range。

请求

名称类型
txn SdioRwTxn

响应

名称类型
payload Device_DoRwTxn_Result

DoVendorControlRwByte

对供应商 CCCR 寄存器执行读写操作。addr 必须位于 [0xF0, 0xFF] 中。

请求

名称类型
write bool
addr uint8
write_byte uint8

响应

名称类型
payload Device_DoVendorControlRwByte_Result

EnableFn

请求

<空>

响应

名称类型
payload Device_EnableFn_Result

EnableFnIntr

请求

<空>

响应

名称类型
payload Device_EnableFnIntr_Result

GetBlockSize

请求

<空>

响应

名称类型
payload Device_GetBlockSize_Result

GetDevHwInfo

请求

<空>

响应

名称类型
payload Device_GetDevHwInfo_Result

GetInBandIntr

返回一个虚拟中断,当卡发出信号时,SDIO 驱动程序将触发该中断 与此函数对应的中断。系统将不会触发其他中断 直到调用 AckInBandIntr() 为止。

请求

<空>

响应

名称类型
payload Device_GetInBandIntr_Result

IntrPending

如果函数 fn_idx 有等待中断的中断,返回 true,否则返回 false。

请求

<空>

响应

名称类型
payload Device_IntrPending_Result

IoAbort

以下函数会在函数 0 上访问卡通用控制寄存器 (CCCR)。 中止在指定函数上发生的 I/O 操作。

请求

<空>

响应

名称类型
payload Device_IoAbort_Result

PerformTuning

在后台执行调参。客户端可以使用此方法更新主机控制器延迟 以防公交车延迟因温度或其他因素而发生变化。例如: 客户端可以定期调用该方法,也可以仅在响应数据 CRC 错误时调用。您获得的 此调用所用的时间(以及其他请求被阻止的时间)为 取决于控制器

如果对 PerformTuning() 的另一个调用正在等待处理,则返回 ZX_ERR_ALREADY_BOUND。 否则,如果 SDMMC 驱动程序的调参过程失败,则返回 ZX_OK 或错误值(请参阅 SDMMC 协议)。

请求

<空>

响应

名称类型
payload Device_PerformTuning_Result

RegisterVmo

请求

名称类型
vmo_id uint32
vmo handle<vmo>
offset uint64
size uint64
vmo_rights uint32

响应

名称类型
payload Device_RegisterVmo_Result

RequestCardReset

核心驱动程序对卡进行硬重置并执行 SDIO 初始化的请求 序列。该回调将在卡片重新初始化后调用,并且 在此期间,来自此客户端的所有 IO 调用都将返回 ZX_ERR_SHOULD_WAIT。如果出现错误 所有后续 IO 调用都将返回 ZX_ERR_IO_NOT_PRESENT。 从这种情况中恢复的唯一方法是再次调用 RequestCardReset()

在执行 和重新初始化。重置后,客户必须自行执行 初始化步骤,例如调用 EnableFnIntr()UpdateBlockSize()

无论重置状态如何,系统始终可以调用 VMO 注册方法。

用于硬重置卡的具体方法因平台或主板而异;示例 包括切换 GPIO 重置或重启显卡。

请求

<空>

响应

名称类型
payload Device_RequestCardReset_Result

UnregisterVmo

请求

名称类型
vmo_id uint32

响应

名称类型
payload Device_UnregisterVmo_Result

UpdateBlockSize

请求

名称类型
blk_sz uint16
deflt bool

响应

名称类型
payload Device_UpdateBlockSize_Result

DriverDevice

fuchsia.hardware.sdio/sdio.fidl 中定义

Device 协议的驱动程序传输变体。

AckInBandIntr

参见上文。客户端应在开始等待中断后调用 AckInBandIntr() 对象,以防已经有一个待处理此函数的带内中断。

请求

<空>

DisableFn

请求

<空>

响应

名称类型
payload Device_DisableFn_Result

DisableFnIntr

请求

<空>

响应

名称类型
payload Device_DisableFnIntr_Result

DoRwByte

请求

名称类型
write bool
addr uint32
write_byte uint8

响应

名称类型
payload Device_DoRwByte_Result

DoRwTxn

客户端负责执行以下缓存操作:

收到读取请求后:

  • 使用 ZX_CACHE_FLUSH_DATA 调用 zx_cache_flush |ZX_CACHE_FLUSH_INVALIDATE 都已由客户端映射
  • 在所有其他缓冲区上使用 ZX_VMO_OP_CACHE_CLEAN_INVALIDATE 调用 zx_vmo_op_range。

请注意,在 DoRwTxn 返回之前写入缓冲区的任何部分都可能会破坏 收到的数据。

在发出写入请求之前:

  • 对由 客户端。
  • 在所有其他缓冲区上使用 ZX_VMO_OP_CACHE_CLEAN 调用 zx_vmo_op_range。

请求

名称类型
txn SdioRwTxn

响应

名称类型
payload Device_DoRwTxn_Result

DoVendorControlRwByte

对供应商 CCCR 寄存器执行读写操作。addr 必须位于 [0xF0, 0xFF] 中。

请求

名称类型
write bool
addr uint8
write_byte uint8

响应

名称类型
payload Device_DoVendorControlRwByte_Result

EnableFn

请求

<空>

响应

名称类型
payload Device_EnableFn_Result

EnableFnIntr

请求

<空>

响应

名称类型
payload Device_EnableFnIntr_Result

GetBlockSize

请求

<空>

响应

名称类型
payload Device_GetBlockSize_Result

GetDevHwInfo

请求

<空>

响应

名称类型
payload Device_GetDevHwInfo_Result

GetInBandIntr

返回一个虚拟中断,当卡发出信号时,SDIO 驱动程序将触发该中断 与此函数对应的中断。系统将不会触发其他中断 直到调用 AckInBandIntr() 为止。

请求

<空>

响应

名称类型
payload Device_GetInBandIntr_Result

IntrPending

如果函数 fn_idx 有等待中断的中断,返回 true,否则返回 false。

请求

<空>

响应

名称类型
payload Device_IntrPending_Result

IoAbort

以下函数会在函数 0 上访问卡通用控制寄存器 (CCCR)。 中止在指定函数上发生的 I/O 操作。

请求

<空>

响应

名称类型
payload Device_IoAbort_Result

PerformTuning

在后台执行调参。客户端可以使用此方法更新主机控制器延迟 以防公交车延迟因温度或其他因素而发生变化。例如: 客户端可以定期调用该方法,也可以仅在响应数据 CRC 错误时调用。您获得的 此调用所用的时间(以及其他请求被阻止的时间)为 取决于控制器

如果对 PerformTuning() 的另一个调用正在等待处理,则返回 ZX_ERR_ALREADY_BOUND。 否则,如果 SDMMC 驱动程序的调参过程失败,则返回 ZX_OK 或错误值(请参阅 SDMMC 协议)。

请求

<空>

响应

名称类型
payload Device_PerformTuning_Result

RegisterVmo

请求

名称类型
vmo_id uint32
vmo handle<vmo>
offset uint64
size uint64
vmo_rights uint32

响应

名称类型
payload Device_RegisterVmo_Result

RequestCardReset

核心驱动程序对卡进行硬重置并执行 SDIO 初始化的请求 序列。该回调将在卡片重新初始化后调用,并且 在此期间,来自此客户端的所有 IO 调用都将返回 ZX_ERR_SHOULD_WAIT。如果出现错误 所有后续 IO 调用都将返回 ZX_ERR_IO_NOT_PRESENT。 从这种情况中恢复的唯一方法是再次调用 RequestCardReset()

在执行 和重新初始化。重置后,客户必须自行执行 初始化步骤,例如调用 EnableFnIntr()UpdateBlockSize()

无论重置状态如何,系统始终可以调用 VMO 注册方法。

用于硬重置卡的具体方法因平台或主板而异;示例 包括切换 GPIO 重置或重启显卡。

请求

<空>

响应

名称类型
payload Device_RequestCardReset_Result

UnregisterVmo

请求

名称类型
vmo_id uint32

响应

名称类型
payload Device_UnregisterVmo_Result

UpdateBlockSize

请求

名称类型
blk_sz uint16
deflt bool

响应

名称类型
payload Device_UpdateBlockSize_Result

结构体

Device_DisableFnIntr_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_DisableFn_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_DoRwByte_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
read_byte uint8 无默认设置

Device_DoRwTxn_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_DoVendorControlRwByte_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
read_byte uint8 无默认设置

Device_EnableFnIntr_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_EnableFn_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_GetBlockSize_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
cur_blk_size uint16 无默认设置

Device_GetDevHwInfo_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
hw_info SdioHwInfo 无默认设置

Device_GetInBandIntr_Response 资源

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
irq handle<interrupt> 无默认设置

Device_IntrPending_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
pending bool 无默认设置

Device_IoAbort_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_PerformTuning_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_RegisterVmo_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_RequestCardReset_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

Device_UnregisterVmo_Response 资源

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
vmo handle<vmo> 无默认设置

Device_UpdateBlockSize_Response

fuchsia.hardware.sdio/sdio.fidl 中定义

<空>

SdioDeviceHwInfo

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
num_funcs uint32

Sdio Funcs 数量(包括 func 0)

无默认设置
sdio_vsn uint32 无默认设置
cccr_vsn uint32 无默认设置
caps SdioDeviceCapabilities 无默认设置
max_tran_speed uint32 无默认设置

SdioFuncHwInfo

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
manufacturer_id uint32 无默认设置
product_id uint32 无默认设置
max_blk_size uint32 无默认设置
fn_intf_code uint8 无默认设置

SdioHwInfo

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
dev_hw_info SdioDeviceHwInfo 无默认设置
func_hw_info SdioFuncHwInfo 无默认设置
host_max_transfer_size uint32 无默认设置

SdioRwTxn 资源

fuchsia.hardware.sdio/sdio.fidl 中定义

字段类型说明默认
addr uint32 无默认设置
incr bool 无默认设置
write bool 无默认设置
buffers vector<fuchsia.hardware.sdmmc/SdmmcBufferRegion> 无默认设置

联合体

Device_DisableFnIntr_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_DisableFnIntr_Response
err zx/Status

Device_DisableFn_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_DisableFn_Response
err zx/Status

Device_DoRwByte_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_DoRwByte_Response
err zx/Status

Device_DoRwTxn_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_DoRwTxn_Response
err zx/Status

Device_DoVendorControlRwByte_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_DoVendorControlRwByte_Response
err zx/Status

Device_EnableFnIntr_Result

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_EnableFnIntr_Response
err zx/Status

Device_EnableFn_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_EnableFn_Response
err zx/Status

Device_GetBlockSize_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_GetBlockSize_Response
err zx/Status

Device_GetDevHwInfo_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_GetDevHwInfo_Response
err zx/Status

Device_GetInBandIntr_Result 严格资源

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_GetInBandIntr_Response
err zx/Status

Device_IntrPending_Result strict

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_IntrPending_Response
err zx/Status

Device_IoAbort_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_IoAbort_Response
err zx/Status

Device_PerformTuning_Result strict

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_PerformTuning_Response
err zx/Status

Device_RegisterVmo_Result strict

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_RegisterVmo_Response
err zx/Status

Device_RequestCardReset_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_RequestCardReset_Response
err zx/Status

Device_UnregisterVmo_Result 严格的 资源

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_UnregisterVmo_Response
err zx/Status

Device_UpdateBlockSize_Result 严格

fuchsia.hardware.sdio/sdio.fidl 中定义

Ordinal变体类型说明
response Device_UpdateBlockSize_Response
err zx/Status

SdioDeviceCapabilities 严格

类型:uint32

fuchsia.hardware.sdio/sdio.fidl 中定义

名称说明
1
2
4
8
16
32
64
128
256
512
1024
2048
4096
8192
16384
32768
65536

常量

名称类型说明
SDIO_MAX_FUNCS 8 uint8

服务

DriverService

fuchsia.hardware.sdio/sdio.fidl 中定义

名称类型传输
设备 fuchsia.hardware.sdio/DriverDevice 驱动程序

服务

fuchsia.hardware.sdio/sdio.fidl 中定义

名称类型传输
设备 fuchsia.hardware.sdio/Device 频道