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: Thu, 4 Jan 2024 16:11:11 +0100
From: Sebastian Reichel <sebastian.reichel@...labora.com>
To: Bartosz Golaszewski <brgl@...ev.pl>
Cc: Kalle Valo <kvalo@...nel.org>, 
	"David S . Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, 
	Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, 
	Rob Herring <robh+dt@...nel.org>, Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>, 
	Conor Dooley <conor+dt@...nel.org>, Bjorn Andersson <andersson@...nel.org>, 
	Konrad Dybcio <konrad.dybcio@...aro.org>, Catalin Marinas <catalin.marinas@....com>, 
	Will Deacon <will@...nel.org>, Bjorn Helgaas <bhelgaas@...gle.com>, 
	Heiko Stuebner <heiko@...ech.de>, Jernej Skrabec <jernej.skrabec@...il.com>, 
	Chris Morgan <macromorgan@...mail.com>, Linus Walleij <linus.walleij@...aro.org>, 
	Geert Uytterhoeven <geert+renesas@...der.be>, Arnd Bergmann <arnd@...db.de>, 
	Neil Armstrong <neil.armstrong@...aro.org>, 
	Nícolas F . R . A . Prado <nfraprado@...labora.com>, Marek Szyprowski <m.szyprowski@...sung.com>, 
	Peng Fan <peng.fan@....com>, Robert Richter <rrichter@....com>, 
	Dan Williams <dan.j.williams@...el.com>, Jonathan Cameron <Jonathan.Cameron@...wei.com>, 
	Terry Bowman <terry.bowman@....com>, 
	Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@...ux.intel.com>, Ilpo Järvinen <ilpo.jarvinen@...ux.intel.com>, 
	Huacai Chen <chenhuacai@...nel.org>, Alex Elder <elder@...aro.org>, 
	Srini Kandagatla <srinivas.kandagatla@...aro.org>, Greg Kroah-Hartman <gregkh@...uxfoundation.org>, 
	linux-wireless@...r.kernel.org, netdev@...r.kernel.org, devicetree@...r.kernel.org, 
	linux-kernel@...r.kernel.org, linux-arm-msm@...r.kernel.org, 
	linux-arm-kernel@...ts.infradead.org, linux-pci@...r.kernel.org, 
	Bartosz Golaszewski <bartosz.golaszewski@...aro.org>
Subject: Re: [RFC 0/9] PCI: introduce the concept of power sequencing of PCIe
 devices

Hi,

On Thu, Jan 04, 2024 at 02:01:14PM +0100, Bartosz Golaszewski wrote:
> During last year's Linux Plumbers we had several discussions centered
> around the need to power-on PCI devices before they can be detected on
> the bus.
> 
> The consensus during the conference was that we need to introduce a
> class of "PCI slot drivers" that would handle the power-sequencing.
> 
> After some additional brain-storming with Manivannan and the realization
> that the DT maintainers won't like adding any "fake" nodes not
> representing actual devices, we decided to reuse the existing
> infrastructure provided by the PCIe port drivers.
> 
> The general idea is to instantiate platform devices for child nodes of
> the PCIe port DT node. For those nodes for which a power-sequencing
> driver exists, we bind it and let it probe. The driver then triggers a
> rescan of the PCI bus with the aim of detecting the now powered-on
> device. The device will consume the same DT node as the platform,
> power-sequencing device. We use device links to make the latter become
> the parent of the former.
> 
> The main advantage of this approach is not modifying the existing DT in
> any way and especially not adding any "fake" platform devices.

I recently ran into this issue on a Rockchip platform using a PCIe
based AP6275P WLAN device (broadcom based). As far as I can tell your
proposal should also work for that one (obviously using a different
pwrseq driver).

-- Sebastian

> Bartosz Golaszewski (9):
>   arm64: dts: qcom: sm8250: describe the PCIe port
>   arm64: dts: qcom: qrb5165-rb5: describe the WLAN module of QCA6390
>   PCI/portdrv: create platform devices for child OF nodes
>   PCI: hold the rescan mutex when scanning for the first time
>   PCI/pwrseq: add pwrseq core code
>   dt-bindings: vendor-prefixes: add a PCI prefix for Qualcomm Atheros
>   dt-bindings: wireless: ath11k: describe QCA6390
>   PCI/pwrseq: add a pwrseq driver for QCA6390
>   arm64: defconfig: enable the PCIe power sequencing for QCA6390
> 
>  .../net/wireless/qcom,ath11k-pci.yaml         |  14 ++
>  .../devicetree/bindings/vendor-prefixes.yaml  |   1 +
>  arch/arm64/boot/dts/qcom/qrb5165-rb5.dts      |  24 +++
>  arch/arm64/boot/dts/qcom/sm8250.dtsi          |  10 +
>  arch/arm64/configs/defconfig                  |   2 +
>  drivers/pci/pcie/Kconfig                      |   2 +
>  drivers/pci/pcie/Makefile                     |   2 +
>  drivers/pci/pcie/portdrv.c                    |   3 +-
>  drivers/pci/pcie/pwrseq/Kconfig               |  19 ++
>  drivers/pci/pcie/pwrseq/Makefile              |   4 +
>  drivers/pci/pcie/pwrseq/pcie-pwrseq-qca6390.c | 197 ++++++++++++++++++
>  drivers/pci/pcie/pwrseq/pwrseq.c              |  83 ++++++++
>  drivers/pci/probe.c                           |   2 +
>  include/linux/pcie-pwrseq.h                   |  24 +++
>  14 files changed, 386 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/pci/pcie/pwrseq/Kconfig
>  create mode 100644 drivers/pci/pcie/pwrseq/Makefile
>  create mode 100644 drivers/pci/pcie/pwrseq/pcie-pwrseq-qca6390.c
>  create mode 100644 drivers/pci/pcie/pwrseq/pwrseq.c
>  create mode 100644 include/linux/pcie-pwrseq.h
> 
> -- 
> 2.40.1
> 
> 

Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ