From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org> To: Peter Maydell <peter.maydell-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> Cc: Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>, "linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org" <linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org>, "devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org" <devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>, Russell King <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>, Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>, "arm-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org" <arm-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>, Bjorn Helgaas <bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org> Subject: Re: [PATCH 3/9] ARM: versatile: add DT based PCI detection Date: Thu, 01 Jan 2015 16:35:42 +0100 [thread overview] Message-ID: <2544305.Bn9s67VML8@wuerfel> (raw) In-Reply-To: <CAFEAcA-=2GGEAdnO9+8EV+8OkwUHj3tRiMYWvS4b-cpy6P6rYg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> On Wednesday 31 December 2014 21:07:25 Peter Maydell wrote: > On 31 December 2014 at 19:22, Rob Herring <robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > On Wed, Dec 31, 2014 at 10:13 AM, Peter Maydell > > <peter.maydell-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote: > >> Why would you want to get the bootloader to do this for you when > >> the hardware provides a perfectly good mechanism for probing > >> for the existence of the hardware? "Ask the hardware" is always > >> going to be a more reliable and foolproof way to get the answer > >> if you can do it -- device tree should just be for the cases where > >> there is no way to probe. In any case the only way for the boot > >> loader to determine the correct value to put into the device tree > >> would be to read the register itself. > > > > Only that it is nice to hide all the ugly bits in the > > bootloader/firmware and DT already provides a standard way to enable > > or disable h/w. This h/w is not probeable in any sort of standard way. > > This is an embedded system, you were expecting some kind of > standard? But that is exactly the point: While we try to ask the hardware about anything that can be reasonably queried through an in-kernel interface that talks to the hardware, it works less well when that hardware interface is rather obscure and (like this one) only used on a few special machines. Similar examples are Marvell's SoC ID register, which you have to read by powering on the PCI host bridge and reading the Vendor/Device ID registers for the root bus, or the 'nvram' on Broadcom's wifi router chips that is in reality a partition on either NOR or NAND flash. Accessing those at early boot from a random device driver is a real pain, and it would be much nicer to have the boot loader read them and put the data into the DT for us if we had the option. Unfortunately we have to deal with legacy boot loaders that don't change the DTB. > > From Table 4.4, I came to the conclusion that the write wasn't really necessary: > > > > SYS_PCICTL 0x10000044 Read only -Read returns a HIGH in bit [0] if > > a PCI board is present in the expansion backplane. > > > > I'll add it back. > > The self-contradictory VersatilePB docs strike again, I see. > Interestingly, in the PB1176 docs this register is documented > as definitely read/only: > > # [1]Read only: Reserved. > # > # Note > # > # On the RealView Platform Baseboard for ARM926EJ-S, this bit > # was PCICONTROLIN signal and indicated that 66MHz mode was > # enabled. The PB1176JZF-S only supports 33MHz operation. > # > # [0]Read only: Status of P_DETECT pin. > > ...and in passing provides some info about the 926 board that > isn't in the docs for the 926! > > A little digging suggests that it may in fact be the case > that the 1176 docs are correct and the write to bit 0 does > nothing. However the safest thing here is to keep doing > what the old kernel did, I think. Agreed. This also means that we need a way to access that register anyway, and any discussion about finding a way to move the read access for probing the device elsewhere is moot. A syscon device node would probably be best, but the current approach also works. Arnd -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: arnd@arndb.de (Arnd Bergmann) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 3/9] ARM: versatile: add DT based PCI detection Date: Thu, 01 Jan 2015 16:35:42 +0100 [thread overview] Message-ID: <2544305.Bn9s67VML8@wuerfel> (raw) In-Reply-To: <CAFEAcA-=2GGEAdnO9+8EV+8OkwUHj3tRiMYWvS4b-cpy6P6rYg@mail.gmail.com> On Wednesday 31 December 2014 21:07:25 Peter Maydell wrote: > On 31 December 2014 at 19:22, Rob Herring <robherring2@gmail.com> wrote: > > On Wed, Dec 31, 2014 at 10:13 AM, Peter Maydell > > <peter.maydell@linaro.org> wrote: > >> Why would you want to get the bootloader to do this for you when > >> the hardware provides a perfectly good mechanism for probing > >> for the existence of the hardware? "Ask the hardware" is always > >> going to be a more reliable and foolproof way to get the answer > >> if you can do it -- device tree should just be for the cases where > >> there is no way to probe. In any case the only way for the boot > >> loader to determine the correct value to put into the device tree > >> would be to read the register itself. > > > > Only that it is nice to hide all the ugly bits in the > > bootloader/firmware and DT already provides a standard way to enable > > or disable h/w. This h/w is not probeable in any sort of standard way. > > This is an embedded system, you were expecting some kind of > standard? But that is exactly the point: While we try to ask the hardware about anything that can be reasonably queried through an in-kernel interface that talks to the hardware, it works less well when that hardware interface is rather obscure and (like this one) only used on a few special machines. Similar examples are Marvell's SoC ID register, which you have to read by powering on the PCI host bridge and reading the Vendor/Device ID registers for the root bus, or the 'nvram' on Broadcom's wifi router chips that is in reality a partition on either NOR or NAND flash. Accessing those at early boot from a random device driver is a real pain, and it would be much nicer to have the boot loader read them and put the data into the DT for us if we had the option. Unfortunately we have to deal with legacy boot loaders that don't change the DTB. > > From Table 4.4, I came to the conclusion that the write wasn't really necessary: > > > > SYS_PCICTL 0x10000044 Read only -Read returns a HIGH in bit [0] if > > a PCI board is present in the expansion backplane. > > > > I'll add it back. > > The self-contradictory VersatilePB docs strike again, I see. > Interestingly, in the PB1176 docs this register is documented > as definitely read/only: > > # [1]Read only: Reserved. > # > # Note > # > # On the RealView Platform Baseboard for ARM926EJ-S, this bit > # was PCICONTROLIN signal and indicated that 66MHz mode was > # enabled. The PB1176JZF-S only supports 33MHz operation. > # > # [0]Read only: Status of P_DETECT pin. > > ...and in passing provides some info about the 926 board that > isn't in the docs for the 926! > > A little digging suggests that it may in fact be the case > that the 1176 docs are correct and the write to bit 0 does > nothing. However the safest thing here is to keep doing > what the old kernel did, I think. Agreed. This also means that we need a way to access that register anyway, and any discussion about finding a way to move the read access for probing the device elsewhere is moot. A syscon device node would probably be best, but the current approach also works. Arnd
next prev parent reply other threads:[~2015-01-01 15:35 UTC|newest] Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-12-30 19:28 [PATCH 0/9] ARM Versatile multi-platform support Rob Herring 2014-12-30 19:28 ` Rob Herring [not found] ` <1419967718-26909-1-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2014-12-30 19:28 ` [PATCH 1/9] dt/bindings: add versatile PCI binding Rob Herring 2014-12-30 19:28 ` Rob Herring 2014-12-30 19:28 ` [PATCH 2/9] dts: versatile: add PCI controller binding Rob Herring 2014-12-30 19:28 ` Rob Herring 2014-12-30 19:28 ` [PATCH 3/9] ARM: versatile: add DT based PCI detection Rob Herring 2014-12-30 19:28 ` Rob Herring [not found] ` <1419967718-26909-4-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2014-12-30 21:37 ` Arnd Bergmann 2014-12-30 21:37 ` Arnd Bergmann 2014-12-30 23:05 ` Rob Herring 2014-12-30 23:05 ` Rob Herring [not found] ` <CAL_Jsq+iVWPsN9LXEMT6DmjS7MGsnmgJLgyb33N3me=OcCet6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-12-31 15:23 ` Arnd Bergmann 2014-12-31 15:23 ` Arnd Bergmann 2014-12-31 16:13 ` Peter Maydell 2014-12-31 16:13 ` Peter Maydell [not found] ` <CAFEAcA9=eoP4-F0Z8J171=DHE5JHVn7ahMnQrHQFz9SHePQHNQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-12-31 19:22 ` Rob Herring 2014-12-31 19:22 ` Rob Herring [not found] ` <CAL_JsqLBCeCc2VKvHAdG5bBJt=2qmX5BnosdGd_2n+Pb9BhuZQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2014-12-31 21:07 ` Peter Maydell 2014-12-31 21:07 ` Peter Maydell [not found] ` <CAFEAcA-=2GGEAdnO9+8EV+8OkwUHj3tRiMYWvS4b-cpy6P6rYg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-01 15:35 ` Arnd Bergmann [this message] 2015-01-01 15:35 ` Arnd Bergmann 2015-01-01 15:52 ` Peter Maydell 2015-01-01 15:52 ` Peter Maydell 2015-01-08 19:37 ` Linus Walleij 2015-01-08 19:37 ` Linus Walleij [not found] ` <CACRpkdYEHwXhw3nEPHp7+4rtzXyh9Qb2QCpsRMfopxNoaX3rLA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-08 21:34 ` Rob Herring 2015-01-08 21:34 ` Rob Herring 2014-12-30 19:28 ` [PATCH 5/9] dts: versatile: add sysregs nodes Rob Herring 2014-12-30 19:28 ` Rob Herring [not found] ` <1419967718-26909-6-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2015-01-08 19:44 ` Linus Walleij 2015-01-08 19:44 ` Linus Walleij [not found] ` <CACRpkdbinR3Uvi5zZmQJFxJgnWfvE6JZouMVxxRRGVtMNXkBQQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-08 23:53 ` Rob Herring 2015-01-08 23:53 ` Rob Herring [not found] ` <CAL_JsqKBLx03E1w0NMH8CH+Pm_L8yQvnR6VTTDxqnpOwAoDhXg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-09 7:10 ` Linus Walleij 2015-01-09 7:10 ` Linus Walleij [not found] ` <CACRpkdZFxToT5L0sJXap-NQGtjkryn4KTZVnweKCxXL9WvFLEg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-09 11:53 ` Lorenzo Pieralisi 2015-01-09 11:53 ` Lorenzo Pieralisi 2015-01-15 16:06 ` Lorenzo Pieralisi 2015-01-15 16:06 ` Lorenzo Pieralisi 2015-01-19 10:25 ` Linus Walleij 2015-01-19 10:25 ` Linus Walleij 2014-12-30 19:28 ` [PATCH 6/9] ARM: versatile: switch to DT only booting and remove legacy code Rob Herring 2014-12-30 19:28 ` Rob Herring 2014-12-30 19:28 ` [PATCH 7/9] ARM: versatile: move mach includes into mach directory Rob Herring 2014-12-30 19:28 ` Rob Herring [not found] ` <1419967718-26909-8-git-send-email-robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 2014-12-30 22:05 ` Arnd Bergmann 2014-12-30 22:05 ` Arnd Bergmann 2014-12-30 19:28 ` [PATCH 8/9] ARM: versatile: convert to multi-platform Rob Herring 2014-12-30 19:28 ` Rob Herring 2014-12-30 19:28 ` [PATCH 9/9] ARM: versatile: consolidate code to single file Rob Herring 2014-12-30 19:28 ` Rob Herring 2014-12-30 22:08 ` [PATCH 0/9] ARM Versatile multi-platform support Arnd Bergmann 2014-12-30 22:08 ` Arnd Bergmann 2014-12-31 9:25 ` Peter Maydell 2014-12-31 9:25 ` Peter Maydell [not found] ` <CAFEAcA9pKdRNQ-fgKumQhjTjei-4NJ-OB1gSOxTCnCjShy10jw-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-05 9:50 ` Marc Zyngier 2015-01-05 9:50 ` Marc Zyngier [not found] ` <54AA5E7C.1040706-5wv7dgnIgG8@public.gmane.org> 2015-01-05 10:08 ` Peter Maydell 2015-01-05 10:08 ` Peter Maydell [not found] ` <CAFEAcA8Nq6BPOerN7EhHpT_oa9W3+2Y_=5+zBuQD_c5fh0Yb1A-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-05 11:19 ` Marc Zyngier 2015-01-05 11:19 ` Marc Zyngier [not found] ` <87y4ph79wb.fsf-BgpFEFc6EmV6Fr0h90IsVGS4ubULX0JqMm0uRHvK7Nw@public.gmane.org> 2015-01-05 17:41 ` Peter Maydell 2015-01-05 17:41 ` Peter Maydell 2015-01-08 19:47 ` Linus Walleij 2015-01-08 19:47 ` Linus Walleij [not found] ` <CACRpkda8T8CwghVYtTw41h_y+GdCA5xCEaSL1Jy4VZBo3MAy-Q-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-08 21:38 ` Rob Herring 2015-01-08 21:38 ` Rob Herring [not found] ` <CAL_JsqKLNPVDCUELaZU8JW0roT3RcyqcxtJbvbYQrjzxjt3FeQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2015-01-09 8:34 ` Linus Walleij 2015-01-09 8:34 ` Linus Walleij 2014-12-30 19:28 ` [PATCH 4/9] pci: add DT based ARM Versatile PCI host driver Rob Herring 2014-12-30 19:28 ` Rob Herring 2014-12-30 21:58 ` Arnd Bergmann 2014-12-30 21:58 ` Arnd Bergmann 2015-01-02 18:14 ` Rob Herring 2015-01-02 18:14 ` Rob Herring 2015-01-02 20:52 ` Arnd Bergmann 2015-01-02 20:52 ` Arnd Bergmann 2015-01-02 23:13 ` Rob Herring 2015-01-02 23:13 ` Rob Herring 2015-01-05 9:35 ` Arnd Bergmann 2015-01-05 9:35 ` Arnd Bergmann 2015-01-24 1:01 ` Bjorn Helgaas 2015-01-24 1:01 ` Bjorn Helgaas 2015-01-24 0:54 ` Bjorn Helgaas 2015-01-24 0:54 ` Bjorn Helgaas
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=2544305.Bn9s67VML8@wuerfel \ --to=arnd-r2ngtmty4d4@public.gmane.org \ --cc=arm-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \ --cc=bhelgaas-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org \ --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \ --cc=linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \ --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \ --cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \ --cc=peter.maydell-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \ --cc=robherring2-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.