This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5718: RTC module register access

Part Number: AM5718

Hi,

while the customer board runs Linux, I want to ask the question generically first:

What could prevent access to the RTC module registers?

The customer board fails to boot Linux with nothing after Starting kernel... and we have used CCS to debug the early phase of the kernel boot and traced the issue to a place in omap_hwmod.c that attempts to access the RTC_SS module registers specifically 0x48838078. The kernel uses a virtual address for this but it translates to this physical address. The kernel is unable to complete a read from this location and this causes a Data Abort.

Further examination shows that in this particular place of the kernel, it is unable to access the RTC_SS Module Target port at address 0x48838000...0x48838FFF.

First I checked the interface clock in CM_RTC_CLKSTCTRL at 0x4A006740, which reads 0x502 and would suggest that the module has clock activity on AUX clock and interface clock RTC_L4_GICLK.

The register CM_RTC_RTCSS_CLKCTRL shows value 0x2, which suggests that the module is enabled.

Could you confirm that from a clock standpoint, this is ok?

Secondly I am going to check into the VD_RTC, that it has power.

Are there any other things to pay attention to?

Thanks,

--Gunter

  • Hi Gunter,

    Gunter Schmer said:
    First I checked the interface clock in CM_RTC_CLKSTCTRL at 0x4A006740, which reads 0x502 and would suggest that the module has clock activity on AUX clock and interface clock RTC_L4_GICLK.

    CM_RTC_CLKSTCTRL register is at address 0x4A005740. Please check again what value you have there.

    CM_RTC_RTCSS_CLKCTRL register is at address 0x4A005744, is that the address you are checking?

    Regarding possible clock issue, you might also check DPLL_CORE settings. Make sure CORE_X2_CLK (CLKOUTX2_H12) is enabled. You can use the omapconf tool.

    Check also the part number of your device, as AM570x do not have RTCSS.

    Check also silicon errata, i856: 32k Oscillator Fails to Start-Up at POR

    Check also RTC kicker lock mechanism, TRM section 23.4.3.3 Register Spurious Write Protection

    Regards,
    Pavel

  • Hi Pavel,

    thanks for the comments. We have found the issue of the Data Abort during Linux kernel access to RTC registers. Somehow the HW did not have the RTC_PORZ not connected to the PORZ, so essentially the RTC was held in reset. After connecting RTC_PORZ to the PORZ, the kernel booted as expected.

    One side note, I disabled the rtcss in the device tree, but even with that the kernel was still causing a data abort. So the kernel doesn't like the RTC_PORZ held in reset, even when the rtcss is not used. I may run another thread with that.

    But here the RTC access issue is solved.

    Thanks!

    --Gunter