[PATCH v2] PCI: brcmstb: Restore initial fundamental reset

Jim Quinlan james.quinlan at broadcom.com
Thu Nov 12 13:38:13 EST 2020


On Thu, Nov 12, 2020 at 12:27 PM Phil Elwell <phil at raspberrypi.com> wrote:
>
> Commit 04356ac30771 ("PCI: brcmstb: Add bcm7278 PERST# support")
> replaced a single reset function with a pointer to one of two
> implementations, but also removed the call asserting the reset
> at the start of brcm_pcie_setup. Doing so breaks Raspberry Pis with
> VL805 XHCI controllers lacking dedicated SPI EEPROMs, which have been
> used for USB booting but then need to be reset so that the kernel
> can reconfigure them. The lack of a reset causes the firmware's loading
> of the EEPROM image to RAM to fail, breaking USB for the kernel.
>
> Fixes: commit 04356ac30771 ("PCI: brcmstb: Add bcm7278 PERST# support")
>
> Signed-off-by: Phil Elwell <phil at raspberrypi.com>
> Acked-by: Nicolas Saenz Julienne <nsaenzjulienne at suse.de>
> ---
> Changes in v2:
>   - Exclude BCM7278 from the initial reset
>   - Ack from Nicolas
> ---
>  drivers/pci/controller/pcie-brcmstb.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/pci/controller/pcie-brcmstb.c b/drivers/pci/controller/pcie-brcmstb.c
> index bea86899bd5d..83aa85bfe8e3 100644
> --- a/drivers/pci/controller/pcie-brcmstb.c
> +++ b/drivers/pci/controller/pcie-brcmstb.c
> @@ -869,6 +869,11 @@ static int brcm_pcie_setup(struct brcm_pcie *pcie)
>
>         /* Reset the bridge */
>         pcie->bridge_sw_init_set(pcie, 1);
> +
> +       /* Assert the fundemental reset, except on BCM7278 */
> +       if (pcie->type != BCM7278)
> +               pcie->perst_set(pcie, 1);
I'm okay with this although I  would rather it not be needed.
Regards,
Jim
> +
>         usleep_range(100, 200);
>
>         /* Take the bridge out of reset */
> --
> 2.25.1
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 4167 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://lists.infradead.org/pipermail/linux-rpi-kernel/attachments/20201112/b79e199f/attachment.p7s>


More information about the linux-rpi-kernel mailing list