mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
xen/arm: pci: Add stubs to allow selecting HAS_PCI
In a follow-up we will enable PCI support in Xen on Arm (i.e select HAS_PCI). The generic code expects the arch to implement a few functions: arch_iommu_use_permitted() arch_pci_clean_pirqs() Note that this is not yet sufficient to enable HAS_PCI and will be addressed in follow-ups. Signed-off-by: Rahul Singh <rahul.singh@arm.com> Reviewed-by: Stefano Stabellini <sstabellini@kernel.org> Reviewed-by: Bertrand Marquis <bertrand.marquis@arm.com>
This commit is contained in:
1 parent
a12ceae85b
commit
a3a476fb74
5 files changed
+72
-3
No files matched your search
@@ -2,6 +2,7 @@ obj-$(CONFIG_ARM_32) += arm32/
|
||||
obj-$(CONFIG_ARM_64) += arm64/
|
||||
obj-$(CONFIG_ARM_64) += efi/
|
||||
obj-$(CONFIG_ACPI) += acpi/
|
||||
obj-$(CONFIG_HAS_PCI) += pci/
|
||||
ifneq ($(CONFIG_NO_PLAT),y)
|
||||
obj-y += platforms/
|
||||
endif
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
obj-y += pci.o
|
||||
@@ -0,0 +1,33 @@
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <xen/pci.h>
|
||||
|
||||
/*
|
||||
* PIRQ event channels are not supported on Arm, so nothing to do.
|
||||
*/
|
||||
int arch_pci_clean_pirqs(struct domain *d)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* mode: C
|
||||
* c-file-style: "BSD"
|
||||
* c-basic-offset: 4
|
||||
* tab-width: 4
|
||||
* indent-tabs-mode: nil
|
||||
* End:
|
||||
*/
|
||||
@@ -135,3 +135,12 @@ void arch_iommu_domain_destroy(struct domain *d)
|
||||
void __hwdom_init arch_iommu_hwdom_init(struct domain *d)
|
||||
{
|
||||
}
|
||||
|
||||
/*
|
||||
* Unlike x86, Arm doesn't support mem-sharing, mem-paging and log-dirty (yet).
|
||||
* So there is no restriction to use the IOMMU.
|
||||
*/
|
||||
bool arch_iommu_use_permitted(const struct domain *d)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@@ -1,7 +1,32 @@
|
||||
#ifndef __X86_PCI_H__
|
||||
#define __X86_PCI_H__
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef __ARM_PCI_H__
|
||||
#define __ARM_PCI_H__
|
||||
|
||||
#ifdef CONFIG_HAS_PCI
|
||||
|
||||
#define pci_to_dev(pcidev) (&(pcidev)->arch.dev)
|
||||
|
||||
/* Arch pci dev struct */
|
||||
struct arch_pci_dev {
|
||||
struct device dev;
|
||||
};
|
||||
|
||||
#endif /* __X86_PCI_H__ */
|
||||
#else /*!CONFIG_HAS_PCI*/
|
||||
|
||||
struct arch_pci_dev { };
|
||||
|
||||
#endif /*!CONFIG_HAS_PCI*/
|
||||
#endif /* __ARM_PCI_H__ */
|
||||