summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Hendricks <dhendrix@chromium.org>2013-08-01 18:17:55 -0700
committerPatrick Georgi <patrick@georgi-clan.de>2013-12-21 21:02:31 +0100
commitd598cac656d214bbdfdfa11426cca4bee6aed216 (patch)
tree13c4034a050d3d00ac24caed407b583167b36c5a
parent8ccabb6877c443d7905b02c9d9e5bafdc3994d82 (diff)
exynos5420: update set_cpu_id()
The current function seems to be outdated... Signed-off-by: David Hendricks <dhendrix@chromium.org> built and booted. Now we see "CPU: S5P5420 @ 762MHz" instead of "CPU: S5PC420 @ 762MHz" Change-Id: Ieb103a5fa62bda9a6b2cbd9a82fb4f72c5dd6466 Reviewed-on: https://gerrit.chromium.org/gerrit/64302 Commit-Queue: David Hendricks <dhendrix@chromium.org> Reviewed-by: David Hendricks <dhendrix@chromium.org> Tested-by: David Hendricks <dhendrix@chromium.org> Reviewed-on: http://review.coreboot.org/4425 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <patrick@georgi-clan.de>
-rw-r--r--src/cpu/samsung/exynos5420/cpu.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/cpu/samsung/exynos5420/cpu.c b/src/cpu/samsung/exynos5420/cpu.c
index 27fa08d5aa..49e1692723 100644
--- a/src/cpu/samsung/exynos5420/cpu.c
+++ b/src/cpu/samsung/exynos5420/cpu.c
@@ -37,18 +37,30 @@ static unsigned int cpu_rev;
static void set_cpu_id(void)
{
- cpu_id = readl((void *)EXYNOS_PRO_ID);
- cpu_id = (0xC000 | ((cpu_id & 0x00FFF000) >> 12));
+ u32 pro_id = (read32((void *)EXYNOS_PRO_ID) & 0x00FFF000) >> 12;
- /*
- * 0xC200: EXYNOS4210 EVT0
- * 0xC210: EXYNOS4210 EVT1
- */
- if (cpu_id == 0xC200) {
- cpu_id |= 0x10;
+ switch (pro_id) {
+ case 0x200:
+ /* Exynos4210 EVT0 */
+ cpu_id = 0x4210;
cpu_rev = 0;
- } else if (cpu_id == 0xC210) {
- cpu_rev = 1;
+ break;
+ case 0x210:
+ /* Exynos4210 EVT1 */
+ cpu_id = 0x4210;
+ break;
+ case 0x412:
+ /* Exynos4412 */
+ cpu_id = 0x4412;
+ break;
+ case 0x520:
+ /* Exynos5250 */
+ cpu_id = 0x5250;
+ break;
+ case 0x420:
+ /* Exynos5420 */
+ cpu_id = 0x5420;
+ break;
}
}