From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DBAC7C433F5 for ; Wed, 27 Oct 2021 16:05:25 +0000 (UTC) Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EC75060F6F for ; Wed, 27 Oct 2021 16:05:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org EC75060F6F Authentication-Results: mail.kernel.org; dmarc=fail (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.denx.de Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 46FA08329E; Wed, 27 Oct 2021 18:05:22 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=broadcom.com header.i=@broadcom.com header.b="MBS3p5C5"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id 1E2288329E; Wed, 27 Oct 2021 18:05:20 +0200 (CEST) Received: from mail-lf1-x12e.google.com (mail-lf1-x12e.google.com [IPv6:2a00:1450:4864:20::12e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id C2E1583230 for ; Wed, 27 Oct 2021 18:05:14 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=quarantine dis=none) header.from=broadcom.com Authentication-Results: phobos.denx.de; spf=fail smtp.mailfrom=roman.bacik@broadcom.com Received: by mail-lf1-x12e.google.com with SMTP id j9so7188378lfu.7 for ; Wed, 27 Oct 2021 09:05:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:references:in-reply-to:mime-version:thread-index:date :message-id:subject:to:cc; bh=yyJ1sivJnlJOhu6h023hrhu7FE4M5jVW5ZDqVRRKHPA=; b=MBS3p5C5d7EC0eYPKdRseElZFPxlGDovGWnuFhGPMQwZJD8Px3Th2lGUpU3PePLKfh jk9s93clWnacM7ShtNeVOLIcoaJytHggbriJVRb1SSmN5QQPJolq6eKUquzE7VvtgwZa AUDvaAVKhzfHyHa0OiwlmrMl49gB3IpBuaeaw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:references:in-reply-to:mime-version :thread-index:date:message-id:subject:to:cc; bh=yyJ1sivJnlJOhu6h023hrhu7FE4M5jVW5ZDqVRRKHPA=; b=NJ/8PKNTt94uUQiWVNEJytKzwQz2OsI6ZEOXEoxJjlkXTQUrNUMDtDTPSSY1jz9dSa r/zBrGOPVXFcg0vD4CbH1uEIkSxHhPEi0xGe17OyFsVJYfEARAjXRRzw6KyZrsrMomnY FiwGlM1CyUNH409PpIiaXMjAuTCCutBCYmiUs4vsNteSnNNqBgz6cmv8taEPWoZi9NKC BHmXwmuRwIBR8bjE2+WBqE8PF8bjbjWLCfzOebNJ7wP7E6Z0YPa+koCp2NPphjBSVMfK Y6nLanKVCCeUyfNwXXDOBiw3wret0rTl9iU7Gsagw83SPFyMLr0JXLmA5nfQl4l2vGbx mQOg== X-Gm-Message-State: AOAM531+ma4Bee/QFjIiL1oUbFLEMBqTtqNFJbcsfHr9O4ovL0Zb7PhI Jk/wqiJ2c7z9oJqdNdjqQWdf3qlUP58NyE/flJ+OAAmKsm5kdH4x8erPZC0JuQEpyRtEI9iMygZ a9k8B78+U2a0yMA8UbFHy X-Google-Smtp-Source: ABdhPJzkEJqH3DhZPiniq1mLYdbOpBRq55dzDY4xhi7P9zob6dCYk/RlowknR/4y5blwqbPjeyMiS+rIQ4V2WL0r1F8= X-Received: by 2002:a05:6512:150a:: with SMTP id bq10mr30400262lfb.68.1635350713972; Wed, 27 Oct 2021 09:05:13 -0700 (PDT) From: Roman Bacik References: <20211025234444.1237-1-roman.bacik@broadcom.com> <20211025164424.v3.2.I1edaad77041c1300213c307eef6741499504047@changeid> <20211026151742.42b0fcfa@thinkpad> <20211026175519.418d4864@thinkpad> <20211026184950.47bcd1af@thinkpad> In-Reply-To: MIME-Version: 1.0 X-Mailer: Microsoft Outlook 16.0 Thread-Index: AQGwPfUYlqia02RTFXRPeT0mo3zj3QG0cxe3Ae8hGVkBhEyqoACPkmgLAjFeXAYC0Sy7ewGVDZggAhT3zBOrwvkFsA== Date: Wed, 27 Oct 2021 09:05:09 -0700 Message-ID: <6315f8d61172ed3c1a1f9324bad73c8d@mail.gmail.com> Subject: RE: [PATCH v3 2/2] cmd: brcm: netXtreme commands To: Simon Glass Cc: =?UTF-8?B?TWFyZWsgQmVow7pu?= , U-Boot Mailing List , Bharat Gooty , Aswath Govindraju , Bin Meng , Franck LENORMAND , Heinrich Schuchardt , Kory Maincent , Michal Simek , Patrick Delaunay , Peng Fan , Priyanka Jain , Rayagonda Kokatanur , Sean Anderson Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="00000000000068f56605cf57c229" X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.34 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.103.2 at phobos.denx.de X-Virus-Status: Clean --00000000000068f56605cf57c229 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi Simon, > -----Original Message----- > From: Simon Glass > Sent: Wednesday, October 27, 2021 8:41 AM > To: Roman Bacik > Cc: Marek Beh=C3=BAn ; U-Boot Mailing List boot@lists.denx.de>; Bharat Gooty ; > Aswath Govindraju ; Bin Meng > ; Franck LENORMAND > ; Heinrich Schuchardt > ; Kory Maincent ; > Michal Simek ; Patrick Delaunay > ; Peng Fan ; Priyanka > Jain ; Rayagonda Kokatanur > ; Sean Anderson > > Subject: Re: [PATCH v3 2/2] cmd: brcm: netXtreme commands > > Hi Roman, > > On Wed, 27 Oct 2021 at 09:05, Roman Bacik > wrote: > > > > > -----Original Message----- > > > From: Marek Beh=C3=BAn > > > Sent: Tuesday, October 26, 2021 9:50 AM > > > To: Roman Bacik > > > Cc: Simon Glass ; U-Boot Mailing List > > boot@lists.denx.de>; Bharat Gooty ; > > > Aswath Govindraju ; Bin Meng > > > ; Franck LENORMAND > > > ; Heinrich Schuchardt > > > ; Kory Maincent ; > > > Michal Simek ; Patrick Delaunay > > > ; Peng Fan ; > Priyanka > > > Jain ; Rayagonda Kokatanur > > > ; Sean Anderson > > > > > > Subject: Re: [PATCH v3 2/2] cmd: brcm: netXtreme commands > > > > > > On Tue, 26 Oct 2021 09:02:54 -0700 > > > Roman Bacik wrote: > > > > > > > On Tue, Oct 26, 2021 at 8:55 AM Marek Beh=C3=BAn > wrote: > > > > > > > > > > On Tue, 26 Oct 2021 08:14:28 -0700 > > > > > Roman Bacik wrote: > > > > > > > > > > > Hi Marek, > > > > > > > > > > > > We do not want this driver to be automatically probed. It is no= t > > > > > > needed > > > > > > all the time and also slows down the boot time. We have strippe= d > > > > > > down > > > > > > everything else to bare minimum. > > > > > > Thanks, > > > > > > > > > > > > Roman > > > > > > > > > > Hi Roman, > > > > > > > > > > OK, that is reasonable, but not reasonable enough to introduce a > > > > > new > > > > > vendor specific command. > > > > > > > > > > Still NAK. > > > > > > > > > > So you have the bnxt_drv_probe method defined in the driver, but > you > > > > > don't set a pointer to it into the U_BOOT_DRIVER structure, and > > > > > instead > > > > > you call this method when "brcm probe" command is called. > > > > > > > > > > I think this introduction of another vendor specific command is > > > > > wrong. > > > > > > > > > > If probing takes too much time and should be done only when the > device > > > > > is needed, there are 2 things you could do: > > > > > > > > > > - you can create new driver flag saying that the device should be > > > > > probeb only when needed, wire necessary code and add this flag > > > > > to > > > your > > > > > driver (this could get very complicated, though) > > > > > - you can do minimum stuff in probe method, and move the stuff > > > > > that > > > > > takes long time into bnxt_start(), which is called only when > > > > > network > > > > > via this ethernet controller is requested for by U-Boot > > > > > commands. > > > > > > > > So renaming bnxt probe/remove to bnxt start/stop will do, right? > > > > > > No. The whole idea of adding the new "bnxt" command is wrong, > because > > > the command is *vendor specific*. The ethernet controller should work > > > out of the box with standard U-Boot commands, i.e. it if I use the > > > dhcp > > > command, it should work, without needing to call the "bnxt" command. > > > > Hi Marek, > > > > In order to speed up the boot, we do not load bnxt driver on each boot. > Also > > we do not need to load FW and initialize PCI required to bind bnxt. Whe= n > > bnxt is required, then we execute these commands: > > > > chimp_ld_secure #this command loads FW, which is necessary for PCIe to > > enumerate it > > pci enum #this command is necessary to call bnxt_bind > > bnxt 0 probe #this command would probe/load the driver > > > > Do you have a suggestion on how to make this work without introducing > bnxt > > commands if we do not want to enumerate PCIe, load FW and load bnxt on > each > > boot? Currently we boot to uboot prompt in 1s, which is our requirement= . > > Thanks, > > It sounds like your ethernet driver will not even be bound in the > non-PCI case. Is that right? Yes correct > > What about the PCI driver? Does that get bound initially? If so, I > think U-Boot will normally probe PCI. But we should provide a way to > not auto--probe PCI. Would that help? PCI is probed automatically but PCI must be enumerated only after FW is loaded, which we do not want to be executed each boot. > > You could put the firmware loading (or a call to it) in your PCI > driver, perhaps. Then bringing up Ethernet could be something like: > > ret =3D uclass_first_device_err(UCLASS_PCI, &dev); Where would we call this from? Will it include calling "pci enum" required for bnxt to bind? We need this sequence somewhere: load fw -> pci enum (calls bnxt_bind which sets device name) -> bnxp_probe (needs bound device by name) > > I think your use case is not that unusual and we should be able to > support it in a standard way. If there are features missing for that I > am very happy to help figure it out. > > Regards, > Simon Maybe probing on demand when more than one eth driver can be used could be acceptable? Thank you very much for your help, Roman --=20 This electronic communication and the information and any files transmitted= =20 with it, or attached to it, are confidential and are intended solely for=20 the use of the individual or entity to whom it is addressed and may contain= =20 information that is confidential, legally privileged, protected by privacy= =20 laws, or otherwise restricted from disclosure to anyone else. If you are=20 not the intended recipient or the person responsible for delivering the=20 e-mail to the intended recipient, you are hereby notified that any use,=20 copying, distributing, dissemination, forwarding, printing, or copying of= =20 this e-mail is strictly prohibited. If you received this e-mail in error,= =20 please return the e-mail to the sender, delete it from your computer, and= =20 destroy any printed copy of it. --00000000000068f56605cf57c229 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature 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 6kRRYRlzjF1rVR3PZvtVpwKTcWvwqez9YnB5W7zFh0J6WXsQJsLKZoRNvv4VXAk2vycIsWR+aeNb l0x6vipMzcE90s2JZ/wqJlxX8dutql3gueCzZ2SxAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGHJvbWFuLmJhY2lrQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUFIRMHHEZDi127CpeMcPLPgCva8Aw DQYJKoZIhvcNAQELBQADggEBAJ3AlGS8SnTzvdaHc1sGWw7/pdUpzU59NLy5p827v5YbcxopZQPL v2q6YbcQTpQnxVa++htLqp+WyOb3PTzydNsHb5B++mR/jz9/+mJsa7yvtLkcDDcQrOfrZus6usQs oGwMj7g7D2OvJHuBtBRpqnKDRO4Wi7MHuGDfW6Wm+YJ3iibIl8OPWiqXlfOlkYxAaZcAAW84IeeM umNUQbWNMoBfa5qSHxe3ZWGNFZWnpTN7vp4rmu8Z1qrZGrSVc9IO3z+3/AD9GdYdelj8miFNczvR 0iiTaHiP8f5hiC8LUlKosTub10tap8TP0SCcuXM5RgS1q9QJ/zmwbg1zPbTTGkgxggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwhRMMZKMaVhUl0DO8wDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEICXuFh+fm1oxUGK3sxBv+uBV3sMjPpz72YeI XelyPcwSMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIxMTAyNzE2 MDUxNFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQATyoIitV9i06jIBnw52ppPQoRo9osbwENV8ZBDUKX4LuRymkQpJgfU 7+HDndifaPyBvIIaaW05Gmw9dY6taTjMlXS0pUT1RGjQmnS7fueJewrv/gqTPW9FvYAWxjLN4xH7 sGzN5WyVVErufLADt6xHvvjJ5kc3woK7fAjpi4UDH5S2T7jEn4hTG1bEvcLIDr5CWi7lrYMp+IZ2 euHPgCxsi0vSg0W+AHUl+DYrVFqFJfBdp46T2DexcUjSobNKuBtHxYXJ1Xh5PUS8g22owl0B1/pv OOabgxucFxfZQLBoLn8PJ/SGhZV5nn2ca0oCQSSK3CtWOhiLmvIdrGie5zkC --00000000000068f56605cf57c229--