class Ufs

Defined at line 151 of file ../../src/devices/block/drivers/ufs/ufs.h

Public Members

static const char[] kDriverName
static const char[] kHardwarePowerElementName
static const fuchsia_power_broker::PowerLevel kPowerLevelOff
static const fuchsia_power_broker::PowerLevel kPowerLevelOn
static const fuchsia_power_broker::PowerLevel kPowerLevelBoot

Public Methods

void QueueIoCommand (IoCommand * io_cmd)

Queue an IO command to be performed asynchronously.

zx::result<> NotifyEventCallback (NotifyEvent event, uint64_t data)

Defines a callback function to perform when an |event| occurs.

Defined at line 108 of file ../../src/devices/block/drivers/ufs/ufs.cc

zx::result<> Notify (NotifyEvent event, uint64_t data)

The controller notifies the host controller when it takes the action defined in |event|.

Defined at line 127 of file ../../src/devices/block/drivers/ufs/ufs.cc

zx_status_t WaitWithTimeout (fit::function<bool ()> wait_for, zx::duration timeout, const fbl::String & timeout_message, zx::duration granularity)

Defined at line 134 of file ../../src/devices/block/drivers/ufs/ufs.cc

void Ufs (fdf::DriverStartArgs start_args, fdf::UnownedSynchronizedDispatcher dispatcher)

Defined at line 160 of file ../../src/devices/block/drivers/ufs/ufs.h

void ~Ufs ()

Defined at line 164 of file ../../src/devices/block/drivers/ufs/ufs.h

zx::result<uint16_t> TranslateUfsLunToScsiLun (uint8_t ufs_lun)

Defined at line 164 of file ../../src/devices/block/drivers/ufs/ufs.cc

fidl::WireSyncClient<fuchsia_driver_framework::Node> & root_node ()

scsi::Controller

Defined at line 171 of file ../../src/devices/block/drivers/ufs/ufs.h

std::string_view driver_name ()

Defined at line 172 of file ../../src/devices/block/drivers/ufs/ufs.h

const std::shared_ptr<fdf::Namespace> & driver_incoming ()

Defined at line 173 of file ../../src/devices/block/drivers/ufs/ufs.h

std::shared_ptr<fdf::OutgoingDirectory> & driver_outgoing ()

Defined at line 174 of file ../../src/devices/block/drivers/ufs/ufs.h

async_dispatcher_t * driver_async_dispatcher ()

Defined at line 175 of file ../../src/devices/block/drivers/ufs/ufs.h

const std::optional<std::string> & driver_node_name ()

Defined at line 176 of file ../../src/devices/block/drivers/ufs/ufs.h

fdf::Logger & driver_logger ()

Defined at line 177 of file ../../src/devices/block/drivers/ufs/ufs.h

const ufs_config::Config & config ()

Defined at line 178 of file ../../src/devices/block/drivers/ufs/ufs.h

void ProcessIoSubmissions ()

Convert block operations to UPIU commands and submit them asynchronously.

Defined at line 195 of file ../../src/devices/block/drivers/ufs/ufs.cc

zx::result<uint8_t> TranslateScsiLunToUfsLun (uint16_t scsi_lun)

Defined at line 178 of file ../../src/devices/block/drivers/ufs/ufs.cc

size_t BlockOpSize ()

Defined at line 180 of file ../../src/devices/block/drivers/ufs/ufs.h

const fdf::MmioBuffer & GetMmio ()

Defined at line 187 of file ../../src/devices/block/drivers/ufs/ufs.h

DeviceManager & GetDeviceManager ()

Defined at line 192 of file ../../src/devices/block/drivers/ufs/ufs.h

TransferRequestProcessor & GetTransferRequestProcessor ()

Defined at line 196 of file ../../src/devices/block/drivers/ufs/ufs.h

TaskManagementRequestProcessor & GetTaskManagementRequestProcessor ()

Defined at line 200 of file ../../src/devices/block/drivers/ufs/ufs.h

void SetHostControllerCallback (HostControllerCallback callback)

Used to register a platform-specific NotifyEventCallback, which handles variants and quirks for

each host interface platform.

Defined at line 219 of file ../../src/devices/block/drivers/ufs/ufs.h

fdf::Dispatcher & exception_event_dispatcher ()

Defined at line 235 of file ../../src/devices/block/drivers/ufs/ufs.h

libsync::Completion & exception_event_completion ()

Defined at line 236 of file ../../src/devices/block/drivers/ufs/ufs.h

uint32_t GetLogicalUnitCount ()

for test

Defined at line 239 of file ../../src/devices/block/drivers/ufs/ufs.h

bool HasWellKnownLun (WellKnownLuns lun)

Defined at line 243 of file ../../src/devices/block/drivers/ufs/ufs.h

bool IsResumed ()

Defined at line 247 of file ../../src/devices/block/drivers/ufs/ufs.h

const inspect::Inspector & inspect ()

Defined at line 249 of file ../../src/devices/block/drivers/ufs/ufs.h

zx::result<> Start ()

Defined at line 1413 of file ../../src/devices/block/drivers/ufs/ufs.cc

void PrepareStop (fdf::PrepareStopCompleter completer)

Defined at line 1469 of file ../../src/devices/block/drivers/ufs/ufs.cc

zx_status_t ExecuteCommandSync (uint8_t target, uint16_t lun, iovec cdb, bool is_write, iovec data)

Defined at line 499 of file ../../src/devices/block/drivers/ufs/ufs.cc

void ExecuteCommandAsync (uint8_t target, uint16_t lun, iovec cdb, bool is_write, uint32_t block_size_bytes, scsi::DeviceOp * device_op, iovec data)

Defined at line 458 of file ../../src/devices/block/drivers/ufs/ufs.cc

void ProcessAdminCompletions ()

Find the completed Admin commands in the Request List and handle their completion.

Defined at line 264 of file ../../src/devices/block/drivers/ufs/ufs.cc

void ProcessIoCompletions ()

Find the completed IO commands in the Request List and handle their completion.

Defined at line 268 of file ../../src/devices/block/drivers/ufs/ufs.cc

void ProcessErrors ()

Recover errors in the request list.

Defined at line 270 of file ../../src/devices/block/drivers/ufs/ufs.cc

void DumpRegisters ()

Defined at line 1064 of file ../../src/devices/block/drivers/ufs/ufs.cc

Protected Methods

zx::result<fdf::MmioBuffer> CreateMmioBuffer (zx_off_t offset, size_t size, zx::vmo vmo)

Defined at line 256 of file ../../src/devices/block/drivers/ufs/ufs.h

zx_status_t Init ()

Initialize the UFS controller and bind the logical units.

Declare this as virtual to delay driver initialization in tests.

Defined at line 603 of file ../../src/devices/block/drivers/ufs/ufs.cc

Friends

class UfsTest