Skip to content
  • Stefan Richter's avatar
    firewire: Enable remote DMA above 4 GB · fcd46b34
    Stefan Richter authored
    
    
    This makes all of a machine's memory accessible to remote debugging via
    FireWire, using the physical response unit (i.e. RDMA) of OHCI-1394 link
    layer controllers.
    
    This requires actual support by the controller.  The only ones currently
    known to support it are Agere/LSI FW643.  Most if not all other OHCI-1394
    controllers do not implement the optional Physical Upper Bound register.
    With them, RDMA will continue to be limited to the lowermost 4 GB.
    
    firewire-ohci's startup message in the kernel log is augmented to tell
    whether the controller does expose more than 4 GB to RDMA.
    
    While OHCI-1394 allows for a maximum Physical Upper Bound of
    0xffff'0000'0000 (near 256 TB), this implementation sets it to
    0x8000'0000'0000 (128 TB) in order to avoid interference with applications
    that require interrupt-served asynchronous request reception at
    respectively low addresses.
    
    Note, this change does not switch remote DMA on.  It only increases the
    range of remote access to all memory (instead of just 4 GB) whenever
    remote DMA was switched on by other means.  The latter is achieved by
    setting firewire-ohci's remote_dma parameter, or if the physical DMA
    filter is opened through firewire-sbp2.
    
    Derived from patch "firewire: Enable physical DMA above 4GB" by
    Peter Hurley <peter@hurleysoftware.com> from March 27, 2013.
    
    Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
    fcd46b34