mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-17 22:05:08 +00:00
db75674680
Enable the PCI resource mapping on RISC-V using the generic framework. This allows userspace applications to mmap PCI resources using /sys/devices/pci*/*/resource* interface. The mmap has been tested with Intel x520-DA2 NIC card on a HiFive Unmatched board (SiFive FU740 SoC). Signed-off-by: Stanislaw Kardach <kda@semihalf.com> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
54 lines
1.0 KiB
C
54 lines
1.0 KiB
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* Copyright (C) 2016 SiFive
|
|
*/
|
|
|
|
#ifndef _ASM_RISCV_PCI_H
|
|
#define _ASM_RISCV_PCI_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/slab.h>
|
|
#include <linux/dma-mapping.h>
|
|
|
|
#include <asm/io.h>
|
|
|
|
#define PCIBIOS_MIN_IO 0
|
|
#define PCIBIOS_MIN_MEM 0
|
|
|
|
/* RISC-V shim does not initialize PCI bus */
|
|
#define pcibios_assign_all_busses() 1
|
|
|
|
#define ARCH_GENERIC_PCI_MMAP_RESOURCE 1
|
|
|
|
extern int isa_dma_bridge_buggy;
|
|
|
|
#ifdef CONFIG_PCI
|
|
static inline int pci_get_legacy_ide_irq(struct pci_dev *dev, int channel)
|
|
{
|
|
/* no legacy IRQ on risc-v */
|
|
return -ENODEV;
|
|
}
|
|
|
|
static inline int pci_proc_domain(struct pci_bus *bus)
|
|
{
|
|
/* always show the domain in /proc */
|
|
return 1;
|
|
}
|
|
|
|
#ifdef CONFIG_NUMA
|
|
|
|
static inline int pcibus_to_node(struct pci_bus *bus)
|
|
{
|
|
return dev_to_node(&bus->dev);
|
|
}
|
|
#ifndef cpumask_of_pcibus
|
|
#define cpumask_of_pcibus(bus) (pcibus_to_node(bus) == -1 ? \
|
|
cpu_all_mask : \
|
|
cpumask_of_node(pcibus_to_node(bus)))
|
|
#endif
|
|
#endif /* CONFIG_NUMA */
|
|
|
|
#endif /* CONFIG_PCI */
|
|
|
|
#endif /* _ASM_RISCV_PCI_H */
|