User: Password:
|
|
Subscribe / Log in / New account

I'm puzzled...

I'm puzzled...

Posted Jan 10, 2013 15:28 UTC (Thu) by cruff (subscriber, #7201)
Parent article: Attacking full-disk encryption with Inception

How does this work? Usually the DMA registers of an interface have to be programmed from the host side, not the device side. Even RDMA capable interfaces require the host to set things up before the remote side can initiate a transfer. Are they relying on known bugs in the Firewire drivers?


(Log in to post comments)

I'm puzzled...

Posted Jan 10, 2013 15:35 UTC (Thu) by apoelstra (subscriber, #75205) [Link]

> How does this work? Usually the DMA registers of an interface have to be programmed from the host side, not the device side. Even RDMA capable interfaces require the host to set things up before the remote side can initiate a transfer. Are they relying on known bugs in the Firewire drivers?

I wondered about this too. Maybe because Firewire uses DMA for file transfers, it needs more freedom in what memory it accesses?

Normally when I use DMA, it's for interfacing with a specific chip (media decoder, USB host, etc), so there's a known, fixed memory location that needs DMA -- one that isn't used by anything else as long as the driver is loaded.

I'm puzzled...

Posted Jan 10, 2013 16:01 UTC (Thu) by cladisch (✭ supporter ✭, #50193) [Link]

Even RDMA capable interfaces require the host to set things up before the remote side can initiate a transfer.

The protocol used for FireWire disks (SBP-2) does use remote DMA (but calls it “physical DMA”).

The FireWire code has to explicitly enable RDMA for each device it trusts. However, handling SBP-2 transfers in software is not implemented (yet), so RDMA is enabled for any device that is a mass storage device, or just claims to be one.


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds