Bug 50851

Summary: Unable to connect Linux computer to Windows Vista over firewire - "old or out-of-date firmware"
Product: Drivers Reporter: Konrads Smelkovs (konrads)
Component: IEEE1394Assignee: drivers_ieee1394
Status: RESOLVED INVALID    
Severity: normal CC: stefanr
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 3.2.6 Subsystem:
Regression: No Bisected commit-id:

Description Konrads Smelkovs 2012-11-21 10:59:49 UTC
On Windows Vista (some builds), the system refuses to use the Linux firewire device. Here are the error logs from Vista:
Log Name:      System
Source:        sbp2port
Date:          22/05/2012 17:59:17
Event ID:      25
Task Category: None
Level:         Error
Keywords:      Classic
User:          N/A
Computer:      OBFUSCATED
Description:
The driver has detected a device with old or out-of-date firmware.  The device will not be used.
Event Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
  <System>
    <Provider Name="sbp2port" />
    <EventID Qualifiers="49156">25</EventID>
    <Level>2</Level>
    <Task>0</Task>
    <Keywords>0x80000000000000</Keywords>
    <TimeCreated SystemTime="2012-05-22T16:59:17.279Z" />
    <EventRecordID>61706</EventRecordID>
    <Channel>System</Channel>
    <Computer>OBFUSCATED</Computer>
    <Security />
  </System>
  <EventData>
    <Data>\Device\Sbp2\Linux Firewire&amp;UNKNOWN_MODEL&amp;0&amp;354fc000_0d4e3890_Instance00</Data>
    <Binary>0F0000000100000000000000190004C0960300009C0000C000000000000000000000000000000000</Binary>
  </EventData>
</Event>
Comment 1 Konrads Smelkovs 2012-11-21 11:00:50 UTC
This came up when I was trying to use the inception tool. Here's a discussion on github about the issue:
https://github.com/carmaa/inception/issues/58#issuecomment-8692393
Comment 2 Stefan Richter 2012-11-21 13:56:26 UTC
The conclusion of the github discussion is wrong.

If Windows complains about outdated SBP-2 target firmware, then this means
that either the SBP-2 unit directory in the Configuration ROM or whatever expected SBP-2 transaction responses are not like Windows expects.

The contents of the unit directory and the SBP-2 transaction responses (if needed) are both solely in the responsibility of the inception + libforensic1394 userland software.

The kernel facilities that are required for these two aspects to work, i.e.
  - adding a custom unit directory (possibly together with additional
    descriptors) and exposing it to external nodes,
  - performing outbound asynchronous transactions to external nodes
    (for SBP-2 transaction status writes, if needed),
are known to work with userspace drivers and with kernelspace drivers.

So, you need to find out what the respective Windows versions want from an SBP-2 target and need to implement that in inception.

Alternatively, you could set up a real SBP-2 target on the Linux node using the "sbp-target" kernel driver which is available since kernel 3.5 and see if this real SBP-2 target works better than the faked partial SBP-2 target which inception implements.

If you need information about the SBP-2 protocol, there are links to the SBP-2 and SBP-3 specifications at https://ieee1394.wiki.kernel.org/index.php/Specifications .