Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Make hym8563 default RTC (RTC0) by kernel

Featured Replies

The NanoPi R3S contains a hardware clock (HYM8563) with the possibility to connect a backup battery. However, the current kernel adds this clock as an additional one (RTC1).  

I tried to create a device tree overlay, but it does not work. As I understand it, this is because the default Rockchip clock is not included in the device tree.  

So, if I understand correctly, the only way to make the HYM8563 the default clock is to build the kernel with this option enabled.  

Please consider changing the default kernel options to make the HYM8563 the default RTC. 
If there’s another way to make the HYM8563 the default RTC, please advise.

On other platforms we can usually set an alias in the DTS for the rtc. On RK I'm not seeing that as an option, but what we can do is make it so one module loads before the other. In short, we set `CONFIG_RTC_DRV_HYM8563=y` and leave `CONFIG_RTC_DRV_RK808=m`. Which will force a hierarchy in the way things load.

 

Case in point;

patrick@nanopir3s:~$ dmesg | grep rtc
[    4.646223] rtc-hym8563 1-0051: registered as rtc0
[    4.647295] rtc-hym8563 1-0051: setting system clock to 2025-08-25T01:34:16 UTC (1756085656)
[    5.548534] rk808-rtc rk808-rtc.5.auto: registered as rtc1
[    5.605731] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes
[    5.605810] rockchip-drm display-subsystem: [drm] Cannot find any crtc or sizes

 

We may also be able to achieve this with a udev rule? I'll do a PR after further testing.

 

@OleksandrK

 

Would changing the symlink suffice?

ls -ls /dev/rtc*
0 lrwxrwxrwx 1 root root      4 Aug 25 11:14 /dev/rtc -> rtc1
0 crw------- 1 root root 252, 0 Aug 25 11:14 /dev/rtc0
0 crw------- 1 root root 252, 1 Aug 25 11:14 /dev/rtc1

 

echo 'SUBSYSTEM=="rtc", KERNEL=="rtc1", SYMLINK+="rtc" OPTIONS+="link_priority=-100"' | sudo tee /etc/udev/rules.d/10-hym8563-rtc.rules

 

This way both get loaded, but /dev/rtc is linked to rtc1 "hym8563".

 

  • Author
15 hours ago, c0rnelius said:

This way both get loaded, but /dev/rtc is linked to rtc1 "hym8563"

Thanks for the help.  
But the moment when the RTC is symlinked does matter. I mean, if the symlink changes too late, some services (for example, NTP synchronization) may be affected.  

I use specific software that starts as a service and immediately begins logging its activity. So if the system time changes significantly during boot, it causes problems for this software.

 

On 8/25/2025 at 4:52 AM, c0rnelius said:

In short, we set `CONFIG_RTC_DRV_HYM8563=y` and leave `CONFIG_RTC_DRV_RK808=m`. Which will force a hierarchy in the way things load

I think this is a much better and more proper solution

Quote

 

`CONFIG_RTC_DRV_HYM8563=y` 

For those without a battery connected wouldn't this be an issue?

 

On orangepi-5-plus without RTC battery setting `CONFIG_RTC_DRV_HYM8563=y`  will cause the CPU Loadaverage to be always greater than 1. 

 

The rockchip64 kernel currently use `CONFIG_RTC_DRV_HYM8563=m` and blacklist rtc_hym8563 resolved the high CPU loadaverage.

  • Author
8 hours ago, c0rnelius said:

For those without a battery connected wouldn't this be an issue?

No issue, because it would behave the same as the default Rockchip system clock.  
Moreover, by default `fake-hwclock` is running, so after connecting a battery the user would just need to uninstall `fake-hwclock`. That shouldn’t be a problem.

  • Author
6 hours ago, JFL said:

The rockchip64 kernel currently use `CONFIG_RTC_DRV_HYM8563=m` and blacklist rtc_hym8563 resolved the high CPU loadaverage.

Interesting. I wonder how the FriendlyElec stock kernel is assembled, because according to the log the stock system doesn’t use any Rockchip clock—only the HYM8563.

Well apparently it is an issue, as stated above by @JFL. Also, after a RECALL, I'm the one who did the PR to change it from =y to =m.

https://github.com/armbian/build/pull/8300/commits/bb71177580b34c1aeaeb601696d603b6dc49d326

 

As for udev and delay, you could edit the udev system file; /lib/udev/rules.d/50-udev-default.rules

The line you want to edit is about 15 lines down. Change from rtc0 to rtc1.

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.