From mboxrd@z Thu Jan 1 00:00:00 1970 From: Arnd Bergmann Subject: Re: [RFC PATCH v2 2/3] PCI: hisi: Make the HiSilicon PCIe host controller ECAM compliant Date: Mon, 08 Feb 2016 17:29:40 +0100 Message-ID: <2599997.xBRrI3qHak@wuerfel> References: <1454935264-6076-1-git-send-email-gabriele.paoloni@huawei.com> <3532826.pJr5R5Xa4c@wuerfel> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Gabriele Paoloni Cc: "Lorenzo.Pieralisi@arm.com" , "jcm@redhat.com" , "tn@semihalf.com" , "linux-pci@vger.kernel.org" , Linuxarm , "xuwei (O)" , "linux-kernel@vger.kernel.org" , "linux-acpi@vger.kernel.org" , "Wangzhou (B)" , "liudongdong (C)" , "Guohanjun (Hanjun Guo)" , "bhelgaas@google.com" , zhangjukuo , "Liguozhu (Kenneth)" , qiujiang , "linux-arm-kernel@lists.infradead.org" List-Id: linux-acpi@vger.kernel.org On Monday 08 February 2016 15:55:35 Gabriele Paoloni wrote: > > Doesn't this break backwards compatibility? > > Well Hip05/Hip06 SoCs are used into evaluation boards > For the Estuary project. > > https://github.com/hisilicon/estuary > > As this new driver gets upstream we'll merge this new driver into estuary > and release a new version of the firmware to support it. So what happens to folks running the old firmware then? > > I think you need to use a new compatible string in the firmware > > if you change the register layout, and then change the driver > > to support both the old and the new layout. > > You are right, for some reason in this patchset I missed the Documentation > update that I posted in the previous one, i.e.: > > --- a/Documentation/devicetree/bindings/pci/hisilicon-pcie.txt > +++ b/Documentation/devicetree/bindings/pci/hisilicon-pcie.txt > @@ -23,8 +23,8 @@ Optional properties: > Hip05 Example (note that Hip06 is the same except compatible): > pcie@0xb0080000 { > compatible = "hisilicon,hip05-pcie", "snps,dw-pcie"; > - reg = <0 0xb0080000 0 0x10000>, <0x220 0x00000000 0 0x2000>; > - reg-names = "rc_dbi", "config"; > + reg = <0 0xb0080000 0 0x10000>, <0x220 0x00100000 0 0x0f00000>; > + reg-names = "rc_dbi", "ecam-cfg"; > That is not the compatible string, it's an undocumented register set. You can either define the a new compatible string that gives the "config" registers a new meaning, or you change the binding to allow two either a "config" or an "ecam-cfg" register set, and let the driver handle both. Arnd