]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPlatformPkg: break out juno revision detection
authorJeremy Linton <jeremy.linton@arm.com>
Wed, 27 Jul 2016 19:24:35 +0000 (14:24 -0500)
committerLeif Lindholm <leif.lindholm@linaro.org>
Thu, 28 Jul 2016 14:29:35 +0000 (15:29 +0100)
The code to detect what juno revision we are running on
is fairly small put it in a common header where it may be
used in a couple places.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeremy Linton <jeremy.linton@arm.com>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
ArmPlatformPkg/ArmJunoPkg/Include/ArmPlatform.h

index d01d1367f9d3c04b8dd0716ec45e755ac093bd46..7eaa239b1cbd4a2f54aa2d71e4e3b0279c5527d1 100644 (file)
 \r
 // Motherboard Peripheral and On-chip peripheral\r
 #define ARM_VE_BOARD_PERIPH_BASE              0x1C010000\r
+#define ARM_VE_BOARD_SYS_ID                   0x0000\r
+#define ARM_VE_BOARD_SYS_PCIE_GBE_L           0x0074\r
+#define ARM_VE_BOARD_SYS_PCIE_GBE_H           0x0078\r
+\r
+#define ARM_VE_BOARD_SYS_ID_REV(word)         ((word >> 28) & 0xff)\r
 \r
 // NOR Flash 0\r
 #define ARM_VE_SMB_NOR0_BASE                  0x08000000\r
     EFI_ACPI_ARM_CREATOR_REVISION   /* UINT32  CreatorRevision */ \\r
   }\r
 \r
+//\r
+// Hardware platform identifiers\r
+//\r
+#define JUNO_REVISION_PROTOTYPE 0\r
+#define JUNO_REVISION_R0        1\r
+#define JUNO_REVISION_R1        2\r
+#define JUNO_REVISION_R2        3\r
+#define JUNO_REVISION_UKNOWN    0xFF\r
+\r
+//\r
+// We detect whether we are running on a Juno r0, r1 or r2\r
+// board at runtime by checking the value of board SYS_ID\r
+//\r
+#define GetJunoRevision(JunoRevision)                                  \\r
+{                                                                      \\r
+  UINT32    SysId;                                                     \\r
+  SysId = MmioRead32 (ARM_VE_BOARD_PERIPH_BASE+ARM_VE_BOARD_SYS_ID);   \\r
+  JunoRevision = ARM_VE_BOARD_SYS_ID_REV( SysId );                     \\r
+}\r
+\r
 #define JUNO_WATCHDOG_COUNT  2\r
 \r
 // Define if the exported ACPI Tables are based on ACPI 5.0 spec or latest\r
 // assigned to the PCI Gigabyte Ethernet device.\r
 //\r
 \r
-#define ARM_JUNO_SYS_PCIGBE_L  (ARM_VE_BOARD_PERIPH_BASE + 0x74)\r
-#define ARM_JUNO_SYS_PCIGBE_H  (ARM_VE_BOARD_PERIPH_BASE + 0x78)\r
+#define ARM_JUNO_SYS_PCIGBE_L  (ARM_VE_BOARD_PERIPH_BASE + ARM_VE_BOARD_SYS_PCIE_GBE_L)\r
+#define ARM_JUNO_SYS_PCIGBE_H  (ARM_VE_BOARD_PERIPH_BASE + ARM_VE_BOARD_SYS_PCIE_GBE_H)\r
 \r
 #endif\r