On Wed, Aug 3, 2022 at 8:04 PM Steven A. Falco <stevenfalco(a)gmail.com> wrote:
On 8/3/22 02:24 PM, Peter Robinson wrote:
> On Wed, Aug 3, 2022 at 4:17 PM Steven A. Falco <stevenfalco(a)gmail.com> wrote:
>>
>> I have a Pi4B that is working pretty well with the aarch64 version of Fedora
Rawhide, but I have one issue that I haven't been able to find a solution to.
>>
>> I have an Adafruit RTC connected via I2C
(
https://www.adafruit.com/product/3386). If I use the kernel device tree, this device is
not found.
>>
>> I then tried switching to the firmware device tree via the instructions in
https://fedoraproject.org/wiki/Architectures/ARM/Raspberry_Pi/HATs. That works pretty
well - I can now add an overlay for the RTC in /boot/efi/config.txt and the RTC is found
during boot. dtoverlay=i2c-rtc,pcf8523,addr=0x68
>>
>> However, once I've switched to the firmware device tree, I no longer have
/dev/vchiq, which means that I can no longer use vcgencmd. Instead, vcgencmd gives me
"VCHI initialization failed".
>
> It should be the same as required in Raspbian. Have you checked the
> details in /boot/efi/overlays/README? Out of interest what do you use
> /dev/vchiq / vcgencmd for?
I've looked at the README, but it doesn't mention VCHI, so I'm not sure how
to enable VCHI when using the firmware DT. I'll look at the kernel DT source -
perhaps that gives clues as to how to create an overlay that I could then use with the
firmware DT.
I'll take a look when I get a few cycles.
One interesting thing is that the kernel DT shows the RTC on bus 3,
but the firmware DT shows the RTC on bus 1.
Three's different "modes" (for want of a better description) where the
firmware steals buses for it's own use.
BTW, I'm using vcgencmd to measure the temperature and to check
the "get_throttled" flag to detect voltage dips.
You can also use tmon in the kernel-tools package to monitor temp,
thermal trip points and the like.
>> Is there any way to get both the RTC and vcgencmd to work?
Which device tree would I choose? Do I have to build a custom kernel or is there some
other way to enable the RTC with the kernel device tree?
>
> You don't need a custom kernel but you'd need to build your own DT as
> obviously anything that is not default on the RPi devices themselves
> is optional hence the requirement of overlays.
Understood. I don't know which is better - the firmware DT or the kernel DT. I
guess the FW DT has the advantage that it is easy to turn stuff on/off, but the kernel DT
probably better matches the drivers.
For the later point, not really, they are slowly converging closer
together. Fedora as a whole is moving towards SystemReady IR style of
DT where it's provided by the firmware and I hope to stop shipping the
kernel ones all together.
And of course the last thing I want is to have to regenerate a custom
DT each time the kernel is updated.
You shouldn't need to do that for each kernel.