]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg,ArmVirtPkg: delete redundant PL031 functions
authorLeif Lindholm <leif.lindholm@linaro.org>
Wed, 3 May 2017 17:29:34 +0000 (18:29 +0100)
committerLeif Lindholm <leif.lindholm@linaro.org>
Wed, 10 May 2017 13:28:37 +0000 (14:28 +0100)
Remove the functions now provided by TimeBaseLib from
PL031RealTimeClockLib. Add TimeBaseLib resolution to ArmVirtPkg
in same commit to prevent breakage.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
ArmPlatformPkg/Include/Drivers/PL031RealTimeClock.h
ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.c
ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf
ArmVirtPkg/ArmVirt.dsc.inc

index 76fbd0eb8225f68f3867a42a36adfcf9f52c85c1..812cd9b397767f12a6b91c053f26d8c002862c21 100644 (file)
 \r
 #define PL031_COUNTS_PER_SECOND                         1\r
 \r
-// Define EPOCH (1970-JANUARY-01) in the Julian Date representation\r
-#define EPOCH_JULIAN_DATE                               2440588\r
-\r
-// Seconds per unit\r
-#define SEC_PER_MIN                                     ((UINTN)    60)\r
-#define SEC_PER_HOUR                                    ((UINTN)  3600)\r
-#define SEC_PER_DAY                                     ((UINTN) 86400)\r
-\r
-#define SEC_PER_MONTH                                   ((UINTN)  2,592,000)\r
-#define SEC_PER_YEAR                                    ((UINTN) 31,536,000)\r
-\r
 #endif\r
index 4aa448b528ed13795462607a780fb26a108221ff..41ebcb95ab8514d5a1954add3fe1e64345c8dc5c 100644 (file)
@@ -36,6 +36,8 @@
 \r
 #include <Drivers/PL031RealTimeClock.h>\r
 \r
+#include <Library/TimeBaseLib.h>\r
+\r
 #include <ArmPlatform.h>\r
 \r
 STATIC CONST CHAR16           mTimeZoneVariableName[] = L"PL031RtcTimeZone";\r
@@ -109,129 +111,6 @@ InitializePL031 (
   return Status;\r
 }\r
 \r
-/**\r
-  Converts Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC) to EFI_TIME\r
- **/\r
-VOID\r
-EpochToEfiTime (\r
-  IN  UINTN     EpochSeconds,\r
-  OUT EFI_TIME  *Time\r
-  )\r
-{\r
-  UINTN         a;\r
-  UINTN         b;\r
-  UINTN         c;\r
-  UINTN         d;\r
-  UINTN         g;\r
-  UINTN         j;\r
-  UINTN         m;\r
-  UINTN         y;\r
-  UINTN         da;\r
-  UINTN         db;\r
-  UINTN         dc;\r
-  UINTN         dg;\r
-  UINTN         hh;\r
-  UINTN         mm;\r
-  UINTN         ss;\r
-  UINTN         J;\r
-\r
-  J  = (EpochSeconds / 86400) + 2440588;\r
-  j  = J + 32044;\r
-  g  = j / 146097;\r
-  dg = j % 146097;\r
-  c  = (((dg / 36524) + 1) * 3) / 4;\r
-  dc = dg - (c * 36524);\r
-  b  = dc / 1461;\r
-  db = dc % 1461;\r
-  a  = (((db / 365) + 1) * 3) / 4;\r
-  da = db - (a * 365);\r
-  y  = (g * 400) + (c * 100) + (b * 4) + a;\r
-  m  = (((da * 5) + 308) / 153) - 2;\r
-  d  = da - (((m + 4) * 153) / 5) + 122;\r
-\r
-  Time->Year  = y - 4800 + ((m + 2) / 12);\r
-  Time->Month = ((m + 2) % 12) + 1;\r
-  Time->Day   = d + 1;\r
-\r
-  ss = EpochSeconds % 60;\r
-  a  = (EpochSeconds - ss) / 60;\r
-  mm = a % 60;\r
-  b = (a - mm) / 60;\r
-  hh = b % 24;\r
-\r
-  Time->Hour        = hh;\r
-  Time->Minute      = mm;\r
-  Time->Second      = ss;\r
-  Time->Nanosecond  = 0;\r
-\r
-}\r
-\r
-/**\r
-  Converts EFI_TIME to Epoch seconds (elapsed since 1970 JANUARY 01, 00:00:00 UTC)\r
- **/\r
-UINTN\r
-EfiTimeToEpoch (\r
-  IN  EFI_TIME  *Time\r
-  )\r
-{\r
-  UINTN a;\r
-  UINTN y;\r
-  UINTN m;\r
-  UINTN JulianDate;  // Absolute Julian Date representation of the supplied Time\r
-  UINTN EpochDays;   // Number of days elapsed since EPOCH_JULIAN_DAY\r
-  UINTN EpochSeconds;\r
-\r
-  a = (14 - Time->Month) / 12 ;\r
-  y = Time->Year + 4800 - a;\r
-  m = Time->Month + (12*a) - 3;\r
-\r
-  JulianDate = Time->Day + ((153*m + 2)/5) + (365*y) + (y/4) - (y/100) + (y/400) - 32045;\r
-\r
-  ASSERT (JulianDate >= EPOCH_JULIAN_DATE);\r
-  EpochDays = JulianDate - EPOCH_JULIAN_DATE;\r
-\r
-  EpochSeconds = (EpochDays * SEC_PER_DAY) + ((UINTN)Time->Hour * SEC_PER_HOUR) + (Time->Minute * SEC_PER_MIN) + Time->Second;\r
-\r
-  return EpochSeconds;\r
-}\r
-\r
-BOOLEAN\r
-IsLeapYear (\r
-  IN EFI_TIME   *Time\r
-  )\r
-{\r
-  if (Time->Year % 4 == 0) {\r
-    if (Time->Year % 100 == 0) {\r
-      if (Time->Year % 400 == 0) {\r
-        return TRUE;\r
-      } else {\r
-        return FALSE;\r
-      }\r
-    } else {\r
-      return TRUE;\r
-    }\r
-  } else {\r
-    return FALSE;\r
-  }\r
-}\r
-\r
-BOOLEAN\r
-DayValid (\r
-  IN  EFI_TIME  *Time\r
-  )\r
-{\r
-  STATIC CONST INTN DayOfMonth[12] = { 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };\r
-\r
-  if (Time->Day < 1 ||\r
-      Time->Day > DayOfMonth[Time->Month - 1] ||\r
-      (Time->Month == 2 && (!IsLeapYear (Time) && Time->Day > 28))\r
-     ) {\r
-    return FALSE;\r
-  }\r
-\r
-  return TRUE;\r
-}\r
-\r
 /**\r
   Returns the current time and date information, and the time-keeping capabilities\r
   of the hardware platform.\r
@@ -431,7 +310,7 @@ LibSetTime (
        (Time->Year   > 9999) ||\r
        (Time->Month  < 1   ) ||\r
        (Time->Month  > 12  ) ||\r
-       (!DayValid (Time)    ) ||\r
+       (!IsDayValid (Time) ) ||\r
        (Time->Hour   > 23  ) ||\r
        (Time->Minute > 59  ) ||\r
        (Time->Second > 59  ) ||\r
index 3a98fc757e3df8a3e5bd3f8dd86433a63822dfb5..aa06a41d0b2ad1f782d6244fd31f0b6618ce1647 100644 (file)
@@ -36,6 +36,7 @@
   PcdLib\r
   ArmPlatformSysConfigLib\r
   DxeServicesTableLib\r
+  TimeBaseLib\r
   UefiRuntimeLib\r
 \r
 [Guids]\r
index e74eaf16e7abeecfa995d71a053cabd603136f81..5bf53763548868cfbd75b068f7538d4816632a16 100644 (file)
 \r
   # ARM PL031 RTC Driver\r
   RealTimeClockLib|ArmPlatformPkg/Library/PL031RealTimeClockLib/PL031RealTimeClockLib.inf\r
+  TimeBaseLib|EmbeddedPkg/Library/TimeBaseLib/TimeBaseLib.inf\r
   # ARM PL011 UART Driver\r
   PL011UartLib|ArmPlatformPkg/Drivers/PL011Uart/PL011Uart.inf\r
   SerialPortLib|ArmVirtPkg/Library/FdtPL011SerialPortLib/FdtPL011SerialPortLib.inf\r