Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Dec 2019 22:13:22 +1100
From:      Peter Jeremy <peter@rulingia.com>
To:        Michal Meloun <mmel@FreeBSD.org>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: rk_tsadc breaks (my) Rock64
Message-ID:  <20191202111322.GF37113@server.rulingia.com>
In-Reply-To: <20191201110716.GA41224@server.rulingia.com>
References:  <20191201110716.GA41224@server.rulingia.com>

next in thread | previous in thread | raw e-mail | index | archive | help

--oj4kGyHlBMXGt3Le
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On 2019-Dec-01 22:07:16 +1100, Peter Jeremy <peter@rulingia.com> wrote:
>r355173 added code to read the Rockchip temperature sensors.  Unfortunatel=
y,
>this breaks on my Rock64.  I've tried to understand what's going wrong but
>haven't managed to make much headway.  It looks like there some configurat=
ion
>missing from syscon that tsadc needs but I'm not sure what (and I don't re=
ally
>understand what syscon is doing).  I'd appreciate any insights.

I've added a pile of printf's and done some more digging and have made some
progress.

Firstly, I've found that the syscon@ff100000 FDT entry attaches as two
distinct devices:
rk_grf0: <RockChip General Register Files> mem 0xff100000-0xff100fff on ofw=
bus0
  (via compatible =3D "rockchip,rk3328-grf")
simple_mfd0: <Simple MFD (Multi-Functions Device)> mem 0xff450000-0xff45fff=
f on ofwbus0
  (via compatible =3D "simple-mfd")

Based on the traceback going via simple_mfd_syscon_write_4(), I had assumed
that tsadc_attach() was using the latter device but when I added code to
print structure addresses, I discovered it was the former.

This makes the problem clearer: rk_grf0 requests and is allocated 4KiB
memory ("reg =3D <0x0 0xff100000 0x0 0x1000>;" in the FDT and
"mem 0xff100000-0xff100fff" in the device attach message above) but the
tsadc_init() code is doing:
                        SYSCON_WRITE_4(sc->grf, GRF_TSADC_TESTBIT_L,
                            GRF_TSADC_VCM_EN_L);
with
#define GRF_TSADC_TESTBIT_L                     0x0e648
and that offset is well outside the 4KiB allocated to the device.
(On the positive side, a panic makes the problem a lot clearer than
writing to a random device location would have been).

Ganbold's followup shows that the RK3399 allocates 64KiB to the syscon
device so the equivalent write is valid on a RK3399.

I suspect the problem is that the following defines are only valid for
the RK3399 since I can't find any matches to either the names or offsets
in the following:
#define GRF_SARADC_TESTBIT                      0x0e644
#define GRF_TSADC_TESTBIT_L                     0x0e648
#define GRF_TSADC_TESTBIT_H                     0x0e64c

Unfortunately, that also means I currently have no idea what the RK3328
equivalents to those offsets are.

--=20
Peter Jeremy

--oj4kGyHlBMXGt3Le
Content-Type: application/pgp-signature; name="signature.asc"

-----BEGIN PGP SIGNATURE-----

iQKTBAEBCgB9FiEE7rKYbDBnHnTmXCJ+FqWXoOSiCzQFAl3k8cJfFIAAAAAALgAo
aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEVF
QjI5ODZDMzA2NzFFNzRFNjVDMjI3RTE2QTU5N0EwRTRBMjBCMzQACgkQFqWXoOSi
CzRkwg/+IxI/vMksjqSgWDSJ8jXNd6H7ftRcBsy0e4K4TAhuKg5kglFR1SBFOQyW
VgcvZQtLr6uAUEGYGQhmDpEaRacKPoS3ltCqDkqCuVUKqsp0v2b1k7njSlxYr9k+
jTz1WNLHozmOLHks1/oPJ3bE4RE3Q1yVnK+9dcmW5EnS1i5SPw0JbBQAOB7jdQzs
9Wo6sEdewvQhRuPExX5aOrd92vA8AzJL5fJM4v4MkPztvEj3pusOXA6vysAGJd5m
yxsGH4FnP5laxCkV/DFsBmVnE1UEBvjqNTfoGo8p73t0GOXcFwf8FyEWDf4J+mMh
nEaI6mN4cA0Ez8kq6fW/Rf7s7cXwX/8XgaMVAb+EGDLXyAGCdyWC1m0CJ9BLyETV
Wpva6f7FWI8NOYweCcGsqKI1fBAU7J9G2M+8piPlBs0peLT6/KibjcG5bXxCg/NJ
TRYFxNFpf6m7RXKM1n1qdtNoYoA8HMkbq9Ogk38PKbLqn/YLdDs75mxZY63yK7dN
IPkvGgV3P9xPpzSeU5Ck5dhGOh1qrFDkvKugKY7tUTlq9Sb0EQnEhKaYW4jHtLoz
2aMJVA7UMQX5MpIUDCsxuN0pIISYfKXFCB0iQ/4LS2nhekZanD3Ucq/wyjxnbhH6
B3lDRRVzsSSUSI0w9ZM37NF63a+zpb6cF27+0r6bT4h1tpg6PmU=
=uKjc
-----END PGP SIGNATURE-----

--oj4kGyHlBMXGt3Le--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20191202111322.GF37113>