Skip to content

SA1100/PXA RTC clean-up

Rob Herring linux-arm-kernel linux-rtc 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v4 Latest0 of 6 patches 0 repliesNew

Patches in v4 No applies recorded yet

None of the 6 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v4 yet.

Read the v4 thread

Cover letter [PATCH v4 0/6] SA1100/PXA RTC clean-up
Quoted 38 lines · Robert Jarzmik
Quoted 9 lines · Rob Herring
Quoted 9 lines
Quoted 5 lines
Quoted 2 lines

- you explain in the commit message that from a userland perspective, nothing changes, except that the RTC IP will change, and any dependency on a

The IP does not change here. rtc0 is still going to be the SA1100 RTC being registered first. The only change will be the addition of rtc1.

For boards which were only using rtc-pxa.c (as mioa701 for example), they relied on the fact that rtc0 == pxa_rtc. Their time is stored in PXA IP. Therefore, each of their hwclock will end up on sa1100-rtc instead of pxa-rtc.

Quoted 7 lines
Quoted 2 lines

So for these boards, ie. for all boards where only rtc-pxa.c was used, the IP addressed changes from a casual userspace perspective.

Okay, so this is the case where the time will be wrong.

I could remove the select of the sa1100-rtc and do an empty function for sa1100_rtc_init. This would preserve current behavior.

Please don't. I only ask for a sentence in the commit message.

Quoted 12 lines
Quoted 12 lines
Quoted 3 lines
Quoted 1 line

bootloader fidling with RTC should be considered as a source of regression.

I'm not sure that I follow.

Let's talk about how a double boot windows + linux box works. The bootloader ensures that :
- sa1100-rtc holds the number of seconds since the OS start (think jiffies)
- pxa-rtc holds the wall clock time

Upon each reboot, sa1100-rtc is checked to see how much time has passed. If an "oustanding number" is detected, for example 10 years, the firmware resets the data partition.

Quoted 6 lines
Quoted 2 lines

Now think what will happen when this change will be commited, upon the first reboot after the linux kernel has change sa1100-rtc time.

That would be bad. But on these platforms, the kernel has been using both RTCs right? Presumably on platforms only using 1 of the RTCs, the bootloader does not touch the RTCs.

Quoted 6 lines

No, the kernel has been using only pxa-rtc. The sa1100-rtc is not used, and yet it accounts the passed time in it.

On platforms where all the OSes use only 1 RTC, the bootloader only touches one RTC, that's correct. Or said differently : the bootloader touches the union of all the RTCs the OSes it launches do touch.

Sorry, I'm being dense here, but I'm not any less confused as to which scenarios you think have an issue. Rather than go around again on this, perhaps you can just provide the warning for the commit text. Here's what I have.

Rob

8<-------------------------------------------------------------------

Quoted 1 line

From e43db14b27486faef8d8e74e4aa555aba7f31a0e Mon Sep 17 00:00:00 2001

From: Rob Herring <[email protected]>
Date: Mon, 1 Jun 2015 07:53:01 -0500
Subject: [PATCH] ARM: config: Switch PXA27x platforms to use PXA RTC driver

With the SA1100 and PXA RTC drivers be mutually exclusive and no longer sharing hardware, PXA27x/PXA3xx platforms must use the PXA RTC driver as the SA1100 platform device is no longer registered.

This change should be transparent to userspace, but the first reboot after the switch will have the wrong time.

Cc Daniel Mack <[email protected]>
Cc Haojian Zhuang <[email protected]>
Cc Robert Jarzmik <[email protected]>
Cc Sergey Lapin <[email protected]>
Cc Russell King <[email protected]>
---
 arch/arm/configs/cm_x2xx_defconfig  | 2 +-
 arch/arm/configs/em_x270_defconfig  | 2 +-
 arch/arm/configs/magician_defconfig | 2 +-
 arch/arm/configs/palmz72_defconfig  | 2 +-
 arch/arm/configs/pcm027_defconfig   | 2 +-
 arch/arm/configs/trizeps4_defconfig | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)
arch/arm/configs/cm_x2xx_defconfig +1 -1
index dc01c04..3b32d5f 100644
@@ -157,7 +157,7 @@ CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_V3020=y
-CONFIG_RTC_DRV_SA1100=y
+CONFIG_RTC_DRV_PXA=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 CONFIG_INOTIFY=y
arch/arm/configs/em_x270_defconfig +1 -1
index 4560c9c..8e10df7 100644
@@ -157,7 +157,7 @@ CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_V3020=y
-CONFIG_RTC_DRV_SA1100=y
+CONFIG_RTC_DRV_PXA=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 CONFIG_INOTIFY=y
arch/arm/configs/magician_defconfig +1 -1
index 557dd29..a5b4920 100644
@@ -150,7 +150,7 @@ CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_BACKLIGHT=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DEBUG=y
-CONFIG_RTC_DRV_SA1100=y
+CONFIG_RTC_DRV_PXA=y
 CONFIG_EXT2_FS=y
 CONFIG_INOTIFY=y
 CONFIG_MSDOS_FS=m
arch/arm/configs/palmz72_defconfig +1 -1
index 4baa83c..83c135e 100644
@@ -67,7 +67,7 @@ CONFIG_MMC=y
 CONFIG_MMC_DEBUG=y
 CONFIG_MMC_PXA=y
 CONFIG_RTC_CLASS=y
-CONFIG_RTC_DRV_SA1100=y
+CONFIG_RTC_DRV_PXA=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT3_FS=y
 # CONFIG_DNOTIFY is not set
arch/arm/configs/pcm027_defconfig +1 -1
index 0a847d0..b5624e3 100644
@@ -82,7 +82,7 @@ CONFIG_MMC=y
 CONFIG_MMC_PXA=y
 CONFIG_RTC_CLASS=y
 CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_SA1100=m
+CONFIG_RTC_DRV_PXA=m
 CONFIG_EXT2_FS=m
 CONFIG_EXT3_FS=m
 # CONFIG_DNOTIFY is not set
arch/arm/configs/trizeps4_defconfig +1 -1
index 932ee4e..4bc8700 100644
@@ -177,7 +177,7 @@ CONFIG_NEW_LEDS=y
 CONFIG_RTC_CLASS=y
 # CONFIG_RTC_HCTOSYS is not set
 CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_SA1100=y
+CONFIG_RTC_DRV_PXA=y
 CONFIG_EXT2_FS=y
 CONFIG_EXT2_FS_XATTR=y
 CONFIG_EXT2_FS_POSIX_ACL=y
Signature · 1 line
2.1.0