From: Stefan Wahren <wahrenst@gmx.net> To: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Cc: Rob Herring <robh@kernel.org>, f.fainelli@gmail.com, gregkh@linuxfoundation.org, helgaas@kernel.org, linux-kernel@vger.kernel.org, Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, bcm-kernel-feedback-list@broadcom.com, linux-pci@vger.kernel.org, tim.gover@raspberrypi.org, linux-usb@vger.kernel.org, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v8 2/4] firmware: raspberrypi: Introduce vl805 init routine Date: Sat, 9 May 2020 12:02:55 +0200 [thread overview] Message-ID: <c9449111-f646-3925-36e6-f4492ad5f90a@gmx.net> (raw) In-Reply-To: <20200507214859.GA562@bogus> Hi Nicolas, Am 07.05.20 um 23:48 schrieb Rob Herring: > On Tue, 5 May 2020 18:13:15 +0200, Nicolas Saenz Julienne wrote: >> The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip >> that implements xHCI. After a PCI reset, VL805's firmware may either be >> loaded directly from an EEPROM or, if not present, by the SoC's >> co-processor, VideoCore. RPi4's VideoCore OS contains both the non public >> firmware load logic and the VL805 firmware blob. The function this patch >> introduces triggers the aforementioned process. >> >> Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> >> >> --- >> >> Change since v7: >> - Use usleep_delay() >> - Add comment about PCI errors >> - Don't wait on error >> - Typos >> >> Change since v6: >> - Add test to avoid loading the firmware when not needed >> - Since we have it around, print VL805's firmware version, it'll make >> debugging easier in the future >> - Correct typos >> - Add a clearer view of HW topology in patch description >> >> Changes since v4: >> - Inline function definition when RASPBERRYPI_FIRMWARE is not defined >> >> Changes since v1: >> - Move include into .c file and add forward declaration to .h >> >> drivers/firmware/raspberrypi.c | 61 ++++++++++++++++++++++ >> include/soc/bcm2835/raspberrypi-firmware.h | 7 +++ >> 2 files changed, 68 insertions(+) >> > Reviewed-by: Rob Herring <robh@kernel.org> i modified the code a little bit for testing, but also successfully tested it without my modifications: diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c index 0d1422b..f3f4c2d 100644 --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c @@ -337,8 +337,10 @@ int rpi_firmware_init_vl805(struct pci_dev *pdev) * further down the line. */ pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, &version); - if (version) - goto exit; + if (version) { + pci_info(pdev, "VL805 EEPROM firmware version %08x\n", version); + return 0; + } dev_addr = pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 15 | PCI_FUNC(pdev->devfn) << 12; @@ -353,9 +355,8 @@ int rpi_firmware_init_vl805(struct pci_dev *pdev) pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, &version); -exit: - pci_info(pdev, "VL805 firmware version %08x\n", version); + pci_info(pdev, "VL805 RAM firmware version %08x\n", version); return 0; } EXPORT_SYMBOL_GPL(rpi_firmware_init_vl805); Here are the my results with 3x Raspberry Pi 4: VL805 EEPROM firmware version 000137ad VL805 EEPROM firmware version 00013701 VL805 RAM firmware version 000137ad So the whole patch series is: Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
WARNING: multiple messages have this Message-ID (diff)
From: Stefan Wahren <wahrenst@gmx.net> To: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Cc: Rob Herring <robh@kernel.org>, f.fainelli@gmail.com, Scott Branden <sbranden@broadcom.com>, Ray Jui <rjui@broadcom.com>, linux-usb@vger.kernel.org, linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, tim.gover@raspberrypi.org, helgaas@kernel.org, linux-rpi-kernel@lists.infradead.org, gregkh@linuxfoundation.org, bcm-kernel-feedback-list@broadcom.com, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v8 2/4] firmware: raspberrypi: Introduce vl805 init routine Date: Sat, 9 May 2020 12:02:55 +0200 [thread overview] Message-ID: <c9449111-f646-3925-36e6-f4492ad5f90a@gmx.net> (raw) In-Reply-To: <20200507214859.GA562@bogus> Hi Nicolas, Am 07.05.20 um 23:48 schrieb Rob Herring: > On Tue, 5 May 2020 18:13:15 +0200, Nicolas Saenz Julienne wrote: >> The Raspberry Pi 4 gets its USB functionality from VL805, a PCIe chip >> that implements xHCI. After a PCI reset, VL805's firmware may either be >> loaded directly from an EEPROM or, if not present, by the SoC's >> co-processor, VideoCore. RPi4's VideoCore OS contains both the non public >> firmware load logic and the VL805 firmware blob. The function this patch >> introduces triggers the aforementioned process. >> >> Signed-off-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> >> >> --- >> >> Change since v7: >> - Use usleep_delay() >> - Add comment about PCI errors >> - Don't wait on error >> - Typos >> >> Change since v6: >> - Add test to avoid loading the firmware when not needed >> - Since we have it around, print VL805's firmware version, it'll make >> debugging easier in the future >> - Correct typos >> - Add a clearer view of HW topology in patch description >> >> Changes since v4: >> - Inline function definition when RASPBERRYPI_FIRMWARE is not defined >> >> Changes since v1: >> - Move include into .c file and add forward declaration to .h >> >> drivers/firmware/raspberrypi.c | 61 ++++++++++++++++++++++ >> include/soc/bcm2835/raspberrypi-firmware.h | 7 +++ >> 2 files changed, 68 insertions(+) >> > Reviewed-by: Rob Herring <robh@kernel.org> i modified the code a little bit for testing, but also successfully tested it without my modifications: diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberrypi.c index 0d1422b..f3f4c2d 100644 --- a/drivers/firmware/raspberrypi.c +++ b/drivers/firmware/raspberrypi.c @@ -337,8 +337,10 @@ int rpi_firmware_init_vl805(struct pci_dev *pdev) * further down the line. */ pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, &version); - if (version) - goto exit; + if (version) { + pci_info(pdev, "VL805 EEPROM firmware version %08x\n", version); + return 0; + } dev_addr = pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 15 | PCI_FUNC(pdev->devfn) << 12; @@ -353,9 +355,8 @@ int rpi_firmware_init_vl805(struct pci_dev *pdev) pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, &version); -exit: - pci_info(pdev, "VL805 firmware version %08x\n", version); + pci_info(pdev, "VL805 RAM firmware version %08x\n", version); return 0; } EXPORT_SYMBOL_GPL(rpi_firmware_init_vl805); Here are the my results with 3x Raspberry Pi 4: VL805 EEPROM firmware version 000137ad VL805 EEPROM firmware version 00013701 VL805 RAM firmware version 000137ad So the whole patch series is: Tested-by: Stefan Wahren <stefan.wahren@i2se.com> _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-05-09 10:03 UTC|newest] Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-05 16:13 [PATCH v8 0/4] USB: pci-quirks: Add Raspberry Pi 4 quirk Nicolas Saenz Julienne 2020-05-05 16:13 ` Nicolas Saenz Julienne 2020-05-05 16:13 ` [PATCH v8 1/4] soc: bcm2835: Add notify xHCI reset property Nicolas Saenz Julienne 2020-05-05 16:13 ` Nicolas Saenz Julienne 2020-05-07 21:48 ` Rob Herring 2020-05-07 21:48 ` Rob Herring 2020-05-05 16:13 ` [PATCH v8 2/4] firmware: raspberrypi: Introduce vl805 init routine Nicolas Saenz Julienne 2020-05-05 16:13 ` Nicolas Saenz Julienne 2020-05-07 21:48 ` Rob Herring 2020-05-07 21:48 ` Rob Herring 2020-05-09 10:02 ` Stefan Wahren [this message] 2020-05-09 10:02 ` Stefan Wahren 2020-05-09 10:09 ` Stefan Wahren 2020-05-09 10:09 ` Stefan Wahren 2020-05-09 19:20 ` Nicolas Saenz Julienne 2020-05-09 19:20 ` Nicolas Saenz Julienne 2020-05-05 16:13 ` [PATCH v8 3/4] PCI: brcmstb: Wait for Raspberry Pi's firmware when present Nicolas Saenz Julienne 2020-05-05 16:13 ` Nicolas Saenz Julienne 2020-05-07 21:49 ` Rob Herring 2020-05-07 21:49 ` Rob Herring 2020-05-05 16:13 ` [PATCH v8 4/4] USB: pci-quirks: Add Raspberry Pi 4 quirk Nicolas Saenz Julienne 2020-05-05 16:13 ` Nicolas Saenz Julienne 2020-05-07 21:52 ` Rob Herring 2020-05-07 21:52 ` Rob Herring 2020-05-11 14:25 ` Lorenzo Pieralisi 2020-05-11 14:25 ` Lorenzo Pieralisi 2020-05-13 7:05 ` Mathias Nyman 2020-05-13 7:05 ` Mathias Nyman 2020-06-02 10:05 ` Nicolas Saenz Julienne 2020-06-02 10:05 ` Nicolas Saenz Julienne 2020-06-02 21:57 ` Florian Fainelli 2020-06-02 21:57 ` Florian Fainelli 2020-05-13 11:17 ` [PATCH v8 0/4] " Lorenzo Pieralisi 2020-05-13 11:17 ` Lorenzo Pieralisi 2020-05-13 11:26 ` Nicolas Saenz Julienne 2020-05-13 11:26 ` Nicolas Saenz Julienne 2020-05-13 15:47 ` Lorenzo Pieralisi 2020-05-13 15:47 ` Lorenzo Pieralisi
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=c9449111-f646-3925-36e6-f4492ad5f90a@gmx.net \ --to=wahrenst@gmx.net \ --cc=bcm-kernel-feedback-list@broadcom.com \ --cc=f.fainelli@gmail.com \ --cc=gregkh@linuxfoundation.org \ --cc=helgaas@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=linux-rpi-kernel@lists.infradead.org \ --cc=linux-usb@vger.kernel.org \ --cc=nsaenzjulienne@suse.de \ --cc=rjui@broadcom.com \ --cc=robh@kernel.org \ --cc=sbranden@broadcom.com \ --cc=tim.gover@raspberrypi.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.