All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefano Stabellini <sstabellini@kernel.org>
To: Rahul Singh <rahul.singh@arm.com>
Cc: xen-devel@lists.xenproject.org, bertrand.marquis@arm.com,
	 Andre.Przywara@arm.com,
	Stefano Stabellini <sstabellini@kernel.org>,
	 Julien Grall <julien@xen.org>,
	 Volodymyr Babchuk <Volodymyr_Babchuk@epam.com>
Subject: Re: [PATCH v3 09/17] xen/arm: Add support for PCI init to initialize the PCI driver.
Date: Tue, 28 Sep 2021 23:10:46 -0700 (PDT)	[thread overview]
Message-ID: <alpine.DEB.2.21.2109281625430.5022@sstabellini-ThinkPad-T480s> (raw)
In-Reply-To: <31f2e3baf45f059a8ddac22fefc7cdfe1bc63ef5.1632847120.git.rahul.singh@arm.com>

On Tue, 28 Sep 2021, Rahul Singh wrote:
> pci_init(..) will be called during xen startup to initialize and probe
> the PCI host-bridge driver.
> 
> Signed-off-by: Rahul Singh <rahul.singh@arm.com>

Reviewed-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> Change in v3:
> - Some nit for device_init(..) return logic
> - Remove inline from acpi_pci_init(..)
> - Modify return value for apci_pci_init(..) to return -EOPNOTSUPP
> Change in v2:
> - ACPI init function to return int
> - pci_segments_init() called before dt/acpi init
> ---
>  xen/arch/arm/pci/pci.c       | 51 ++++++++++++++++++++++++++++++++++++
>  xen/include/asm-arm/device.h |  1 +
>  2 files changed, 52 insertions(+)
> 
> diff --git a/xen/arch/arm/pci/pci.c b/xen/arch/arm/pci/pci.c
> index a7a7bc3213..e359bab9ea 100644
> --- a/xen/arch/arm/pci/pci.c
> +++ b/xen/arch/arm/pci/pci.c
> @@ -12,6 +12,10 @@
>   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
>   */
>  
> +#include <xen/acpi.h>
> +#include <xen/device_tree.h>
> +#include <xen/errno.h>
> +#include <xen/init.h>
>  #include <xen/pci.h>
>  
>  /*
> @@ -22,6 +26,53 @@ int arch_pci_clean_pirqs(struct domain *d)
>      return 0;
>  }
>  
> +static int __init dt_pci_init(void)
> +{
> +    struct dt_device_node *np;
> +    int rc;
> +
> +    dt_for_each_device_node(dt_host, np)
> +    {
> +        rc = device_init(np, DEVICE_PCI, NULL);
> +        /*
> +         * Ignore the following error codes:
> +         *   - EBADF: Indicate the current device is not a pci device.
> +         *   - ENODEV: The pci device is not present or cannot be used by
> +         *     Xen.
> +         */
> +        if( !rc || rc == -EBADF || rc == -ENODEV )
> +            continue;
> +
> +        return rc;
> +    }
> +
> +    return 0;
> +}
> +
> +#ifdef CONFIG_ACPI
> +static int __init acpi_pci_init(void)
> +{
> +    printk(XENLOG_ERR "ACPI pci init not supported \n");
> +    return -EOPNOTSUPP;
> +}
> +#else
> +static int __init acpi_pci_init(void)
> +{
> +    return -EINVAL;
> +}
> +#endif
> +
> +static int __init pci_init(void)
> +{
> +    pci_segments_init();
> +
> +    if ( acpi_disabled )
> +        return dt_pci_init();
> +    else
> +        return acpi_pci_init();
> +}
> +__initcall(pci_init);
> +
>  /*
>   * Local variables:
>   * mode: C
> diff --git a/xen/include/asm-arm/device.h b/xen/include/asm-arm/device.h
> index ee7cff2d44..5ecd5e7bd1 100644
> --- a/xen/include/asm-arm/device.h
> +++ b/xen/include/asm-arm/device.h
> @@ -34,6 +34,7 @@ enum device_class
>      DEVICE_SERIAL,
>      DEVICE_IOMMU,
>      DEVICE_GIC,
> +    DEVICE_PCI,
>      /* Use for error */
>      DEVICE_UNKNOWN,
>  };
> -- 
> 2.17.1
> 


  reply	other threads:[~2021-09-29  6:10 UTC|newest]

Thread overview: 64+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-28 18:18 [PATCH v3 00/17] PCI devices passthrough on Arm Rahul Singh
2021-09-28 18:18 ` [PATCH v3 01/17] xen/pci: Refactor MSI code that implements MSI functionality within XEN Rahul Singh
2021-09-29  7:28   ` Bertrand Marquis
2021-09-29 16:56   ` Stefano Stabellini
2021-09-30 14:22     ` Jan Beulich
2021-09-28 18:18 ` [PATCH v3 02/17] xen/arm: pci: Add stubs to allow selecting HAS_PCI Rahul Singh
2021-09-29  7:28   ` Bertrand Marquis
2021-09-28 18:18 ` [PATCH v3 03/17] xen/arm: solve compilation error on ARM with ACPI && HAS_PCI Rahul Singh
2021-09-29  7:29   ` Bertrand Marquis
2021-09-29  8:24   ` Jan Beulich
2021-09-29  9:29     ` Rahul Singh
2021-09-28 18:18 ` [PATCH v3 04/17] xen/arm: xc_domain_ioport_permission(..) not supported on ARM Rahul Singh
2021-09-29  7:30   ` Bertrand Marquis
2021-09-28 18:18 ` [PATCH v3 05/17] xen/arm: Add PHYSDEVOP_pci_device_* support for ARM Rahul Singh
2021-09-29  6:05   ` Stefano Stabellini
2021-09-29  7:34   ` Bertrand Marquis
2021-09-30 14:51   ` Jan Beulich
2021-10-01 16:19     ` Rahul Singh
2021-09-28 18:18 ` [PATCH v3 06/17] xen/device-tree: Add dt_property_read_variable_u32_array helper Rahul Singh
2021-09-29  6:06   ` Stefano Stabellini
2021-09-29  7:34   ` Bertrand Marquis
2021-09-28 18:18 ` [PATCH v3 07/17] xen/device-tree: Add dt_property_read_u32_array helper Rahul Singh
2021-09-29  6:07   ` Stefano Stabellini
2021-09-29  7:35   ` Bertrand Marquis
2021-09-28 18:18 ` [PATCH v3 08/17] xen/device-tree: Add dt_get_pci_domain_nr helper Rahul Singh
2021-09-29  6:09   ` Stefano Stabellini
2021-09-29  7:35   ` Bertrand Marquis
2021-09-28 18:18 ` [PATCH v3 09/17] xen/arm: Add support for PCI init to initialize the PCI driver Rahul Singh
2021-09-29  6:10   ` Stefano Stabellini [this message]
2021-09-29  7:35   ` Bertrand Marquis
2021-09-28 18:18 ` [PATCH v3 10/17] xen/arm: Add cmdline boot option "pci-passthrough = <boolean>" Rahul Singh
2021-09-29  6:11   ` Stefano Stabellini
2021-09-29  7:36   ` Bertrand Marquis
2021-09-30 15:00   ` Jan Beulich
2021-10-01 10:55     ` Rahul Singh
2021-09-28 18:18 ` [PATCH v3 11/17] xen/arm: PCI host bridge discovery within XEN on ARM Rahul Singh
2021-09-29  8:31   ` Jan Beulich
2021-09-29  8:59     ` Rahul Singh
2021-09-29 16:40   ` Stefano Stabellini
2021-09-30  7:47     ` Jan Beulich
2021-09-28 18:18 ` [PATCH v3 12/17] xen/arm: Add support for Xilinx ZynqMP PCI host controller Rahul Singh
2021-09-29 13:38   ` Bertrand Marquis
2021-09-29 14:17     ` Oleksandr Andrushchenko
2021-09-29 16:41   ` Stefano Stabellini
2021-09-30  7:48     ` Jan Beulich
2021-09-30 10:42       ` Rahul Singh
2021-09-28 18:18 ` [PATCH v3 13/17] xen/arm: Implement pci access functions Rahul Singh
2021-09-29 13:35   ` Bertrand Marquis
2021-09-29 16:42   ` Stefano Stabellini
2021-09-28 18:18 ` [PATCH v3 14/17] xen/arm: Enable the existing x86 virtual PCI support for ARM Rahul Singh
2021-09-29 16:45   ` Stefano Stabellini
2021-09-30 15:19   ` Jan Beulich
2021-10-01 11:44     ` Rahul Singh
2021-10-01 12:40       ` Jan Beulich
2021-09-28 18:18 ` [PATCH v3 15/17] xen/arm: Transitional change to build HAS_VPCI on ARM Rahul Singh
2021-09-29 13:39   ` Bertrand Marquis
2021-09-29 16:46   ` Stefano Stabellini
2021-09-28 18:18 ` [PATCH v3 16/17] arm/libxl: Emulated PCI device tree node in libxl Rahul Singh
2021-09-29 13:42   ` Bertrand Marquis
2021-09-29 16:47   ` Stefano Stabellini
2021-09-28 18:18 ` [PATCH v3 17/17] xen/arm: Add linux,pci-domain property for hwdom if not available Rahul Singh
2021-09-29 13:42   ` Bertrand Marquis
2021-09-29 16:48   ` Stefano Stabellini
2021-10-01  1:31 ` [PATCH v3 00/17] PCI devices passthrough on Arm Stefano Stabellini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.DEB.2.21.2109281625430.5022@sstabellini-ThinkPad-T480s \
    --to=sstabellini@kernel.org \
    --cc=Andre.Przywara@arm.com \
    --cc=Volodymyr_Babchuk@epam.com \
    --cc=bertrand.marquis@arm.com \
    --cc=julien@xen.org \
    --cc=rahul.singh@arm.com \
    --cc=xen-devel@lists.xenproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.