1. 29 5月, 2014 1 次提交
  2. 20 1月, 2014 1 次提交
    • S
      firewire: Enable remote DMA above 4 GB · fcd46b34
      Stefan Richter 提交于
      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: NStefan Richter <stefanr@s5r6.in-berlin.de>
      fcd46b34
  3. 13 1月, 2014 2 次提交
  4. 03 10月, 2009 1 次提交
  5. 18 4月, 2008 1 次提交
  6. 20 2月, 2008 1 次提交
  7. 30 1月, 2008 1 次提交
    • B
      x86: early boot debugging via FireWire (ohci1394_dma=early) · f212ec4b
      Bernhard Kaindl 提交于
      This patch adds a new configuration option, which adds support for a new
      early_param which gets checked in arch/x86/kernel/setup_{32,64}.c:setup_arch()
      to decide wether OHCI-1394 FireWire controllers should be initialized and
      enabled for physical DMA access to allow remote debugging of early problems
      like issues ACPI or other subsystems which are executed very early.
      
      If the config option is not enabled, no code is changed, and if the boot
      paramenter is not given, no new code is executed, and independent of that,
      all new code is freed after boot, so the config option can be even enabled
      in standard, non-debug kernels.
      
      With specialized tools, it is then possible to get debugging information
      from machines which have no serial ports (notebooks) such as the printk
      buffer contents, or any data which can be referenced from global pointers,
      if it is stored below the 4GB limit and even memory dumps of of the physical
      RAM region below the 4GB limit can be taken without any cooperation from the
      CPU of the host, so the machine can be crashed early, it does not matter.
      
      In the extreme, even kernel debuggers can be accessed in this way. I wrote
      a small kgdb module and an accompanying gdb stub for FireWire which allows
      to gdb to talk to kgdb using remote remory reads and writes over FireWire.
      
      An version of the gdb stub fore FireWire is able to read all global data
      from a system which is running a a normal kernel without any kernel debugger,
      without any interruption or support of the system's CPU. That way, e.g. the
      task struct and so on can be read and even manipulated when the physical DMA
      access is granted.
      
      A HOWTO is included in this patch, in Documentation/debugging-via-ohci1394.txt
      and I've put a copy online at
      ftp://ftp.suse.de/private/bk/firewire/docs/debugging-via-ohci1394.txt
      
      It also has links to all the tools which are available to make use of it
      another copy of it is online at:
      ftp://ftp.suse.de/private/bk/firewire/kernel/ohci1394_dma_early-v2.diffSigned-Off-By: NBernhard Kaindl <bk@suse.de>
      Tested-By: NThomas Renninger <trenn@suse.de>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      f212ec4b