mem1394

what

implement RAM access on a remote machine via firewire, useful for debugging

how

controllers allow memory access (DMA) without host involvement unless the hosts sets up a filter (only windows seems to do this)

code

Might require patches from http://me.in-berlin.de/~s5r6/linux1394/updates/, and the very latest code from 2.6.16-rc1. Note that nodemgr.c then won't build against an older kernel, but this can easily be changed by changing '.uevent = ' to '.hotplug = ' on the offending line.

https://johannes.sipsolutions.net/files/dynamic-ieee1394-chardev.patch

This first patch implements dynamic minor numbers below the firewire major.

https://johannes.sipsolutions.net/files/node-interface.patch

This patch allows one to bind create an interface to a node.

https://johannes.sipsolutions.net/files/mem1394.h https://johannes.sipsolutions.net/files/mem1394.c https://johannes.sipsolutions.net/files/add-mem1394-to-build.patch

These files are for the mem1394 driver, the patch adds it to the kernel build system.

You'll need to set up udev too, add this rule:

KERNEL=="fwmem-[0-9]*", NAME="fwmem-%s{device/guid}"

If you want to build the modules without compiling the whole kernel, or say the kernel modules from the latest kernel, you can use this Makefile.

Attention!

Close all programs that have the device open before unloading the module, don't try to access with larger than about 2K reads (dd blocksize for example) and don't try unplugging (though this last case should be pretty much harmless).