Re: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM) Networking
From: Andreas Noever
Date: Thu Oct 27 2016 - 11:51:34 EST
On Fri, Oct 21, 2016 at 4:57 PM, <Mario.Limonciello@xxxxxxxx> wrote:
>> -----Original Message-----
>> From: Amir Levy [mailto:amir.jer.levy@xxxxxxxxx]
>> Sent: Wednesday, September 28, 2016 9:44 AM
>> To: gregkh@xxxxxxxxxxxxxxxxxxx
>> Cc: andreas.noever@xxxxxxxxx; bhelgaas@xxxxxxxxxx; corbet@xxxxxxx;
>> linux-kernel@xxxxxxxxxxxxxxx; linux-pci@xxxxxxxxxxxxxxx;
>> netdev@xxxxxxxxxxxxxxx; linux-doc@xxxxxxxxxxxxxxx; Limonciello, Mario
>> <Mario_Limonciello@xxxxxxxx>; thunderbolt-linux@xxxxxxxxx;
>> mika.westerberg@xxxxxxxxx; tomas.winkler@xxxxxxxxx;
>> xiong.y.zhang@xxxxxxxxx; Amir Levy <amir.jer.levy@xxxxxxxxx>
>> Subject: [PATCH v8 0/8] thunderbolt: Introducing Thunderbolt(TM)
>> Networking
>>
>> This driver enables Thunderbolt Networking on non-Apple platforms
>> running Linux.
>>
>> Thunderbolt Networking provides peer-to-peer connections to transfer
>> files between computers, perform PC migrations, and/or set up small
>> workgroups with shared storage.
>>
>> This is a virtual connection that emulates an Ethernet adapter that
>> enables Ethernet networking with the benefit of Thunderbolt superfast
>> medium capability.
>>
>> Thunderbolt Networking enables two hosts and several devices that
>> have a Thunderbolt controller to be connected together in a linear
>> (Daisy chain) series from a single port.
>>
>> Thunderbolt Networking for Linux is compatible with Thunderbolt
>> Networking on systems running macOS or Windows and also supports
>> Thunderbolt generation 2 and 3 controllers.
>>
>> Note that all pre-existing Thunderbolt generation 3 features, such as
>> USB, Display and other Thunderbolt device connectivity will continue
>> to function exactly as they did prior to enabling Thunderbolt Networking.
>>
>> Code and Software Specifications:
>> This kernel code creates a virtual ethernet device for computer to
>> computer communication over a Thunderbolt cable.
>> The new driver is a separate driver to the existing Thunderbolt driver.
>> It is designed to work on systems running Linux that
>> interface with Intel Connection Manager (ICM) firmware based
>> Thunderbolt controllers that support Thunderbolt Networking.
>> The kernel code operates in coordination with the Thunderbolt user-
>> space daemon to implement full Thunderbolt networking functionality.
>>
>> Hardware Specifications:
>> Thunderbolt Hardware specs have not yet been published but are used
>> where necessary for register definitions.
>>
>> Changes since v7:
>> - Removed debug prints
>> - Edited error prints
>> - Edited copyright notice
>> - Changed the Kconfig patch to be after the code changes
>>
>> These patches were pushed to GitHub where they can be reviewed more
>> comfortably with green/red highlighting:
>> https://github.com/01org/thunderbolt-software-kernel-tree
>>
>> Daemon code:
>> https://github.com/01org/thunderbolt-software-daemon
>>
>> For reference, here's a link to version 6:
>> [v7]: https://lkml.org/lkml/2016/9/27/244
>>
>> Amir Levy (8):
>> thunderbolt: Macro rename
>> thunderbolt: Updating the register definitions
>> thunderbolt: Communication with the ICM (firmware)
>> thunderbolt: Networking state machine
>> thunderbolt: Networking transmit and receive
>> thunderbolt: Kconfig for Thunderbolt Networking
>> thunderbolt: Networking doc
>> thunderbolt: Adding maintainer entry
>>
>> Documentation/00-INDEX | 2 +
>> Documentation/thunderbolt/networking.txt | 132 ++
>> MAINTAINERS | 8 +-
>> drivers/thunderbolt/Kconfig | 27 +-
>> drivers/thunderbolt/Makefile | 3 +-
>> drivers/thunderbolt/icm/Makefile | 2 +
>> drivers/thunderbolt/icm/icm_nhi.c | 1514 ++++++++++++++++++++
>> drivers/thunderbolt/icm/icm_nhi.h | 82 ++
>> drivers/thunderbolt/icm/net.c | 2254
>> ++++++++++++++++++++++++++++++
>> drivers/thunderbolt/icm/net.h | 287 ++++
>> drivers/thunderbolt/nhi_regs.h | 115 +-
>> 11 files changed, 4417 insertions(+), 9 deletions(-)
>> create mode 100644 Documentation/thunderbolt/networking.txt
>> create mode 100644 drivers/thunderbolt/icm/Makefile
>> create mode 100644 drivers/thunderbolt/icm/icm_nhi.c
>> create mode 100644 drivers/thunderbolt/icm/icm_nhi.h
>> create mode 100644 drivers/thunderbolt/icm/net.c
>> create mode 100644 drivers/thunderbolt/icm/net.h
>>
>> --
>> 2.7.4
>
> Hi Amir,
>
> I've tested your v8 series on Dell hardware with Thunderbolt
> Controllers again between a Linux and Windows box.
> Functionally it's working well.
>
> Tested-By: Mario Limonciello <mario.limonciello@xxxxxxxx>
>
> Andreas,
>
> Following the history of this thread, I believe Greg was still looking for
> an ack from you that Amir is using the interface properly.
>
> Thanks,
That I don't know, but this driver does the inverse dmi_match of the
current apple driver (dmi_match(DMI_BOARD_VENDOR, "Apple Inc.")), and
therefore there should be no interaction between the two.
Acked-by: Andreas Noever <andreas.noever@xxxxxxxxx>
Cheers,
Andreas