Re: [PATCH v7 3/9] PCI: endpoint: functions/pci-epf-test: Add second entry
From: Lorenzo Pieralisi
Date: Thu May 03 2018 - 10:17:16 EST
On Thu, May 03, 2018 at 12:03:15PM +0530, Kishon Vijay Abraham I wrote:
[...]
> >> Since the linkup notifier and BAR index (where auxiliary registers are
> >> located) may be configurable and is something platform dependent,
> >> perhaps the configuration of this variables should be done by module
> >> parameter and not by configfs, leaving this configuration
> >> responsibility in charge of each platform.
> >
> > They are platform dependent because they depend on the EP controller.
> > That's why I said that those are EP controller parameters. I do not
> > think they are module parameters either - they should be part of HW
> > description in firmware.
>
> The problem is because pci-epf-test cannot be described in HW. pci-epf-test is
> also not automatically bound to the EP controller but is bound by the user like
> below
> ln -s functions/pci_epf_test/func1 controllers/51000000.pcie_ep/
>
> So given that user anyways has to bind the epf device to the controller, based
> on the platform the user can use a different configfs entry like below
> ln -s functions/pci_epf_test_dw/func1 controllers/51000000.pcie_ep/ or
> ln -s functions/pci_epf_test_k2g/func1 controllers/21800000.pcie-ep/
>
> If the epf can be described in dt, then something like below can be done
> pcie1_ep: pcie_ep@51000000 {
> compatible = "ti,dra7-pcie-ep";
> interrupts = <0 232 0x4>;
> num-lanes = <1>;
> num-ib-windows = <4>;
> num-ob-windows = <16>;
> phys = <&pcie1_phy>;
> phy-names = "pcie-phy0";
> pci_epf_test: pci_epf_test@0 {
> name = "pci_epf_test_dw";
> <other properties>;
> }
> };
>
> With this pci-dra7xx.c driver should create pci_epf_device using
> pci_epf_create("pci_epf_test_dw");
>
> Then the driver_data corresponding to "pci_epf_test_dw" will select linkup
> notifier or BAR index etc.
Those two properties are properties of the EP controller (it is not 100%
clear to me how the test BAR register is defined), is this correct ?
If yes, given that those properties are not useful before an EPF is
bound to an EPC, can't they be retrieved at bind time from the EPC
controller data (that we can add through DT bindings) ?
Thanks,
Lorenzo