Hi, we build some 4xx based PMC modules in the past. These boards can run as host ("processor PMC" or so called "monarch" mode) or as PCI endpoint ("non-monarch" mode). I would like to use the same DT (and kernel) in both modes. Currently I set the "status" property of the PCI node to "disabled" to prevent the kernel to do the host bride stuff (not good as I learned). But we need some info from the PCI node even in endpoint mode. So disable is not the best idea.
In endpoint mode the current PCI node has many properties that make no sense and others are missing. So one could think of a pci _and_ pci-endpoint node. The one that is not needed can be disabled, e.g. by U-Boot (if you are using U-Boot :-). I could live with a mode or empty endpoint property, but I am not sure how to keep the endpoint interrupt properties side-by-side with the host interrupt mapping. I do not want to patch multiple properties by the bootloader to switch between host and endpoint. No can we have interrupt-parent + interrupts property in the same node with interrupt-map-mask + interrupt-map? PCI0: [EMAIL PROTECTED] { device_type = "pci"; endpoint; /* Ben's suggestion */ /* makes only sense for endpoints */ interrupt-parent = <&UIC0>; interrupts = <0x5 0x4 /* PCI command write */ 0x6 0x4>; /* PCI power management */ #interrupt-cells = <1>; #size-cells = <2>; #address-cells = <3>; compatible = "ibm,plb440epx-pci", "ibm,plb-pci"; primary; reg = <0x00000001 0xeec00000 0x00000008 0x00000001 0xeed00000 0x00000004 0x00000001 0xeed00000 0x00000004 0x00000001 0xef400000 0x00000040>; /* makes some sense for endpoints Values might differ between host and endpoints */ ranges = <...>; /* makes some sense for endpoints */ dma-ranges = <...>; interrupt-map-mask = <...>; interrupt-map = <...>; }; }; Matthias On Tuesday 04 November 2008 22:29:44 Benjamin Herrenschmidt wrote: > On Tue, 2008-11-04 at 12:17 +0100, Matthias Fuchs wrote: > > I must admit that I am not sure what you mean by (pci-endpoint) > > _name_. > > Do you mean something like this: > > > > PCI: [EMAIL PROTECTED] { > > endpoint = "pci-endpoint"; > > ... > > > > To many "endpoint" appearances for my taste:-) > > No, by name I meant > > PCI: [EMAIL PROTECTED] { > } > > But if we want to have the same device node easily convert between > endpoint and host, maybe simply a property would be enough. Either just > an empty "endoint" property or a "mode" property containing "endpoint" > vs. "host". > > I tend to prefer changing the name if we aren't going to be a host > bridge though. > > Ben. > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@ozlabs.org > https://ozlabs.org/mailman/listinfo/linuxppc-dev -- ------------------------------------------------------------------------- Dipl.-Ing. Matthias Fuchs Head of System Design esd electronic system design gmbh Vahrenwalder Str. 207 - 30165 Hannover - GERMANY Phone: +49-511-37298-0 - Fax: +49-511-37298-68 Please visit our homepage http://www.esd.eu Quality Products - Made in Germany ------------------------------------------------------------------------- Geschäftsführer: Klaus Detering, Dr. Werner Schulze Amtsgericht Hannover HRB 51373 - VAT-ID DE 115672832 ------------------------------------------------------------------------- _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev