[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [RFC PATCH v1 1/4] arm/pci: PCI setup and PCI host bridge discovery within XEN on ARM.
On Fri, Jul 24, 2020 at 04:15:47PM +0100, Julien Grall wrote: > > > On 24/07/2020 15:44, Roger Pau Monné wrote: > > > diff --git a/xen/arch/arm/pci/Makefile b/xen/arch/arm/pci/Makefile > > > new file mode 100644 > > > index 0000000000..358508b787 > > > --- /dev/null > > > +++ b/xen/arch/arm/pci/Makefile > > > @@ -0,0 +1,4 @@ > > > +obj-y += pci.o > > > +obj-y += pci-host-generic.o > > > +obj-y += pci-host-common.o > > > +obj-y += pci-access.o > > > > The Kconfig option mentions the support being explicitly for ARM64, > > would it be better to place the code in arch/arm/arm64 then? > I don't believe any of the code in this series is very arm64 specific. I > guess it was just only tested on arm64. So I would rather keep that under > arm/pci. Ack. Could the Kconfg be adjusted to not depend on ARM_64? Just stating it's only been tested on Arm64 would be enough IMO. > > > + > > > + struct pci_host_bridge *bridge = pci_find_host_bridge(sbdf.seg, > > > sbdf.bus); > > > + > > > + if ( unlikely(!bridge) ) > > > + { > > > + printk(XENLOG_ERR "Unable to find bridge for "PRI_pci"\n", > > > + sbdf.seg, sbdf.bus, sbdf.dev, sbdf.fn); > > > > I had a patch to add a custom modifier to out printf format in > > order to handle pci_sbdf_t natively: > > > > https://patchew.org/Xen/20190822065132.48200-1-roger.pau@xxxxxxxxxx/ > > > > It missed maintainers Acks and was never committed. Since you are > > doing a bunch of work here, and likely adding a lot of SBDF related > > prints, feel free to import the modifier (%pp) and use in your code > > (do not attempt to switch existing users, or it's likely to get > > stuck again). > > I forgot about this patch :/. It would be good to revive it. Which acks are > you missing? I only had an Ack from Jan, so I was missing Intel and AMD Acks, which would now only be Intel since AMD has been absorbed by the x86 maintainers. > [...] > > > > +static bool __init dt_pci_parse_bus_range(struct dt_device_node *dev, > > > + struct pci_config_window *cfg) > > > +{ > > > + const __be32 *cells; > > > > It's my impression that while based on Linux this is not a verbatim > > copy of a Linux file, and tries to adhere with the Xen coding style. > > If so please use uint32_t here. > > uint32_t would be incorrect because this is a 32-bit value always in big > endian. I don't think we have other typedef to show it is a 32-bit BE value, > so __be32 is the best choice. Oh, OK, so this is done to explicitly denote the endianness of a value on the type itself. > [...] > > > > + > > > + if ( acpi_disabled ) > > > + dt_pci_init(); > > > + else > > > + acpi_pci_init(); > > > > Isn't there an enum or something that tells you whether the system > > description is coming from ACPI or from DT? > > > > This if .. else seems fragile. > > > > This is the common way we do it on Arm.... I would welcome any improvement, > but I don't think this should be part of this work. Ack. In any case I think for ACPI PCI init will get called by acpi_mmcfg_init as part of acpi_boot_init, so I'm not sure there's much point in having something about ACPI added here, as it seems this will be DT only? Roger.
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |