On 1/6/20 3:20 PM, Jan Kiszka wrote:
> From: Jan Kiszka <jan.kis...@siemens.com>
> 
> Provide PCI support for ARM by implementing mmconfig-based
> pci_read/write_config and moving shared defines and prototypes into the
> common header. pci_msix_set_vector is only implemented as stub on ARM
> so far, can be enhanced later.
> 
> As mmconfig implies mapping of that MMIO region, pci_init is introduced.
> x86 does not need it and only implements a stub in order to allow
> arch-independent inmates.
> 
> Signed-off-by: Jan Kiszka <jan.kis...@siemens.com>
> ---
>  inmates/lib/arm-common/Makefile.lib   |  4 +-
>  inmates/lib/{x86 => arm-common}/pci.c | 96 
> ++++++++++-------------------------
>  inmates/lib/include/inmate_common.h   | 34 +++++++++++++
>  inmates/lib/x86/include/inmate.h      | 32 ------------
>  inmates/lib/x86/pci.c                 |  4 ++
>  5 files changed, 66 insertions(+), 104 deletions(-)
>  copy inmates/lib/{x86 => arm-common}/pci.c (51%)
> 
> diff --git a/inmates/lib/arm-common/Makefile.lib 
> b/inmates/lib/arm-common/Makefile.lib
> index 669ff485..8a4c2237 100644
> --- a/inmates/lib/arm-common/Makefile.lib
> +++ b/inmates/lib/arm-common/Makefile.lib
> @@ -37,8 +37,8 @@
>  #
>  
>  objs-y := ../string.o ../cmdline.o ../setup.o ../alloc.o ../uart-8250.o
> -objs-y += ../printk.o
> -objs-y += printk.o gic.o mem.o timer.o setup.o uart.o
> +objs-y += ../printk.o ../pci.o
> +objs-y += printk.o gic.o mem.o pci.o timer.o setup.o uart.o
>  objs-y += uart-xuartps.o uart-mvebu.o uart-hscif.o uart-scifa.o uart-imx.o
>  objs-y += uart-pl011.o
>  objs-y += gic-v2.o gic-v3.o
> diff --git a/inmates/lib/x86/pci.c b/inmates/lib/arm-common/pci.c
> similarity index 51%
> copy from inmates/lib/x86/pci.c
> copy to inmates/lib/arm-common/pci.c
> index 06dd193f..99210c21 100644
> --- a/inmates/lib/x86/pci.c
> +++ b/inmates/lib/arm-common/pci.c
> @@ -1,7 +1,7 @@
>  /*
>   * Jailhouse, a Linux-based partitioning hypervisor
>   *
> - * Copyright (c) Siemens AG, 2014
> + * Copyright (c) Siemens AG, 2014-2020
>   *
>   * Authors:
>   *  Jan Kiszka <jan.kis...@siemens.com>
> @@ -38,21 +38,32 @@
>  
>  #include <inmate.h>
>  
> -#define PCI_REG_ADDR_PORT    0xcf8
> -#define PCI_REG_DATA_PORT    0xcfc
> +void pci_init(void)
> +{
> +     void *mmcfg = (void *)(unsigned long)comm_region->pci_mmconfig_base;
> +
> +     if (mmcfg)
> +             map_range(mmcfg, 0x100000, MAP_UNCACHED);
> +}
>  
> -#define PCI_CONE             (1 << 31)
> +static void *pci_get_device_mmcfg_base(u16 bdf)

inline?

> +{
> +     void *mmcfg = (void *)(unsigned long)comm_region->pci_mmconfig_base;
> +
> +        return mmcfg + ((unsigned long)bdf << 12);

Here are whitespaces instead of tabs.

  Ralf

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jailhouse-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jailhouse-dev/7e96dc43-ea5d-5780-8a9e-f211348cd57b%40oth-regensburg.de.

Reply via email to