Received: by 2002:a05:6358:e9c4:b0:b2:91dc:71ab with SMTP id hc4csp5785237rwb; Tue, 9 Aug 2022 04:11:55 -0700 (PDT) X-Google-Smtp-Source: AA6agR419/hs/Cb4tj0hkU2jPJRyaCd3n7FBwqP5ToybF01l9P0I++DSnenjKggzXg2W7asSGBGk X-Received: by 2002:a63:97:0:b0:41a:3c2:6238 with SMTP id 145-20020a630097000000b0041a03c26238mr18884981pga.499.1660043515149; Tue, 09 Aug 2022 04:11:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1660043515; cv=none; d=google.com; s=arc-20160816; b=bQnfFLPIEEri/Jm5WT2TZohUJ2Ki3Mrt6PTyTMSCJG98zrUihttelEcPp6Zp0PLGA9 sY0Qsi1tn1g9715w1XAoUjg1F+0VbSZ8gSIxExAt+qh8ntma0DJPCNsd1CpmfKYAny6t pHxUUeGwR7DmancQlmEW25c3UDSjUW/qcJkHjVAKMiki/GizEuMDz8Q3M0a+TdvjgYG7 K28tUcCngJBQZLBlAvHXN0pL5aG1fnrC4yCKUPpSiR/SPEEXfFjChz5xz8MR4sELW8P9 8e6jXPyJfhxp3Vwxx+s/OD61h/2QrkNSkjZy1aWKOvJ4MrYyO3aFkJxcKUMYtJALKX4I V+Ww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=VlWXTgNoMVGqiY4nt93ukeUGdeILiI3ZgrA18aVvkpY=; b=Djnys5zY2XVaLBZojVGhuDn7iL0ivgvi2giUkbL2MusroeiD6jT7u3RSzuBZJiAEJp kzZpov/AniAHeQEK+dv31rPkt1os9ZJRT/SEXR2V75Ha3Mut69ufN9bVZUNUiX/C26Nv jngWHj5in4YmyEGWgb14BUuKXHXiI6lFY6f0T2aI6FcNgkHM7SyrZZYMq3hPujtM7qbP TqR8/QPFU5Fnp8elP5kl+VyKwLOXoJEKgyfxjJr7YUArcmSr1e+H876QMX33DLmgHkWp +661yVwhrUS8ty1BkRDTJnxaVuWpnaIuzM1l8m0L0AiJYmBfcwhZO643Y2d4OZhXzZOS a2xg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@fnarfbargle.com header.s=mail header.b=VNK89+aT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fnarfbargle.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id t7-20020a654b87000000b0040d71f0492bsi1225459pgq.120.2022.08.09.04.11.41; Tue, 09 Aug 2022 04:11:55 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@fnarfbargle.com header.s=mail header.b=VNK89+aT; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=fnarfbargle.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S242614AbiHIKlJ (ORCPT + 99 others); Tue, 9 Aug 2022 06:41:09 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:52232 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S242608AbiHIKlH (ORCPT ); Tue, 9 Aug 2022 06:41:07 -0400 Received: from ns3.fnarfbargle.com (ns3.fnarfbargle.com [103.4.19.87]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B2CCC17 for ; Tue, 9 Aug 2022 03:41:05 -0700 (PDT) Received: from [10.8.0.1] (helo=srv.home) by ns3.fnarfbargle.com with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oLMfV-0004O1-TL; Tue, 09 Aug 2022 20:41:01 +1000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=fnarfbargle.com; s=mail; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date:Message-ID:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=VlWXTgNoMVGqiY4nt93ukeUGdeILiI3ZgrA18aVvkpY=; b=VNK89+aTAQReF+KVCHp3m4K3M9 Z+WvrnfafKKY3ewwqx5BGqW9KHqjhx5ywpad/J57f6ViA+LG2TTlFUnIIrmTq6Jlarga5DhoZ0XNS aGTu4F4kiqOhrh1gqla8fLaZLRBPUAqOwELnVUdIqZCr5GTIfmTGrytVak43wPgxFMkE=; Message-ID: Date: Tue, 9 Aug 2022 18:40:54 +0800 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1 Subject: Re: Apple Thunderbolt Display chaining Content-Language: en-US To: Mika Westerberg Cc: linux-kernel@vger.kernel.org References: <87c1a001-ef79-6390-dfe2-06d2850f6e84@fnarfbargle.com> <42e81a8e-e393-7a69-7339-a020ebb57935@fnarfbargle.com> <5474e599-057a-ec0f-b469-560644155907@fnarfbargle.com> From: Brad Campbell In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_LOW, SPF_HELO_PASS,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org G'day Mika, On 9/8/22 18:23, Mika Westerberg wrote: > Hi, > > On Mon, Aug 08, 2022 at 09:27:24PM +0800, Brad Campbell wrote: >> If I don't authorize the PCIe tunnels and just leave the DP enabled it >> works fine also. > > But you say that it fails on boot when the driver discovers the tunnels, > right? So there is really nothing to authorize (they should be already > "authorized" by the boot firmware). > > If I understand correctly this is how it reproduces (the simplest): > > 1. Connect a single Apple TB1 display to the system > 2. Boot it up > 3. Wait a while and it hangs > > If this is the case, then the driver certainly is not creating any > PCIe tunnels itself unless there is a bug somewhere. > > An additional question, does it reproduce with either TB1 display > connected or just with specific TB1 display? > No, I've not been clear enough, I'm sorry. I've re-read what I've written below and I'm still not sure I'm clear enough. The firmware never sets anything up. When I cold boot the machine (from power on), the thunderbolt displays and tunnels remain dark until linux initializes the thunderbolt driver the first time. If I compile the thunderbolt driver into the kernel, or let the initramfs load it the displays come up, all PCIe tunnels are established and everything works. When I reboot the machine (reset button or warm boot), the firmware continues to do nothing and all the tunnels remain in place. The machine dies when the thunderbolt driver is loaded for a second time. That might be a reset/warm boot with it compiled in or loaded from iniramfs. It may also be me loading it from the command line after booting with it as a module and blacklisted. The problem comes about when the thunderbolt module is loaded while the PCIe tunnels are already established. To reproduce in the easiest manner I compile the thunderbolt driver as a module and blacklist it. This prevents it from auto-loading. I cold boot the machine, let it boot completely then modprobe thunderbolt and authorize the tunnels. I then warm boot which lets the kernel detect and init the DP displays and detect/configure all the PCIe devices. The thunderbolt driver is not loaded. The machine comes up, all tunnels are established and all devices work. If I then modprobe the thunderbolt driver, things break. This is the hack in my boot script : # Spark up thunderbolt if [ -z "`grep notb /proc/cmdline`" -a -z "`lsusb | grep '05ac:9227'`" ] ; then modprobe thunderbolt sleep 1 echo 1 > /sys/bus/thunderbolt/devices/0-3/authorized echo 1 > /sys/bus/thunderbolt/devices/0-303/authorized reboot fi Regards, Brad