Date: Sun, 21 Aug 2022 14:05:05 +1000 From: Peter Jeremy <peterj@freebsd.org> To: Ganbold Tsagaankhuu <ganbold@freebsd.org> Cc: src-committers@freebsd.org, dev-commits-src-all@freebsd.org, dev-commits-src-main@freebsd.org Subject: Re: git: 901df07a4768 - main - Code refactoring for existing rk_gpio driver. It supports gpio type checking. Depending on gpio type some register addresses are different. Message-ID: <YwGu8dSqAcVoMNt2@server.rulingia.com> In-Reply-To: <202208191322.27JDMv0b007432@gitrepo.freebsd.org> References: <202208191322.27JDMv0b007432@gitrepo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--oB64sfg/x42kUbgQ Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On 2022-Aug-19 13:22:57 +0000, Ganbold Tsagaankhuu <ganbold@FreeBSD.org> wr= ote: >The branch main has been updated by ganbold: > >URL: https://cgit.FreeBSD.org/src/commit/?id=3D901df07a47684dca7b06f60d838= a56456d751a23 > >commit 901df07a47684dca7b06f60d838a56456d751a23 >Author: S=F8ren Schmidt <sos@FreeBSD.org> >AuthorDate: 2022-08-19 13:22:01 +0000 >Commit: Ganbold Tsagaankhuu <ganbold@FreeBSD.org> >CommitDate: 2022-08-19 13:22:01 +0000 > > Code refactoring for existing rk_gpio driver. > It supports gpio type checking. Depending on gpio type some > register addresses are different. > =20 > Reviewed by: manu > Differential Revision: https://reviews.freebsd.org/D36262 My Rock64 is now hanging on boot as follows: rk_pinctrl0: <RockChip Pinctrl controller> on ofwbus0 gpio0: <RockChip GPIO Bank controller> mem 0xff210000-0xff2100ff irq 53 on = rk_pinctrl0 gpio0: Unknown gpio version 48000000 <<hang>> >@@ -170,6 +221,43 @@ rk_gpio_attach(device_t dev) > rk_gpio_detach(dev); > return (ENXIO); > } >+ RK_GPIO_LOCK(sc); >+ sc->version =3D rk_gpio_read_4(sc, RK_GPIO_VERSION); >+ RK_GPIO_UNLOCK(sc); This call to rk_gpio_read_4() looks wrong: a) rk_gpio_read_4() tests sc->version which this call is setting. b) The second argument to rk_gpio_read_4() is a "enum gpio_regs", not an actual offset - RK_GPIO_VERSION (=3D0x78) is way outside the sc->regs array. c) sc->regs is also uninitialised at this point. Maybe this should call RK_GPIO_READ() instead, but neither my RK3328 TRM (revision 1.2 from July 2017) nor my RK3399 TRM (revision 1.4 from April 2017) document a GPIO register at offset 0x78 - both only go to 0x60. (If you have a later TRM for either chip, I would be interested in a copy). --=20 Peter Jeremy --oB64sfg/x42kUbgQ Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKTBAEBCgB9FiEE7rKYbDBnHnTmXCJ+FqWXoOSiCzQFAmMBrutfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEVF QjI5ODZDMzA2NzFFNzRFNjVDMjI3RTE2QTU5N0EwRTRBMjBCMzQACgkQFqWXoOSi CzTV2w//YNj3ms/689BX2nuQxGVN88RDNrMNE88p9jmVoZjK5cSTf1S6/AS1ijgj WoyozC/tz4Bhaiygb3K4zaoXqoDmsvkuV899UPj0ECLA7UywbCImqkefVWf1hytP Fc6l+I+JgCpRc1pErJLLMZsrssEG8TE3fFmhzD0mcXtZNcJ9HDC8sigoHgq4s3Vi sfwxGaqih2JLBQjaS0W/7zIhuumrKwsnaMjvzn75CSrNqtgZJHugOslCrTRz+Vut mfeAzmdlBan2v74XxEbgZrskSxSUIFdBMZDAAYByr1nLzjDBURuH6Hj+ZKLn6NkH Yzf468TVbZH5IkBRIT9KLtbMEoGxqyyNKuDdEmd2m83XUoEpFdX7ZT18KaKbTr81 fPqXE8vqlVoPeI2BQcp7eHbkJ52CG9Z+MYEcL9jxFV3umc6xTmbTnhtphSgCYNvN +nGQqzlnI2ym+hyMSCZjUJ3leJKcYeDbq00xc/5E8rV3Ylu+J+mB9SE/n+3AX3PS 8EQp/Sok86OLjbGPNJqoAXnyNrdrrIsleYC5I/qNcJpnAqHfyWQngsvk4IITiFqd bgIh0+oqwtGy7yb9F2Qk3mOVoOwGiJJGAwu/Pi476Grgtax1s/0UTQChqEYEt3sx B4pt8QehZvKSpCckXMiw1x3mx7tDHXpVh5H/WCWMGA7C3FwjGDs= =ytU4 -----END PGP SIGNATURE----- --oB64sfg/x42kUbgQ--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?YwGu8dSqAcVoMNt2>