lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 5 Aug 2022 17:21:14 +0300
From:   Mika Westerberg <mika.westerberg@...ux.intel.com>
To:     Brad Campbell <lists2009@...rfbargle.com>
Cc:     linux-kernel@...r.kernel.org
Subject: Re: Apple Thunderbolt Display chaining

On Fri, Aug 05, 2022 at 10:13:53PM +0800, Brad Campbell wrote:
> On 5/8/22 21:01, Mika Westerberg wrote:
> > On Fri, Aug 05, 2022 at 08:43:08PM +0800, Brad Campbell wrote:
> > > > Well can you try so that you disable PCIe PM for starters? Pass
> > > > "pcie_port_pm=off" in the command line and see if anything changes. Of
> > > > course this prevents low power states.
> > > > 
> > > 
> > > That allows me to modprobe thunderbolt from an xterm :
> > 
> > Okay does it work any better if you don't have anything attached to the
> > TBT ports when you boot up? If it does, how about just adding a single
> > device (no display connected)?
> > 
> 
> Yes, with nothing attached to the Tb ports it's fine. Been working that way for months.
> 
> With a non-display TB device it appears to work ok also.
> 
> The only device I have that will work on an Apple TB1<->TB2 adapter without external power is
> an Apple TB1->GBe dongle. But that sets up, works and does repeated warn boots. The BIOS even detects
> the network port once Linux has set it up the first time.
> 
> Again, module manually loaded after warm boot :
> 
> [   76.239198] ACPI: bus type thunderbolt registered
> [   76.239225] thunderbolt 0000:05:00.0: enabling device (0000 -> 0002)
> [   76.239275] thunderbolt 0000:05:00.0: total paths: 12
> [   76.239278] thunderbolt 0000:05:00.0: IOMMU DMA protection is disabled
> [   76.239409] thunderbolt 0000:05:00.0: allocating TX ring 0 of size 10
> [   76.239422] thunderbolt 0000:05:00.0: allocating RX ring 0 of size 10
> [   76.239433] thunderbolt 0000:05:00.0: control channel created
> [   76.239436] thunderbolt 0000:05:00.0: ICM not supported on this controller
> [   76.239442] thunderbolt 0000:05:00.0: freeing RX ring 0
> [   76.239447] thunderbolt 0000:05:00.0: freeing TX ring 0
> [   76.239453] thunderbolt 0000:05:00.0: allocating TX ring 0 of size 10
> [   76.239460] thunderbolt 0000:05:00.0: allocating RX ring 0 of size 10
> [   76.239466] thunderbolt 0000:05:00.0: control channel created
> [   76.239467] thunderbolt 0000:05:00.0: using software connection manager
> [   76.239467] thunderbolt 0000:05:00.0: NHI initialized, starting thunderbolt
> [   76.239468] thunderbolt 0000:05:00.0: control channel starting...
> [   76.239468] thunderbolt 0000:05:00.0: starting TX ring 0
> [   76.239475] thunderbolt 0000:05:00.0: enabling interrupt at register 0x38200 bit 0 (0x0 -> 0x1)
> [   76.239477] thunderbolt 0000:05:00.0: starting RX ring 0
> [   76.239484] thunderbolt 0000:05:00.0: enabling interrupt at register 0x38200 bit 12 (0x1 -> 0x1001)
> [   76.239487] thunderbolt 0000:05:00.0: security level set to user
> [   76.239678] thunderbolt 0000:05:00.0: current switch config:
> [   76.239678] thunderbolt 0000:05:00.0:  Thunderbolt 3 Switch: 8086:15ea (Revision: 6, TB Version: 16)
> [   76.239679] thunderbolt 0000:05:00.0:   Max Port Number: 13
> [   76.239680] thunderbolt 0000:05:00.0:   Config:
> [   76.239680] thunderbolt 0000:05:00.0:    Upstream Port Number: 7 Depth: 0 Route String: 0x0 Enabled: 1, PlugEventsDelay: 255ms
> [   76.239681] thunderbolt 0000:05:00.0:    unknown1: 0x0 unknown4: 0x0
> [   76.244798] thunderbolt 0000:05:00.0: initializing Switch at 0x0 (depth: 0, up port: 7)
> [   76.284740] thunderbolt 0000:05:00.0: 0: uid: 0xedd9a650496900
> [   76.286660] thunderbolt 0000:05:00.0:  Port 1: 8086:15ea (Revision: 6, TB Version: 1, Type: Port (0x1))
> [   76.286663] thunderbolt 0000:05:00.0:   Max hop id (in/out): 19/19
> [   76.286663] thunderbolt 0000:05:00.0:   Max counters: 16
> [   76.286664] thunderbolt 0000:05:00.0:   NFC Credits: 0x3c00000
> [   76.286664] thunderbolt 0000:05:00.0:   Credits (total/control): 60/2
> [   76.288580] thunderbolt 0000:05:00.0:  Port 2: 8086:15ea (Revision: 6, TB Version: 1, Type: Port (0x1))
> [   76.288581] thunderbolt 0000:05:00.0:   Max hop id (in/out): 19/19
> [   76.288582] thunderbolt 0000:05:00.0:   Max counters: 16
> [   76.288582] thunderbolt 0000:05:00.0:   NFC Credits: 0x3c00000
> [   76.288583] thunderbolt 0000:05:00.0:   Credits (total/control): 60/2
> [   76.290500] thunderbolt 0000:05:00.0:  Port 3: 8086:15ea (Revision: 6, TB Version: 1, Type: Port (0x1))
> [   76.290500] thunderbolt 0000:05:00.0:   Max hop id (in/out): 19/19
> [   76.290501] thunderbolt 0000:05:00.0:   Max counters: 16
> [   76.290501] thunderbolt 0000:05:00.0:   NFC Credits: 0x3c00000
> [   76.290502] thunderbolt 0000:05:00.0:   Credits (total/control): 60/2
> [   76.292416] thunderbolt 0000:05:00.0:  Port 4: 8086:15ea (Revision: 6, TB Version: 1, Type: Port (0x1))
> [   76.292417] thunderbolt 0000:05:00.0:   Max hop id (in/out): 19/19
> [   76.292417] thunderbolt 0000:05:00.0:   Max counters: 16
> [   76.292417] thunderbolt 0000:05:00.0:   NFC Credits: 0x3c00000
> [   76.292418] thunderbolt 0000:05:00.0:   Credits (total/control): 60/2
> [   76.292677] thunderbolt 0000:05:00.0:  Port 5: 8086:15ea (Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0101))
> [   76.292678] thunderbolt 0000:05:00.0:   Max hop id (in/out): 255/255
> [   76.292679] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.292679] thunderbolt 0000:05:00.0:   NFC Credits: 0x1800000
> [   76.292680] thunderbolt 0000:05:00.0:   Credits (total/control): 24/0
> [   76.292932] thunderbolt 0000:05:00.0:  Port 6: 8086:15ea (Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0101))
> [   76.292933] thunderbolt 0000:05:00.0:   Max hop id (in/out): 255/255
> [   76.292933] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.292934] thunderbolt 0000:05:00.0:   NFC Credits: 0x1800000
> [   76.292934] thunderbolt 0000:05:00.0:   Credits (total/control): 24/0
> [   76.293700] thunderbolt 0000:05:00.0:  Port 7: 8086:15ea (Revision: 6, TB Version: 1, Type: NHI (0x2))
> [   76.293701] thunderbolt 0000:05:00.0:   Max hop id (in/out): 11/11
> [   76.293701] thunderbolt 0000:05:00.0:   Max counters: 16
> [   76.293702] thunderbolt 0000:05:00.0:   NFC Credits: 0x1800000
> [   76.293702] thunderbolt 0000:05:00.0:   Credits (total/control): 24/0
> [   76.293956] thunderbolt 0000:05:00.0:  Port 8: 8086:15ea (Revision: 6, TB Version: 1, Type: PCIe (0x100101))
> [   76.293957] thunderbolt 0000:05:00.0:   Max hop id (in/out): 8/8
> [   76.293957] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.293958] thunderbolt 0000:05:00.0:   NFC Credits: 0x800000
> [   76.293958] thunderbolt 0000:05:00.0:   Credits (total/control): 8/0
> [   76.294212] thunderbolt 0000:05:00.0:  Port 9: 8086:15ea (Revision: 6, TB Version: 1, Type: PCIe (0x100101))
> [   76.294212] thunderbolt 0000:05:00.0:   Max hop id (in/out): 8/8
> [   76.294213] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.294213] thunderbolt 0000:05:00.0:   NFC Credits: 0x800000
> [   76.294214] thunderbolt 0000:05:00.0:   Credits (total/control): 8/0
> [   76.294724] thunderbolt 0000:05:00.0:  Port 10: 8086:15ea (Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
> [   76.294725] thunderbolt 0000:05:00.0:   Max hop id (in/out): 9/9
> [   76.294725] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.294726] thunderbolt 0000:05:00.0:   NFC Credits: 0x800000
> [   76.294726] thunderbolt 0000:05:00.0:   Credits (total/control): 8/0
> [   76.295232] thunderbolt 0000:05:00.0:  Port 11: 8086:15ea (Revision: 6, TB Version: 1, Type: DP/HDMI (0xe0102))
> [   76.295233] thunderbolt 0000:05:00.0:   Max hop id (in/out): 9/9
> [   76.295234] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.295234] thunderbolt 0000:05:00.0:   NFC Credits: 0x800000
> [   76.295235] thunderbolt 0000:05:00.0:   Credits (total/control): 8/0
> [   76.295488] thunderbolt 0000:05:00.0:  Port 12: 8086:15ea (Revision: 6, TB Version: 1, Type: Inactive (0x0))
> [   76.295489] thunderbolt 0000:05:00.0:   Max hop id (in/out): 8/8
> [   76.295489] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.295490] thunderbolt 0000:05:00.0:   NFC Credits: 0x800000
> [   76.295490] thunderbolt 0000:05:00.0:   Credits (total/control): 8/0
> [   76.295743] thunderbolt 0000:05:00.0:  Port 13: 8086:15ea (Revision: 6, TB Version: 1, Type: Inactive (0x0))
> [   76.295743] thunderbolt 0000:05:00.0:   Max hop id (in/out): 8/8
> [   76.295744] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.295744] thunderbolt 0000:05:00.0:   NFC Credits: 0x800000
> [   76.295745] thunderbolt 0000:05:00.0:   Credits (total/control): 8/0
> [   76.295745] thunderbolt 0000:05:00.0: 0: linked ports 1 <-> 2
> [   76.295746] thunderbolt 0000:05:00.0: 0: linked ports 3 <-> 4
> [   76.300868] thunderbolt 0000:05:00.0: 0: TMU: supports uni-directional mode
> [   76.300869] thunderbolt 0000:05:00.0: 0: TMU: current mode: HiFi
> [   76.300993] thunderbolt 0000:05:00.0: 0:1: is unplugged (state: 7)
> [   76.301120] thunderbolt 0000:05:00.0: 0:3: is connected, link is up (state: 2)
> [   76.301376] thunderbolt 0000:05:00.0: current switch config:
> [   76.301377] thunderbolt 0000:05:00.0:  Thunderbolt 1 Switch: 8086:1549 (Revision: 0, TB Version: 1)
> [   76.301378] thunderbolt 0000:05:00.0:   Max Port Number: 2
> [   76.301378] thunderbolt 0000:05:00.0:   Config:
> [   76.301378] thunderbolt 0000:05:00.0:    Upstream Port Number: 1 Depth: 1 Route String: 0x3 Enabled: 1, PlugEventsDelay: 255ms
> [   76.301379] thunderbolt 0000:05:00.0:    unknown1: 0x0 unknown4: 0x0
> [   76.304961] thunderbolt 0000:05:00.0: 3: unknown capability 0xef at 0x95
> [   76.306373] thunderbolt 0000:05:00.0: initializing Switch at 0x3 (depth: 1, up port: 1)
> [   76.323781] thunderbolt 0000:05:00.0: 3: reading drom (length: 0x7b)
> [   76.727884] thunderbolt 0000:05:00.0: 3: DROM version: 1
> [   76.728135] thunderbolt 0000:05:00.0: 3: uid: 0x1000206596ce0
> [   76.730061] thunderbolt 0000:05:00.0:  Port 1: 8086:1549 (Revision: 0, TB Version: 1, Type: Port (0x1))
> [   76.730062] thunderbolt 0000:05:00.0:   Max hop id (in/out): 8/8
> [   76.730063] thunderbolt 0000:05:00.0:   Max counters: 4
> [   76.730063] thunderbolt 0000:05:00.0:   NFC Credits: 0x3c00000
> [   76.730064] thunderbolt 0000:05:00.0:   Credits (total/control): 60/2
> [   76.730315] thunderbolt 0000:05:00.0:  Port 2: 8086:1549 (Revision: 0, TB Version: 1, Type: PCIe (0x100102))
> [   76.730316] thunderbolt 0000:05:00.0:   Max hop id (in/out): 8/8
> [   76.730316] thunderbolt 0000:05:00.0:   Max counters: 2
> [   76.730317] thunderbolt 0000:05:00.0:   NFC Credits: 0x700000
> [   76.730317] thunderbolt 0000:05:00.0:   Credits (total/control): 7/0
> [   76.731467] thunderbolt 0000:05:00.0: 3: TMU: current mode: bi-directional, HiFi
> [   76.731475] thunderbolt 0-3: new device found, vendor=0x1 device=0x8003
> [   76.731477] thunderbolt 0-3: Apple, Inc. Thunderbolt to Gigabit Ethernet Adapter
> [   76.732870] thunderbolt 0000:05:00.0: discovering PCIe Up path starting from 0:9
> [   76.733000] thunderbolt 0000:05:00.0: 0:9:  In HopID: 8 => Out port: 3 Out HopID: 8
> [   76.733001] thunderbolt 0000:05:00.0: 0:9:   Weight: 1 Priority: 3 Credits: 7 Drop: 0
> [   76.733002] thunderbolt 0000:05:00.0: 0:9:    Counter enabled: 0 Counter index: 2047
> [   76.733003] thunderbolt 0000:05:00.0: 0:9:   Flow Control (In/Eg): 1/1 Shared Buffer (In/Eg): 0/0
> [   76.733004] thunderbolt 0000:05:00.0: 0:9:   Unknown1: 0x0 Unknown2: 0x0 Unknown3: 0x0
> [   76.733127] thunderbolt 0000:05:00.0: 3:1:  In HopID: 8 => Out port: 2 Out HopID: 8
> [   76.733128] thunderbolt 0000:05:00.0: 3:1:   Weight: 1 Priority: 3 Credits: 16 Drop: 0
> [   76.733129] thunderbolt 0000:05:00.0: 3:1:    Counter enabled: 0 Counter index: 2047
> [   76.733129] thunderbolt 0000:05:00.0: 3:1:   Flow Control (In/Eg): 1/0 Shared Buffer (In/Eg): 0/0
> [   76.733130] thunderbolt 0000:05:00.0: 3:1:   Unknown1: 0x0 Unknown2: 0x0 Unknown3: 0x0
> [   76.733131] thunderbolt 0000:05:00.0: path discovery complete
> [   76.733639] thunderbolt 0000:05:00.0: discovering PCIe Down path starting from 3:2
> [   76.733768] thunderbolt 0000:05:00.0: 3:2:  In HopID: 8 => Out port: 1 Out HopID: 8
> [   76.733769] thunderbolt 0000:05:00.0: 3:2:   Weight: 1 Priority: 3 Credits: 7 Drop: 0
> [   76.733770] thunderbolt 0000:05:00.0: 3:2:    Counter enabled: 0 Counter index: 2047
> [   76.733770] thunderbolt 0000:05:00.0: 3:2:   Flow Control (In/Eg): 1/1 Shared Buffer (In/Eg): 0/0
> [   76.733771] thunderbolt 0000:05:00.0: 3:2:   Unknown1: 0x0 Unknown2: 0x0 Unknown3: 0x0
> [   76.733893] thunderbolt 0000:05:00.0: 0:3:  In HopID: 8 => Out port: 9 Out HopID: 8
> [   76.733894] thunderbolt 0000:05:00.0: 0:3:   Weight: 1 Priority: 3 Credits: 16 Drop: 0
> [   76.733894] thunderbolt 0000:05:00.0: 0:3:    Counter enabled: 0 Counter index: 2047
> [   76.733895] thunderbolt 0000:05:00.0: 0:3:   Flow Control (In/Eg): 1/0 Shared Buffer (In/Eg): 0/0
> [   76.733896] thunderbolt 0000:05:00.0: 0:3:   Unknown1: 0x0 Unknown2: 0x0 Unknown3: 0x0
> [   76.733897] thunderbolt 0000:05:00.0: path discovery complete
> [   76.734028] thunderbolt 0000:05:00.0: 0:9 <-> 3:2 (PCI): discovered
> [   76.734150] thunderbolt 0000:05:00.0: 0:5: DP IN resource available
> [   76.734277] thunderbolt 0000:05:00.0: 0:6: DP IN resource available
> 
> I now wonder if it's one of the PCIe connected devices in the Thunderbolt displays not "playing nice" ?

They are pretty standard so I suspect myself the display side of things.
Not sure if it is possible (I think it is from sysfs /sys/class/drm/*)
to disable the tunneled DP connections and see if that makes it not
hang. Alternatively you can try to comment out the call to
tb_tunnel_dp() from the driver. Let me know if you want me to make hack
patch that does it for you.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ