Changeset View
Changeset View
Standalone View
Standalone View
head/sys/x86/iommu/intel_drv.c
Show First 20 Lines • Show All 405 Lines • ▼ Show 20 Lines | dmar_attach(device_t dev) | ||||
struct dmar_unit *unit; | struct dmar_unit *unit; | ||||
ACPI_DMAR_HARDWARE_UNIT *dmaru; | ACPI_DMAR_HARDWARE_UNIT *dmaru; | ||||
uint64_t timeout; | uint64_t timeout; | ||||
int i, error; | int i, error; | ||||
unit = device_get_softc(dev); | unit = device_get_softc(dev); | ||||
unit->dev = dev; | unit->dev = dev; | ||||
unit->iommu.unit = device_get_unit(dev); | unit->iommu.unit = device_get_unit(dev); | ||||
unit->iommu.dev = dev; | |||||
dmaru = dmar_find_by_index(unit->iommu.unit); | dmaru = dmar_find_by_index(unit->iommu.unit); | ||||
if (dmaru == NULL) | if (dmaru == NULL) | ||||
return (EINVAL); | return (EINVAL); | ||||
unit->segment = dmaru->Segment; | unit->segment = dmaru->Segment; | ||||
unit->base = dmaru->Address; | unit->base = dmaru->Address; | ||||
unit->reg_rid = DMAR_REG_RID; | unit->reg_rid = DMAR_REG_RID; | ||||
unit->regs = bus_alloc_resource_any(dev, SYS_RES_MEMORY, | unit->regs = bus_alloc_resource_any(dev, SYS_RES_MEMORY, | ||||
&unit->reg_rid, RF_ACTIVE); | &unit->reg_rid, RF_ACTIVE); | ||||
▲ Show 20 Lines • Show All 917 Lines • Show Last 20 Lines |