Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp603323ybk; Sat, 9 May 2020 12:22:42 -0700 (PDT) X-Google-Smtp-Source: APiQypIcZEvqaD20zDvo/ZW/luicAcS7gww/+dcbp3sKRIOsjrRsoyRLoJgIdtM6sy8i7mfABWUb X-Received: by 2002:a05:6402:2293:: with SMTP id cw19mr7214852edb.351.1589052162277; Sat, 09 May 2020 12:22:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589052162; cv=none; d=google.com; s=arc-20160816; b=zLeWlgDmb+qQUzB3BXgXmw+XkEHvbuHVULTMA/mGKyb3t9bptkw6eWD2LvJTasGcxr dWA2Ddu6zuutfOLQeoQ+YGDfYsJ5g/GOaCiXrvWhltOa7CFqgyIwSm53R/pGgvdemUdC jNGWolVFJ+6AR0ZpRnLS0XT5p7tCw7JYCGt1FM1Gkgx54hv9e96zLm1S7+AZcC/236FV +dXdpcGv4UpF3AsgXOQu/QUyxitGbyAIR9vCGzW5Hr0rdOCIKaRDZn59mQBH9M0H3QF8 CYKT1FG594WF3DaI9ndLH5BiUWKUWWvcYCwpMqko2PdXecI8g17UnOOBXr2nK3MhC2qH iGvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:date:cc:to:from:subject:message-id; bh=7XGQy54mnpUkq7pfSTEFHdrYhjoD0Z+66cP2JmeflsI=; b=puJ3ATgcQLI7kkDY8fLdEAexhWDkJ2/Xqvm7aSE3v0zrv31R2bXmiflu7YrL/OhrSA PVovVCD0YZaAgMrF12B0X7VXBaISbiNC1l6GDlGM76EK6250J+O2c5xKk8D9jfZfLwcJ rqSDOyRnba3RdXu/xLM4OCDTZCBKf9Ay9QZOsfLuc4TVbGfFlIbBN6n1O4K0Q5FUnaIG ozaTA+mQBO6TUJH2XTLcK4V4eGeNVUZQiNMVxFLzgi/+O7Q35I+GEHHLAo9ntbOq8Hgs ubvLRqZAG80iQUqhHK4xajcQc1rNRKUDXl2nvzm6lyQB1xUaYfR6rubwSVBcptButTQZ OJuw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m26si4633464edj.174.2020.05.09.12.22.19; Sat, 09 May 2020 12:22:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728098AbgEITU3 (ORCPT + 99 others); Sat, 9 May 2020 15:20:29 -0400 Received: from mx2.suse.de ([195.135.220.15]:46314 "EHLO mx2.suse.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727938AbgEITU3 (ORCPT ); Sat, 9 May 2020 15:20:29 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id C5D12AB99; Sat, 9 May 2020 19:20:29 +0000 (UTC) Message-ID: Subject: Re: [PATCH v8 2/4] firmware: raspberrypi: Introduce vl805 init routine From: Nicolas Saenz Julienne To: Stefan Wahren Cc: Rob Herring , f.fainelli@gmail.com, Scott Branden , Ray Jui , 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 Date: Sat, 09 May 2020 21:20:24 +0200 In-Reply-To: References: <20200505161318.26200-1-nsaenzjulienne@suse.de> <20200505161318.26200-3-nsaenzjulienne@suse.de> <20200507214859.GA562@bogus> Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-NYv+jnSD7ETBXidQR5XT" User-Agent: Evolution 3.36.2 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org --=-NYv+jnSD7ETBXidQR5XT Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, 2020-05-09 at 12:02 +0200, Stefan Wahren wrote: > Hi Nicolas, >=20 > 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 pu= blic > > > firmware load logic and the VL805 firmware blob. The function this pa= tch > > > introduces triggers the aforementioned process. > > >=20 > > > Signed-off-by: Nicolas Saenz Julienne > > >=20 > > > --- > > >=20 > > > Change since v7: > > > - Use usleep_delay() > > > - Add comment about PCI errors > > > - Don't wait on error > > > - Typos > > >=20 > > > 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 > > >=20 > > > Changes since v4: > > > - Inline function definition when RASPBERRYPI_FIRMWARE is not defined > > >=20 > > > Changes since v1: > > > - Move include into .c file and add forward declaration to .h > > >=20 > > > drivers/firmware/raspberrypi.c | 61 ++++++++++++++++++++= ++ > > > include/soc/bcm2835/raspberrypi-firmware.h | 7 +++ > > > 2 files changed, 68 insertions(+) > > >=20 > > Reviewed-by: Rob Herring >=20 > i modified the code a little bit for testing, but also successfully > tested it without my modifications: >=20 > diff --git a/drivers/firmware/raspberrypi.c b/drivers/firmware/raspberryp= i.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; > + } > =20 > dev_addr =3D pdev->bus->number << 20 | PCI_SLOT(pdev->devfn) << 1= 5 | > PCI_FUNC(pdev->devfn) << 12; > @@ -353,9 +355,8 @@ int rpi_firmware_init_vl805(struct pci_dev *pdev) > =20 > pci_read_config_dword(pdev, VL805_PCI_CONFIG_VERSION_OFFSET, > &version); > -exit: > - pci_info(pdev, "VL805 firmware version %08x\n", version); > =20 > + pci_info(pdev, "VL805 RAM firmware version %08x\n", version); > return 0; > } > EXPORT_SYMBOL_GPL(rpi_firmware_init_vl805); >=20 > Here are the my results with 3x Raspberry Pi 4: >=20 > VL805 EEPROM firmware version 000137ad > VL805 EEPROM firmware version 00013701 > VL805 RAM firmware version 000137ad >=20 > So the whole patch series is: >=20 > Tested-by: Stefan Wahren Thanks for taking the time! Regards, Nicolas --=-NYv+jnSD7ETBXidQR5XT Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEErOkkGDHCg2EbPcGjlfZmHno8x/4FAl63AngACgkQlfZmHno8 x/5TSAf7BczpOl3QIubfrvp77qkSKnOA+Vb+zg5XlulurMIug2l+pqDVUw0G/+Gp uwxEH4O0JxRg83lzCVFnP3Occ7dH5q5GA2yzBpcgVYvRLmlXw7NECJ1CqfAuB56S YDSBEQk1Pm4fcAIufJCJ8hH25TxuMXoK+2qEq2WYY7x9RY3FiarvCFw+XV4ayX4n s4rf/5spkVR3L1t6fMxmD6TQaGBwc6Ww2VFDTwJSTMjqxgU7iNHmjypv7XxaLuYl MkvpDgAyxuxI0R/MblN/rdNO2Fd2LCAQi5rU3VvEfcrrq6fm5YIt5sxnHzAOMfvK aIuwkpFCcR+EWHlJ7pQ4+dYrITgvPg== =iV4L -----END PGP SIGNATURE----- --=-NYv+jnSD7ETBXidQR5XT--