IOPort
for that device's range on the IO bus and potentially for its
place in
PCI configuration space (to enable bus
mastering).
The manual seems to be self-contradictory here. In the section about the
BootInfo it indicates that the physical addresses are given to initiate
DMA
when no IOMMU is present, but the IOSpace section
states that to use
DMA an
IOMMU must be used.
I can't really find any way that this is enforced or could be enforced
by
the
kernel. In userland it can be done quite easily
by just not giving out
IOPorts.
seL4 does not enforce absence of DMA. In general it’s not possible to do
that, that’s why it’s an assumption to the proof that you need to validate
for your system.
Without an IOMMU, you will need to trust the drivers and the hardware of
DMA-capable devices to either not use DMA or to use it safely only.
You can lock down systems to not provide any access at all to
DMA-devices, which sometimes is enough for simple separation-style systems.
There are more trade-off points in the design space, but the trust story
does become massively simpler and better when you have IOMMU support.
With an IOMMU, seL4 is in control and you’re fine.
Cheers,
Gerwin
________________________________
The information in this e-mail may be confidential and subject to legal
professional privilege and/or copyright. National ICT Australia Limited
accepts no liability for any damage caused by this email or its attachments.
_______________________________________________
Devel mailing list
Devel(a)sel4.systems