summaryrefslogtreecommitdiff
path: root/plat/sun50iw1p1/aarch64/sunxi_common.c
diff options
context:
space:
mode:
Diffstat (limited to 'plat/sun50iw1p1/aarch64/sunxi_common.c')
-rw-r--r--plat/sun50iw1p1/aarch64/sunxi_common.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/plat/sun50iw1p1/aarch64/sunxi_common.c b/plat/sun50iw1p1/aarch64/sunxi_common.c
index 20d185a..a2fa37a 100644
--- a/plat/sun50iw1p1/aarch64/sunxi_common.c
+++ b/plat/sun50iw1p1/aarch64/sunxi_common.c
@@ -137,3 +137,16 @@ uint32_t sunxi_get_spsr_for_bl33_entry(int aarch)
return spsr;
}
+
+#define SRAM_VER_REG 0x01c00024
+
+uint16_t sunxi_get_socid(void)
+{
+ uint32_t reg;
+
+ reg = mmio_read_32(SRAM_VER_REG);
+ mmio_write_32(SRAM_VER_REG, reg | (1 << 15));
+ reg = mmio_read_32(SRAM_VER_REG);
+ mmio_write_32(0x01c00024, reg & ~(1 << 15));
+ return reg >> 16;
+}