RTC support on Windows On Arm

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

RTC support on Windows On Arm

ソリューションへジャンプ
1,715件の閲覧回数
Norihiro
Senior Contributor II

Hello, 

 

We have i.MX8M based custom board where Windows is running (WoA) and we need to add RTC to this board via I2C bus. 

When we checked source code from BSP W21H2-1-5-0, it uses SNVS/RTC inside of i.MX8M.

When we implement external RTC via I2C, could you advise me what work is needed from viewpoint of software development? 

 

Regards,

Norihiro Michigami
AVNET

0 件の賞賛
返信
1 解決策
1,695件の閲覧回数
Manuel_Salas
NXP TechSupport
NXP TechSupport

Hello @Norihiro 

regarding external RTC, you need the following:

  1. Implement UEFI driver with the minimal requirements: I.e. initialization of RTC hardware, SetTime and GetTime procedures. At least that is what MS claims. Realistically, initialization is the most important part and Set/GetTime is just to make it easier. Initialized HW then can be used in ACPI. As a side but important note: It is good to have UEFI implementation working as it is a good reference when you implement the ACPI functionality, as development (including debugging) in ASL is much more unpleasant experience. Disabling the existing internal RTC driver is advisable.
  2. Implement ACPI Time and Alarm Device (TAD) - i.e. replace the existing code with the one appropriate for the external RTC. Here at least _GCP, _SRT, _GRT procedures are necessary and they (again according to MS) must be with the same functionality as in UEFI. Of course, _SRT and _GRT will include I2C communication.
  3. In Windows, the Windows Time Service needs to be disabled in order to use RTC time, not network time. This is e.g. manually done in the Date and Time Settings, where "Set time automatically" needs to be disabled. Also, you might want to consider how you deal with time zone and DST, as these might be doubled or contradict each other if set in multiple places (e.g. Windows and UEFI).
  4. Final point might be the consideration of time seed to set in UEFI initialization. In NXP internal RTC UEFI implementation, a set time and date is used as a seed, however NTP might be also used to set real Internet time. Of course, this variant adds complexity into UEFI.

 

Also, could you please share why do you want to use external RTC instead of internal one? Understanding the customer helps us provide better service. Thanks!

 

Best regards.

元の投稿で解決策を見る

0 件の賞賛
返信
2 返答(返信)
1,670件の閲覧回数
Norihiro
Senior Contributor II

Hello  Alejandro, 

 

Thank you for your guide to support external RTC with Windows On Arm. 

We want to use EPSON RX8010 which has lower power consumption than internal RTC on i.MX8M. 

 

We also have question about ASL to support this RTC, so I will create another post. 


Thanks,

Norihiro Michigami

 

 

0 件の賞賛
返信
1,696件の閲覧回数
Manuel_Salas
NXP TechSupport
NXP TechSupport

Hello @Norihiro 

regarding external RTC, you need the following:

  1. Implement UEFI driver with the minimal requirements: I.e. initialization of RTC hardware, SetTime and GetTime procedures. At least that is what MS claims. Realistically, initialization is the most important part and Set/GetTime is just to make it easier. Initialized HW then can be used in ACPI. As a side but important note: It is good to have UEFI implementation working as it is a good reference when you implement the ACPI functionality, as development (including debugging) in ASL is much more unpleasant experience. Disabling the existing internal RTC driver is advisable.
  2. Implement ACPI Time and Alarm Device (TAD) - i.e. replace the existing code with the one appropriate for the external RTC. Here at least _GCP, _SRT, _GRT procedures are necessary and they (again according to MS) must be with the same functionality as in UEFI. Of course, _SRT and _GRT will include I2C communication.
  3. In Windows, the Windows Time Service needs to be disabled in order to use RTC time, not network time. This is e.g. manually done in the Date and Time Settings, where "Set time automatically" needs to be disabled. Also, you might want to consider how you deal with time zone and DST, as these might be doubled or contradict each other if set in multiple places (e.g. Windows and UEFI).
  4. Final point might be the consideration of time seed to set in UEFI initialization. In NXP internal RTC UEFI implementation, a set time and date is used as a seed, however NTP might be also used to set real Internet time. Of course, this variant adds complexity into UEFI.

 

Also, could you please share why do you want to use external RTC instead of internal one? Understanding the customer helps us provide better service. Thanks!

 

Best regards.

0 件の賞賛
返信