class Smmu
Defined at line 44 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
The implementation of an Iommu interface for an instance of an ARM SMMU
(version 2). Throughout this code, references (in the form of section and
table numbers) will be made to the public ARM documentation which can be
found in
"ARM System Memory Management Unit Architecture Specification"
"SMMU architecture version 2.0"
"ARM IHI 0062D.c (ID070116)"
Public Methods
void ~Smmu ()
Defined at line 52 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu.cc
zx::result<fbl::RefPtr<iommu::Iommu>> Create (const zbi_dcfg_arm_smmu_driver_t & config)
Create is used during kernel startup in order to create SMMU instances as
described to Zircon by the ZBI.
Defined at line 66 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu.cc
int ConsoleCmd (intargc,const cmd_args *argv,uint32_tflags)
int CmdShow (intargc,const cmd_args *argv,intcmd_ndx)
void CmdDumpRegs ()
int CmdBtiOp (intargc,const cmd_args *argv,intcmd_ndx,BtiOpFuncop)
zx::result<fbl::RefPtr<SmmuBti>> FindCmdTarget (intargc,const cmd_args *argv,uint32_t *out_ndx)
void Smmu (const Smmu & )
No copy, no move
Defined at line 80 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
void Smmu (Smmu && )
Defined at line 81 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
Smmu & operator= (const Smmu & )
Defined at line 82 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
Smmu & operator= (Smmu && )
Defined at line 83 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
zx::result<fbl::RefPtr<iommu::Iommu>> Fetch (ktl::unique_ptr<const uint8_t[]> desc, size_t desc_len)
Fetch is used during zx_iommu_create syscalls. User mode is not allowed to
create arbitrary IOMMUs, they may only fetch references to instances which
were created during kernel startup.
Defined at line 91 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu.cc
ArmSmmuMode op_mode ()
Defined at line 108 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
const ::Mutex & get_lock ()
Defined at line 109 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
const ::SpinLock & get_irq_lock ()
Defined at line 110 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
const char * name ()
Defined at line 111 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
ktl::optional<IrqDef> get_context_irq (uint32_t ndx)
Defined at line 121 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
zx::result<fbl::RefPtr<iommu::Bti>> CreateBti (uint64_t bus_txn_id)
///////////////////////////////////////////////////////////////////////////
Implementation of the iommu::Iommu driver interface
///////////////////////////////////////////////////////////////////////////
Defined at line 145 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu.cc
void ShutdownBti (SmmuBti & bti)
END iommu::Iommu driver interface implementation
Defined at line 1037 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu.cc
void AssociateBtiIrq (SmmuBti & bti, uint32_t cb_ndx)
Defined at line 1090 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu.cc
void ShutdownContextBankIrq (uint32_t cb_ndx)
Defined at line 1109 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu.cc
void ReenableContextBankIrq (SmmuBti & bti)
Defined at line 1147 of file ../../zircon/kernel/dev/iommu/arm_smmu/smmu.cc
Enumerations
enum class CreateSource
| Name | Value |
|---|---|
| kSyscall | 0 |
| kEarlyInit | 1 |
Defined at line 46 of file ../../zircon/kernel/dev/iommu/arm_smmu/include/dev/arm_smmu/smmu.h
Records
Friends
class SmmuTestAccess
class StreamMatchRegGroup
class SmmuBti
class ContextBank